source: trunk/third/autoconf/autoconf.sh @ 13391

Revision 13391, 4.8 KB checked in by ghudson, 25 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r13390, which included commits to RCS files with non-trunk default branches.
Line 
1#! @SHELL@
2# autoconf -- create `configure' using m4 macros
3# Copyright (C) 1992, 1993, 1994, 1996 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# If given no args, create `configure' from template file `configure.in'.
21# With one arg, create a configure script on standard output from
22# the given template file.
23
24usage="\
25Usage: autoconf [-h] [--help] [-m dir] [--macrodir=dir]
26       [-l dir] [--localdir=dir] [--version] [template-file]"
27
28# NLS nuisances.
29# Only set these to C if already set.  These must not be set unconditionally
30# because not all systems understand e.g. LANG=C (notably SCO).
31# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
32# Non-C LC_CTYPE values break the ctype check.
33if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
34if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
35if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
36if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
37
38: ${AC_MACRODIR=@datadir@}
39: ${M4=@M4@}
40: ${AWK=@AWK@}
41case "${M4}" in
42/*) # Handle the case that m4 has moved since we were configured.
43    # It may have been found originally in a build directory.
44    test -f "${M4}" || M4=m4 ;;
45esac
46
47: ${TMPDIR=/tmp}
48tmpout=${TMPDIR}/acout.$$
49localdir=
50show_version=no
51
52while test $# -gt 0 ; do
53   case "${1}" in
54      -h | --help | --h* )
55         echo "${usage}" 1>&2; exit 0 ;;
56      --localdir=* | --l*=* )
57         localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
58         shift ;;
59      -l | --localdir | --l*)
60         shift
61         test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
62         localdir="${1}"
63         shift ;;
64      --macrodir=* | --m*=* )
65         AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
66         shift ;;
67      -m | --macrodir | --m* )
68         shift
69         test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
70         AC_MACRODIR="${1}"
71         shift ;;
72      --version | --v* )
73         show_version=yes; shift ;;
74      -- )     # Stop option processing
75        shift; break ;;
76      - )       # Use stdin as input.
77        break ;;
78      -* )
79        echo "${usage}" 1>&2; exit 1 ;;
80      * )
81        break ;;
82   esac
83done
84
85if test $show_version = yes; then
86  version=`sed -n 's/define.AC_ACVERSION.[      ]*\([0-9.]*\).*/\1/p' \
87    $AC_MACRODIR/acgeneral.m4`
88  echo "Autoconf version $version"
89  exit 0
90fi
91
92case $# in
93  0) infile=configure.in ;;
94  1) infile="$1" ;;
95  *) echo "$usage" >&2; exit 1 ;;
96esac
97
98trap 'rm -f $tmpin $tmpout; exit 1' 1 2 15
99
100tmpin=${TMPDIR}/acin.$$ # Always set this, to avoid bogus errors from some rm's.
101if test z$infile = z-; then
102  infile=$tmpin
103  cat > $infile
104elif test ! -r "$infile"; then
105  echo "autoconf: ${infile}: No such file or directory" >&2
106  exit 1
107fi
108
109if test -n "$localdir"; then
110  use_localdir="-I$localdir -DAC_LOCALDIR=$localdir"
111else
112  use_localdir=
113fi
114
115# Use the frozen version of Autoconf if available.
116r= f=
117# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
118case `$M4 --help < /dev/null 2>&1` in
119*reload-state*) test -r $AC_MACRODIR/autoconf.m4f && { r=--reload f=f; } ;;
120*traditional*) ;;
121*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
122esac
123
124$M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
125  { rm -f $tmpin $tmpout; exit 2; }
126
127# You could add your own prefixes to pattern if you wanted to check for
128# them too, e.g. pattern='\(AC_\|ILT_\)', except that UNIX sed doesn't do
129# alternation.
130pattern="AC_"
131
132status=0
133if grep "^[^#]*${pattern}" $tmpout > /dev/null 2>&1; then
134  echo "autoconf: Undefined macros:" >&2
135  sed -n "s/^[^#]*\\(${pattern}[_A-Za-z0-9]*\\).*/\\1/p" $tmpout |
136    while read macro; do
137      grep -n "^[^#]*$macro" $infile /dev/null
138      test $? -eq 1 && echo >&2 "***BUG in Autoconf--please report*** $macro"
139    done | sort -u >&2
140  status=1
141fi
142
143if test $# -eq 0; then
144  exec 4> configure; chmod +x configure
145else
146  exec 4>&1
147fi
148
149# Put the real line numbers into configure to make config.log more helpful.
150$AWK '
151/__oline__/ { printf "%d:", NR + 1 }
152           { print }
153' $tmpout | sed '
154/__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__/\2\1/
155' >&4
156
157rm -f $tmpout
158
159exit $status
Note: See TracBrowser for help on using the repository browser.