acconfig.h acfunctions acheaders acidentifiers \
acmakevars acprograms autoconf.info* \
autoconf.sh autoconf.texi install.texi \
- autoheader.sh autoreconf.sh autoscan.pl autoupdate.sh ifnames.sh \
+ autoheader.sh autoscan.pl autoreconf.sh autoupdate.sh ifnames.sh \
config.guess config.sub configure configure.in \
install-sh mkinstalldirs texinfo.tex \
testsuite/Makefile.in testsuite/config/*.exp \
$(TEXI2DVI) $(srcdir)/standards.texi
check: all
- rootme=`pwd`; cd testsuite && ${MAKE} $@ AUTOCONF=$$rootme/autoconf \
- AUTOCONFFLAGS="-m $$rootme"
+ rootme=`pwd`; srcrootme=`cd $(srcdir); pwd`; \
+ test -r install-sh || cp $(srcdir)/install-sh .; \
+ cd testsuite && ${MAKE} $@ AUTOCONF=$$rootme/autoconf \
+ AUTOCONFFLAGS="-m $$srcrootme"
installcheck: all install
cd testsuite && ${MAKE} AUTOCONF=${bindir}/autoconf $@
*traditional*) ;; \
*) echo Error: Autoconf requires GNU m4 1.1 or later; exit 1 ;; \
esac
- for i in autoconf autoheader autoreconf autoupdate ifnames; do \
+ for i in $(APROGS); do \
$(INSTALL_PROGRAM) $$i $(bindir)/$$i; \
done
for i in $(M4FILES) acconfig.h; do \
done
uninstall:
- rm -f $(bindir)/autoconf $(bindir)/autoheader $(bindir)/autoscan
- rm -f $(bindir)/autoreconf $(bindir)/autoupdate $(bindir)/ifnames
+ cd $(bindir) && rm -f $(PROGS)
rm -fr $(acdatadir)
cd $(infodir); rm -f autoconf.info*
if test -f standards.info || test -f $(srcdir)/standards.info; \
done
clean mostlyclean distclean realclean::
- rm -f autoconf autoheader autoscan autoreconf autoupdate ifnames *.tmp
+ rm -f $(PROGS) *.tmp
rm -f *.aux *.cp *.cps *.dvi *.fn *.fns *.ky *.kys *.log
rm -f *.pg *.pgs *.toc *.tp *.tps *.vr *.vrs
rm -f *.ev *.evs *.ov *.ovs *.cv *.cvs *.ma *.mas
* autoscan to generate a preliminary configure.in for a package by
scanning its source code for commonly used nonportable functions,
programs, and header files.
-* autoreconf to recursively remake configure and configuration header
- files in a source tree.
* autoupdate to update a configure.in to use the new macro names.
* ifnames to list the symbols used in #if and #ifdef directives in a
source tree.
+* autoreconf to recursively remake configure and configuration header
+ files in a source tree.
** Changed utilities:
* autoheader can take pieces of acconfig.h to replace config.h.{top,bot}.
+* autoconf and autoheader can look for package-local definition files
+ in an alternate directory.
** Documentation:
* Autoconf manual is reorganized to make information easier to find
divert(-1)dnl Throw away output until AC_INIT is called.
changequote([, ])
-define(AC_ACVERSION, 1.118)
+define(AC_ACVERSION, 1.119)
dnl Some old m4's don't support m4exit. But they provide
dnl equivalent functionality by core dumping because of the
dnl AC_MSG_ERROR(ERROR-DESCRIPTION)
define(AC_MSG_ERROR,
-[{ echo "configure: $1" 1>&2; exit 1; }])
+[{ echo "configure: error: $1" 1>&2; exit 1; }])
dnl ### Selecting which language to use for testing
dnl AC_CHECK_TYPE(TYPE, DEFAULT)
AC_DEFUN(AC_CHECK_TYPE,
-[AC_MSG_CHECKING(for $1 in sys/types.h)
+[AC_REQUIRE([AC_HEADER_STDC])dnl
+AC_MSG_CHECKING(for $1)
AC_CACHE_VAL(ac_cv_type_$1,
-[AC_EGREP_HEADER($1, sys/types.h, ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
+[AC_EGREP_CPP($1, [#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#endif], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
AC_MSG_RESULT($ac_cv_type_$1)
if test $ac_cv_type_$1 = no; then
AC_DEFINE($1, $2)
# the given template file.
usage="\
-Usage: autoconf [-hv] [--help] [-m dir] [--macrodir=dir]
- [--version] [template-file]"
+Usage: autoconf [-h] [--help] [-m dir] [--macrodir=dir]
+ [-l dir] [--localdir=dir] [--version] [template-file]"
# NLS nuisances.
# Only set `LANG' and `LC_ALL' to "C" if already set.
esac
tmpout=/tmp/acout.$$
+localdir=
show_version=no
while test $# -gt 0 ; do
case "${1}" in
-h | --help | --h* )
echo "${usage}" 1>&2; exit 0 ;;
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ localdir="${1}"
+ shift ;;
--macrodir=* | --m*=* )
AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
shift ;;
test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
AC_MACRODIR="${1}"
shift ;;
- -v | --version | --v* )
+ --version | --v* )
show_version=yes; shift ;;
-- ) # Stop option processing
shift; break ;;
tmpin=/tmp/acin.$$
infile=$tmpin
cat > $infile
-elif test ! -r "${infile}"; then
+elif test ! -r "$infile"; then
echo "autoconf: ${infile}: No such file or directory" >&2
exit 1
fi
+if test -n "$localdir"; then
+ use_localdir="-I$localdir"
+else
+ use_localdir=
+fi
+
# Use the frozen version of Autoconf if available.
r= f=
# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
esac
-$M4 -I$AC_MACRODIR $r autoconf.m4$f $infile > $tmpout || { rm -f $tmpin $tmpout; exit 2; }
+$M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
+ { rm -f $tmpin $tmpout; exit 2; }
# You could add your own prefixes to pattern if you wanted to check for
# them too, e.g. pattern="AC_\|ILT_", except that UNIX sed doesn't do
fi
if test $# -eq 0; then
- exec > configure; chmod +x configure
+ exec 4> configure; chmod +x configure
+else
+ exec 4>&1
fi
# Put the real line numbers into configure to make config.log more helpful.
{ print }
' $tmpout | sed '
/__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__\(.*\)$/\2\1\3/
-'
+' >&4
rm -f $tmpout
+
exit $status
# the given template file.
usage="\
-Usage: autoconf [-hv] [--help] [-m dir] [--macrodir=dir]
- [--version] [template-file]"
+Usage: autoconf [-h] [--help] [-m dir] [--macrodir=dir]
+ [-l dir] [--localdir=dir] [--version] [template-file]"
# NLS nuisances.
# Only set `LANG' and `LC_ALL' to "C" if already set.
esac
tmpout=/tmp/acout.$$
+localdir=
show_version=no
while test $# -gt 0 ; do
case "${1}" in
-h | --help | --h* )
echo "${usage}" 1>&2; exit 0 ;;
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ localdir="${1}"
+ shift ;;
--macrodir=* | --m*=* )
AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
shift ;;
test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
AC_MACRODIR="${1}"
shift ;;
- -v | --version | --v* )
+ --version | --v* )
show_version=yes; shift ;;
-- ) # Stop option processing
shift; break ;;
tmpin=/tmp/acin.$$
infile=$tmpin
cat > $infile
-elif test ! -r "${infile}"; then
+elif test ! -r "$infile"; then
echo "autoconf: ${infile}: No such file or directory" >&2
exit 1
fi
+if test -n "$localdir"; then
+ use_localdir="-I$localdir"
+else
+ use_localdir=
+fi
+
# Use the frozen version of Autoconf if available.
r= f=
# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
esac
-$M4 -I$AC_MACRODIR $r autoconf.m4$f $infile > $tmpout || { rm -f $tmpin $tmpout; exit 2; }
+$M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
+ { rm -f $tmpin $tmpout; exit 2; }
# You could add your own prefixes to pattern if you wanted to check for
# them too, e.g. pattern="AC_\|ILT_", except that UNIX sed doesn't do
fi
if test $# -eq 0; then
- exec > configure; chmod +x configure
+ exec 4> configure; chmod +x configure
+else
+ exec 4>&1
fi
# Put the real line numbers into configure to make config.log more helpful.
{ print }
' $tmpout | sed '
/__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__\(.*\)$/\2\1\3/
-'
+' >&4
rm -f $tmpout
+
exit $status
@c @setchapternewpage odd
@c %**end of header
-@set EDITION 1.118
-@set VERSION 1.118
+@set EDITION 1.119
+@set VERSION 1.119
@set UPDATED September 1994
@iftex
before it.
You can include comments in @file{configure.in} files by starting them
-with the @code{m4} predefined macro @code{dnl}, which discards text up
+with the @code{m4} builtin macro @code{dnl}, which discards text up
through the next newline. These comments do not appear in the generated
@code{configure} scripts. For example, it is helpful to begin
@file{configure.in} files with a line like this:
@table @code
@item --help
+@itemx -h
Print a summary of the command line options and exit.
@item --macrodir=@var{dir}
+@itemx -m @var{dir}
@evindex AC_MACRODIR
Look for the Autoconf macro files in directory @var{dir} instead of the
default installation directory. Only used to get the version number.
@table @code
@item --help
+@itemx -h
Print a summary of the command line options and exit.
+@item --localdir=@var{dir}
+@itemx -l @var{dir}
+Look for the package file @file{aclocal.m4} in directory @var{dir}
+instead of in the current directory.
+
@item --macrodir=@var{dir}
+@itemx -m @var{dir}
@evindex AC_MACRODIR
Look for the installed macro files in directory @var{dir}. You can also
set the @code{AC_MACRODIR} environment variable to a directory; this
get a new version of Autoconf, the @code{autoreconf} program can be
handy. It runs @code{autoconf} (and @code{autoheader}, where
appropriate) repeatedly to remake all of the Autoconf @code{configure}
-scripts in a directory tree. @xref{Automatic Remaking}, for further
-information about automatic remaking of @code{configure} scripts.
+scripts in a directory tree. If you give the
+@samp{--macrodir=@var{dir}} or @samp{--localdir=@var{dir}} options, it
+passes them down (with relative paths adjusted properly).
+
+@xref{Automatic Remaking}, for information about automatic remaking of
+@code{configure} scripts when their source files change.
@noindent
@code{autoreconf} accepts the following options:
@itemx -h
Print a summary of the command line options and exit.
+@item --localdir=@var{dir}
+@itemx -l @var{dir}
+Look for the package files @file{aclocal.m4} and @file{acconfig.h} (but
+not @file{@var{file}.top} and @file{@var{file}.bot}) in directory
+@var{dir} instead of in the directory containing each @file{configure.in}.
+
@item --macrodir=@var{dir}
@itemx -m @var{dir}
@evindex AC_MACRODIR
@item --verbose
Print the name of each directory where @code{autoreconf} runs
-@code{autoconf} (and @code{autoheader}, if that directory's
-@file{configure.in} calls @code{AC_CONFIG_HEADER}).
-
+@code{autoconf} (and @code{autoheader}, if appropriate).
+
@item --version
Print the version number of Autoconf and exit.
@end table
@code{autoheader} copies the lines after that line to the end of the
file it generates. Either or both of those strings may be omitted.
-An obsolete way to produce the same effect is to create the files
+An alternate way to produce the same effect is to create the files
@file{@var{file}.top} (typically @file{config.h.top}) and/or
@file{@var{file}.bot} in the current directory. If they exist,
@code{autoheader} copies them to the beginning and end, respectively, of
its output. Their use is discouraged because they have file names that
contain two periods, and so can not be stored on MS-DOS; also, they are
-two more files to clutter up the directory.
+two more files to clutter up the directory. But if you use the
+@samp{--localdir=@var{dir}} option to use an @file{acconfig.h} in another
+directory, they give you a way to put custom boilerplate in each
+individual @file{config.h.in}.
@code{autoheader} accepts the following options:
@table @code
@item --help
+@itemx -h
Print a summary of the command line options and exit.
+@item --localdir=@var{dir}
+@itemx -l @var{dir}
+Look for the package files @file{aclocal.m4} and @file{acconfig.h} (but
+not @file{@var{file}.top} and @file{@var{file}.bot}) in directory
+@var{dir} instead of in the current directory.
+
@item --macrodir=@var{dir}
+@itemx -m @var{dir}
@evindex AC_MACRODIR
Look for the installed macro files and @file{acconfig.h} in directory
@var{dir}. You can also set the @code{AC_MACRODIR} environment variable
checking for, and what they find. They cache their results for future
@code{configure} runs (@pxref{Caching Results}).
-Some of these macros set output variables. @xref{Setting Output Variables},
-for details on how this is done. The phrase ``define @var{name}'' is
-used below as a shorthand to mean ``define C preprocessor symbol
-@var{name} to have the value 1''.
+Some of these macros set output variables. @xref{Makefile
+Substitutions}, for how to get their values. The phrase ``define
+@var{name}'' is used below as a shorthand to mean ``define C
+preprocessor symbol @var{name} to the value 1''. @xref{Defining
+Symbols}, for how to get those symbol definitions into your program.
@menu
* Alternative Programs:: Selecting between alternative programs.
@defmac AC_CHECK_TYPE (@var{type}, @var{default})
@maindex CHECK_TYPE
-If the type @var{type} is not defined in @file{sys/types.h}, define it
-to be the C (or C++) builtin type @var{default}; e.g., @samp{short} or
-@samp{unsigned}.
+If the type @var{type} is not defined in @file{sys/types.h} or
+@file{stdlib.h} (if that is present), define it to be the C (or C++)
+builtin type @var{default}; e.g., @samp{short} or @samp{unsigned}.
@end defmac
@node Compiler Characteristics, System Services, Typedefs, Existing Tests
@section Defining C Preprocessor Symbols
A common action to take in response to a feature test is to define a C
-preprocessor symbol indicating the results of the test. These two
-macros do that.
+preprocessor symbol indicating the results of the test. That is done by
+calling @code{AC_DEFINE} or @code{AC_DEFINE_UNQUOTED}.
+
+By default, @code{AC_OUTPUT} places the symbols defined by these macros
+into the output variable @code{DEFS}, which contains an option
+@samp{-D@var{symbol}=@var{value}} for each symbol defined. Unlike in
+Autoconf version 1, there is no variable @code{DEFS} defined while
+@code{configure} is running. To check whether Autoconf macros have
+already defined a certain C preprocessor symbol, test the value of the
+appropriate cache variable, as in this example:
+
+@example
+AC_CHECK_FUNC(vprintf, AC_DEFINE(HAVE_VPRINTF))
+if test "$ac_cv_func_vprintf" != yes; then
+AC_CHECK_FUNC(_doprnt, AC_DEFINE(HAVE_DOPRNT))
+fi
+@end example
+
+If @code{AC_CONFIG_HEADER} has been called, then instead of creating
+@code{DEFS}, @code{AC_OUTPUT} creates a header file by substituting the
+correct values into @code{#define} statements in a template file.
+@xref{Configuration Headers}, for more information about this kind of
+output.
@defmac AC_DEFINE (@var{variable} @r{[}, @var{value}@r{]})
@maindex DEFINE
@end example
@end defmac
-By default, @code{AC_OUTPUT} substitutes the symbols defined by these
-macros into the output variable @code{DEFS}, which contains an option
-@samp{-D@var{symbol}=@var{value}} for each symbol defined. Unlike in
-Autoconf version 1, there is no variable @code{DEFS} defined while
-@code{configure} is running. To check whether Autoconf macros have
-already defined a certain C preprocessor symbol, test the value of the
-appropriate cache variable, as in this example:
-
-@example
-AC_CHECK_FUNC(vprintf, AC_DEFINE(HAVE_VPRINTF))
-if test "$ac_cv_func_vprintf" != yes; then
-AC_CHECK_FUNC(_doprnt, AC_DEFINE(HAVE_DOPRNT))
-fi
-@end example
-
-If @code{AC_CONFIG_HEADER} has been called, then instead of substituting
-@code{DEFS}, @code{AC_OUTPUT} creates a header file by substituting the
-correct values into @code{#define} statements in a template file.
-@xref{Configuration Headers}, for more information about this kind of output.
-
Due to the syntactical bizarreness of the Bourne shell, do not use
semicolons to separate @code{AC_DEFINE} or @code{AC_DEFINE_UNQUOTED}
calls from other macro calls or shell code; that can cause syntax errors
usage="\
Usage: autoheader [-h] [--help] [-m dir] [--macrodir=dir]
- [-v] [--version] [template-file]"
+ [-l dir] [--localdir=dir] [--version] [template-file]"
# NLS nuisances.
# Only set `LANG' and `LC_ALL' to "C" if already set.
test -f "${M4}" || M4=m4 ;;
esac
+localdir=.
show_version=no
+
while test $# -gt 0 ; do
- case "z${1}" in
- z-h | z--help | z--h* )
+ case "${1}" in
+ -h | --help | --h* )
echo "${usage}"; exit 0 ;;
- z--macrodir=* | z--m*=* )
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ localdir="${1}"
+ shift ;;
+ --macrodir=* | --m*=* )
AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
shift ;;
- z-m | z--macrodir | z--m* )
+ -m | --macrodir | --m* )
shift
test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
AC_MACRODIR="${1}"
shift ;;
- z-v | z--version | z--v* )
+ --version | --v* )
show_version=yes; shift ;;
- z-- ) # Stop option processing
+ -- ) # Stop option processing
shift; break ;;
- z- ) # Use stdin as input.
+ - ) # Use stdin as input.
break ;;
- z-* )
+ -* )
echo "${usage}" 1>&2; exit 1 ;;
* )
break ;;
fi
TEMPLATES="${AC_MACRODIR}/acconfig.h"
-test -r acconfig.h && TEMPLATES="${TEMPLATES} acconfig.h"
+test -r $localdir/acconfig.h && TEMPLATES="${TEMPLATES} $localdir/acconfig.h"
case $# in
0) infile=configure.in ;;
headers=
libs=
+if test "$localdir" != .; then
+ use_localdir="-I$localdir"
+else
+ use_localdir=
+fi
+
# Use the frozen version of Autoconf if available.
r= f=
# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
# Extract assignments of SYMS, TYPES, FUNCS, HEADERS, and LIBS from the
# modified autoconf processing of the input file. The sed hair is
# necessary to win for multi-line macro invocations.
-eval "`$M4 -I$AC_MACRODIR $r autoheader.m4$f $infile |
+eval "`$M4 -I$AC_MACRODIR $use_localdir $r autoheader.m4$f $infile |
sed -n -e '
: again
/^@@@.*@@@$/s/^@@@\(.*\)@@@$/\1/p
echo "/* ${config_h_in}. Generated automatically from $infile by autoheader. */"
test -r ${config_h}.top && cat ${config_h}.top
-test -r acconfig.h && grep @TOP@ acconfig.h >/dev/null &&
- sed '/@TOP@/,$d' acconfig.h
+test -r $localdir/acconfig.h &&
+ grep @TOP@ $localdir/acconfig.h >/dev/null &&
+ sed '/@TOP@/,$d' $localdir/acconfig.h
# This puts each template paragraph on its own line, separated by @s.
if test -n "$syms"; then
done
fi
-test -r acconfig.h && grep @BOTTOM@ acconfig.h >/dev/null &&
- sed '1,/@BOTTOM@/d' acconfig.h
+test -r $localdir/acconfig.h &&
+ grep @BOTTOM@ $localdir/acconfig.h >/dev/null &&
+ sed '1,/@BOTTOM@/d' $localdir/acconfig.h
test -f ${config_h}.bot && cat ${config_h}.bot
status=0
usage="\
Usage: autoheader [-h] [--help] [-m dir] [--macrodir=dir]
- [-v] [--version] [template-file]"
+ [-l dir] [--localdir=dir] [--version] [template-file]"
# NLS nuisances.
# Only set `LANG' and `LC_ALL' to "C" if already set.
test -f "${M4}" || M4=m4 ;;
esac
+localdir=.
show_version=no
+
while test $# -gt 0 ; do
- case "z${1}" in
- z-h | z--help | z--h* )
+ case "${1}" in
+ -h | --help | --h* )
echo "${usage}"; exit 0 ;;
- z--macrodir=* | z--m*=* )
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ localdir="${1}"
+ shift ;;
+ --macrodir=* | --m*=* )
AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
shift ;;
- z-m | z--macrodir | z--m* )
+ -m | --macrodir | --m* )
shift
test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
AC_MACRODIR="${1}"
shift ;;
- z-v | z--version | z--v* )
+ --version | --v* )
show_version=yes; shift ;;
- z-- ) # Stop option processing
+ -- ) # Stop option processing
shift; break ;;
- z- ) # Use stdin as input.
+ - ) # Use stdin as input.
break ;;
- z-* )
+ -* )
echo "${usage}" 1>&2; exit 1 ;;
* )
break ;;
fi
TEMPLATES="${AC_MACRODIR}/acconfig.h"
-test -r acconfig.h && TEMPLATES="${TEMPLATES} acconfig.h"
+test -r $localdir/acconfig.h && TEMPLATES="${TEMPLATES} $localdir/acconfig.h"
case $# in
0) infile=configure.in ;;
headers=
libs=
+if test "$localdir" != .; then
+ use_localdir="-I$localdir"
+else
+ use_localdir=
+fi
+
# Use the frozen version of Autoconf if available.
r= f=
# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
# Extract assignments of SYMS, TYPES, FUNCS, HEADERS, and LIBS from the
# modified autoconf processing of the input file. The sed hair is
# necessary to win for multi-line macro invocations.
-eval "`$M4 -I$AC_MACRODIR $r autoheader.m4$f $infile |
+eval "`$M4 -I$AC_MACRODIR $use_localdir $r autoheader.m4$f $infile |
sed -n -e '
: again
/^@@@.*@@@$/s/^@@@\(.*\)@@@$/\1/p
echo "/* ${config_h_in}. Generated automatically from $infile by autoheader. */"
test -r ${config_h}.top && cat ${config_h}.top
-test -r acconfig.h && grep @TOP@ acconfig.h >/dev/null &&
- sed '/@TOP@/,$d' acconfig.h
+test -r $localdir/acconfig.h &&
+ grep @TOP@ $localdir/acconfig.h >/dev/null &&
+ sed '/@TOP@/,$d' $localdir/acconfig.h
# This puts each template paragraph on its own line, separated by @s.
if test -n "$syms"; then
done
fi
-test -r acconfig.h && grep @BOTTOM@ acconfig.h >/dev/null &&
- sed '1,/@BOTTOM@/d' acconfig.h
+test -r $localdir/acconfig.h &&
+ grep @BOTTOM@ $localdir/acconfig.h >/dev/null &&
+ sed '1,/@BOTTOM@/d' $localdir/acconfig.h
test -f ${config_h}.bot && cat ${config_h}.bot
status=0
usage="\
Usage: autoreconf [-h] [--help] [-m dir] [--macrodir=dir]
- [--verbose] [--version] [directory...]"
+ [-l dir] [--localdir=dir] [--verbose] [--version]"
+
+localdir=
verbose=no
show_version=no
test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@
-export AC_MACRODIR # Pass it down to autoconf and autoheader.
while test $# -gt 0; do
case "$1" in
- -h | --help | --hel | --he | --h)
+ -h | --help | --h*)
echo "$usage"; exit 0 ;;
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ localdir="${1}"
+ shift ;;
--macrodir=* | --m*=* )
AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"
shift ;;
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
AC_MACRODIR="$1"
shift ;;
- --verbose | --verbos | --verbo | --verb)
+ --verbose | --verb*)
verbose=yes; shift ;;
- --version | --versio | --versi | --vers)
+ --version | --vers*)
show_version=yes; shift ;;
--) # Stop option processing.
shift; break ;;
exit 0
fi
-if test $# -eq 0; then paths=.; else paths="$@"; fi
+top_autoconf=`echo $0|sed s%autoreconf%autoconf%`
+top_autoheader=`echo $0|sed s%autoreconf%autoheader%`
# The xargs grep filters out Cygnus configure.in files.
-find $paths -name configure.in -print |
+find . -name configure.in -print |
xargs grep -l AC_OUTPUT |
-while read confin; do
+sed 's%/configure\.in$%%; s%^./%%' |
+while read dir; do
(
- dir=`echo $confin|sed 's%/[^/][^/]*$%%'`
- cd $dir || exit 1
+ cd $dir || continue
+
+ case "$dir" in
+ .) dots= ;;
+ *) # A "../" for each directory in /$dir.
+ dots=`echo /$dir|sed 's%/[^/]*%../%g'` ;;
+ esac
+
+ case "$0" in
+ /*) autoconf=$top_autoconf; autoheader=$top_autoheader ;;
+ */*) autoconf=$dots$top_autoconf; autoheader=$dots$top_autoheader ;;
+ *) autoconf=$top_autoconf; autoheader=$top_autoheader ;;
+ esac
+
+ case "$AC_MACRODIR" in
+ /*) macrodir_opt="--macrodir=$AC_MACRODIR" ;;
+ *) macrodir_opt="--macrodir=$dots$AC_MACRODIR" ;;
+ esac
+
+ case "$localdir" in
+ "") localdir_opt= ;;
+ /*) localdir_opt="--localdir=$localdir" ;;
+ *) localdir_opt="--localdir=$dots$localdir" ;;
+ esac
+
test $verbose = yes && echo running autoconf in $dir
- autoconf
- if grep AC_CONFIG_HEADER configure.in > /dev/null; then
- test $verbose = yes && echo running autoheader in $dir
- autoheader
+ $autoconf $macrodir_opt $localdir_opt
+
+ if grep AC_CONFIG_HEADER configure.in >/dev/null; then
+ template=`sed -n '/AC_CONFIG_HEADER/{
+s%[^#]*AC_CONFIG_HEADER(\([^)]*\).*%\1%
+t here
+: here
+s%.*:%%
+t hascolon
+s%$%.in%
+: hascolon
+p
+q
+}' configure.in`
+ if test ! -f $template || grep autoheader $template >/dev/null; then
+ test $verbose = yes && echo running autoheader in $dir
+ $autoheader $macrodir_opt $localdir_opt
+ fi
fi
)
done
usage="\
Usage: autoreconf [-h] [--help] [-m dir] [--macrodir=dir]
- [--verbose] [--version] [directory...]"
+ [-l dir] [--localdir=dir] [--verbose] [--version]"
+
+localdir=
verbose=no
show_version=no
test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@
-export AC_MACRODIR # Pass it down to autoconf and autoheader.
while test $# -gt 0; do
case "$1" in
- -h | --help | --hel | --he | --h)
+ -h | --help | --h*)
echo "$usage"; exit 0 ;;
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ localdir="${1}"
+ shift ;;
--macrodir=* | --m*=* )
AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"
shift ;;
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
AC_MACRODIR="$1"
shift ;;
- --verbose | --verbos | --verbo | --verb)
+ --verbose | --verb*)
verbose=yes; shift ;;
- --version | --versio | --versi | --vers)
+ --version | --vers*)
show_version=yes; shift ;;
--) # Stop option processing.
shift; break ;;
exit 0
fi
-if test $# -eq 0; then paths=.; else paths="$@"; fi
+top_autoconf=`echo $0|sed s%autoreconf%autoconf%`
+top_autoheader=`echo $0|sed s%autoreconf%autoheader%`
# The xargs grep filters out Cygnus configure.in files.
-find $paths -name configure.in -print |
+find . -name configure.in -print |
xargs grep -l AC_OUTPUT |
-while read confin; do
+sed 's%/configure\.in$%%; s%^./%%' |
+while read dir; do
(
- dir=`echo $confin|sed 's%/[^/][^/]*$%%'`
- cd $dir || exit 1
+ cd $dir || continue
+
+ case "$dir" in
+ .) dots= ;;
+ *) # A "../" for each directory in /$dir.
+ dots=`echo /$dir|sed 's%/[^/]*%../%g'` ;;
+ esac
+
+ case "$0" in
+ /*) autoconf=$top_autoconf; autoheader=$top_autoheader ;;
+ */*) autoconf=$dots$top_autoconf; autoheader=$dots$top_autoheader ;;
+ *) autoconf=$top_autoconf; autoheader=$top_autoheader ;;
+ esac
+
+ case "$AC_MACRODIR" in
+ /*) macrodir_opt="--macrodir=$AC_MACRODIR" ;;
+ *) macrodir_opt="--macrodir=$dots$AC_MACRODIR" ;;
+ esac
+
+ case "$localdir" in
+ "") localdir_opt= ;;
+ /*) localdir_opt="--localdir=$localdir" ;;
+ *) localdir_opt="--localdir=$dots$localdir" ;;
+ esac
+
test $verbose = yes && echo running autoconf in $dir
- autoconf
- if grep AC_CONFIG_HEADER configure.in > /dev/null; then
- test $verbose = yes && echo running autoheader in $dir
- autoheader
+ $autoconf $macrodir_opt $localdir_opt
+
+ if grep AC_CONFIG_HEADER configure.in >/dev/null; then
+ template=`sed -n '/AC_CONFIG_HEADER/{
+s%[^#]*AC_CONFIG_HEADER(\([^)]*\).*%\1%
+t here
+: here
+s%.*:%%
+t hascolon
+s%$%.in%
+: hascolon
+p
+q
+}' configure.in`
+ if test ! -f $template || grep autoheader $template >/dev/null; then
+ test $verbose = yes && echo running autoheader in $dir
+ $autoheader $macrodir_opt $localdir_opt
+ fi
fi
)
done
# the given template file.
usage="\
-Usage: autoconf [-hv] [--help] [-m dir] [--macrodir=dir]
- [--version] [template-file]"
+Usage: autoconf [-h] [--help] [-m dir] [--macrodir=dir]
+ [-l dir] [--localdir=dir] [--version] [template-file]"
# NLS nuisances.
# Only set `LANG' and `LC_ALL' to "C" if already set.
esac
tmpout=/tmp/acout.$$
+localdir=
show_version=no
while test $# -gt 0 ; do
case "${1}" in
-h | --help | --h* )
echo "${usage}" 1>&2; exit 0 ;;
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ localdir="${1}"
+ shift ;;
--macrodir=* | --m*=* )
AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
shift ;;
test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
AC_MACRODIR="${1}"
shift ;;
- -v | --version | --v* )
+ --version | --v* )
show_version=yes; shift ;;
-- ) # Stop option processing
shift; break ;;
tmpin=/tmp/acin.$$
infile=$tmpin
cat > $infile
-elif test ! -r "${infile}"; then
+elif test ! -r "$infile"; then
echo "autoconf: ${infile}: No such file or directory" >&2
exit 1
fi
+if test -n "$localdir"; then
+ use_localdir="-I$localdir"
+else
+ use_localdir=
+fi
+
# Use the frozen version of Autoconf if available.
r= f=
# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
esac
-$M4 -I$AC_MACRODIR $r autoconf.m4$f $infile > $tmpout || { rm -f $tmpin $tmpout; exit 2; }
+$M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
+ { rm -f $tmpin $tmpout; exit 2; }
# You could add your own prefixes to pattern if you wanted to check for
# them too, e.g. pattern="AC_\|ILT_", except that UNIX sed doesn't do
fi
if test $# -eq 0; then
- exec > configure; chmod +x configure
+ exec 4> configure; chmod +x configure
+else
+ exec 4>&1
fi
# Put the real line numbers into configure to make config.log more helpful.
{ print }
' $tmpout | sed '
/__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__\(.*\)$/\2\1\3/
-'
+' >&4
rm -f $tmpout
+
exit $status
usage="\
Usage: autoheader [-h] [--help] [-m dir] [--macrodir=dir]
- [-v] [--version] [template-file]"
+ [-l dir] [--localdir=dir] [--version] [template-file]"
# NLS nuisances.
# Only set `LANG' and `LC_ALL' to "C" if already set.
test -f "${M4}" || M4=m4 ;;
esac
+localdir=.
show_version=no
+
while test $# -gt 0 ; do
- case "z${1}" in
- z-h | z--help | z--h* )
+ case "${1}" in
+ -h | --help | --h* )
echo "${usage}"; exit 0 ;;
- z--macrodir=* | z--m*=* )
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ localdir="${1}"
+ shift ;;
+ --macrodir=* | --m*=* )
AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
shift ;;
- z-m | z--macrodir | z--m* )
+ -m | --macrodir | --m* )
shift
test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
AC_MACRODIR="${1}"
shift ;;
- z-v | z--version | z--v* )
+ --version | --v* )
show_version=yes; shift ;;
- z-- ) # Stop option processing
+ -- ) # Stop option processing
shift; break ;;
- z- ) # Use stdin as input.
+ - ) # Use stdin as input.
break ;;
- z-* )
+ -* )
echo "${usage}" 1>&2; exit 1 ;;
* )
break ;;
fi
TEMPLATES="${AC_MACRODIR}/acconfig.h"
-test -r acconfig.h && TEMPLATES="${TEMPLATES} acconfig.h"
+test -r $localdir/acconfig.h && TEMPLATES="${TEMPLATES} $localdir/acconfig.h"
case $# in
0) infile=configure.in ;;
headers=
libs=
+if test "$localdir" != .; then
+ use_localdir="-I$localdir"
+else
+ use_localdir=
+fi
+
# Use the frozen version of Autoconf if available.
r= f=
# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
# Extract assignments of SYMS, TYPES, FUNCS, HEADERS, and LIBS from the
# modified autoconf processing of the input file. The sed hair is
# necessary to win for multi-line macro invocations.
-eval "`$M4 -I$AC_MACRODIR $r autoheader.m4$f $infile |
+eval "`$M4 -I$AC_MACRODIR $use_localdir $r autoheader.m4$f $infile |
sed -n -e '
: again
/^@@@.*@@@$/s/^@@@\(.*\)@@@$/\1/p
echo "/* ${config_h_in}. Generated automatically from $infile by autoheader. */"
test -r ${config_h}.top && cat ${config_h}.top
-test -r acconfig.h && grep @TOP@ acconfig.h >/dev/null &&
- sed '/@TOP@/,$d' acconfig.h
+test -r $localdir/acconfig.h &&
+ grep @TOP@ $localdir/acconfig.h >/dev/null &&
+ sed '/@TOP@/,$d' $localdir/acconfig.h
# This puts each template paragraph on its own line, separated by @s.
if test -n "$syms"; then
done
fi
-test -r acconfig.h && grep @BOTTOM@ acconfig.h >/dev/null &&
- sed '1,/@BOTTOM@/d' acconfig.h
+test -r $localdir/acconfig.h &&
+ grep @BOTTOM@ $localdir/acconfig.h >/dev/null &&
+ sed '1,/@BOTTOM@/d' $localdir/acconfig.h
test -f ${config_h}.bot && cat ${config_h}.bot
status=0
usage="\
Usage: autoreconf [-h] [--help] [-m dir] [--macrodir=dir]
- [--verbose] [--version] [directory...]"
+ [-l dir] [--localdir=dir] [--verbose] [--version]"
+
+localdir=
verbose=no
show_version=no
test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@
-export AC_MACRODIR # Pass it down to autoconf and autoheader.
while test $# -gt 0; do
case "$1" in
- -h | --help | --hel | --he | --h)
+ -h | --help | --h*)
echo "$usage"; exit 0 ;;
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ localdir="${1}"
+ shift ;;
--macrodir=* | --m*=* )
AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"
shift ;;
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
AC_MACRODIR="$1"
shift ;;
- --verbose | --verbos | --verbo | --verb)
+ --verbose | --verb*)
verbose=yes; shift ;;
- --version | --versio | --versi | --vers)
+ --version | --vers*)
show_version=yes; shift ;;
--) # Stop option processing.
shift; break ;;
exit 0
fi
-if test $# -eq 0; then paths=.; else paths="$@"; fi
+top_autoconf=`echo $0|sed s%autoreconf%autoconf%`
+top_autoheader=`echo $0|sed s%autoreconf%autoheader%`
# The xargs grep filters out Cygnus configure.in files.
-find $paths -name configure.in -print |
+find . -name configure.in -print |
xargs grep -l AC_OUTPUT |
-while read confin; do
+sed 's%/configure\.in$%%; s%^./%%' |
+while read dir; do
(
- dir=`echo $confin|sed 's%/[^/][^/]*$%%'`
- cd $dir || exit 1
+ cd $dir || continue
+
+ case "$dir" in
+ .) dots= ;;
+ *) # A "../" for each directory in /$dir.
+ dots=`echo /$dir|sed 's%/[^/]*%../%g'` ;;
+ esac
+
+ case "$0" in
+ /*) autoconf=$top_autoconf; autoheader=$top_autoheader ;;
+ */*) autoconf=$dots$top_autoconf; autoheader=$dots$top_autoheader ;;
+ *) autoconf=$top_autoconf; autoheader=$top_autoheader ;;
+ esac
+
+ case "$AC_MACRODIR" in
+ /*) macrodir_opt="--macrodir=$AC_MACRODIR" ;;
+ *) macrodir_opt="--macrodir=$dots$AC_MACRODIR" ;;
+ esac
+
+ case "$localdir" in
+ "") localdir_opt= ;;
+ /*) localdir_opt="--localdir=$localdir" ;;
+ *) localdir_opt="--localdir=$dots$localdir" ;;
+ esac
+
test $verbose = yes && echo running autoconf in $dir
- autoconf
- if grep AC_CONFIG_HEADER configure.in > /dev/null; then
- test $verbose = yes && echo running autoheader in $dir
- autoheader
+ $autoconf $macrodir_opt $localdir_opt
+
+ if grep AC_CONFIG_HEADER configure.in >/dev/null; then
+ template=`sed -n '/AC_CONFIG_HEADER/{
+s%[^#]*AC_CONFIG_HEADER(\([^)]*\).*%\1%
+t here
+: here
+s%.*:%%
+t hascolon
+s%$%.in%
+: hascolon
+p
+q
+}' configure.in`
+ if test ! -f $template || grep autoheader $template >/dev/null; then
+ test $verbose = yes && echo running autoheader in $dir
+ $autoheader $macrodir_opt $localdir_opt
+ fi
fi
)
done
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-# Usage: ifnames [--macrodir=dir] [--help] [--version] [file...]
# Reads from stdin if no files are given.
# Writes to stdout.
# Written by David MacKenzie <djm@gnu.ai.mit.edu>
-usage="Usage: ifnames [--macrodir=dir] [--help] [--version] [file...]"
+usage="\
+Usage: ifnames [-h] [--help] [-m dir] [--macrodir=dir] [--version] [file...]"
show_version=no
test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@
while test $# -gt 0; do
case "$1" in
- --help | --hel | --he | --h)
+ -h | --help | --h* )
echo "$usage"; exit 0 ;;
--macrodir=* | --m*=* )
AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"
shift ;;
- -m | --macrodir | --m*)
+ -m | --macrodir | --m* )
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
AC_MACRODIR="$1"
acconfig.h acfunctions acheaders acidentifiers \
acmakevars acprograms autoconf.info* \
autoconf.sh autoconf.texi install.texi \
- autoheader.sh autoreconf.sh autoscan.pl autoupdate.sh ifnames.sh \
+ autoheader.sh autoscan.pl autoreconf.sh autoupdate.sh ifnames.sh \
config.guess config.sub configure configure.in \
install-sh mkinstalldirs texinfo.tex \
testsuite/Makefile.in testsuite/config/*.exp \
$(TEXI2DVI) $(srcdir)/standards.texi
check: all
- rootme=`pwd`; cd testsuite && ${MAKE} $@ AUTOCONF=$$rootme/autoconf \
- AUTOCONFFLAGS="-m $$rootme"
+ rootme=`pwd`; srcrootme=`cd $(srcdir); pwd`; \
+ test -r install-sh || cp $(srcdir)/install-sh .; \
+ cd testsuite && ${MAKE} $@ AUTOCONF=$$rootme/autoconf \
+ AUTOCONFFLAGS="-m $$srcrootme"
installcheck: all install
cd testsuite && ${MAKE} AUTOCONF=${bindir}/autoconf $@
*traditional*) ;; \
*) echo Error: Autoconf requires GNU m4 1.1 or later; exit 1 ;; \
esac
- for i in autoconf autoheader autoreconf autoupdate ifnames; do \
+ for i in $(APROGS); do \
$(INSTALL_PROGRAM) $$i $(bindir)/$$i; \
done
for i in $(M4FILES) acconfig.h; do \
done
uninstall:
- rm -f $(bindir)/autoconf $(bindir)/autoheader $(bindir)/autoscan
- rm -f $(bindir)/autoreconf $(bindir)/autoupdate $(bindir)/ifnames
+ cd $(bindir) && rm -f $(PROGS)
rm -fr $(acdatadir)
cd $(infodir); rm -f autoconf.info*
if test -f standards.info || test -f $(srcdir)/standards.info; \
done
clean mostlyclean distclean realclean::
- rm -f autoconf autoheader autoscan autoreconf autoupdate ifnames *.tmp
+ rm -f $(PROGS) *.tmp
rm -f *.aux *.cp *.cps *.dvi *.fn *.fns *.ky *.kys *.log
rm -f *.pg *.pgs *.toc *.tp *.tps *.vr *.vrs
rm -f *.ev *.evs *.ov *.ovs *.cv *.cvs *.ma *.mas
@c @setchapternewpage odd
@c %**end of header
-@set EDITION 1.118
-@set VERSION 1.118
+@set EDITION 1.119
+@set VERSION 1.119
@set UPDATED September 1994
@iftex
before it.
You can include comments in @file{configure.in} files by starting them
-with the @code{m4} predefined macro @code{dnl}, which discards text up
+with the @code{m4} builtin macro @code{dnl}, which discards text up
through the next newline. These comments do not appear in the generated
@code{configure} scripts. For example, it is helpful to begin
@file{configure.in} files with a line like this:
@table @code
@item --help
+@itemx -h
Print a summary of the command line options and exit.
@item --macrodir=@var{dir}
+@itemx -m @var{dir}
@evindex AC_MACRODIR
Look for the Autoconf macro files in directory @var{dir} instead of the
default installation directory. Only used to get the version number.
@table @code
@item --help
+@itemx -h
Print a summary of the command line options and exit.
+@item --localdir=@var{dir}
+@itemx -l @var{dir}
+Look for the package file @file{aclocal.m4} in directory @var{dir}
+instead of in the current directory.
+
@item --macrodir=@var{dir}
+@itemx -m @var{dir}
@evindex AC_MACRODIR
Look for the installed macro files in directory @var{dir}. You can also
set the @code{AC_MACRODIR} environment variable to a directory; this
get a new version of Autoconf, the @code{autoreconf} program can be
handy. It runs @code{autoconf} (and @code{autoheader}, where
appropriate) repeatedly to remake all of the Autoconf @code{configure}
-scripts in a directory tree. @xref{Automatic Remaking}, for further
-information about automatic remaking of @code{configure} scripts.
+scripts in a directory tree. If you give the
+@samp{--macrodir=@var{dir}} or @samp{--localdir=@var{dir}} options, it
+passes them down (with relative paths adjusted properly).
+
+@xref{Automatic Remaking}, for information about automatic remaking of
+@code{configure} scripts when their source files change.
@noindent
@code{autoreconf} accepts the following options:
@itemx -h
Print a summary of the command line options and exit.
+@item --localdir=@var{dir}
+@itemx -l @var{dir}
+Look for the package files @file{aclocal.m4} and @file{acconfig.h} (but
+not @file{@var{file}.top} and @file{@var{file}.bot}) in directory
+@var{dir} instead of in the directory containing each @file{configure.in}.
+
@item --macrodir=@var{dir}
@itemx -m @var{dir}
@evindex AC_MACRODIR
@item --verbose
Print the name of each directory where @code{autoreconf} runs
-@code{autoconf} (and @code{autoheader}, if that directory's
-@file{configure.in} calls @code{AC_CONFIG_HEADER}).
-
+@code{autoconf} (and @code{autoheader}, if appropriate).
+
@item --version
Print the version number of Autoconf and exit.
@end table
@code{autoheader} copies the lines after that line to the end of the
file it generates. Either or both of those strings may be omitted.
-An obsolete way to produce the same effect is to create the files
+An alternate way to produce the same effect is to create the files
@file{@var{file}.top} (typically @file{config.h.top}) and/or
@file{@var{file}.bot} in the current directory. If they exist,
@code{autoheader} copies them to the beginning and end, respectively, of
its output. Their use is discouraged because they have file names that
contain two periods, and so can not be stored on MS-DOS; also, they are
-two more files to clutter up the directory.
+two more files to clutter up the directory. But if you use the
+@samp{--localdir=@var{dir}} option to use an @file{acconfig.h} in another
+directory, they give you a way to put custom boilerplate in each
+individual @file{config.h.in}.
@code{autoheader} accepts the following options:
@table @code
@item --help
+@itemx -h
Print a summary of the command line options and exit.
+@item --localdir=@var{dir}
+@itemx -l @var{dir}
+Look for the package files @file{aclocal.m4} and @file{acconfig.h} (but
+not @file{@var{file}.top} and @file{@var{file}.bot}) in directory
+@var{dir} instead of in the current directory.
+
@item --macrodir=@var{dir}
+@itemx -m @var{dir}
@evindex AC_MACRODIR
Look for the installed macro files and @file{acconfig.h} in directory
@var{dir}. You can also set the @code{AC_MACRODIR} environment variable
checking for, and what they find. They cache their results for future
@code{configure} runs (@pxref{Caching Results}).
-Some of these macros set output variables. @xref{Setting Output Variables},
-for details on how this is done. The phrase ``define @var{name}'' is
-used below as a shorthand to mean ``define C preprocessor symbol
-@var{name} to have the value 1''.
+Some of these macros set output variables. @xref{Makefile
+Substitutions}, for how to get their values. The phrase ``define
+@var{name}'' is used below as a shorthand to mean ``define C
+preprocessor symbol @var{name} to the value 1''. @xref{Defining
+Symbols}, for how to get those symbol definitions into your program.
@menu
* Alternative Programs:: Selecting between alternative programs.
@defmac AC_CHECK_TYPE (@var{type}, @var{default})
@maindex CHECK_TYPE
-If the type @var{type} is not defined in @file{sys/types.h}, define it
-to be the C (or C++) builtin type @var{default}; e.g., @samp{short} or
-@samp{unsigned}.
+If the type @var{type} is not defined in @file{sys/types.h} or
+@file{stdlib.h} (if that is present), define it to be the C (or C++)
+builtin type @var{default}; e.g., @samp{short} or @samp{unsigned}.
@end defmac
@node Compiler Characteristics, System Services, Typedefs, Existing Tests
@section Defining C Preprocessor Symbols
A common action to take in response to a feature test is to define a C
-preprocessor symbol indicating the results of the test. These two
-macros do that.
+preprocessor symbol indicating the results of the test. That is done by
+calling @code{AC_DEFINE} or @code{AC_DEFINE_UNQUOTED}.
+
+By default, @code{AC_OUTPUT} places the symbols defined by these macros
+into the output variable @code{DEFS}, which contains an option
+@samp{-D@var{symbol}=@var{value}} for each symbol defined. Unlike in
+Autoconf version 1, there is no variable @code{DEFS} defined while
+@code{configure} is running. To check whether Autoconf macros have
+already defined a certain C preprocessor symbol, test the value of the
+appropriate cache variable, as in this example:
+
+@example
+AC_CHECK_FUNC(vprintf, AC_DEFINE(HAVE_VPRINTF))
+if test "$ac_cv_func_vprintf" != yes; then
+AC_CHECK_FUNC(_doprnt, AC_DEFINE(HAVE_DOPRNT))
+fi
+@end example
+
+If @code{AC_CONFIG_HEADER} has been called, then instead of creating
+@code{DEFS}, @code{AC_OUTPUT} creates a header file by substituting the
+correct values into @code{#define} statements in a template file.
+@xref{Configuration Headers}, for more information about this kind of
+output.
@defmac AC_DEFINE (@var{variable} @r{[}, @var{value}@r{]})
@maindex DEFINE
@end example
@end defmac
-By default, @code{AC_OUTPUT} substitutes the symbols defined by these
-macros into the output variable @code{DEFS}, which contains an option
-@samp{-D@var{symbol}=@var{value}} for each symbol defined. Unlike in
-Autoconf version 1, there is no variable @code{DEFS} defined while
-@code{configure} is running. To check whether Autoconf macros have
-already defined a certain C preprocessor symbol, test the value of the
-appropriate cache variable, as in this example:
-
-@example
-AC_CHECK_FUNC(vprintf, AC_DEFINE(HAVE_VPRINTF))
-if test "$ac_cv_func_vprintf" != yes; then
-AC_CHECK_FUNC(_doprnt, AC_DEFINE(HAVE_DOPRNT))
-fi
-@end example
-
-If @code{AC_CONFIG_HEADER} has been called, then instead of substituting
-@code{DEFS}, @code{AC_OUTPUT} creates a header file by substituting the
-correct values into @code{#define} statements in a template file.
-@xref{Configuration Headers}, for more information about this kind of output.
-
Due to the syntactical bizarreness of the Bourne shell, do not use
semicolons to separate @code{AC_DEFINE} or @code{AC_DEFINE_UNQUOTED}
calls from other macro calls or shell code; that can cause syntax errors
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-# Usage: ifnames [--macrodir=dir] [--help] [--version] [file...]
# Reads from stdin if no files are given.
# Writes to stdout.
# Written by David MacKenzie <djm@gnu.ai.mit.edu>
-usage="Usage: ifnames [--macrodir=dir] [--help] [--version] [file...]"
+usage="\
+Usage: ifnames [-h] [--help] [-m dir] [--macrodir=dir] [--version] [file...]"
show_version=no
test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@
while test $# -gt 0; do
case "$1" in
- --help | --hel | --he | --h)
+ -h | --help | --h* )
echo "$usage"; exit 0 ;;
--macrodir=* | --m*=* )
AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"
shift ;;
- -m | --macrodir | --m*)
+ -m | --macrodir | --m* )
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
AC_MACRODIR="$1"
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-# Usage: ifnames [--macrodir=dir] [--help] [--version] [file...]
# Reads from stdin if no files are given.
# Writes to stdout.
# Written by David MacKenzie <djm@gnu.ai.mit.edu>
-usage="Usage: ifnames [--macrodir=dir] [--help] [--version] [file...]"
+usage="\
+Usage: ifnames [-h] [--help] [-m dir] [--macrodir=dir] [--version] [file...]"
show_version=no
test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@
while test $# -gt 0; do
case "$1" in
- --help | --hel | --he | --h)
+ -h | --help | --h* )
echo "$usage"; exit 0 ;;
--macrodir=* | --m*=* )
AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"
shift ;;
- -m | --macrodir | --m*)
+ -m | --macrodir | --m* )
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
AC_MACRODIR="$1"
divert(-1)dnl Throw away output until AC_INIT is called.
changequote([, ])
-define(AC_ACVERSION, 1.118)
+define(AC_ACVERSION, 1.119)
dnl Some old m4's don't support m4exit. But they provide
dnl equivalent functionality by core dumping because of the
dnl AC_MSG_ERROR(ERROR-DESCRIPTION)
define(AC_MSG_ERROR,
-[{ echo "configure: $1" 1>&2; exit 1; }])
+[{ echo "configure: error: $1" 1>&2; exit 1; }])
dnl ### Selecting which language to use for testing
dnl AC_CHECK_TYPE(TYPE, DEFAULT)
AC_DEFUN(AC_CHECK_TYPE,
-[AC_MSG_CHECKING(for $1 in sys/types.h)
+[AC_REQUIRE([AC_HEADER_STDC])dnl
+AC_MSG_CHECKING(for $1)
AC_CACHE_VAL(ac_cv_type_$1,
-[AC_EGREP_HEADER($1, sys/types.h, ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
+[AC_EGREP_CPP($1, [#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#endif], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
AC_MSG_RESULT($ac_cv_type_$1)
if test $ac_cv_type_$1 = no; then
AC_DEFINE($1, $2)