mirror of
git://git.sv.gnu.org/autoconf
synced 2025-03-19 14:40:24 +08:00
fix makefile targets and recursive generation
This commit is contained in:
parent
ca572e0282
commit
680f86975a
15
Makefile.in
15
Makefile.in
@ -62,7 +62,7 @@ DISTFILES = COPYING ChangeLog ChangeLog.1 INSTALL \
|
||||
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 \
|
||||
@ -119,8 +119,10 @@ standards.dvi: standards.texi make-stds.texi
|
||||
$(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 $@
|
||||
|
||||
@ -135,7 +137,7 @@ install: all $(M4FILES) acconfig.h installdirs install-info
|
||||
*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 \
|
||||
@ -160,8 +162,7 @@ install-info: info installdirs
|
||||
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; \
|
||||
@ -185,7 +186,7 @@ clean mostlyclean distclean realclean::
|
||||
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
|
||||
|
6
NEWS
6
NEWS
@ -74,14 +74,16 @@ Major changes in release 2.0:
|
||||
* 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
|
||||
|
12
acgeneral.m4
12
acgeneral.m4
@ -24,7 +24,7 @@ dnl
|
||||
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
|
||||
@ -957,7 +957,7 @@ define(AC_MSG_WARN,
|
||||
|
||||
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
|
||||
@ -1426,9 +1426,13 @@ undefine([AC_CV_NAME])dnl
|
||||
|
||||
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)
|
||||
|
33
autoconf.in
33
autoconf.in
@ -21,8 +21,8 @@
|
||||
# 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.
|
||||
@ -40,12 +40,21 @@ case "${M4}" in
|
||||
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 ;;
|
||||
@ -54,7 +63,7 @@ while test $# -gt 0 ; do
|
||||
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 ;;
|
||||
@ -86,11 +95,17 @@ if test z$infile = z-; then
|
||||
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.
|
||||
@ -100,7 +115,8 @@ case `$M4 --help < /dev/null 2>&1` in
|
||||
*) 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
|
||||
@ -118,7 +134,9 @@ if grep "${pattern}" $tmpout > /dev/null 2>&1; then
|
||||
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.
|
||||
@ -127,7 +145,8 @@ awk '
|
||||
{ print }
|
||||
' $tmpout | sed '
|
||||
/__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__\(.*\)$/\2\1\3/
|
||||
'
|
||||
' >&4
|
||||
|
||||
rm -f $tmpout
|
||||
|
||||
exit $status
|
||||
|
33
autoconf.sh
33
autoconf.sh
@ -21,8 +21,8 @@
|
||||
# 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.
|
||||
@ -40,12 +40,21 @@ case "${M4}" in
|
||||
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 ;;
|
||||
@ -54,7 +63,7 @@ while test $# -gt 0 ; do
|
||||
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 ;;
|
||||
@ -86,11 +95,17 @@ if test z$infile = z-; then
|
||||
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.
|
||||
@ -100,7 +115,8 @@ case `$M4 --help < /dev/null 2>&1` in
|
||||
*) 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
|
||||
@ -118,7 +134,9 @@ if grep "${pattern}" $tmpout > /dev/null 2>&1; then
|
||||
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.
|
||||
@ -127,7 +145,8 @@ awk '
|
||||
{ print }
|
||||
' $tmpout | sed '
|
||||
/__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__\(.*\)$/\2\1\3/
|
||||
'
|
||||
' >&4
|
||||
|
||||
rm -f $tmpout
|
||||
|
||||
exit $status
|
||||
|
109
autoconf.texi
109
autoconf.texi
@ -6,8 +6,8 @@
|
||||
@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
|
||||
@ -481,7 +481,7 @@ argument to the macro. To omit the false case, omit the
|
||||
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:
|
||||
@ -562,9 +562,11 @@ files in which that identifier occurs.
|
||||
|
||||
@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.
|
||||
@ -603,9 +605,16 @@ definition it reads overrides the earlier ones.
|
||||
|
||||
@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
|
||||
@ -622,8 +631,12 @@ If you have a lot of Autoconf-generated @code{configure} scripts and you
|
||||
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:
|
||||
@ -633,6 +646,12 @@ information about automatic remaking of @code{configure} scripts.
|
||||
@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
|
||||
@ -644,9 +663,8 @@ environment variable.
|
||||
|
||||
@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
|
||||
@ -1095,21 +1113,32 @@ if @file{./acconfig.h} contains the string @samp{@@BOTTOM@@},
|
||||
@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
|
||||
@ -1214,10 +1243,11 @@ These tests print messages telling the user which feature they're
|
||||
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.
|
||||
@ -2209,9 +2239,9 @@ test macros.
|
||||
|
||||
@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
|
||||
@ -2876,8 +2906,29 @@ print a message letting the user know the result of the test.
|
||||
@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
|
||||
@ -2913,26 +2964,6 @@ AC_DEFINE_UNQUOTED($@{ac_tr_hdr@})
|
||||
@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
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
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.
|
||||
@ -41,26 +41,36 @@ case "${M4}" in
|
||||
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 ;;
|
||||
@ -75,7 +85,7 @@ if test $show_version = yes; then
|
||||
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 ;;
|
||||
@ -90,6 +100,12 @@ funcs=
|
||||
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.
|
||||
@ -102,7 +118,7 @@ esac
|
||||
# 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
|
||||
@ -137,8 +153,9 @@ esac
|
||||
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
|
||||
@ -200,8 +217,9 @@ if test -n "$libs"; 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
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
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.
|
||||
@ -41,26 +41,36 @@ case "${M4}" in
|
||||
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 ;;
|
||||
@ -75,7 +85,7 @@ if test $show_version = yes; then
|
||||
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 ;;
|
||||
@ -90,6 +100,12 @@ funcs=
|
||||
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.
|
||||
@ -102,7 +118,7 @@ esac
|
||||
# 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
|
||||
@ -137,8 +153,9 @@ esac
|
||||
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
|
||||
@ -200,8 +217,9 @@ if test -n "$libs"; 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
|
||||
|
@ -18,17 +18,26 @@
|
||||
|
||||
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 ;;
|
||||
@ -37,9 +46,9 @@ while test $# -gt 0; do
|
||||
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 ;;
|
||||
@ -55,20 +64,59 @@ if test $show_version = yes; then
|
||||
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
|
||||
|
@ -18,17 +18,26 @@
|
||||
|
||||
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 ;;
|
||||
@ -37,9 +46,9 @@ while test $# -gt 0; do
|
||||
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 ;;
|
||||
@ -55,20 +64,59 @@ if test $show_version = yes; then
|
||||
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
|
||||
|
@ -21,8 +21,8 @@
|
||||
# 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.
|
||||
@ -40,12 +40,21 @@ case "${M4}" in
|
||||
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 ;;
|
||||
@ -54,7 +63,7 @@ while test $# -gt 0 ; do
|
||||
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 ;;
|
||||
@ -86,11 +95,17 @@ if test z$infile = z-; then
|
||||
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.
|
||||
@ -100,7 +115,8 @@ case `$M4 --help < /dev/null 2>&1` in
|
||||
*) 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
|
||||
@ -118,7 +134,9 @@ if grep "${pattern}" $tmpout > /dev/null 2>&1; then
|
||||
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.
|
||||
@ -127,7 +145,8 @@ awk '
|
||||
{ print }
|
||||
' $tmpout | sed '
|
||||
/__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__\(.*\)$/\2\1\3/
|
||||
'
|
||||
' >&4
|
||||
|
||||
rm -f $tmpout
|
||||
|
||||
exit $status
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
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.
|
||||
@ -41,26 +41,36 @@ case "${M4}" in
|
||||
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 ;;
|
||||
@ -75,7 +85,7 @@ if test $show_version = yes; then
|
||||
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 ;;
|
||||
@ -90,6 +100,12 @@ funcs=
|
||||
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.
|
||||
@ -102,7 +118,7 @@ esac
|
||||
# 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
|
||||
@ -137,8 +153,9 @@ esac
|
||||
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
|
||||
@ -200,8 +217,9 @@ if test -n "$libs"; 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
|
||||
|
@ -18,17 +18,26 @@
|
||||
|
||||
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 ;;
|
||||
@ -37,9 +46,9 @@ while test $# -gt 0; do
|
||||
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 ;;
|
||||
@ -55,20 +64,59 @@ if test $show_version = yes; then
|
||||
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
|
||||
|
@ -16,25 +16,25 @@
|
||||
# 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"
|
||||
|
@ -62,7 +62,7 @@ DISTFILES = COPYING ChangeLog ChangeLog.1 INSTALL \
|
||||
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 \
|
||||
@ -119,8 +119,10 @@ standards.dvi: standards.texi make-stds.texi
|
||||
$(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 $@
|
||||
|
||||
@ -135,7 +137,7 @@ install: all $(M4FILES) acconfig.h installdirs install-info
|
||||
*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 \
|
||||
@ -160,8 +162,7 @@ install-info: info installdirs
|
||||
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; \
|
||||
@ -185,7 +186,7 @@ clean mostlyclean distclean realclean::
|
||||
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
|
||||
|
@ -6,8 +6,8 @@
|
||||
@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
|
||||
@ -481,7 +481,7 @@ argument to the macro. To omit the false case, omit the
|
||||
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:
|
||||
@ -562,9 +562,11 @@ files in which that identifier occurs.
|
||||
|
||||
@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.
|
||||
@ -603,9 +605,16 @@ definition it reads overrides the earlier ones.
|
||||
|
||||
@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
|
||||
@ -622,8 +631,12 @@ If you have a lot of Autoconf-generated @code{configure} scripts and you
|
||||
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:
|
||||
@ -633,6 +646,12 @@ information about automatic remaking of @code{configure} scripts.
|
||||
@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
|
||||
@ -644,9 +663,8 @@ environment variable.
|
||||
|
||||
@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
|
||||
@ -1095,21 +1113,32 @@ if @file{./acconfig.h} contains the string @samp{@@BOTTOM@@},
|
||||
@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
|
||||
@ -1214,10 +1243,11 @@ These tests print messages telling the user which feature they're
|
||||
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.
|
||||
@ -2209,9 +2239,9 @@ test macros.
|
||||
|
||||
@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
|
||||
@ -2876,8 +2906,29 @@ print a message letting the user know the result of the test.
|
||||
@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
|
||||
@ -2913,26 +2964,6 @@ AC_DEFINE_UNQUOTED($@{ac_tr_hdr@})
|
||||
@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
|
||||
|
@ -16,25 +16,25 @@
|
||||
# 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"
|
||||
|
@ -16,25 +16,25 @@
|
||||
# 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"
|
||||
|
@ -24,7 +24,7 @@ dnl
|
||||
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
|
||||
@ -957,7 +957,7 @@ define(AC_MSG_WARN,
|
||||
|
||||
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
|
||||
@ -1426,9 +1426,13 @@ undefine([AC_CV_NAME])dnl
|
||||
|
||||
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user