--- /dev/null
+Written by David MacKenzie, with help from
+Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,
+Roland McGrath, Noah Friedman, david d zuhn, and many others.
+Tue Nov 19 10:29:06 1996 David J MacKenzie <djm@catapult.va.pubnix.com>
+
+ * acgeneral.m4 (AC_TRY_RUN_NATIVE): Fail if linking fails, and
+ remove conftest* before running success code, like in AC_TRY_LINK.
+ (AC_TRY_RUN): Don't require AC_C_CROSS.
+ (AC_TRY_COMPILER): New macro.
+ (AC_LANG_C, AC_LANG_CPLUSPLUS): Set cross_compiling.
+
+ * acspecific.m4 (AC_PROG_CC_WORKS, AC_PROG_CXX_WORKS): Use
+ AC_TRY_COMPILER instead of AC_TRY_LINK.
+ (AC_PROG_CC_GNU, AC_PROG_CC_G): Split out of AC_PROG_CC.
+ (AC_PROG_CXX_GNU, AC_PROG_CXX_G): Split out of AC_PROG_CXX.
+ For the *_G macros, make the cache variable names non-GNU-specific.
+ (AC_C_CROSS): Mark obsolete, and otherwise a no-op.
+
+ * AUTHORS: New file.
+ * Makefile.in (DISTFILES): Add it.
+
+ * acspecific.m4 (AC_FUNC_MMAP): Update the getpagesize
+ declarations from getpagesize.h. Check for unistd.h.
+
+ * acgeneral.m4 (AC_OUTPUT_FILES): Run the eval in a subshell.
+
+ * acfunctions: Map fnmatch, strftime, getpgrp, setpgrp to their
+ own macros.
+
+ * acgeneral.m4 (AC_OUTPUT_HEADER): Check that $CONFIG_HEADERS is
+ unset, not that it's empty.
+
Mon Nov 18 10:24:50 1996 David J MacKenzie <djm@catapult.va.pubnix.com>
* Version 2.11.
# Files that can be generated, but should be up to date for a distribution.
DISTDEP = info Makefile
# Files to distribute.
-DISTFILES = COPYING ChangeLog ChangeLog.1 INSTALL \
+DISTFILES = AUTHORS COPYING ChangeLog ChangeLog.1 INSTALL \
Makefile.in NEWS README TODO $(M4FILES) \
acconfig.h acfunctions acheaders acidentifiers \
acmakevars acprograms autoconf.info* \
+Major changes in release 2.12:
+
+* Bug fixes.
+\f
Major changes in release 2.11:
* AC_PROG_CC and AC_PROG_CXX check whether the compiler works.
------------------------------------------------------------------------------
-Combine AC_PROG_CC_WORKS with AC_C_CROSS. If the compiler exits with
-a 0 status and produces a non-empty output file, consider it working.
-If the output file is runnable, consider it native, also.
-Perhaps also have AC_PROG_CC_WORKS try to link an invalid program, and
+Perhaps also have AC_TRY_COMPILER try to link an invalid program, and
die if the compiler seemed to succeed--in which case it's not usable
with autoconf scripts.
------------------------------------------------------------------------------
+Merge the two lex macros, AC_PROG_LEX and AC_DECL_YYTEXT?
+
+------------------------------------------------------------------------------
+
+Is it safe to remove the getpagesize references from AC_FUNC_MMAP?
+
+------------------------------------------------------------------------------
+
index AC_HEADER_STDC
rindex AC_HEADER_STDC
getgroups AC_TYPE_GETGROUPS
+getpgrp AC_FUNC_GETPGRP
+setpgrp AC_FUNC_SETPGRP
signal AC_TYPE_SIGNAL
alloca AC_FUNC_ALLOCA
+fnmatch AC_FUNC_FNMATCH
getloadavg AC_FUNC_GETLOADAVG
mmap AC_FUNC_MMAP
setvbuf AC_FUNC_SETVBUF_REVERSED
strcoll AC_FUNC_STRCOLL
+strftime AC_FUNC_STRFTIME
utime AC_FUNC_UTIME_NULL
vfork AC_FUNC_VFORK
vprintf AC_FUNC_VPRINTF
wait3 AC_FUNC_WAIT3
# Others.
-fnmatch AC_CHECK_FUNCS
ftime AC_CHECK_FUNCS
gethostname AC_CHECK_FUNCS
gettimeofday AC_CHECK_FUNCS
strcspn AC_CHECK_FUNCS
strdup AC_CHECK_FUNCS
strerror AC_CHECK_FUNCS
-strftime AC_CHECK_FUNCS
strspn AC_CHECK_FUNCS
strstr AC_CHECK_FUNCS
strtod AC_CHECK_FUNCS
divert(-1)dnl Throw away output until AC_INIT is called.
changequote([, ])
-define(AC_ACVERSION, 2.11)
+define(AC_ACVERSION, 2.11.1)
dnl Some old m4's don't support m4exit. But they provide
dnl equivalent functionality by core dumping because of the
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
+cross_compiling=$ac_cv_prog_cc_cross
])
dnl AC_LANG_CPLUSPLUS()
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
+cross_compiling=$ac_cv_prog_cxx_cross
])
dnl Push the current language on a stack.
undefine([AC_VAR_NAME])dnl
])
+dnl Check whether the current compiler produces executables, and
+dnl whether those executables are native to the build system.
+dnl Before calling this, call AC_LANG_* to set the right language.
+dnl AC_TRY_COMPILER(TEST-PROGRAM, WORKING-CACHE-ID, CROSS-CACHE-ID)
+AC_DEFUN(AC_TRY_COMPILER,
+[cat > conftest.$ac_ext <<EOF
+[#]line __oline__ "configure"
+#include "confdefs.h"
+[$1]
+EOF
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+ [$2]=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ [$3]=no
+ else
+ [$3]=yes
+ fi
+else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat conftest.$ac_ext >&AC_FD_CC
+ [$2]=no
+fi
+rm -fr conftest*])
+
dnl ### Checking for libraries
$4
])dnl
fi
-rm -f conftest*]
-)
+rm -f conftest*])
dnl ### Checking for run-time features
dnl AC_TRY_RUN(PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE
dnl [, ACTION-IF-CROSS-COMPILING]]])
AC_DEFUN(AC_TRY_RUN,
-[AC_REQUIRE([AC_C_CROSS])dnl
-if test "$cross_compiling" = yes; then
+[if test "$cross_compiling" = yes; then
ifelse([$4], ,
[errprint(__file__:__line__: warning: [AC_TRY_RUN] called without default to allow cross compiling
)dnl
])dnl
[$1]
EOF
-AC_TRY_EVAL(ac_link)
-if test -s conftest && (./conftest; exit) 2>/dev/null; then
- ifelse([$2], , :, [$2])
+if AC_TRY_EVAL(ac_link) && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+ ifelse([$2], , :, [rm -rf conftest*
+ $2])
else
echo "configure: failed program was:" >&AC_FD_CC
cat conftest.$ac_ext >&AC_FD_CC
s%@top_srcdir@%$top_srcdir%g
ifdef([AC_PROVIDE_AC_PROG_INSTALL], [s%@INSTALL@%$INSTALL%g
])dnl
-" $ac_given_srcdir/$ac_file_in | eval "$ac_sed_cmds" > $ac_file
+dnl The parens around the eval prevent an "illegal io" in Ultrix sh.
+" $ac_given_srcdir/$ac_file_in | (eval "$ac_sed_cmds") > $ac_file
dnl This would break Makefile dependencies.
dnl if cmp -s $ac_file conftest.out 2>/dev/null; then
dnl echo "$ac_file is unchanged"
ac_eD='%g'
changequote([, ])dnl
-if test -z "$CONFIG_HEADERS"; then
+if test "${CONFIG_HEADERS+set}" != set; then
EOF
dnl Support passing AC_CONFIG_HEADER a value containing shell variables.
cat >> $CONFIG_STATUS <<EOF
fi
AC_PROG_CC_WORKS
-AC_CACHE_CHECK(whether we are using GNU C, ac_cv_prog_gcc,
-[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
-cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi])
+AC_PROG_CC_GNU
if test $ac_cv_prog_gcc = yes; then
GCC=yes
-dnl Check whether -g works even if CFLAGS is set, in case the package
+dnl Check whether -g works, even if CFLAGS is set, in case the package
dnl plays around with CFLAGS (such as to build both debugging and
dnl normal versions of a library), tasteless as that idea is.
ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
- AC_CACHE_CHECK(whether ${CC-cc} accepts -g, ac_cv_prog_gcc_g,
-[echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_gcc_g=yes
-else
- ac_cv_prog_gcc_g=no
-fi
-rm -f conftest*
-])
+ AC_PROG_CC_G
if test "$ac_test_CFLAGS" = set; then
CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_gcc_g = yes; then
+ elif test $ac_cv_prog_cc_g = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-O2"
AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
AC_PROG_CXX_WORKS
-AC_CACHE_CHECK(whether we are using GNU C++, ac_cv_prog_gxx,
-[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
-cat > conftest.C <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if AC_TRY_COMMAND(${CXX-g++} -E conftest.C) | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gxx=yes
-else
- ac_cv_prog_gxx=no
-fi])
+AC_PROG_CXX_GNU
+
if test $ac_cv_prog_gxx = yes; then
GXX=yes
-dnl Check whether -g works even if CXXFLAGS is set, in case the package
+dnl Check whether -g works, even if CXXFLAGS is set, in case the package
dnl plays around with CXXFLAGS (such as to build both debugging and
dnl normal versions of a library), tasteless as that idea is.
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
- AC_CACHE_CHECK(whether ${CXX-g++} accepts -g, ac_cv_prog_gxx_g,
-[echo 'void f(){}' > conftest.cc
-if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
- ac_cv_prog_gxx_g=yes
-else
- ac_cv_prog_gxx_g=no
-fi
-rm -f conftest*
-])
-dnl
+ AC_PROG_CXX_G
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS"
- elif test $ac_cv_prog_gxx_g = yes; then
+ elif test $ac_cv_prog_cxx_g = yes; then
CXXFLAGS="-g -O2"
else
CXXFLAGS="-O2"
[AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) works])
AC_LANG_SAVE
AC_LANG_C
-dnl We can't try running a program here because we don't know yet if
-dnl we're cross-compiling. And we can't check for that first, because the
-dnl cross-compiling test being fooled by non-working compiler installations
-dnl is the reason we're doing this in the first place.
-AC_TRY_LINK(, , ac_cv_prog_cc_works=yes, ac_cv_prog_cc_works=no)
+AC_TRY_COMPILER([main(){return(0);}], ac_cv_prog_cc_works, ac_cv_prog_cc_cross)
AC_LANG_RESTORE
AC_MSG_RESULT($ac_cv_prog_cc_works)
if test $ac_cv_prog_cc_works = no; then
- AC_MSG_ERROR([Installation or configuration problem: C compiler cannot create executables.])
+ AC_MSG_ERROR([installation or configuration problem: C compiler cannot create executables.])
fi
+AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler])
+AC_MSG_RESULT($ac_cv_prog_cc_cross)
+cross_compiling=$ac_cv_prog_cc_cross
])
AC_DEFUN(AC_PROG_CXX_WORKS,
[AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
-dnl We can't try running a program here because we don't know yet if
-dnl we're cross-compiling. And we can't check for that first, because the
-dnl cross-compiling test being fooled by non-working compiler installations
-dnl is the reason we're doing this in the first place.
-AC_TRY_LINK(, , ac_cv_prog_cxx_works=yes, ac_cv_prog_cxx_works=no)
+AC_TRY_COMPILER([main(){return(0);}], ac_cv_prog_cxx_works, ac_cv_prog_cxx_cross)
AC_LANG_RESTORE
AC_MSG_RESULT($ac_cv_prog_cxx_works)
if test $ac_cv_prog_cxx_works = no; then
- AC_MSG_ERROR([Installation or configuration problem: C++ compiler cannot create executables.])
+ AC_MSG_ERROR([installation or configuration problem: C++ compiler cannot create executables.])
fi
+AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
+AC_MSG_RESULT($ac_cv_prog_cxx_cross)
+cross_compiling=$ac_cv_prog_cxx_cross
])
+AC_DEFUN(AC_PROG_CC_GNU,
+[AC_CACHE_CHECK(whether we are using GNU C, ac_cv_prog_gcc,
+[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
+cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi])])
+
+AC_DEFUN(AC_PROG_CXX_GNU,
+[AC_CACHE_CHECK(whether we are using GNU C++, ac_cv_prog_gxx,
+[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
+cat > conftest.C <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if AC_TRY_COMMAND(${CXX-g++} -E conftest.C) | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gxx=yes
+else
+ ac_cv_prog_gxx=no
+fi])])
+
+AC_DEFUN(AC_PROG_CC_G,
+[AC_CACHE_CHECK(whether ${CC-cc} accepts -g, ac_cv_prog_cc_g,
+[echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+])])
+
+AC_DEFUN(AC_PROG_CXX_G,
+[AC_CACHE_CHECK(whether ${CXX-g++} accepts -g, ac_cv_prog_cxx_g,
+[echo 'void f(){}' > conftest.cc
+if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
+ ac_cv_prog_cxx_g=yes
+else
+ ac_cv_prog_cxx_g=no
+fi
+rm -f conftest*
+])])
+
AC_DEFUN(AC_PROG_GCC_TRADITIONAL,
[AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_PROG_CPP])dnl
])
AC_DEFUN(AC_FUNC_MMAP,
-[AC_CHECK_FUNCS(getpagesize)
+[AC_CHECK_HEADERS(unistd.h)
+AC_CHECK_FUNCS(getpagesize)
AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
[AC_TRY_RUN([
/* Thanks to Mike Haertel and Jim Avera for this test.
#include <fcntl.h>
#include <sys/mman.h>
+/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
-# include <sys/param.h>
-# ifdef EXEC_PAGESIZE
-# define getpagesize() EXEC_PAGESIZE
-# else
-# ifdef NBPG
-# define getpagesize() NBPG * CLSIZE
-# ifndef CLSIZE
-# define CLSIZE 1
-# endif
-# else
-# ifdef NBPC
-# define getpagesize() NBPC
-# else
-# define getpagesize() PAGESIZE /* SVR4 */
-# endif
-# endif
+# ifdef HAVE_UNISTD_H
+# include <unistd.h>
+# endif
+
+/* Assume that all systems that can run configure have sys/param.h. */
+# ifndef HAVE_SYS_PARAM_H
+# define HAVE_SYS_PARAM_H 1
# endif
-#endif
+
+# ifdef _SC_PAGESIZE
+# define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+# ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+# ifdef EXEC_PAGESIZE
+# define getpagesize() EXEC_PAGESIZE
+# else /* no EXEC_PAGESIZE */
+# ifdef NBPG
+# define getpagesize() NBPG * CLSIZE
+# ifndef CLSIZE
+# define CLSIZE 1
+# endif /* no CLSIZE */
+# else /* no NBPG */
+# ifdef NBPC
+# define getpagesize() NBPC
+# else /* no NBPC */
+# ifdef PAGESIZE
+# define getpagesize() PAGESIZE
+# endif /* PAGESIZE */
+# endif /* no NBPC */
+# endif /* no NBPG */
+# endif /* no EXEC_PAGESIZE */
+# else /* no HAVE_SYS_PARAM_H */
+# define getpagesize() 8192 /* punt totally */
+# endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
#ifdef __cplusplus
extern "C" { void *malloc(unsigned); }
AC_DEFUN(AC_C_CROSS,
-[# If we cannot run a trivial program, we are probably using a cross compiler.
-AC_CACHE_CHECK(whether using a cross-compiler, ac_cv_c_cross,
-[AC_TRY_RUN([main(){return(0);}],
- ac_cv_c_cross=no, ac_cv_c_cross=yes, ac_cv_c_cross=yes)])
-cross_compiling=$ac_cv_c_cross
-])
+[AC_OBSOLETE([$0], [; it has been merged into AC_PROG_CC])])
AC_DEFUN(AC_C_CHAR_UNSIGNED,
[AC_CACHE_CHECK(whether char is unsigned, ac_cv_c_char_unsigned,
@c @setchapternewpage odd
@c %**end of header
-@set EDITION 2.11
-@set VERSION 2.11
+@set EDITION 2.11.1
+@set VERSION 2.11.1
@set UPDATED November 1996
@iftex
@ovindex CC
@ovindex CFLAGS
Determine a C compiler to use. If @code{CC} is not already set in the
-environment, check for @code{gcc}, and use @code{cc} if it's not found.
+environment, check for @code{gcc}, and use @code{cc} if that's not found.
Set output variable @code{CC} to the name of the compiler found.
If using the GNU C compiler, set shell variable @code{GCC} to
@samp{yes}, empty otherwise. If output variable @code{CFLAGS} was
-not already set, set it to @samp{-g -O} for the GNU C compiler
-(@samp{-O} on systems where GCC does not accept @samp{-g}), or @samp{-g}
+not already set, set it to @samp{-g -O2} for the GNU C compiler
+(@samp{-O2} on systems where GCC does not accept @samp{-g}), or @samp{-g}
for other compilers.
+
+If the C compiler being used does not produce executables that can run
+on the system where @code{configure} is being run, set the shell
+variable @code{cross_compiling} to @samp{yes}, otherwise @samp{no}.
+In other words, this tests whether the build system type is different
+from the host system type (the target system type is irrelevant to this
+test). @xref{Manual Configuration}, for more on support for cross compiling.
@end defmac
@defmac AC_PROG_CC_C_O
If using the GNU C++ compiler, set shell variable @code{GXX} to
@samp{yes}, empty otherwise. If output variable @code{CXXFLAGS} was
-not already set, set it to @samp{-g -O} for the GNU C++ compiler
-(@samp{-O} on systems where G++ does not accept @samp{-g}), or @samp{-g}
+not already set, set it to @samp{-g -O2} for the GNU C++ compiler
+(@samp{-O2} on systems where G++ does not accept @samp{-g}), or @samp{-g}
for other compilers.
+
+If the C++ compiler being used does not produce executables that can run
+on the system where @code{configure} is being run, set the shell
+variable @code{cross_compiling} to @samp{yes}, otherwise @samp{no}.
+In other words, this tests whether the build system type is different
+from the host system type (the target system type is irrelevant to this
+test). @xref{Manual Configuration}, for more on support for cross compiling.
@end defmac
@defmac AC_PROG_CXXCPP
If the C compiler being used does not produce executables that run on
the system where @code{configure} is being run, then the test program is
not run. If the optional shell commands @var{action-if-cross-compiling}
-are given, they are run instead and this macro calls @code{AC_C_CROSS}
-if it has not already been called. Otherwise, @code{configure} prints
+are given, they are run instead. Otherwise, @code{configure} prints
an error message and exits.
@end defmac
To provide a default for calls of @code{AC_TRY_RUN} that are embedded in
other macros, including a few of the ones that come with Autoconf, you
-can call @code{AC_C_CROSS} before running them. Then, if the shell
+can call @code{AC_PROG_CC} before running them. Then, if the shell
variable @code{cross_compiling} is set to @samp{yes}, use an alternate
method to get the results instead of calling the macros.
@defmac AC_C_CROSS
@maindex C_CROSS
-If the C compiler being used does not produce executables that can run
-on the system where @code{configure} is being run, set the shell
-variable @code{cross_compiling} to @samp{yes}, otherwise @samp{no}.
-In other words, this tests whether the build system type is different
-from the host system type (the target system type is irrelevant to this
-test). @xref{Manual Configuration}, for more on support for cross compiling.
+This macro is obsolete; it does nothing.
@end defmac
@node Guidelines, Test Functions, Test Programs, Run Time
@defmac AC_LANG_C
@maindex LANG_C
Do compilation tests using @code{CC} and @code{CPP} and use extension
-@file{.c} for test programs.
+@file{.c} for test programs. Set the shell variable
+@code{cross_compiling} to the value computed by @code{AC_PROG_CC} if it
+has been run, empty otherwise.
@end defmac
@defmac AC_LANG_CPLUSPLUS
@maindex LANG_CPLUSPLUS
Do compilation tests using @code{CXX} and @code{CXXCPP} and use
-extension @file{.C} for test programs.
+extension @file{.C} for test programs. Set the shell variable
+@code{cross_compiling} to the value computed by @code{AC_PROG_CXX} if
+it has been run, empty otherwise.
@end defmac
@defmac AC_LANG_SAVE
# Files that can be generated, but should be up to date for a distribution.
DISTDEP = info Makefile
# Files to distribute.
-DISTFILES = COPYING ChangeLog ChangeLog.1 INSTALL \
+DISTFILES = AUTHORS COPYING ChangeLog ChangeLog.1 INSTALL \
Makefile.in NEWS README TODO $(M4FILES) \
acconfig.h acfunctions acheaders acidentifiers \
acmakevars acprograms autoconf.info* \
@c @setchapternewpage odd
@c %**end of header
-@set EDITION 2.11
-@set VERSION 2.11
+@set EDITION 2.11.1
+@set VERSION 2.11.1
@set UPDATED November 1996
@iftex
@ovindex CC
@ovindex CFLAGS
Determine a C compiler to use. If @code{CC} is not already set in the
-environment, check for @code{gcc}, and use @code{cc} if it's not found.
+environment, check for @code{gcc}, and use @code{cc} if that's not found.
Set output variable @code{CC} to the name of the compiler found.
If using the GNU C compiler, set shell variable @code{GCC} to
@samp{yes}, empty otherwise. If output variable @code{CFLAGS} was
-not already set, set it to @samp{-g -O} for the GNU C compiler
-(@samp{-O} on systems where GCC does not accept @samp{-g}), or @samp{-g}
+not already set, set it to @samp{-g -O2} for the GNU C compiler
+(@samp{-O2} on systems where GCC does not accept @samp{-g}), or @samp{-g}
for other compilers.
+
+If the C compiler being used does not produce executables that can run
+on the system where @code{configure} is being run, set the shell
+variable @code{cross_compiling} to @samp{yes}, otherwise @samp{no}.
+In other words, this tests whether the build system type is different
+from the host system type (the target system type is irrelevant to this
+test). @xref{Manual Configuration}, for more on support for cross compiling.
@end defmac
@defmac AC_PROG_CC_C_O
If using the GNU C++ compiler, set shell variable @code{GXX} to
@samp{yes}, empty otherwise. If output variable @code{CXXFLAGS} was
-not already set, set it to @samp{-g -O} for the GNU C++ compiler
-(@samp{-O} on systems where G++ does not accept @samp{-g}), or @samp{-g}
+not already set, set it to @samp{-g -O2} for the GNU C++ compiler
+(@samp{-O2} on systems where G++ does not accept @samp{-g}), or @samp{-g}
for other compilers.
+
+If the C++ compiler being used does not produce executables that can run
+on the system where @code{configure} is being run, set the shell
+variable @code{cross_compiling} to @samp{yes}, otherwise @samp{no}.
+In other words, this tests whether the build system type is different
+from the host system type (the target system type is irrelevant to this
+test). @xref{Manual Configuration}, for more on support for cross compiling.
@end defmac
@defmac AC_PROG_CXXCPP
If the C compiler being used does not produce executables that run on
the system where @code{configure} is being run, then the test program is
not run. If the optional shell commands @var{action-if-cross-compiling}
-are given, they are run instead and this macro calls @code{AC_C_CROSS}
-if it has not already been called. Otherwise, @code{configure} prints
+are given, they are run instead. Otherwise, @code{configure} prints
an error message and exits.
@end defmac
To provide a default for calls of @code{AC_TRY_RUN} that are embedded in
other macros, including a few of the ones that come with Autoconf, you
-can call @code{AC_C_CROSS} before running them. Then, if the shell
+can call @code{AC_PROG_CC} before running them. Then, if the shell
variable @code{cross_compiling} is set to @samp{yes}, use an alternate
method to get the results instead of calling the macros.
@defmac AC_C_CROSS
@maindex C_CROSS
-If the C compiler being used does not produce executables that can run
-on the system where @code{configure} is being run, set the shell
-variable @code{cross_compiling} to @samp{yes}, otherwise @samp{no}.
-In other words, this tests whether the build system type is different
-from the host system type (the target system type is irrelevant to this
-test). @xref{Manual Configuration}, for more on support for cross compiling.
+This macro is obsolete; it does nothing.
@end defmac
@node Guidelines, Test Functions, Test Programs, Run Time
@defmac AC_LANG_C
@maindex LANG_C
Do compilation tests using @code{CC} and @code{CPP} and use extension
-@file{.c} for test programs.
+@file{.c} for test programs. Set the shell variable
+@code{cross_compiling} to the value computed by @code{AC_PROG_CC} if it
+has been run, empty otherwise.
@end defmac
@defmac AC_LANG_CPLUSPLUS
@maindex LANG_CPLUSPLUS
Do compilation tests using @code{CXX} and @code{CXXCPP} and use
-extension @file{.C} for test programs.
+extension @file{.C} for test programs. Set the shell variable
+@code{cross_compiling} to the value computed by @code{AC_PROG_CXX} if
+it has been run, empty otherwise.
@end defmac
@defmac AC_LANG_SAVE
divert(-1)dnl Throw away output until AC_INIT is called.
changequote([, ])
-define(AC_ACVERSION, 2.11)
+define(AC_ACVERSION, 2.11.1)
dnl Some old m4's don't support m4exit. But they provide
dnl equivalent functionality by core dumping because of the
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
+cross_compiling=$ac_cv_prog_cc_cross
])
dnl AC_LANG_CPLUSPLUS()
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&AC_FD_CC'
ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
+cross_compiling=$ac_cv_prog_cxx_cross
])
dnl Push the current language on a stack.
undefine([AC_VAR_NAME])dnl
])
+dnl Check whether the current compiler produces executables, and
+dnl whether those executables are native to the build system.
+dnl Before calling this, call AC_LANG_* to set the right language.
+dnl AC_TRY_COMPILER(TEST-PROGRAM, WORKING-CACHE-ID, CROSS-CACHE-ID)
+AC_DEFUN(AC_TRY_COMPILER,
+[cat > conftest.$ac_ext <<EOF
+[#]line __oline__ "configure"
+#include "confdefs.h"
+[$1]
+EOF
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+ [$2]=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ [$3]=no
+ else
+ [$3]=yes
+ fi
+else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat conftest.$ac_ext >&AC_FD_CC
+ [$2]=no
+fi
+rm -fr conftest*])
+
dnl ### Checking for libraries
$4
])dnl
fi
-rm -f conftest*]
-)
+rm -f conftest*])
dnl ### Checking for run-time features
dnl AC_TRY_RUN(PROGRAM, [ACTION-IF-TRUE [, ACTION-IF-FALSE
dnl [, ACTION-IF-CROSS-COMPILING]]])
AC_DEFUN(AC_TRY_RUN,
-[AC_REQUIRE([AC_C_CROSS])dnl
-if test "$cross_compiling" = yes; then
+[if test "$cross_compiling" = yes; then
ifelse([$4], ,
[errprint(__file__:__line__: warning: [AC_TRY_RUN] called without default to allow cross compiling
)dnl
])dnl
[$1]
EOF
-AC_TRY_EVAL(ac_link)
-if test -s conftest && (./conftest; exit) 2>/dev/null; then
- ifelse([$2], , :, [$2])
+if AC_TRY_EVAL(ac_link) && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+ ifelse([$2], , :, [rm -rf conftest*
+ $2])
else
echo "configure: failed program was:" >&AC_FD_CC
cat conftest.$ac_ext >&AC_FD_CC
s%@top_srcdir@%$top_srcdir%g
ifdef([AC_PROVIDE_AC_PROG_INSTALL], [s%@INSTALL@%$INSTALL%g
])dnl
-" $ac_given_srcdir/$ac_file_in | eval "$ac_sed_cmds" > $ac_file
+dnl The parens around the eval prevent an "illegal io" in Ultrix sh.
+" $ac_given_srcdir/$ac_file_in | (eval "$ac_sed_cmds") > $ac_file
dnl This would break Makefile dependencies.
dnl if cmp -s $ac_file conftest.out 2>/dev/null; then
dnl echo "$ac_file is unchanged"
ac_eD='%g'
changequote([, ])dnl
-if test -z "$CONFIG_HEADERS"; then
+if test "${CONFIG_HEADERS+set}" != set; then
EOF
dnl Support passing AC_CONFIG_HEADER a value containing shell variables.
cat >> $CONFIG_STATUS <<EOF
fi
AC_PROG_CC_WORKS
-AC_CACHE_CHECK(whether we are using GNU C, ac_cv_prog_gcc,
-[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
-cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi])
+AC_PROG_CC_GNU
if test $ac_cv_prog_gcc = yes; then
GCC=yes
-dnl Check whether -g works even if CFLAGS is set, in case the package
+dnl Check whether -g works, even if CFLAGS is set, in case the package
dnl plays around with CFLAGS (such as to build both debugging and
dnl normal versions of a library), tasteless as that idea is.
ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
- AC_CACHE_CHECK(whether ${CC-cc} accepts -g, ac_cv_prog_gcc_g,
-[echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_gcc_g=yes
-else
- ac_cv_prog_gcc_g=no
-fi
-rm -f conftest*
-])
+ AC_PROG_CC_G
if test "$ac_test_CFLAGS" = set; then
CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_gcc_g = yes; then
+ elif test $ac_cv_prog_cc_g = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-O2"
AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
AC_PROG_CXX_WORKS
-AC_CACHE_CHECK(whether we are using GNU C++, ac_cv_prog_gxx,
-[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
-cat > conftest.C <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if AC_TRY_COMMAND(${CXX-g++} -E conftest.C) | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gxx=yes
-else
- ac_cv_prog_gxx=no
-fi])
+AC_PROG_CXX_GNU
+
if test $ac_cv_prog_gxx = yes; then
GXX=yes
-dnl Check whether -g works even if CXXFLAGS is set, in case the package
+dnl Check whether -g works, even if CXXFLAGS is set, in case the package
dnl plays around with CXXFLAGS (such as to build both debugging and
dnl normal versions of a library), tasteless as that idea is.
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
- AC_CACHE_CHECK(whether ${CXX-g++} accepts -g, ac_cv_prog_gxx_g,
-[echo 'void f(){}' > conftest.cc
-if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
- ac_cv_prog_gxx_g=yes
-else
- ac_cv_prog_gxx_g=no
-fi
-rm -f conftest*
-])
-dnl
+ AC_PROG_CXX_G
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS"
- elif test $ac_cv_prog_gxx_g = yes; then
+ elif test $ac_cv_prog_cxx_g = yes; then
CXXFLAGS="-g -O2"
else
CXXFLAGS="-O2"
[AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) works])
AC_LANG_SAVE
AC_LANG_C
-dnl We can't try running a program here because we don't know yet if
-dnl we're cross-compiling. And we can't check for that first, because the
-dnl cross-compiling test being fooled by non-working compiler installations
-dnl is the reason we're doing this in the first place.
-AC_TRY_LINK(, , ac_cv_prog_cc_works=yes, ac_cv_prog_cc_works=no)
+AC_TRY_COMPILER([main(){return(0);}], ac_cv_prog_cc_works, ac_cv_prog_cc_cross)
AC_LANG_RESTORE
AC_MSG_RESULT($ac_cv_prog_cc_works)
if test $ac_cv_prog_cc_works = no; then
- AC_MSG_ERROR([Installation or configuration problem: C compiler cannot create executables.])
+ AC_MSG_ERROR([installation or configuration problem: C compiler cannot create executables.])
fi
+AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler])
+AC_MSG_RESULT($ac_cv_prog_cc_cross)
+cross_compiling=$ac_cv_prog_cc_cross
])
AC_DEFUN(AC_PROG_CXX_WORKS,
[AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
-dnl We can't try running a program here because we don't know yet if
-dnl we're cross-compiling. And we can't check for that first, because the
-dnl cross-compiling test being fooled by non-working compiler installations
-dnl is the reason we're doing this in the first place.
-AC_TRY_LINK(, , ac_cv_prog_cxx_works=yes, ac_cv_prog_cxx_works=no)
+AC_TRY_COMPILER([main(){return(0);}], ac_cv_prog_cxx_works, ac_cv_prog_cxx_cross)
AC_LANG_RESTORE
AC_MSG_RESULT($ac_cv_prog_cxx_works)
if test $ac_cv_prog_cxx_works = no; then
- AC_MSG_ERROR([Installation or configuration problem: C++ compiler cannot create executables.])
+ AC_MSG_ERROR([installation or configuration problem: C++ compiler cannot create executables.])
fi
+AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
+AC_MSG_RESULT($ac_cv_prog_cxx_cross)
+cross_compiling=$ac_cv_prog_cxx_cross
])
+AC_DEFUN(AC_PROG_CC_GNU,
+[AC_CACHE_CHECK(whether we are using GNU C, ac_cv_prog_gcc,
+[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
+cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi])])
+
+AC_DEFUN(AC_PROG_CXX_GNU,
+[AC_CACHE_CHECK(whether we are using GNU C++, ac_cv_prog_gxx,
+[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
+cat > conftest.C <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if AC_TRY_COMMAND(${CXX-g++} -E conftest.C) | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gxx=yes
+else
+ ac_cv_prog_gxx=no
+fi])])
+
+AC_DEFUN(AC_PROG_CC_G,
+[AC_CACHE_CHECK(whether ${CC-cc} accepts -g, ac_cv_prog_cc_g,
+[echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+])])
+
+AC_DEFUN(AC_PROG_CXX_G,
+[AC_CACHE_CHECK(whether ${CXX-g++} accepts -g, ac_cv_prog_cxx_g,
+[echo 'void f(){}' > conftest.cc
+if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
+ ac_cv_prog_cxx_g=yes
+else
+ ac_cv_prog_cxx_g=no
+fi
+rm -f conftest*
+])])
+
AC_DEFUN(AC_PROG_GCC_TRADITIONAL,
[AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_PROG_CPP])dnl
])
AC_DEFUN(AC_FUNC_MMAP,
-[AC_CHECK_FUNCS(getpagesize)
+[AC_CHECK_HEADERS(unistd.h)
+AC_CHECK_FUNCS(getpagesize)
AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
[AC_TRY_RUN([
/* Thanks to Mike Haertel and Jim Avera for this test.
#include <fcntl.h>
#include <sys/mman.h>
+/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
-# include <sys/param.h>
-# ifdef EXEC_PAGESIZE
-# define getpagesize() EXEC_PAGESIZE
-# else
-# ifdef NBPG
-# define getpagesize() NBPG * CLSIZE
-# ifndef CLSIZE
-# define CLSIZE 1
-# endif
-# else
-# ifdef NBPC
-# define getpagesize() NBPC
-# else
-# define getpagesize() PAGESIZE /* SVR4 */
-# endif
-# endif
+# ifdef HAVE_UNISTD_H
+# include <unistd.h>
+# endif
+
+/* Assume that all systems that can run configure have sys/param.h. */
+# ifndef HAVE_SYS_PARAM_H
+# define HAVE_SYS_PARAM_H 1
# endif
-#endif
+
+# ifdef _SC_PAGESIZE
+# define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+# ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+# ifdef EXEC_PAGESIZE
+# define getpagesize() EXEC_PAGESIZE
+# else /* no EXEC_PAGESIZE */
+# ifdef NBPG
+# define getpagesize() NBPG * CLSIZE
+# ifndef CLSIZE
+# define CLSIZE 1
+# endif /* no CLSIZE */
+# else /* no NBPG */
+# ifdef NBPC
+# define getpagesize() NBPC
+# else /* no NBPC */
+# ifdef PAGESIZE
+# define getpagesize() PAGESIZE
+# endif /* PAGESIZE */
+# endif /* no NBPC */
+# endif /* no NBPG */
+# endif /* no EXEC_PAGESIZE */
+# else /* no HAVE_SYS_PARAM_H */
+# define getpagesize() 8192 /* punt totally */
+# endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
#ifdef __cplusplus
extern "C" { void *malloc(unsigned); }
AC_DEFUN(AC_C_CROSS,
-[# If we cannot run a trivial program, we are probably using a cross compiler.
-AC_CACHE_CHECK(whether using a cross-compiler, ac_cv_c_cross,
-[AC_TRY_RUN([main(){return(0);}],
- ac_cv_c_cross=no, ac_cv_c_cross=yes, ac_cv_c_cross=yes)])
-cross_compiling=$ac_cv_c_cross
-])
+[AC_OBSOLETE([$0], [; it has been merged into AC_PROG_CC])])
AC_DEFUN(AC_C_CHAR_UNSIGNED,
[AC_CACHE_CHECK(whether char is unsigned, ac_cv_c_char_unsigned,
index AC_HEADER_STDC
rindex AC_HEADER_STDC
getgroups AC_TYPE_GETGROUPS
+getpgrp AC_FUNC_GETPGRP
+setpgrp AC_FUNC_SETPGRP
signal AC_TYPE_SIGNAL
alloca AC_FUNC_ALLOCA
+fnmatch AC_FUNC_FNMATCH
getloadavg AC_FUNC_GETLOADAVG
mmap AC_FUNC_MMAP
setvbuf AC_FUNC_SETVBUF_REVERSED
strcoll AC_FUNC_STRCOLL
+strftime AC_FUNC_STRFTIME
utime AC_FUNC_UTIME_NULL
vfork AC_FUNC_VFORK
vprintf AC_FUNC_VPRINTF
wait3 AC_FUNC_WAIT3
# Others.
-fnmatch AC_CHECK_FUNCS
ftime AC_CHECK_FUNCS
gethostname AC_CHECK_FUNCS
gettimeofday AC_CHECK_FUNCS
strcspn AC_CHECK_FUNCS
strdup AC_CHECK_FUNCS
strerror AC_CHECK_FUNCS
-strftime AC_CHECK_FUNCS
strspn AC_CHECK_FUNCS
strstr AC_CHECK_FUNCS
strtod AC_CHECK_FUNCS