source: trunk/essentials/sys-devel/autoconf-2.13/ifnames.sh@ 3275

Last change on this file since 3275 was 3159, checked in by bird, 18 years ago

Applied OS/2 patches.

File size: 2.9 KB
Line 
1#! @SHELL@
2# ifnames - print the identifiers used in C preprocessor conditionals
3# Copyright (C) 1994, 1995 Free Software Foundation, Inc.
4
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2, or (at your option)
8# any later version.
9
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18# 02111-1307, USA.
19
20# Reads from stdin if no files are given.
21# Writes to stdout.
22
23# Written by David MacKenzie <djm@gnu.ai.mit.edu>
24# and Paul Eggert <eggert@twinsun.com>.
25
26usage="\
27Usage: ifnames [-h] [--help] [-m dir] [--macrodir=dir] [--version] [file...]"
28show_version=no
29
30# OS/2 additions
31if test -z "${AC_MACRODIR}"; then
32 if test -d "${UNIXROOT}@datadir@"; then
33 AC_MACRODIR=${UNIXROOT}@datadir@
34 else
35 AC_MACRODIR=@datadir@
36 fi
37fi
38
39while test $# -gt 0; do
40 case "$1" in
41 -h | --help | --h* )
42 echo "$usage"; exit 0 ;;
43 --macrodir=* | --m*=* )
44 AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"
45 shift ;;
46 -m | --macrodir | --m* )
47 shift
48 test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
49 AC_MACRODIR="$1"
50 shift ;;
51 --version | --versio | --versi | --vers)
52 show_version=yes; shift ;;
53 --) # Stop option processing.
54 shift; break ;;
55 -*) echo "$usage" 1>&2; exit 1 ;;
56 *) break ;;
57 esac
58done
59
60if test $show_version = yes; then
61 version=`sed -n 's/define.AC_ACVERSION.[ ]*\([0-9.]*\).*/\1/p' \
62 $AC_MACRODIR/acgeneral.m4`
63 echo "Autoconf version $version"
64 exit 0
65fi
66
67@AWK@ '
68 # Record that sym was found in FILENAME.
69 function file_sym(sym, i, fs) {
70 if (sym ~ /^[A-Za-z_]/) {
71 if (!found[sym,FILENAME]) {
72 found[sym,FILENAME] = 1
73
74 # Insert FILENAME into files[sym], keeping the list sorted.
75 i = 1
76 fs = files[sym]
77 while (match(substr(fs, i), /^ [^ ]*/) \
78 && substr(fs, i + 1, RLENGTH - 1) < FILENAME) {
79 i += RLENGTH
80 }
81 files[sym] = substr(fs, 1, i - 1) " " FILENAME substr(fs, i)
82 }
83 }
84 }
85
86 /^[\t ]*#/ {
87 if (sub(/^[\t ]*#[\t ]*ifn?def[\t ]+/, "", $0)) {
88 sub(/[^A-Za-z_0-9].*/, "", $0)
89 file_sym($0)
90 }
91 if (sub(/^[\t ]*#[\t ]*(el)?if[\t ]+/, "", $0)) {
92 # Remove comments. Not perfect, but close enough.
93 gsub(/\/\*[^\/]*(\*\/)?/, "", $0)
94
95 for (i = split($0, field, /[^A-Za-z_0-9]+/); 1 <= i; i--) {
96 if (field[i] != "defined") {
97 file_sym(field[i])
98 }
99 }
100 }
101 }
102
103 END {
104 for (sym in files) {
105 print sym files[sym]
106 }
107 }
108' ${1+"$@"} | sort
Note: See TracBrowser for help on using the repository browser.