mirror of
git://git.sv.gnu.org/autoconf
synced 2024-12-03 02:00:36 +08:00
01f2ae88a0
From Nicolas Joly.
244 lines
6.9 KiB
Bash
244 lines
6.9 KiB
Bash
#! @SHELL@
|
|
# -*- shell-script -*-
|
|
# autoconf -- create `configure' using m4 macros
|
|
# Copyright 1992, 1993, 1994, 1996, 1999, 2000, 2001
|
|
# Free Software Foundation, Inc.
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2, or (at your option)
|
|
# any later version.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
# 02111-1307, USA.
|
|
|
|
me=`echo "$0" | sed -e 's,.*[\\/],,'`
|
|
|
|
usage="\
|
|
Usage: $0 [OPTION] ... [TEMPLATE-FILE]
|
|
|
|
Generate a configuration script from a TEMPLATE-FILE if given, or
|
|
\`configure.ac' if present, or else \`configure.in'. Output is sent
|
|
to the standard output if TEMPLATE-FILE is given, else into
|
|
\`configure'.
|
|
|
|
Operation modes:
|
|
-h, --help print this help, then exit
|
|
-V, --version print version number, then exit
|
|
-v, --verbose verbosely report processing
|
|
-d, --debug don't remove temporary files
|
|
-o, --output=FILE save output in FILE (stdout is the default)
|
|
-W, --warnings=CATEGORY report the warnings falling in CATEGORY [syntax]
|
|
|
|
Warning categories include:
|
|
\`cross' cross compilation issues
|
|
\`obsolete' obsolete constructs
|
|
\`syntax' dubious syntactic constructs
|
|
\`all' all the warnings
|
|
\`no-CATEGORY' turn off the warnings on CATEGORY
|
|
\`none' turn off all the warnings
|
|
\`error' warnings are error
|
|
|
|
The environment variable \`WARNINGS' is honored.
|
|
|
|
Library directories:
|
|
-A, --autoconf-dir=ACDIR Autoconf's macro files location (rarely needed)
|
|
-l, --localdir=DIR location of the \`aclocal.m4' file
|
|
|
|
Tracing:
|
|
-t, --trace=MACRO report the list of calls to MACRO
|
|
-i, --initialization also trace Autoconf's initialization process
|
|
|
|
In tracing mode, no configuration script is created.
|
|
|
|
Report bugs to <bug-autoconf@gnu.org>."
|
|
|
|
version="\
|
|
autoconf (@PACKAGE_NAME@) @VERSION@
|
|
Written by David J. MacKenzie.
|
|
|
|
Copyright 1992, 1993, 1994, 1996, 1999, 2000, 2001
|
|
Free Software Foundation, Inc.
|
|
This is free software; see the source for copying conditions. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
|
|
|
help="\
|
|
Try \`$me --help' for more information."
|
|
|
|
exit_missing_arg="\
|
|
echo \"$me: option \\\`\$1' requires an argument\" >&2
|
|
echo \"\$help\" >&2
|
|
exit 1"
|
|
|
|
# NLS nuisances.
|
|
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
|
|
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
|
|
if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
|
|
if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
|
|
|
|
# Variables.
|
|
: ${autoconf_dir=${AC_MACRODIR=@datadir@}}
|
|
debug=false
|
|
dir=`echo "$0" | sed -e 's,[^\\/]*$,,'`
|
|
# Trace Autoconf's initialization?
|
|
initialization=false
|
|
localdir=.
|
|
outfile=
|
|
# Exit status.
|
|
status=0
|
|
verbose=:
|
|
|
|
# We test "$dir/autom4te" in case we are in the build tree, in which case
|
|
# the names are not transformed yet.
|
|
for autom4te in "$AUTOM4TE" \
|
|
"$dir/@autom4te-name@" \
|
|
"$dir/autom4te" \
|
|
"@bindir@/@autom4te-name@"; do
|
|
test -f "$autom4te" && break
|
|
done
|
|
|
|
|
|
# Parse command line.
|
|
while test $# -gt 0 ; do
|
|
optarg=`expr "x$1" : 'x--[^=]*=\(.*\)' \| \
|
|
"x$1" : 'x-.\(.*\)'`
|
|
case $1 in
|
|
--version | -V )
|
|
echo "$version" ; exit 0 ;;
|
|
--help | -h )
|
|
echo "$usage"; exit 0 ;;
|
|
|
|
--debug | -d )
|
|
debug=:; shift ;;
|
|
--verbose | -v )
|
|
verbose=echo
|
|
shift;;
|
|
|
|
--localdir=* | -l?* )
|
|
localdir=$optarg
|
|
shift ;;
|
|
--localdir | -l )
|
|
test $# = 1 && eval "$exit_missing_arg"
|
|
shift
|
|
localdir=$1
|
|
shift ;;
|
|
|
|
--autoconf-dir=* | -A?* )
|
|
autoconf_dir=$optarg
|
|
shift ;;
|
|
--autoconf-dir | -A )
|
|
test $# = 1 && eval "$exit_missing_arg"
|
|
shift
|
|
autoconf_dir=$1
|
|
shift ;;
|
|
--macrodir=* | -m?* )
|
|
echo "$me: warning: --macrodir is obsolete, use --autoconf-dir" >&2
|
|
autoconf_dir=$optarg
|
|
shift ;;
|
|
--macrodir | -m )
|
|
echo "$me: warning: --macrodir is obsolete, use --autoconf-dir" >&2
|
|
test $# = 1 && eval "$exit_missing_arg"
|
|
shift
|
|
autoconf_dir=$1
|
|
shift ;;
|
|
|
|
--trace=* | -t?* )
|
|
traces="$traces --trace='"`echo "$optarg" | sed "s/'/'\\\\\\\\''/g"`"'"
|
|
shift ;;
|
|
--trace | -t )
|
|
test $# = 1 && eval "$exit_missing_arg"
|
|
shift
|
|
traces="$traces --trace='"`echo "$1" | sed "s/'/'\\\\\\\\''/g"`"'"
|
|
shift ;;
|
|
--initialization | -i )
|
|
initialization=:
|
|
shift;;
|
|
|
|
--output=* | -o?* )
|
|
outfile=$optarg
|
|
shift ;;
|
|
--output | -o )
|
|
test $# = 1 && eval "$exit_missing_arg"
|
|
shift
|
|
outfile=$1
|
|
shift ;;
|
|
|
|
--warnings=* | -W?* )
|
|
warnings=$warnings,$optarg
|
|
shift ;;
|
|
--warnings | -W )
|
|
test $# = 1 && eval "$exit_missing_arg"
|
|
shift
|
|
warnings=$warnings,$1
|
|
shift ;;
|
|
|
|
-- ) # Stop option processing
|
|
shift; break ;;
|
|
- ) # Use stdin as input.
|
|
break ;;
|
|
-* )
|
|
exec >&2
|
|
echo "$me: invalid option $1"
|
|
echo "$help"
|
|
exit 1 ;;
|
|
* )
|
|
break ;;
|
|
esac
|
|
done
|
|
|
|
# Find the input file.
|
|
case $# in
|
|
0)
|
|
case `ls configure.ac configure.in 2>/dev/null` in
|
|
*ac*in )
|
|
echo "$me: warning: both \`configure.ac' and \`configure.in' are present." >&2
|
|
echo "$me: warning: proceeding with \`configure.ac'." >&2
|
|
infile=configure.ac;;
|
|
*ac ) infile=configure.ac;;
|
|
*in ) infile=configure.in;;
|
|
* )
|
|
echo "$me: no input file" >&2
|
|
exit 1;;
|
|
esac
|
|
test -z "$traces" && test -z "$outfile" && outfile=configure;;
|
|
1) # autom4te doesn't like `-'.
|
|
test "x$1" != "x-" && infile=$1 ;;
|
|
*) exec >&2
|
|
echo "$me: invalid number of arguments."
|
|
echo "$help"
|
|
(exit 1); exit 1 ;;
|
|
esac
|
|
|
|
# Unless specified, the output is stdout.
|
|
test -z "$outfile" && outfile=-
|
|
|
|
# Running autom4te.
|
|
run_autom4te="$autom4te "\
|
|
`$verbose "--verbose "`\
|
|
`$debug && echo "--debug "`\
|
|
"--include $autoconf_dir --include $localdir "\
|
|
"--warning syntax,$warnings "\
|
|
"autoconf/autoconf.m4"`$initialization || echo f`" "\
|
|
`test -f "$autoconf_dir/acsite.m4" && echo "$autoconf_dir/acsite.m4"`" "\
|
|
`test -f "$localdir/aclocal.m4" && echo "$localdir/aclocal.m4"`
|
|
|
|
# Autom4te expansion.
|
|
eval set dummy "$traces"
|
|
shift
|
|
$verbose "$me: running $run_autom4te "${1+"$@"}" $infile --output $outfile" >&2
|
|
$run_autom4te ${1+"$@"} $infile --output $outfile ||
|
|
{ (exit 1); exit 1; }
|
|
|
|
if test -z "$traces" && test "x$outfile" != x-; then
|
|
chmod +x $outfile
|
|
fi
|
|
|
|
(exit $status); exit $status
|