diff --git a/Makefile.in b/Makefile.in index a6f2495e..701ee6d9 100644 --- a/Makefile.in +++ b/Makefile.in @@ -156,7 +156,7 @@ clean: mostlyclean: clean distclean: clean - rm -f Makefile config.status config.cache + rm -f Makefile config.status config.cache config.log realclean: distclean rm -f TAGS *.info* diff --git a/NEWS b/NEWS index 32fecf2f..4dbe8fb6 100644 --- a/NEWS +++ b/NEWS @@ -1,26 +1,32 @@ Major changes in release 2.0: ** New files: -* Comes with config.sub and config.guess. +* Comes with config.sub and config.guess, and uses them optionally. * Uses config.cache to cache test results. An alternate cache file can be selected with the --cache-file=FILE option. +* Uses optional shell scripts $exec_prefix/lib/config.site and + $prefix/lib/config.site to perform site or system specific initializations. +* configure saves compiler output to ./config.log for debugging. ** New macros: * AC_CACHE_VAL to share results of tests between configure runs. -* AC_CONFIG_AUXDIR, AC_CANON_SYSTEM, AC_SUBST_FILE, AC_MAKE_LINKS to +* AC_CONFIG_AUX_DIR, AC_CANONICAL_SYSTEM, AC_LINK_FILES to support deciding unguessable features based on the host and target types. * AC_CONFIG_SUBDIRS to recursively configure a source tree. -* AC_TEST_LINK which should be used instead of AC_COMPILE_CHECK, in - order to use results caching. -* AC_ARG_ENABLE and AC_ARG_WITH make AC_ENABLE and AC_WITH obsolete. +* AC_TEST_LINK, which obsoletes AC_COMPILE_CHECK. +* AC_TEST_RUN, which obsoletes AC_TEST_PROGRAM. +* AC_PREFIX_PROGRAM, which obsoletes AC_PREFIX. +* AC_ARG_ENABLE and AC_ARG_WITH, which obsolete AC_ENABLE and AC_WITH. ** Changed macros: * AC_OUTPUT adds the "automatically generated" comment after "#!" lines, not before them. * AC_OUTPUT does not replace "prefix" and "exec_prefix" in generated files when they are not enclosed in @ signs. +* AC_OUTPUT allows the optional environment variable CONFIG_STATUS to + override the file name "config.status". * AC_PROG_INSTALL looks for install.sh in the directory specified by - AC_CONFIG_AUX, or srcdir or srcdir/.. or srcdir/../.. by default. + AC_CONFIG_AUXDIR, or srcdir or srcdir/.. or srcdir/../.. by default. ** New utilities: * autoscan to generate a preliminary configure.in for a package by diff --git a/acgeneral.m4 b/acgeneral.m4 index eeef4fc9..6c3e5cfd 100644 --- a/acgeneral.m4 +++ b/acgeneral.m4 @@ -29,35 +29,16 @@ dnl ifdef([__gnu__], , [errprint(Autoconf requires GNU m4 )m4exit(2)])dnl dnl -dnl -dnl ### Utility functions for stamping the configure script. -dnl -dnl -define(AC_ACVERSION, 1.91)dnl +define(AC_ACVERSION, 1.93)dnl dnl This is defined by the --version option of the autoconf script. ifdef([AC_PRINT_VERSION], [errprint(Autoconf version AC_ACVERSION -)])dnl -dnl -dnl These are currently not used, for the sake of people who diff -dnl configure scripts and don't want spurious differences. -dnl But they are too clever to just delete. -dnl -define(AC_USER, [esyscmd( -changequote({,})dnl -# Extract the user name from the first pair of parentheses. -({ac_sedcmd='s/[^(]*(\([^)]*\)).*/\1/';} -changequote([,])dnl -whoami || id|sed "$ac_sedcmd") 2>/dev/null|tr -d '\012')])dnl -dnl -define(AC_HOST, [esyscmd((hostname || uname -n) 2>/dev/null|tr -d '\012')])dnl -dnl -define(AC_DATE, [esyscmd(date|tr -d '\012')])dnl +)m4exit(0)])dnl dnl dnl dnl ### Controlling Autoconf operation dnl dnl -dnl Diversions: +dnl m4 diversions: define(AC_DIVERSION_NORMAL, 0)dnl normal output define(AC_DIVERSION_SED, 1)dnl sed substitutions for config.status define(AC_DIVERSION_VAR, 2)dnl variable assignments for config.status @@ -66,13 +47,9 @@ define(AC_DIVERSION_ARG_ENABLE, 4)dnl --enable/--disable actions define(AC_DIVERSION_HELP_WITH, 5)dnl --with/--without help strings define(AC_DIVERSION_ARG_WITH, 6)dnl --with/--without actions dnl -dnl This is separate from AC_INIT to prevent GNU m4 1.0 from coredumping -dnl when AC_CONFIG_HEADER is used. define(AC_NOTICE, [# Guess values for system-dependent variables and create Makefiles. -dnl [#] Generated automatically using autoconf. # Generated automatically using autoconf version] AC_ACVERSION [ -dnl [#] by AC_USER@AC_HOST on AC_DATE # Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. # # This configure script is free software; you can redistribute it and/or @@ -91,12 +68,13 @@ dnl [#] by AC_USER@AC_HOST on AC_DATE ])dnl dnl define(AC_PARSEARGS, -[AC_BEFORE([$0], AC_ARG_ENABLE)dnl -AC_BEFORE([$0], AC_ARG_WITH)dnl +[AC_BEFORE([$0], [AC_ARG_ENABLE])dnl +AC_BEFORE([$0], [AC_ARG_WITH])dnl # Save the original args to write them into config.status later. configure_args="[$]*" -# Omit internal or obsolete options to make the list less imposing. +# Omit some internal, obsolete, or unimplemented options to make the +# list less imposing. changequote(,)dnl ac_usage="Usage: configure [options] [host] Options: [defaults in brackets after descriptions] @@ -130,12 +108,12 @@ changequote([,])dnl # dashes changed to underlines. build=NONE cache_file=./config.cache -exec_prefix= +exec_prefix=NONE host=NONE no_create= nonopt=NONE norecursion= -prefix= +prefix=NONE program_prefix= program_suffix= program_transform_name= @@ -382,8 +360,12 @@ AC_PREPARE($1)])dnl dnl dnl AC_PREPARE(UNIQUE-FILE-IN-SOURCE-DIR) define(AC_PREPARE, -[AC_BEFORE([$0], AC_ARG_ENABLE)dnl -AC_BEFORE([$0], AC_ARG_WITH)dnl +[AC_BEFORE([$0], [AC_ARG_ENABLE])dnl +AC_BEFORE([$0], [AC_ARG_WITH])dnl +AC_BEFORE([$0], [AC_CONFIG_HEADER])dnl +AC_BEFORE([$0], [AC_REVISION])dnl +AC_BEFORE([$0], [AC_PREREQ])dnl +AC_BEFORE([$0], [AC_CONFIG_SUBDIRS])dnl trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15 trap 'rm -fr confdefs* $ac_clean_files' 0 @@ -392,8 +374,9 @@ trap 'rm -fr confdefs* $ac_clean_files' 0 # 1 file creation # 2 errors and warnings # 3 unused; some systems may open it to /dev/tty -# 4 checking for... +# 4 checking for... messages # 5 test results +# 6 compiler messages if test "$silent" = yes; then exec 4>/dev/null else @@ -404,6 +387,12 @@ if test "$verbose" = yes; then else exec 5>/dev/null fi +exec 6>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&6 # Save the original args if we used an alternate arg parser. ac_configure_temp="${configure_args-[$]*}" @@ -458,7 +447,12 @@ if test ! -r $srcdir/$ac_unique_file; then AC_ERROR(can not find sources in ${srcdir}) fi fi + +ifdef([AC_LIST_PREFIX_PROGRAM], [AC_PREFIX(AC_LIST_PREFIX_PROGRAM)])dnl +dnl Let the site file select an alternate cache file if it wants to. +AC_SITE_LOAD AC_CACHE_LOAD + AC_LANG_C undivert(AC_DIVERSION_ARG_ENABLE)dnl undivert(AC_DIVERSION_ARG_WITH)dnl @@ -466,7 +460,8 @@ undivert(AC_DIVERSION_ARG_WITH)dnl dnl dnl AC_ARG_ENABLE(FEATURE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE]) define(AC_ARG_ENABLE, -[divert(AC_DIVERSION_HELP_ENABLE)dnl +[AC_PROVIDE([$0])dnl +divert(AC_DIVERSION_HELP_ENABLE)dnl $2 divert(AC_DIVERSION_ARG_ENABLE)dnl AC_ENABLE_INTERNAL([$1], [$3], [$4])dnl @@ -492,7 +487,8 @@ fi dnl dnl AC_ARG_WITH(PACKAGE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE]) define(AC_ARG_WITH, -[divert(AC_DIVERSION_HELP_WITH)dnl +[AC_PROVIDE([$0])dnl +divert(AC_DIVERSION_HELP_WITH)dnl $2 divert(AC_DIVERSION_ARG_WITH)dnl AC_WITH_INTERNAL([$1], [$3], [$4])dnl @@ -517,10 +513,10 @@ fi ])dnl dnl dnl AC_CONFIG_HEADER(HEADER-TO-CREATE ...) -define(AC_CONFIG_HEADER, [define(AC_LIST_HEADERS, $1)])dnl +define(AC_CONFIG_HEADER, [AC_PROVIDE([$0])define(AC_LIST_HEADERS, $1)])dnl dnl dnl AC_REVISION(REVISION-INFO) -define(AC_REVISION, [AC_REQUIRE([AC_BINSH])dnl +define(AC_REVISION, [AC_PROVIDE([$0])AC_REQUIRE([AC_BINSH])dnl [# From configure.in] translit([$1],$")])dnl dnl dnl Subroutines of AC_PREREQ. @@ -543,16 +539,44 @@ dnl dnl Complain and exit if the Autoconf version is less than $1. dnl AC_PREREQ(VERSION) define(AC_PREREQ, -[AC_PREREQ_COMPARE(AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), +[AC_PROVIDE([$0])dnl +AC_PREREQ_COMPARE(AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),[$1])])dnl dnl dnl Run configure in subdirectories $1. dnl Not actually done until AC_OUTPUT_SUBDIRS. dnl AC_CONFIG_SUBDIRS(DIR ...) define(AC_CONFIG_SUBDIRS, -[AC_REQUIRE([AC_CONFIG_AUXDIR_DEFAULT])dnl +[AC_PROVIDE([$0])dnl +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl define([AC_LIST_SUBDIRS],[$1])])dnl dnl +dnl Guess the value for the `prefix' variable by looking for +dnl the argument program along PATH and taking its parent. +dnl Example: if the argument is `gcc' and we find /usr/local/gnu/bin/gcc, +dnl set `prefix' to /usr/local/gnu. +dnl AC_PREFIX_PROGRAM(PROGRAM) +define(AC_PREFIX_PROGRAM, [define([AC_LIST_PREFIX_PROGRAM],[$1])])dnl +define(AC_PREFIX_INTERNAL, +[if test "x$prefix" = xNONE; then +changequote(<<,>>)dnl +define(<>, translit($1, [a-z], [A-Z]))dnl +changequote([,])dnl +AC_PROGRAM_PATH(AC_VAR_NAME, $1) +changequote(<<,>>)dnl + if test -n "$ac_cv_path_<<>>AC_VAR_NAME"; then + prefix=`echo $ac_cv_path_<<>>AC_VAR_NAME|sed 's%/[^/][^/]*/[^/][^/]*$%%'` +changequote([,])dnl +dnl test -z "$prefix" && prefix=/ + AC_VERBOSE(setting installation directory prefix to ${prefix}) + fi +fi +undefine(AC_VAR_NAME)dnl +])dnl +define(AC_PREFIX, +[AC_OBSOLETE([$0], [; instead use AC_PREFIX_PROGRAM before AC_INIT])dnl +AC_PREFIX_INTERNAL([$1])])dnl +dnl dnl dnl ### Canonicalizing the system type dnl @@ -560,21 +584,21 @@ dnl dnl Find install.sh, config.sub, config.guess, and Cygnus configure dnl in directory $1. These are auxiliary files used in configuration. dnl $1 can be either absolute or relative to ${srcdir}. -dnl AC_CONFIG_AUXDIR(DIR) -define(AC_CONFIG_AUXDIR, -[AC_CONFIG_AUXDIR_DIRS($1 ${srcdir}/$1)])dnl +dnl AC_CONFIG_AUX_DIR(DIR) +define(AC_CONFIG_AUX_DIR, +[AC_CONFIG_AUX_DIRS($1 ${srcdir}/$1)])dnl dnl dnl The default is `${srcdir}' or `${srcdir}/..' or `${srcdir}/../..'. dnl There's no need to call this macro explicitly; just AC_REQUIRE it. -define(AC_CONFIG_AUXDIR_DEFAULT, -[AC_CONFIG_AUXDIR_DIRS(${srcdir} ${srcdir}/.. ${srcdir}/../..)])dnl +define(AC_CONFIG_AUX_DIR_DEFAULT, +[AC_CONFIG_AUX_DIRS(${srcdir} ${srcdir}/.. ${srcdir}/../..)])dnl dnl dnl Internal subroutine. dnl Search for the configuration auxiliary files in directory list $1. dnl We look only for install.sh, so users of AC_PROG_INSTALL dnl do not automatically need to distribute the other auxiliary files. -dnl AC_CONFIG_AUXDIR_DIRS(DIR ...) -define(AC_CONFIG_AUXDIR_DIRS, +dnl AC_CONFIG_AUX_DIRS(DIR ...) +define(AC_CONFIG_AUX_DIRS, [ac_aux_dir= for ac_dir in $1; do if test -f $ac_dir/install.sh; then @@ -588,12 +612,12 @@ ac_config_guess=${ac_aux_dir}/config.guess ac_config_sub=${ac_aux_dir}/config.sub ac_configure=${ac_aux_dir}/configure # This should be Cygnus configure. ac_install_sh="${ac_aux_dir}/install.sh -c" -AC_PROVIDE([AC_CONFIG_AUXDIR_DEFAULT])dnl +AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT])dnl ])dnl dnl dnl Canonicalize the host, target, and build system types. -define(AC_CANON_SYSTEM, -[AC_REQUIRE([AC_CONFIG_AUXDIR_DEFAULT])dnl +define(AC_CANONICAL_SYSTEM, +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Do some error checking and defaulting for the host and target type. # The inputs are: # configure --host=HOST --target=TARGET --build=BUILD NONOPT @@ -623,14 +647,14 @@ if ${ac_config_sub} sun4 >/dev/null 2>&1; then : else AC_ERROR(can not run ${ac_config_sub}) fi -AC_CANON_HOST -AC_CANON_TARGET -AC_CANON_BUILD +AC_CANONICAL_HOST +AC_CANONICAL_TARGET +AC_CANONICAL_BUILD ])dnl dnl -dnl Subroutines of AC_CANON_SYSTEM. +dnl Subroutines of AC_CANONICAL_SYSTEM. dnl -define(AC_CANON_HOST, +define(AC_CANONICAL_HOST, [AC_CHECKING(host type) case "${host_alias}" in @@ -653,7 +677,7 @@ AC_SUBST(host)dnl AC_SUBST(host_alias)dnl ])dnl dnl -define(AC_CANON_TARGET, +define(AC_CANONICAL_TARGET, [AC_CHECKING(target type) case "${target_alias}" in @@ -673,7 +697,7 @@ AC_SUBST(target)dnl AC_SUBST(target_alias)dnl ])dnl dnl -define(AC_CANON_BUILD, +define(AC_CANONICAL_BUILD, [AC_CHECKING(build type) case "${build_alias}" in @@ -690,30 +714,38 @@ AC_SUBST(build)dnl AC_SUBST(build_alias)dnl ])dnl dnl -dnl Put the contents of file $2 into Makefile variable $1. -dnl Useful for inserting Makefile fragments into Makefiles. -dnl AC_SUBST_FILE(VARIABLE, FILE) -define(AC_SUBST_FILE, -[AC_SUBST($1)dnl -if test -f ${srcdir}/$2; then - AC_VERBOSE(using $2 for $1) - $1=`cat ${srcdir}/$2` -fi -])dnl -dnl dnl Link each of the existing files in $2 to the corresponding dnl link name in $1. dnl Not actually done until AC_OUTPUT_LINKS. -dnl AC_MAKE_LINKS(LINK ..., FILE ...) -define(AC_MAKE_LINKS, +dnl AC_LINK_FILES(LINK ..., FILE ...) +define(AC_LINK_FILES, [define([AC_LIST_LINKS],[$1])define([AC_LIST_FILES],[$2])])dnl dnl dnl dnl ### Caching test results dnl dnl +dnl Look for site or system specific initialization scripts. +define(AC_SITE_LOAD, +[ac_site_dirs=/usr/local +if test "x$prefix" != xNONE; then + ac_site_dirs=$prefix +fi +# System dependent files override system independent ones in case of conflict. +if test "x$exec_prefix" != xNONE && test "x$exec_prefix" != "x$prefix"; then + ac_site_dirs="$ac_site_dirs $exec_prefix" +fi +for ac_site_dir in $ac_site_dirs; do + ac_site_file=$ac_site_dir/lib/config.site + if test -r "$ac_site_file"; then + AC_VERBOSE(loading site initialization script $ac_site_file) + . $ac_site_file + fi +done +])dnl +dnl define(AC_CACHE_LOAD, -[if test -r $cache_file; then +[if test -r "$cache_file"; then AC_VERBOSE(loading test results from cache file $cache_file) . $cache_file else @@ -728,7 +760,7 @@ cat > $cache_file <<\CEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs. It is not useful on other systems. -# If its contents are invalid for some reason, you may edit or delete it. +# If its contents are invalid for some reason, you may delete or edit it. # # By default, configure uses ./config.cache as the cache file, # creating it if it does not exist already. You can give configure @@ -739,7 +771,8 @@ cat > $cache_file <<\CEOF # --recheck option to rerun configure. CEOF changequote(,)dnl -set | sed -n "/^[a-zA-Z0-9_]*_cv_/s/=\(.*\)/='\1'/p" >> $cache_file +dnl Allow a site initialization script to override cache values. +set | sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1-'\2'}/p" >> $cache_file changequote([,])dnl fi])dnl dnl @@ -888,7 +921,7 @@ AC_PROVIDE([$0])dnl ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='${CPP}' -ac_compile='${CC-cc} $CFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS >/dev/null 2>&1' +ac_compile='${CC-cc} $CFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS 1>&6 2>&6' ])dnl dnl define(AC_LANG_CPLUSPLUS, @@ -897,7 +930,7 @@ AC_PROVIDE([$0])dnl ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='${CXXCPP}' -ac_compile='${CXX-gcc} $CXXFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS >/dev/null 2>&1' +ac_compile='${CXX-gcc} $CXXFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS 1>&6 2>&6' ])dnl dnl dnl Push the current language on a stack. @@ -940,25 +973,25 @@ define(AC_PROGRAM_CHECK, [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_program_$1, +AC_CACHE_VAL(ac_cv_prog_$1, [if test -n "[$]$1"; then - ac_cv_program_$1="[$]$1" # Let the user override the test. + ac_cv_prog_$1="[$]$1" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then - ac_cv_program_$1="$3" + ac_cv_prog_$1="$3" break fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PROGRAMS_CHECK will keep looking. -ifelse([$4],,, [ test -z "[$]ac_cv_program_$1" && ac_cv_program_$1="$4" +ifelse([$4],,, [ test -z "[$]ac_cv_prog_$1" && ac_cv_prog_$1="$4" ])dnl fi])dnl -$1="$ac_cv_program_$1" +$1="$ac_cv_prog_$1" test -n "[$]$1" && AC_VERBOSE(setting $1 to [$]$1) AC_SUBST($1)dnl ])dnl @@ -1018,28 +1051,6 @@ done ifelse([$3],,, [test -n "[$]$1" || $1="$3" ])])dnl dnl -dnl Guess the value for the `prefix' variable by looking for -dnl the argument program along PATH and taking its parent. -dnl Example: if the argument is `gcc' and we find /usr/local/gnu/bin/gcc, -dnl set `prefix' to /usr/local/gnu. -dnl AC_PREFIX(PROGRAM) -define(AC_PREFIX, -[if test -z "$prefix"; then -changequote(<<,>>)dnl -define(<>, translit($1, [a-z], [A-Z]))dnl -changequote([,])dnl -AC_PROGRAM_PATH(AC_VAR_NAME, $1) -changequote(<<,>>)dnl - if test -n "$ac_cv_path_<<>>AC_VAR_NAME"; then - prefix=`echo $ac_cv_path_<<>>AC_VAR_NAME|sed 's%/[^/][^/]*/[^/][^/]*$%%'` -changequote([,])dnl - test -z "$prefix" && prefix=/ - AC_VERBOSE(setting installation directory prefix to ${prefix}) - fi -fi -undefine(AC_VAR_NAME)dnl -])dnl -dnl dnl AC_HAVE_LIBRARY(LIBRARY [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) define(AC_HAVE_LIBRARY, [dnl changequote(/,/)dnl @@ -1106,7 +1117,8 @@ dnl AC_COMPILE_CHECK(ECHO-TEXT, INCLUDES, FUNCTION-BODY, dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) define(AC_COMPILE_CHECK, [AC_PROVIDE([$0])dnl -AC_OBSOLETE([$0], [; instead use AC_TEST_LINK])dnl +dnl It's actually ok to use this, if you don't care about caching. +dnl AC_OBSOLETE([$0], [; instead use AC_TEST_LINK])dnl ifelse([$1], , , [AC_CHECKING([for $1]) ])dnl AC_TEST_LINK([$2], [$3], [$4], [$5])dnl @@ -1134,14 +1146,15 @@ fi rm -f conftest*] )dnl dnl -dnl AC_TEST_PROGRAM(PROGRAM, ACTION-IF-TRUE [, ACTION-IF-FALSE -dnl [, ACTION-IF-CROSS-COMPILING]]) -define(AC_TEST_PROGRAM, +dnl AC_TEST_RUN(PROGRAM, ACTION-IF-TRUE [, ACTION-IF-FALSE +dnl [, ACTION-IF-CROSS-COMPILING]]) +define(AC_TEST_RUN, [AC_PROVIDE([$0])dnl AC_REQUIRE([AC_CROSS_CHECK])dnl if test -n "$cross_compiling"; then ifelse([$4], , AC_ERROR(can not run test program while cross compiling), - [$4 + [AC_VERBOSE(using default for cross-compiling) +$4 ]) else cat > conftest.${ac_ext} <], [ +[AC_TEST_LINK( +[#include /* Arbitrary system header to define __stub macros. */], [ /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ @@ -1266,15 +1283,14 @@ define(<>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl changequote([,])dnl AC_CHECKING(size of $1) AC_CACHE_VAL(AC_CV_NAME, -[dnl If cross-compiling, the caller has to decide what to do; we can't. -AC_TEST_PROGRAM([#include +[AC_TEST_RUN([#include main() { FILE *f=fopen("conftestval", "w"); if (!f) exit(1); fprintf(f, "%d\n", sizeof($1)); exit(0); -}], AC_CV_NAME=`cat conftestval`, AC_ERROR(can not determine size of $1))])dnl +}], AC_CV_NAME=`cat conftestval`)])dnl AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME) undefine(AC_TYPE_NAME)dnl undefine(AC_CV_NAME)dnl @@ -1288,9 +1304,9 @@ dnl AC_OUTPUT([FILE...] [,EXTRA-CMDS]) define(AC_OUTPUT, [AC_CACHE_SAVE -test -z "$prefix" && prefix=/usr/local +test "x$prefix" = xNONE && prefix=/usr/local # Let make expand exec_prefix. -test -z "$exec_prefix" && exec_prefix='${prefix}' +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Any assignment to VPATH causes Sun make to only execute # the first set of double-colon rules, so remove it if not needed. diff --git a/acspecific.m4 b/acspecific.m4 index c07b6c6d..3024af70 100644 --- a/acspecific.m4 +++ b/acspecific.m4 @@ -28,58 +28,60 @@ define(AC_PROG_CC, [AC_BEFORE([$0], [AC_PROG_CPP])dnl AC_PROVIDE([$0])dnl AC_PROGRAM_CHECK(CC, gcc, gcc, cc) + # Find out if we are using GNU C, under whatever name. -cat > conftest.c < conftest.c < conftest.out 2>&1 -if egrep yes conftest.out >/dev/null 2>&1; then - GCC=yes +if ${CC-cc} -E conftest.c 2>&6 | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes else - GCC= -fi -rm -f conftest* + ac_cv_prog_gcc=no +fi])dnl +if test "$ac_cv_prog_gcc" = yes; then GCC=yes; else GCC= ; fi ])dnl dnl define(AC_PROG_CXX, [AC_BEFORE([$0],[AC_PROG_CXXCPP])dnl AC_PROVIDE([$0])dnl AC_PROGRAMS_CHECK(CXX, $CCC c++ g++ gcc CC cxx, gcc) + # Find out if we are using GNU C++, under whatever name. -cat > conftest.C < conftest.C < conftest.out 2>&1 -if egrep yes conftest.out >/dev/null 2>&1; then - GXX=yes +if ${CXX-gcc} -E conftest.C 2>&6 | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gxx=yes else - GXX= -fi -rm -f conftest* + ac_cv_prog_gxx=no +fi])dnl +if test "$ac_cv_prog_gxx" = yes; then GXX=yes; else GXX= ; fi ])dnl dnl define(AC_GCC_TRADITIONAL, [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_CPP])dnl -if test "$GCC" = yes; then +if test "$ac_cv_prog_gcc" = yes; then AC_CHECKING(whether -traditional is needed) -changequote(,)dnl - ac_pattern="Autoconf.*'x'" -changequote([,])dnl +AC_CACHE_VAL(ac_cv_prog_gcc_traditional, +[ ac_pattern="Autoconf.*'x'" ac_prog='#include Autoconf TIOCGETP' - AC_PROGRAM_EGREP($ac_pattern, $ac_prog, ac_need_trad=yes, ac_need_trad=no) + AC_PROGRAM_EGREP($ac_pattern, $ac_prog, + ac_cv_prog_gcc_traditional=yes, ac_cv_prog_gcc_traditional=no) - if test "$ac_need_trad" = no; then + if test "$ac_cv_prog_gcc_traditional" = no; then ac_prog='#include Autoconf TCGETA' - AC_PROGRAM_EGREP($ac_pattern, $ac_prog, ac_need_trad=yes) - fi - if test "$ac_need_trad" = yes; then + AC_PROGRAM_EGREP($ac_pattern, $ac_prog, ac_cv_prog_gcc_traditional=yes) + fi])dnl + if test "$ac_cv_prog_gcc_traditional" = yes; then CC="$CC -traditional" AC_VERBOSE(setting CC to $CC) fi @@ -96,15 +98,15 @@ echo 'foo(){}' > conftest.c # Make sure it works both with $CC and with simple cc. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. -if ${CC-cc} -c conftest.c -o conftest.o >/dev/null 2>&1 \ - && test -f conftest.o && ${CC-cc} -c conftest.c -o conftest.o >/dev/null 2>&1 +if ${CC-cc} -c conftest.c -o conftest.o 1>&6 2>&6 && + test -f conftest.o && ${CC-cc} -c conftest.c -o conftest.o 1>&6 2>&6 then if test "x$CC" != xcc; then # Test first that cc exists at all. - if cc -c conftest.c >/dev/null 2>&1 + if cc -c conftest.c 1>&6 2>&6 then - if cc -c conftest.c -o conftest2.o >/dev/null 2>&1 && \ - test -f conftest2.o && cc -c conftest.c -o conftest2.o >/dev/null 2>&1 + if cc -c conftest.c -o conftest2.o 1>&6 2>&6 && + test -f conftest2.o && cc -c conftest.c -o conftest2.o 1>&6 2>&6 then : else @@ -230,7 +232,7 @@ AC_SUBST(LEX_OUTPUT_ROOT)dnl ])dnl dnl define(AC_PROG_INSTALL, -[AC_REQUIRE([AC_CONFIG_AUX_DEFAULT])dnl +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Make sure to not get the incompatible SysV /etc/install and # /usr/sbin/install, which might be in PATH before a BSD-like install, # or the SunOS /usr/etc/install directory, or the AIX /bin/install, @@ -249,7 +251,7 @@ define(AC_PROG_INSTALL, # by make from ./install.sh. AC_CHECKING(for a BSD compatible install) if test -z "${INSTALL}"; then -AC_CACHE_VAL(ac_cv_path_INSTALL, +AC_CACHE_VAL(ac_cv_path_install, [ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do case "$ac_dir" in @@ -264,7 +266,7 @@ AC_CACHE_VAL(ac_cv_path_INSTALL, # OSF/1 installbsd also uses dspmsg, but is usable. : else - ac_cv_path_INSTALL="$ac_dir/$ac_prog -c" + ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi fi @@ -274,8 +276,8 @@ AC_CACHE_VAL(ac_cv_path_INSTALL, done IFS="$ac_save_ifs" # As a last resort, use the slow shell script. - test -z "$ac_cv_path_INSTALL" && ac_cv_path_INSTALL="$ac_install_sh"])dnl - INSTALL="$ac_cv_path_INSTALL" + test -z "$ac_cv_path_install" && ac_cv_path_install="$ac_install_sh"])dnl + INSTALL="$ac_cv_path_install" fi AC_SUBST(INSTALL)dnl AC_VERBOSE(setting INSTALL to $INSTALL) @@ -348,7 +350,7 @@ fi if test "$ac_stdc_hdrs" = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #define XOR(e,f) (((e) && !(f)) || (!(e) && (f))) @@ -402,14 +404,12 @@ AC_DIR_HEADER_CHECK(sys/dir.h, SYSDIR) AC_DIR_HEADER_CHECK(ndir.h, NDIR) AC_CHECKING(for closedir return value) -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include #include <$ac_dir_header> int closedir(); main() { exit(closedir(opendir(".")) != 0); }], , AC_DEFINE(VOID_CLOSEDIR)) ])dnl dnl Subroutine of AC_DIR_HEADER. -dnl ??? I tried to put this define inside AC_DIR_HEADER, but when I did -dnl that, $1 and $2 did not get expanded. --roland dnl Check if $1 is the winning directory library header file. dnl It must not only exist, but also correctly define the `DIR' type. dnl If it is really winning, define $2 and set shell var `ac_dir_header' to $1. @@ -486,7 +486,7 @@ main() exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0); }' changequote([,])dnl -AC_TEST_PROGRAM([$ac_prog], +AC_TEST_RUN([$ac_prog], AC_DEFINE(GETGROUPS_T, gid_t), AC_DEFINE(GETGROUPS_T, int)) ])dnl dnl @@ -535,7 +535,7 @@ dnl dnl define(AC_MMAP, [ AC_CHECKING(for working mmap) -AC_TEST_PROGRAM([/* Thanks to Mike Haertel and Jim Avera for this test. */ +AC_TEST_RUN([/* Thanks to Mike Haertel and Jim Avera for this test. */ #include #include #include @@ -605,12 +605,9 @@ main() ])dnl dnl define(AC_VPRINTF, -[AC_CHECKING([for vprintf]) -AC_TEST_LINK( , [vprintf();], - [ac_have_vprintf=yes AC_DEFINE(HAVE_VPRINTF)], ac_have_vprintf=no) -if test "$ac_have_vprintf" = no; then -AC_CHECKING([for _doprnt]) -AC_TEST_LINK( , [_doprnt();], AC_DEFINE(HAVE_DOPRNT)) +[AC_FUNC_CHECK(vprintf, AC_DEFINE(HAVE_VPRINTF)) +if test "$ac_cv_func_vprintf" != yes; then +AC_FUNC_CHECK(_doprnt, AC_DEFINE(HAVE_DOPRNT)) fi ])dnl dnl @@ -619,7 +616,7 @@ define(AC_VFORK, AC_HEADER_CHECK(vfork.h, AC_DEFINE(HAVE_VFORK_H)) AC_CHECKING(for working vfork) AC_REQUIRE([AC_RETSIGTYPE]) -AC_TEST_PROGRAM([/* Thanks to Paul Eggert for this test. */ +AC_TEST_RUN([/* Thanks to Paul Eggert for this test. */ #include #include #include @@ -704,7 +701,7 @@ main() { dnl define(AC_WAIT3, [AC_CHECKING(for wait3 that fills in rusage) -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include #include #include #include @@ -749,10 +746,12 @@ ac_decl="#ifdef __GNUC__ #ifdef _AIX #pragma alloca #else +#ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); #endif #endif #endif +#endif " AC_CHECKING([for alloca]) AC_TEST_LINK($ac_decl, @@ -780,7 +779,7 @@ AC_FUNC_CHECK([GETB67],AC_DEFINE([CRAY_STACKSEG_END],[GETB67]), AC_FUNC_CHECK([getb67],AC_DEFINE([CRAY_STACKSEG_END],[getb67]))))) AC_CHECKING(stack direction for C alloca) -AC_TEST_PROGRAM([find_stack_direction () +AC_TEST_RUN([find_stack_direction () { static char *addr = 0; auto char dummy; @@ -889,7 +888,7 @@ define(AC_UTIME_NULL, [AC_CHECKING(utime with null argument) rm -f conftestdata; > conftestdata # Sequent interprets utime(file, 0) to mean use start of epoch. Wrong. -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include #include main() { struct stat s, t; @@ -901,7 +900,7 @@ rm -f core ])dnl dnl define(AC_STRCOLL, [AC_CHECKING(for strcoll) -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include main () { exit (strcoll ("abc", "def") >= 0 || @@ -911,7 +910,7 @@ main () dnl define(AC_SETVBUF_REVERSED, [AC_CHECKING(whether setvbuf arguments are reversed) -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include /* If setvbuf has the reversed format, exit 0. */ main () { /* This call has the arguments reversed. @@ -999,14 +998,14 @@ define(AC_CROSS_CHECK, [AC_PROVIDE([$0])dnl AC_CHECKING(whether cross-compiling) # If we cannot run a trivial program, we must be cross compiling. -AC_TEST_PROGRAM([main(){exit(0);}], cross_compiling=, cross_compiling=yes) +AC_TEST_RUN([main(){exit(0);}], cross_compiling=, cross_compiling=yes) if test "$cross_compiling" = yes; then AC_VERBOSE(we are cross-compiling) fi])dnl dnl define(AC_CHAR_UNSIGNED, [AC_CHECKING(for unsigned characters) -AC_TEST_PROGRAM( +AC_TEST_RUN( [/* volatile prevents gcc2 from optimizing the test away on sparcs. */ #if !__STDC__ #define volatile @@ -1023,10 +1022,10 @@ dnl define(AC_LONG_DOUBLE, [AC_REQUIRE([AC_PROG_CC])dnl AC_CHECKING(for long double) -if test -n "$GCC"; then +if test "$GCC" = yes; then AC_DEFINE(HAVE_LONG_DOUBLE) else -AC_TEST_PROGRAM([int main() { +AC_TEST_RUN([int main() { /* The Stardent Vistra knows sizeof(long double), but does not support it. */ long double foo = 0.0; /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ @@ -1038,20 +1037,20 @@ dnl define(AC_INT_16_BITS, [AC_OBSOLETE([$0], [; instead use AC_SIZEOF_TYPE(int)]) AC_CHECKING(integer size) -AC_TEST_PROGRAM([main() { exit(sizeof(int) != 2); }], +AC_TEST_RUN([main() { exit(sizeof(int) != 2); }], AC_DEFINE(INT_16_BITS)) ])dnl dnl define(AC_LONG_64_BITS, [AC_OBSOLETE([$0], [; instead use AC_SIZEOF_TYPE(long)]) AC_CHECKING(for 64-bit long ints) -AC_TEST_PROGRAM([main() { exit(sizeof(long int) != 8); }], +AC_TEST_RUN([main() { exit(sizeof(long int) != 8); }], AC_DEFINE(LONG_64_BITS)) ])dnl dnl define(AC_WORDS_BIGENDIAN, [AC_CHECKING(byte ordering) -AC_TEST_PROGRAM([main () { +AC_TEST_RUN([main () { /* Are we little or big endian? From Harbison&Steele. */ union { @@ -1065,7 +1064,7 @@ AC_TEST_PROGRAM([main () { dnl define(AC_ARG_ARRAY, [AC_CHECKING(whether the address of an argument can be used as an array) -AC_TEST_PROGRAM([main() { +AC_TEST_RUN([main() { /* Return 0 iff arg arrays are ok. */ exit(!x(1, 2, 3, 4)); } @@ -1186,7 +1185,7 @@ test "$ac_some_dir_failed" = yes || AC_DEFINE(HAVE_LONG_FILE_NAMES) dnl define(AC_RESTARTABLE_SYSCALLS, [AC_CHECKING(for restartable system calls) -AC_TEST_PROGRAM( +AC_TEST_RUN( [/* Exit 0 (true) if wait returns something other than -1, i.e. the pid of the child, which means that wait was restarted after getting the signal. */ @@ -1373,8 +1372,8 @@ fi # It would also be nice to do this for all -L options, not just this one. if test -n "$x_libraries"; then X_LIBS="$X_LIBS -L$x_libraries" - if test "`(uname) 2>/dev/null`" = SunOS \ - && uname -r | grep '^5' >/dev/null; then + if test "`(uname) 2>/dev/null`" = SunOS && + uname -r | grep '^5' >/dev/null; then X_LIBS="$X_LIBS -R$x_libraries" fi fi @@ -1410,13 +1409,13 @@ AC_SUBST(X_EXTRA_LIBS)dnl dnl dnl dnl ### Checks for UNIX variants -dnl These are kludges; we need a better approach. +dnl These are kludges; we need a more systematic approach. dnl dnl define(AC_AIX, [AC_CHECKING(for AIX) AC_BEFORE([$0], [AC_TEST_LINK])dnl -AC_BEFORE([$0], [AC_TEST_PROGRAM])dnl +AC_BEFORE([$0], [AC_TEST_RUN])dnl AC_BEFORE([$0], [AC_TEST_CPP])dnl AC_PROGRAM_EGREP(yes, [#ifdef _AIX @@ -1427,7 +1426,7 @@ AC_PROGRAM_EGREP(yes, dnl define(AC_MINIX, [AC_BEFORE([$0], [AC_TEST_LINK])dnl -AC_BEFORE([$0], [AC_TEST_PROGRAM])dnl +AC_BEFORE([$0], [AC_TEST_RUN])dnl AC_BEFORE([$0], [AC_TEST_CPP])dnl AC_HEADER_CHECK(minix/config.h, MINIX=yes, MINIX=) # The Minix shell ca not assign to the same variable on the same line! @@ -1441,7 +1440,7 @@ dnl define(AC_ISC_POSIX, [AC_PROVIDE([$0])dnl AC_BEFORE([$0], [AC_TEST_LINK])dnl -AC_BEFORE([$0], [AC_TEST_PROGRAM])dnl +AC_BEFORE([$0], [AC_TEST_RUN])dnl AC_BEFORE([$0], [AC_TEST_CPP])dnl AC_CHECKING(for POSIXized ISC) if test -d /etc/conf/kconfig.d && @@ -1449,7 +1448,7 @@ if test -d /etc/conf/kconfig.d && then ISC=yes # If later tests want to check for ISC. AC_DEFINE(_POSIX_SOURCE) - if test -n "$GCC"; then + if test "$GCC" = yes; then CC="$CC -posix" else CC="$CC -Xp" diff --git a/autoconf.texi b/autoconf.texi index 4172616b..654ae846 100644 --- a/autoconf.texi +++ b/autoconf.texi @@ -6,9 +6,9 @@ @c @setchapternewpage odd @c %**end of header -@set EDITION 1.91 -@set VERSION 1.91 -@set UPDATED May 1994 +@set EDITION 1.93 +@set VERSION 1.93 +@set UPDATED June 1994 @iftex @finalout @@ -91,17 +91,17 @@ package. This is edition @value{EDITION}, for Autoconf version @value{VERSION}. @c The master menu, created with texinfo-master-menu, goes here. @menu -* Introduction:: Autoconf's purpose, strengths, and weaknesses. -* Distributing:: Legal restrictions on Autoconf output. -* Making configure Scripts:: How to organize and produce Autoconf scripts. -* Specific Tests:: Macros that check for particular features. -* General Purpose Macros:: Macros that check for kinds of features. -* Writing Macros:: How to add your own macros to Autoconf. -* Makefiles:: Information Autoconf uses in @file{Makefile}s. -* Invoking configure:: How to use the Autoconf output. -* Example:: Sample Autoconf input files. -* Preprocessor Symbol Index:: Index of C preprocessor symbols defined. -* Macro Index:: Index of Autoconf macros. +* Introduction:: Autoconf's purpose, strengths, and weaknesses. +* Distributing:: Legal restrictions on Autoconf output. +* Making configure Scripts:: How to organize and produce Autoconf scripts. +* Specific Tests:: Macros that check for particular features. +* General Purpose Macros:: Macros that check for kinds of features. +* Writing Macros:: How to add your own macros to Autoconf. +* Makefiles:: Information Autoconf uses in @file{Makefile}s. +* Invoking configure:: How to use the Autoconf output. +* Example:: Sample Autoconf input files. +* Preprocessor Symbol Index:: Index of C preprocessor symbols defined. +* Macro Index:: Index of Autoconf macros. --- The Detailed Node Listing --- @@ -125,7 +125,8 @@ Specific Tests General Purpose Macros * Setup:: Controlling Autoconf operation. -* General Feature Tests:: Checking for kinds of features. +* File Existence:: Checking whether particular files exist. +* C Features:: Checking for features of the C system. * Command Line:: Checking command line arguments. * Setting Variables:: Setting shell and @code{make} variables. * Printing Messages:: Notifying users of progress or problems. @@ -226,7 +227,7 @@ those functions are available. This problem does not exist with releases 1.06 and later of the GNU C library, which define C preprocessor macros that the Autoconf macros @code{AC_FUNC_CHECK} and @code{AC_REPLACE_FUNCS} test, indicating that certain functions are -stubs (@pxref{General Feature Tests}, for more information on checking for +stubs (@pxref{C Features}, for more information on checking for functions). @ifinfo @@ -285,7 +286,15 @@ containing @code{#define} directives (@pxref{Setup}); @item a shell script called @file{config.status} that, when run, will recreate -the files listed above (@pxref{Invoking config.status}). +the files listed above (@pxref{Invoking config.status}); + +@item +a shell script called @file{config.cache} that saves the results of +running many of the tests; + +@item +a file called @file{config.log} containing any messages produced by +compilers, to help debugging if @code{configure} makes a mistake. @end itemize To create a @code{configure} script with Autoconf, you need to write an @@ -308,6 +317,8 @@ configuration are produced. Programs that are executed are suffixed by Files used in preparing a software package for distribution: @example @group +your source files --> [autoscan*] --> [configure.scan] --> configure.in + configure.in --. .------> autoconf* -----> configure +---+ [aclocal.m4] --' `---. @@ -348,27 +359,28 @@ Autoconf macros that test the system features your package needs or can use. Autoconf macros already exist to check for many features; see @ref{Specific Tests}, for their descriptions. For most other features, you can use Autoconf template macros to produce custom checks; -see @ref{General Feature Tests}, for information about them. For especially +see @ref{General Purpose Macros}, for information about them. For especially tricky or specialized features, @file{configure.in} might need to contain some hand-crafted shell commands. @xref{Writing Macros}, for guidelines on writing tests from scratch. -Every @file{configure.in} must begin with a call to @code{AC_INIT} and -end with a call to @code{AC_OUTPUT} (@pxref{Setup}). Other than that, -the order in which @file{configure.in} calls the Autoconf macros is -generally not important, except that some macros rely on other macros -having been called first, because they check previously set values of -some variables to decide what to do. These macros are noted in the -individual descriptions (@pxref{Specific Tests}). +Other than that, the order in which @file{configure.in} calls the +Autoconf macros is generally not important, with a few exceptions. +Every @file{configure.in} must contain a call to @code{AC_INIT} before +the checks, and a call to @code{AC_OUTPUT} at the end (@pxref{Setup}). +Additionally, some macros rely on other macros having been called first, +because they check previously set values of some variables to decide +what to do. These macros are noted in the individual descriptions +(@pxref{Specific Tests}), and they also warn you if they are called out +of order. To encourage consistency, here is a suggested order for calling the -Autoconf macros. A few macros need to be called in a different order -from the one given here; they are noted in their individual descriptions -(@pxref{Specific Tests}). Note that there must not be any space -between the macro name and the open parentheses. +Autoconf macros. Note that there must not be any space between a macro +name and the open parentheses. @display @group +macros that control Autoconf operation @code{AC_INIT(@var{file})} checks for alternative programs checks for UNIX variants that set C preprocessor variables @@ -483,7 +495,7 @@ These macros test for particular operating system features that packages might need or want to use. If you need to test for a feature that none of these macros check for, you can probably do it by calling one of the general purpose test macros with appropriate arguments (@pxref{General -Feature Tests}). +Purpose Macros}). All of these macros that set @code{make} variables call @code{AC_SUBST} on those variables (@pxref{Setting Variables}, for details about @@ -547,9 +559,9 @@ finds. @defmac AC_PROG_CC @maindex PROG_CC -If @code{gcc} is found, set @code{make} variable @code{CC} to @samp{gcc}, -and set shell variable @code{GCC} to @samp{yes} for use by macros such as -@code{AC_GCC_TRADITIONAL}. Otherwise set @code{GCC} to be empty. +If @code{gcc} is found, set @code{make} variable @code{CC} to +@samp{gcc}, and set shell variable @code{GCC} to @samp{yes}. Otherwise +set @code{GCC} to be empty. @end defmac @defmac AC_PROG_CPP @@ -575,7 +587,7 @@ variable @code{CXX} to its value. Otherwise search for a C++ compiler under likely names (@code{c++}, @code{g++}, @code{gcc}, and @code{CC}). If none of those checks succeed, as a last resort set @code{CXX} to @code{gcc}. Also set shell variable @code{GXX} to @samp{yes} if it -found the GNU C++ compiler, the empty string if not. +found the GNU C++ compiler, empty otherwise. @end defmac @defmac AC_PROG_CXXCPP @@ -598,8 +610,8 @@ this macro first if it hasn't been called already. This macro calls Set @code{make} variable @code{INSTALL} to @samp{install -c} if @code{install} is found and is compatible with the BSD and GNU versions. Otherwise, set @code{INSTALL} to @samp{@var{dir}/install.sh -c}, where -it checks the directories specified to @code{AC_CONFIG_AUX} (or its -default directories) to determine @var{dir}. +it checks the directories specified to @code{AC_CONFIG_AUX_DIR} (or its +default directories) to determine @var{dir} (@pxref{Setup}). This macro screens out the false matches @file{/etc/install}, @file{/usr/sbin/install}, and other instances of @code{install} known @@ -973,7 +985,9 @@ rather than choke on it. #ifdef _AIX #pragma alloca #else /* not _AIX */ +#ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); +#endif /* not defined(alloca) */ #endif /* not _AIX */ #endif /* not HAVE_ALLOCA_H */ #endif /* not __GNUC__ */ @@ -1185,8 +1199,8 @@ were an array of values. 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 1. This information can be used by -@code{AC_TEST_PROGRAM} to determine whether to take a default action -instead of trying to run a test program (@pxref{General Feature Tests}). +@code{AC_TEST_RUN} to determine whether to take a default action +instead of trying to run a test program (@pxref{C Features}). @end defmac @defmac AC_CHAR_UNSIGNED @@ -1224,7 +1238,7 @@ define @code{inline} to be @code{__inline}. This macro calls @vindex INT_16_BITS If the C type @code{int} is 16 bits wide, define @code{INT_16_BITS}. This macro is obsolete; it is more general to use -@samp{AC_SIZEOF_TYPE(int)} instead (@pxref{General Feature Tests}). +@samp{AC_SIZEOF_TYPE(int)} instead (@pxref{C Features}). @end defmac @defmac AC_LONG_64_BITS @@ -1232,7 +1246,7 @@ This macro is obsolete; it is more general to use @vindex LONG_64_BITS If the C type @code{long int} is 64 bits wide, define @code{LONG_64_BITS}. This macro is obsolete; it is more general to use -@samp{AC_SIZEOF_TYPE(long)} instead (@pxref{General Feature Tests}). +@samp{AC_SIZEOF_TYPE(long)} instead (@pxref{C Features}). @end defmac @defmac AC_LONG_DOUBLE @@ -1395,16 +1409,35 @@ that Autoconf produces or to check whether various kinds of features are available. They all take arguments. When calling these macros, there must not be any blank space between the macro name and the open parentheses. - Arguments to these macros can be more than one line long if they are enclosed within the @code{m4} quote characters @samp{[} and @samp{]}. +Many of these macros handle two +cases: what to do if the given condition is met, and what to do if the +condition is not met. In some places you you might want to do something +if a condition is true but do nothing if it's false, or vice versa. To +omit the true case, pass an empty value for the @var{action-if-found} +argument to the macro. To omit the false case, omit the +@var{action-if-not-found} argument to the macro, including the comma +before it. + +One shell programming construction that you should not use in the action +arguments to these macros is +@samp{@var{var}=$@{@var{var}:-@var{value}@}}. Old BSD shells, including +the Ultrix @code{sh}, don't understand the colon, and complain and die. +If you omit the colon, it works fine: +@samp{@var{var}=$@{@var{var}-@var{value}@}}. Using the form without the +colon has one small disadvantage. Users can not select a default value +by giving a variable an empty value, e.g., @samp{CC= configure}. +Instead, they must unset the variable, e.g., @samp{unset CC; configure}. + Within each section below, the macros are listed in alphabetical order. These macros are defined in the file @file{acgeneral.m4}. @menu * Setup:: Controlling Autoconf operation. -* General Feature Tests:: Checking for kinds of features. +* File Existence:: Checking whether particular files exist. +* C Features:: Checking for features of the C system. * Command Line:: Checking command line arguments. * Setting Variables:: Setting shell and @code{make} variables. * Printing Messages:: Notifying users of progress or problems. @@ -1412,21 +1445,36 @@ These macros are defined in the file @file{acgeneral.m4}. * Macro Ordering:: Enforcing ordering constraints. @end menu -@node Setup, General Feature Tests, , General Purpose Macros +@node Setup, File Existence, , General Purpose Macros @section Controlling Autoconf Setup The following macros control the kind of output that Autoconf produces. +@file{configure.in} should call them before @code{AC_INIT} or +@code{AC_PREPARE}. Remember to put a @code{dnl} comment at the ends of +the lines containing their calls, to avoid inserting blank lines at the +beginning of @file{configure}. + +@defmac AC_CONFIG_AUX_DIR(@var{dir}) +@maindex CONFIG_AUX_DIR +Use the @file{install.sh}, @file{config.sub}, @file{config.guess}, and +Cygnus @file{configure} scripts that are in directory @var{dir}. These +are auxiliary files used in configuration. @var{dir} can be either +absolute or relative to @file{@var{srcdir}}. The default is +@file{@var{srcdir}} or @file{@var{srcdir}/..} or +@file{@var{srcdir}/../..}, whichever is the first that contains +@file{install.sh}. The other files are not checked for, so that using +@code{AC_PROG_INSTALL} does not automatically require distributing the +other auxiliary files. +@end defmac @defmac AC_CONFIG_HEADER (@var{header-to-create} @dots{}) @maindex CONFIG_HEADER @vindex HAVE_CONFIG_H -Make @code{AC_OUTPUT} create the file(s) in the -whitespace-separated list @var{header-to-create} containing C -preprocessor @code{#define} statements and replace @samp{@@DEFS@@} in -generated files with @samp{-DHAVE_CONFIG_H} instead of the value of -@code{DEFS}. -This macro should be called right after @code{AC_INIT}. The usual name -for @var{header-to-create} is @file{config.h}. +Make @code{AC_OUTPUT} create the file(s) in the whitespace-separated +list @var{header-to-create} containing C preprocessor @code{#define} +statements and replace @samp{@@DEFS@@} in generated files with +@samp{-DHAVE_CONFIG_H} instead of the value of @code{DEFS}. The usual +name for @var{header-to-create} is @file{config.h}. If @var{header-to-create} already exists and its contents are identical to what @code{AC_OUTPUT} would put in it, it is left alone. Doing this @@ -1444,6 +1492,20 @@ You can use the program @code{autoheader} to create @file{@var{header-to-create}.in} (@pxref{Invoking autoheader}). @end defmac +@defmac AC_CONFIG_SUBDIRS (@var{dir} @dots{}) +@maindex CONFIG_SUBDIRS +Run @code{configure} in each subdirectory @var{dir} in the given +whitespace-separated list If a given @var{dir} is not found, no error is +reported, so a @code{configure} script can configure whichever parts of +a large source tree are present. If a given @var{dir} contains +@file{configure.in} but no @file{configure}, the Cygnus @code{configure} +script found by @code{AC_CONFIG_AUXDIR} is used. + +The subdirectory @code{configure} scripts are given the same command +line options that were given to this @code{configure} script, with minor +changes if needed (e.g., to adjust a relative path for the cache file). +@end defmac + @defmac AC_INIT (@var{unique-file-in-source-dir}) @maindex INIT Process the command-line arguments and find the source code directory. @@ -1471,6 +1533,18 @@ If you pass @var{extra-cmds}, those commands will be inserted into @file{config.status} to be run after all its other processing. @end defmac +@defmac AC_PREFIX_PROGRAM (@var{program}) +@maindex PREFIX_PROGRAM +If the user did not specify an installation prefix (using the +@samp{--prefix} option), guess a value for it by looking for +@var{program} in @code{PATH}, the way the shell does. If @var{program} +is found, set the prefix to the parent of the directory containing +@var{program}; otherwise leave the prefix specified in +@file{Makefile.in} unchanged. For example, if @var{program} is +@code{gcc} and the @code{PATH} contains @file{/usr/local/gnu/bin/gcc}, +set the prefix to @file{/usr/local/gnu}. +@end defmac + @defmac AC_PREPARE (@var{unique-file-in-source-dir}) @maindex PREPARE Find the source code directory and set up shell variables necessary for @@ -1528,42 +1602,74 @@ produces this in @file{configure}: @end example @end defmac -@node General Feature Tests, Command Line, Setup, General Purpose Macros -@section Checking for Kinds of Features +@node File Existence, C Features, Setup, General Purpose Macros +@section Checking Whether Particular Files Exist -These macros are templates that, when called with actual parameters, -check for various kinds of features. Many of these macros handle two -cases: what to do if the given condition is met, and what to do if the -condition is not met. In some places you you might want to do something -if a condition is true but do nothing if it's false, or vice versa. To -omit the true case, pass an empty value for the @var{action-if-found} -argument to the macro. To omit the false case, omit the -@var{action-if-not-found} argument to the macro, including the comma -before it. +These macros check whether particular files exist. -One shell programming construction that you should not use in the action -arguments to these macros is -@samp{@var{var}=$@{@var{var}:-@var{value}@}}. Old BSD shells, including -the Ultrix @code{sh}, don't understand the colon, and complain and die. -If you omit the colon, it works fine: -@samp{@var{var}=$@{@var{var}-@var{value}@}}. Using the form without the -colon has one small disadvantage. Users can not select a default value -by giving a variable an empty value, e.g., @samp{CC= configure}. -Instead, they must unset the variable, e.g., @samp{unset CC; configure}. +@defmac AC_HAVE_LIBRARY (@var{library} @r{[}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]]}) +@maindex HAVE_LIBRARY +Create a test C program to see whether that program can be linked with +the specified library. @var{action-if-found} is a list of shell +commands to run if the link succeeds (which means that the library is +present); @var{action-if-not-found} is a list of shell commands to run +if the link fails. If @var{action-if-found} and +@var{action-if-not-found} are not specified, the default action is to +add @samp{-lfoo} to @code{LIBS} and define @samp{HAVE_LIBfoo} +for library @samp{foo}. @var{library} can be written as any of +@samp{foo}, @samp{-lfoo}, or @samp{libfoo.a}. In all of those cases, +the compiler is passed @samp{-lfoo}. +@end defmac -@xref{Writing Macros}, for more information on how best to use these -macros. +@defmac AC_PREFIX (@var{program}) +@maindex PREFIX +This macro is like @code{AC_PREFIX_PROGRAM}, except that it prevents +finding the site-wide defaults file correctly, so it is obsolete. +@end defmac + +@defmac AC_PROGRAM_CHECK (@var{variable}, @var{prog-to-check-for}, @var{value-if-found} @r{[}, @var{value-if-not-found}@r{]}) +@maindex PROGRAM_CHECK +Check whether program @var{prog-to-check-for} exists in @code{PATH}. If +it is found, set @var{variable} to @var{value-if-found}, otherwise to +@var{value-if-not-found}, if given. If @var{variable} was already set, +do nothing. Calls @code{AC_SUBST} for @var{variable}. +@end defmac + +@defmac AC_PROGRAM_PATH (@var{variable}, @var{prog-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) +@maindex PROGRAM_PATH +Similar to @code{AC_PROGRAM_CHECK}, but set @var{variable} to the entire +path of @var{prog-to-check-for} if found. Otherwise, set @var{variable} +to @var{value-if-not-found}, if given. If @var{variable} was already +set, do nothing. Calls @code{AC_SUBST} for @var{variable}. +@end defmac + +@defmac AC_PROGRAMS_CHECK (@var{variable}, @var{progs-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) +@maindex PROGRAMS_CHECK +Check for each program in the whitespace-separated list +@var{progs-to-check-for} exists in @code{PATH}. If it is found, set +@var{variable} to the name of that program. Otherwise, continue +checking the next program in the list. If none of the programs in the +list are found, set @var{variable} to @var{value-if-not-found}; if +@var{value-if-not-found} is not specified, the value of @var{variable} +is not changed. Calls @code{AC_SUBST} for @var{variable}. +@end defmac + +@defmac AC_PROGRAMS_PATH (@var{variable}, @var{progs-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) +@maindex PROGRAMS_PATH +Like @code{AC_PROGRAMS_CHECK}, but if any of @var{progs-to-check-for} +are found, set @var{variable} to the entire pathname of the program +found. +@end defmac + +@node C Features, Command Line, File Existence, General Purpose Macros +@section Checking For C Features + +These macros check for features of the C compiler, libraries, and headers. @defmac AC_COMPILE_CHECK (@var{echo-text}, @var{includes}, @var{function-body}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]}) @maindex COMPILE_CHECK - -Print @samp{checking for @var{echo-text}} to the standard output -(using @code{AC_CHECKING}, @pxref{Printing Messages}). -Create a test C program to see whether a function whose body consists of -@var{function-body} can be compiled and linked; @var{includes} is any -@code{#include} statements needed by the code in @var{function-body}. -If the file compiles and links successfully, run shell commands -@var{action-if-found}, otherwise run @var{action-if-not-found}. +This is an obsolete alias for @code{AC_TEST_LINK}, with the addition that it +prints @samp{checking for @var{echo-text}} to the standard output first. @end defmac @defmac AC_FUNC_CHECK (@var{function}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]}) @@ -1595,20 +1701,6 @@ list that exists, define @code{HAVE_@var{header-file}} (in all caps). it is used here. @end defmac -@defmac AC_HAVE_LIBRARY (@var{library} @r{[}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]]}) -@maindex HAVE_LIBRARY -Create a test C program to see whether that program can be linked with -the specified library. @var{action-if-found} is a list of shell -commands to run if the link succeeds (which means that the library is -present); @var{action-if-not-found} is a list of shell commands to run -if the link fails. If @var{action-if-found} and -@var{action-if-not-found} are not specified, the default action is to -add @samp{-lfoo} to @code{LIBS} and define @samp{HAVE_LIBfoo} -for library @samp{foo}. @var{library} can be written as any of -@samp{foo}, @samp{-lfoo}, or @samp{libfoo.a}. In all of those cases, -the compiler is passed @samp{-lfoo}. -@end defmac - @defmac AC_HEADER_CHECK (@var{header-file}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]}) @maindex HEADER_CHECK If @var{header-file} exists, execute shell commands @@ -1634,14 +1726,6 @@ almost always detect them by simply using @code{#ifdef} directives in your programs. @end defmac -@defmac AC_PROGRAM_CHECK (@var{variable}, @var{prog-to-check-for}, @var{value-if-found} @r{[}, @var{value-if-not-found}@r{]}) -@maindex PROGRAM_CHECK -Check whether program @var{prog-to-check-for} exists in @code{PATH}. If -it is found, set @var{variable} to @var{value-if-found}, otherwise to -@var{value-if-not-found}, if given. If @var{variable} was already set, -do nothing. Calls @code{AC_SUBST} for @var{variable}. -@end defmac - @defmac AC_PROGRAM_EGREP (@var{pattern}, @var{program}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]}) @maindex PROGRAM_EGREP @var{program} is the text of a C or C++ program, on which shell variable and @@ -1657,32 +1741,6 @@ on which language is current, @pxref{Language Choice}), if it hasn't been called already. @end defmac -@defmac AC_PROGRAM_PATH (@var{variable}, @var{prog-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) -@maindex PROGRAM_PATH -Similar to @code{AC_PROGRAM_CHECK}, but set @var{variable} to the entire -path of @var{prog-to-check-for} if found. Otherwise, set @var{variable} -to @var{value-if-not-found}, if given. If @var{variable} was already -set, do nothing. Calls @code{AC_SUBST} for @var{variable}. -@end defmac - -@defmac AC_PROGRAMS_CHECK (@var{variable}, @var{progs-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) -@maindex PROGRAMS_CHECK -Check for each program in the whitespace-separated list -@var{progs-to-check-for} exists in @code{PATH}. If it is found, set -@var{variable} to the name of that program. Otherwise, continue -checking the next program in the list. If none of the programs in the -list are found, set @var{variable} to @var{value-if-not-found}; if -@var{value-if-not-found} is not specified, the value of @var{variable} -is not changed. Calls @code{AC_SUBST} for @var{variable}. -@end defmac - -@defmac AC_PROGRAMS_PATH (@var{variable}, @var{progs-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) -@maindex PROGRAMS_PATH -Like @code{AC_PROGRAMS_CHECK}, but if any of @var{progs-to-check-for} -are found, set @var{variable} to the entire pathname of the program -found. -@end defmac - @defmac AC_REPLACE_FUNCS (@var{function-name}@dots{}) @maindex REPLACE_FUNCS For each given @var{function-name} in the whitespace-separated argument @@ -1720,8 +1778,22 @@ on which language is current, @pxref{Language Choice}), if it hasn't been called already. @end defmac +@defmac AC_TEST_LINK (@var{includes}, @var{function-body}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]}) +@maindex TEST_LINK +Create a test C program to see whether a function whose body consists of +@var{function-body} can be compiled and linked; @var{includes} is any +@code{#include} statements needed by the code in @var{function-body}. +If the file compiles and links successfully, run shell commands +@var{action-if-found}, otherwise run @var{action-if-not-found}. +@end defmac + @defmac AC_TEST_PROGRAM (@var{program}, @var{action-if-true} @r{[}, @var{action-if-false} @r{[}, @var{action-if-cross-compiling}@r{]]}) @maindex TEST_PROGRAM +This is an obsolete alias for @code{AC_TEST_RUN}. +@end defmac + +@defmac AC_TEST_RUN (@var{program}, @var{action-if-true} @r{[}, @var{action-if-false} @r{[}, @var{action-if-cross-compiling}@r{]]}) +@maindex TEST_RUN @var{program} is the text of a C program, on which shell variable and backquote substitutions are performed. If it compiles and links successfully and returns an exit status of 0 when executed, run shell @@ -1736,28 +1808,35 @@ run. If that argument is given, this macro calls @code{AC_CROSS_CHECK} if it has not already been called (@pxref{Compiler Characteristics}). @end defmac -@node Command Line, Setting Variables, General Feature Tests, General Purpose Macros +@node Command Line, Setting Variables, C Features, General Purpose Macros @section Checking Command Line Arguments These macros check whether the user gave @code{configure} various command line arguments. Like the general feature tests (@pxref{General -Feature Tests}), they may take an argument to use if the argument was +Purpose Macros}), they may take an argument to use if the argument was given and one for if it was not given. -@defmac AC_ENABLE (@var{feature}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) -@maindex ENABLE +@defmac AC_ARG_ENABLE (@var{feature}, @var{help-string}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) +@maindex ARG_ENABLE If the user gave @code{configure} the option @samp{--enable-@var{feature}} or @samp{--disable-@var{feature}}, run shell commands @var{action-if-true}. Otherwise run shell commands -@var{action-if-false}. The name @var{feature} should consist only of -alphanumeric characters and dashes. +@var{action-if-false}. @var{help-string} is a description of +the option which looks like this: +@example +--enable-readline support fancy command line editing +@end example +@noindent +@var{help-string} may be more than one line long, if more detail is +needed. Just make sure the columns line up in @samp{configure --help}. -The @var{feature} indicates an optional user-level facility. This -option allows users to choose which optional features to build and -install. @samp{--enable-@var{feature}} options should never make a -feature behave differently or cause one feature to replace another. -They should only cause parts of the program to be built rather than left -out. +The name @var{feature} should consist only of alphanumeric characters +and dashes. The @var{feature} indicates an optional user-level +facility. This option allows users to choose which optional features to +build and install. @samp{--enable-@var{feature}} options should never +make a feature behave differently or cause one feature to replace +another. They should only cause parts of the program to be built rather +than left out. The user can give an argument by following the feature name with @samp{=} and the argument. Giving an argument of @samp{no} indicates @@ -1770,34 +1849,28 @@ the shell variable @code{enableval}. If no argument was given to @samp{--disable-@var{feature}} is equivalent to @samp{--enable-@var{feature}=no}. At present, arguments containing blanks are not handled correctly; if you need an argument to contain a list, -require the items to be separated by commas instead. (This restriction -might disappear in the future.) +require the items to be separated by commas instead. @end defmac -@defmac AC_PREFIX (@var{program}) -@maindex PREFIX -If the user did not specify an installation prefix (using the -@samp{--prefix} option), guess a value for it by looking for -@var{program} in @code{PATH}, the way the shell does. If @var{program} -is found, set the prefix to the parent of the directory containing -@var{program}; otherwise leave the prefix specified in -@file{Makefile.in} unchanged. For example, if @var{program} is -@code{gcc} and the @code{PATH} contains @file{/usr/local/gnu/bin/gcc}, -set the prefix to @file{/usr/local/gnu}. -@end defmac - -@defmac AC_WITH (@var{package}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) -@maindex WITH +@defmac AC_ARG_WITH (@var{package}, @var{help-string}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) +@maindex ARG_WITH If the user gave @code{configure} the option @samp{--with-@var{package}} or @samp{--without-@var{package}}, run shell commands @var{action-if-true}. Otherwise run shell commands -@var{action-if-false}. The name @var{package} should consist only of -alphanumeric characters and dashes. +@var{action-if-false}. @var{help-string} is a description of +the option which looks like this: +@example +--with-gnu-as use the GNU assembler +@end example +@noindent +@var{help-string} may be more than one line long, if more detail is +needed. Just make sure the columns line up in @samp{configure --help}. -The @var{package} indicates another software package that this program -should work with. For example, @samp{--with-gnu-ld} means work with the -GNU linker instead of some other linker. @samp{--with-x11} means work -with X11. +The name @var{package} should consist only of alphanumeric characters +and dashes. The @var{package} indicates another software package that +this program should work with. For example, @samp{--with-gnu-ld} means +work with the GNU linker instead of some other linker. +@samp{--with-x11} means work with X11. The user can give an argument by following the package name with @samp{=} and the argument. Giving an argument of @samp{no} is for @@ -1813,8 +1886,19 @@ the shell variable @code{withval}. If no argument was given to @samp{--without-@var{package}} is equivalent to @samp{--with-@var{package}=no}. At present, arguments containing blanks are not handled correctly; if you need an argument to contain a list, -require the items to be separated by commas instead. (This restriction -might disappear in the future.) +require the items to be separated by commas instead. +@end defmac + +@defmac AC_ENABLE (@var{feature}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) +@maindex ENABLE +This is an obsolete version of @code{AC_ARG_ENABLE} that does not +provide a help string. +@end defmac + +@defmac AC_WITH (@var{package}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) +@maindex WITH +This is an obsolete version of @code{AC_ARG_WITH} that does not +provide a help string. @end defmac @node Setting Variables, Printing Messages, Command Line, General Purpose Macros @@ -1923,6 +2007,17 @@ LIBS="$LIBS -ltermcap" @end example @end defmac +@ignore +@defmac AC_SUBST_FILE (@var{variable}, @var{file}) +@maindex SUBST_FILE +Substitute the contents of the file @file{@var{srcdir}/@var{file}} into +@file{Makefile} variable @var{variable} when creating the output files +(typically one or more @file{Makefile}s). This macro is useful for +inserting @file{Makefile} fragments for particular host or tartet types +into @file{Makefile}s. +@end defmac +@end ignore + @node Printing Messages, Language Choice, Setting Variables, General Purpose Macros @section Printing Messages @@ -2272,19 +2367,19 @@ come later should contain a call to @code{AC_PROVIDE}. For example, @code{AC_AIX} contains @example -AC_BEFORE([$0], [AC_COMPILE_CHECK]) +AC_BEFORE([$0], [AC_TEST_LINK]) @end example @noindent -and @code{AC_COMPILE_CHECK} contains +and @code{AC_TEST_LINK} contains @example AC_PROVIDE([$0]) @end example @noindent -As a result, if @code{AC_AIX} is called after @code{AC_COMPILE_CHECK}, -it will note that @code{AC_COMPILE_CHECK} has already been called and +As a result, if @code{AC_AIX} is called after @code{AC_TEST_LINK}, +it will note that @code{AC_TEST_LINK} has already been called and print a warning message. @node Checking for Files, Checking for Symbols, Dependencies Between Macros, Writing Macros @@ -2308,7 +2403,7 @@ Do not use @samp{test -x}, because 4.3BSD does not have it. Use If you need to check whether a symbol is defined in a C header file, you can use @code{AC_HEADER_EGREP} if the symbol is not a C preprocessor -macro (@pxref{General Feature Tests}), or compile a small test program that includes +macro (@pxref{C Features}), or compile a small test program that includes the file and references the symbol (@pxref{Test Programs}). Don't directly @code{grep} for the symbol in the file, because on some systems it might be defined in another header file that the file you are @@ -2355,16 +2450,16 @@ than scanning the libraries. If you need to check for a condition other than whether some symbol exists on the system or has a certain value, then you can't use -@code{AC_COMPILE_CHECK} (@pxref{General Feature Tests}). You have to write a +@code{AC_TEST_LINK} (@pxref{C Features}). You have to write a test program by hand. You can compile and run it using -@code{AC_TEST_PROGRAM} (@pxref{General Feature Tests}). +@code{AC_TEST_RUN} (@pxref{C Features}). Try to avoid writing test programs if possible, because using them prevents people from configuring your package for cross-compiling. If it's really best that you test for a run-time behavior, try to provide a default ``worst case'' value to use when cross-compiling makes run-time tests impossible. You do this by passing the optional last argument to -@code{AC_TEST_PROGRAM}. +@code{AC_TEST_RUN}. @menu * Guidelines:: General rules for writing test programs. @@ -2526,7 +2621,7 @@ redundant. @defvar LIBOBJS Names of object files (ending in @file{.o}). Set by -@code{AC_REPLACE_FUNCS} (@pxref{General Feature Tests}). +@code{AC_REPLACE_FUNCS} (@pxref{C Features}). @end defvar @node VPATH Substitutions, Automatic Remaking, Predefined Variables, Makefiles @@ -2791,7 +2886,14 @@ The shell with which to run @code{configure} for the @samp{--recheck} option. The default is @file{/bin/sh}. @end defvar -The following two variables provide one way for separately distributed +@defvar CONFIG_STATUS +The file name to use for the shell script that records the +configuration. The default is @file{./config.status}. This variable is +useful when one package uses parts of another and the @file{configure} +scripts shouldn't be merged because they are maintained separately. +@end defvar + +The following variables provide one way for separately distributed packages to share the values computed by @code{configure}. Doing so can be useful if some of the packages need a superset of the features that one of them, perhaps a common library, does. These variables allow a diff --git a/doc/Makefile.in b/doc/Makefile.in index a6f2495e..701ee6d9 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -156,7 +156,7 @@ clean: mostlyclean: clean distclean: clean - rm -f Makefile config.status config.cache + rm -f Makefile config.status config.cache config.log realclean: distclean rm -f TAGS *.info* diff --git a/doc/autoconf.texi b/doc/autoconf.texi index 4172616b..654ae846 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -6,9 +6,9 @@ @c @setchapternewpage odd @c %**end of header -@set EDITION 1.91 -@set VERSION 1.91 -@set UPDATED May 1994 +@set EDITION 1.93 +@set VERSION 1.93 +@set UPDATED June 1994 @iftex @finalout @@ -91,17 +91,17 @@ package. This is edition @value{EDITION}, for Autoconf version @value{VERSION}. @c The master menu, created with texinfo-master-menu, goes here. @menu -* Introduction:: Autoconf's purpose, strengths, and weaknesses. -* Distributing:: Legal restrictions on Autoconf output. -* Making configure Scripts:: How to organize and produce Autoconf scripts. -* Specific Tests:: Macros that check for particular features. -* General Purpose Macros:: Macros that check for kinds of features. -* Writing Macros:: How to add your own macros to Autoconf. -* Makefiles:: Information Autoconf uses in @file{Makefile}s. -* Invoking configure:: How to use the Autoconf output. -* Example:: Sample Autoconf input files. -* Preprocessor Symbol Index:: Index of C preprocessor symbols defined. -* Macro Index:: Index of Autoconf macros. +* Introduction:: Autoconf's purpose, strengths, and weaknesses. +* Distributing:: Legal restrictions on Autoconf output. +* Making configure Scripts:: How to organize and produce Autoconf scripts. +* Specific Tests:: Macros that check for particular features. +* General Purpose Macros:: Macros that check for kinds of features. +* Writing Macros:: How to add your own macros to Autoconf. +* Makefiles:: Information Autoconf uses in @file{Makefile}s. +* Invoking configure:: How to use the Autoconf output. +* Example:: Sample Autoconf input files. +* Preprocessor Symbol Index:: Index of C preprocessor symbols defined. +* Macro Index:: Index of Autoconf macros. --- The Detailed Node Listing --- @@ -125,7 +125,8 @@ Specific Tests General Purpose Macros * Setup:: Controlling Autoconf operation. -* General Feature Tests:: Checking for kinds of features. +* File Existence:: Checking whether particular files exist. +* C Features:: Checking for features of the C system. * Command Line:: Checking command line arguments. * Setting Variables:: Setting shell and @code{make} variables. * Printing Messages:: Notifying users of progress or problems. @@ -226,7 +227,7 @@ those functions are available. This problem does not exist with releases 1.06 and later of the GNU C library, which define C preprocessor macros that the Autoconf macros @code{AC_FUNC_CHECK} and @code{AC_REPLACE_FUNCS} test, indicating that certain functions are -stubs (@pxref{General Feature Tests}, for more information on checking for +stubs (@pxref{C Features}, for more information on checking for functions). @ifinfo @@ -285,7 +286,15 @@ containing @code{#define} directives (@pxref{Setup}); @item a shell script called @file{config.status} that, when run, will recreate -the files listed above (@pxref{Invoking config.status}). +the files listed above (@pxref{Invoking config.status}); + +@item +a shell script called @file{config.cache} that saves the results of +running many of the tests; + +@item +a file called @file{config.log} containing any messages produced by +compilers, to help debugging if @code{configure} makes a mistake. @end itemize To create a @code{configure} script with Autoconf, you need to write an @@ -308,6 +317,8 @@ configuration are produced. Programs that are executed are suffixed by Files used in preparing a software package for distribution: @example @group +your source files --> [autoscan*] --> [configure.scan] --> configure.in + configure.in --. .------> autoconf* -----> configure +---+ [aclocal.m4] --' `---. @@ -348,27 +359,28 @@ Autoconf macros that test the system features your package needs or can use. Autoconf macros already exist to check for many features; see @ref{Specific Tests}, for their descriptions. For most other features, you can use Autoconf template macros to produce custom checks; -see @ref{General Feature Tests}, for information about them. For especially +see @ref{General Purpose Macros}, for information about them. For especially tricky or specialized features, @file{configure.in} might need to contain some hand-crafted shell commands. @xref{Writing Macros}, for guidelines on writing tests from scratch. -Every @file{configure.in} must begin with a call to @code{AC_INIT} and -end with a call to @code{AC_OUTPUT} (@pxref{Setup}). Other than that, -the order in which @file{configure.in} calls the Autoconf macros is -generally not important, except that some macros rely on other macros -having been called first, because they check previously set values of -some variables to decide what to do. These macros are noted in the -individual descriptions (@pxref{Specific Tests}). +Other than that, the order in which @file{configure.in} calls the +Autoconf macros is generally not important, with a few exceptions. +Every @file{configure.in} must contain a call to @code{AC_INIT} before +the checks, and a call to @code{AC_OUTPUT} at the end (@pxref{Setup}). +Additionally, some macros rely on other macros having been called first, +because they check previously set values of some variables to decide +what to do. These macros are noted in the individual descriptions +(@pxref{Specific Tests}), and they also warn you if they are called out +of order. To encourage consistency, here is a suggested order for calling the -Autoconf macros. A few macros need to be called in a different order -from the one given here; they are noted in their individual descriptions -(@pxref{Specific Tests}). Note that there must not be any space -between the macro name and the open parentheses. +Autoconf macros. Note that there must not be any space between a macro +name and the open parentheses. @display @group +macros that control Autoconf operation @code{AC_INIT(@var{file})} checks for alternative programs checks for UNIX variants that set C preprocessor variables @@ -483,7 +495,7 @@ These macros test for particular operating system features that packages might need or want to use. If you need to test for a feature that none of these macros check for, you can probably do it by calling one of the general purpose test macros with appropriate arguments (@pxref{General -Feature Tests}). +Purpose Macros}). All of these macros that set @code{make} variables call @code{AC_SUBST} on those variables (@pxref{Setting Variables}, for details about @@ -547,9 +559,9 @@ finds. @defmac AC_PROG_CC @maindex PROG_CC -If @code{gcc} is found, set @code{make} variable @code{CC} to @samp{gcc}, -and set shell variable @code{GCC} to @samp{yes} for use by macros such as -@code{AC_GCC_TRADITIONAL}. Otherwise set @code{GCC} to be empty. +If @code{gcc} is found, set @code{make} variable @code{CC} to +@samp{gcc}, and set shell variable @code{GCC} to @samp{yes}. Otherwise +set @code{GCC} to be empty. @end defmac @defmac AC_PROG_CPP @@ -575,7 +587,7 @@ variable @code{CXX} to its value. Otherwise search for a C++ compiler under likely names (@code{c++}, @code{g++}, @code{gcc}, and @code{CC}). If none of those checks succeed, as a last resort set @code{CXX} to @code{gcc}. Also set shell variable @code{GXX} to @samp{yes} if it -found the GNU C++ compiler, the empty string if not. +found the GNU C++ compiler, empty otherwise. @end defmac @defmac AC_PROG_CXXCPP @@ -598,8 +610,8 @@ this macro first if it hasn't been called already. This macro calls Set @code{make} variable @code{INSTALL} to @samp{install -c} if @code{install} is found and is compatible with the BSD and GNU versions. Otherwise, set @code{INSTALL} to @samp{@var{dir}/install.sh -c}, where -it checks the directories specified to @code{AC_CONFIG_AUX} (or its -default directories) to determine @var{dir}. +it checks the directories specified to @code{AC_CONFIG_AUX_DIR} (or its +default directories) to determine @var{dir} (@pxref{Setup}). This macro screens out the false matches @file{/etc/install}, @file{/usr/sbin/install}, and other instances of @code{install} known @@ -973,7 +985,9 @@ rather than choke on it. #ifdef _AIX #pragma alloca #else /* not _AIX */ +#ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); +#endif /* not defined(alloca) */ #endif /* not _AIX */ #endif /* not HAVE_ALLOCA_H */ #endif /* not __GNUC__ */ @@ -1185,8 +1199,8 @@ were an array of values. 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 1. This information can be used by -@code{AC_TEST_PROGRAM} to determine whether to take a default action -instead of trying to run a test program (@pxref{General Feature Tests}). +@code{AC_TEST_RUN} to determine whether to take a default action +instead of trying to run a test program (@pxref{C Features}). @end defmac @defmac AC_CHAR_UNSIGNED @@ -1224,7 +1238,7 @@ define @code{inline} to be @code{__inline}. This macro calls @vindex INT_16_BITS If the C type @code{int} is 16 bits wide, define @code{INT_16_BITS}. This macro is obsolete; it is more general to use -@samp{AC_SIZEOF_TYPE(int)} instead (@pxref{General Feature Tests}). +@samp{AC_SIZEOF_TYPE(int)} instead (@pxref{C Features}). @end defmac @defmac AC_LONG_64_BITS @@ -1232,7 +1246,7 @@ This macro is obsolete; it is more general to use @vindex LONG_64_BITS If the C type @code{long int} is 64 bits wide, define @code{LONG_64_BITS}. This macro is obsolete; it is more general to use -@samp{AC_SIZEOF_TYPE(long)} instead (@pxref{General Feature Tests}). +@samp{AC_SIZEOF_TYPE(long)} instead (@pxref{C Features}). @end defmac @defmac AC_LONG_DOUBLE @@ -1395,16 +1409,35 @@ that Autoconf produces or to check whether various kinds of features are available. They all take arguments. When calling these macros, there must not be any blank space between the macro name and the open parentheses. - Arguments to these macros can be more than one line long if they are enclosed within the @code{m4} quote characters @samp{[} and @samp{]}. +Many of these macros handle two +cases: what to do if the given condition is met, and what to do if the +condition is not met. In some places you you might want to do something +if a condition is true but do nothing if it's false, or vice versa. To +omit the true case, pass an empty value for the @var{action-if-found} +argument to the macro. To omit the false case, omit the +@var{action-if-not-found} argument to the macro, including the comma +before it. + +One shell programming construction that you should not use in the action +arguments to these macros is +@samp{@var{var}=$@{@var{var}:-@var{value}@}}. Old BSD shells, including +the Ultrix @code{sh}, don't understand the colon, and complain and die. +If you omit the colon, it works fine: +@samp{@var{var}=$@{@var{var}-@var{value}@}}. Using the form without the +colon has one small disadvantage. Users can not select a default value +by giving a variable an empty value, e.g., @samp{CC= configure}. +Instead, they must unset the variable, e.g., @samp{unset CC; configure}. + Within each section below, the macros are listed in alphabetical order. These macros are defined in the file @file{acgeneral.m4}. @menu * Setup:: Controlling Autoconf operation. -* General Feature Tests:: Checking for kinds of features. +* File Existence:: Checking whether particular files exist. +* C Features:: Checking for features of the C system. * Command Line:: Checking command line arguments. * Setting Variables:: Setting shell and @code{make} variables. * Printing Messages:: Notifying users of progress or problems. @@ -1412,21 +1445,36 @@ These macros are defined in the file @file{acgeneral.m4}. * Macro Ordering:: Enforcing ordering constraints. @end menu -@node Setup, General Feature Tests, , General Purpose Macros +@node Setup, File Existence, , General Purpose Macros @section Controlling Autoconf Setup The following macros control the kind of output that Autoconf produces. +@file{configure.in} should call them before @code{AC_INIT} or +@code{AC_PREPARE}. Remember to put a @code{dnl} comment at the ends of +the lines containing their calls, to avoid inserting blank lines at the +beginning of @file{configure}. + +@defmac AC_CONFIG_AUX_DIR(@var{dir}) +@maindex CONFIG_AUX_DIR +Use the @file{install.sh}, @file{config.sub}, @file{config.guess}, and +Cygnus @file{configure} scripts that are in directory @var{dir}. These +are auxiliary files used in configuration. @var{dir} can be either +absolute or relative to @file{@var{srcdir}}. The default is +@file{@var{srcdir}} or @file{@var{srcdir}/..} or +@file{@var{srcdir}/../..}, whichever is the first that contains +@file{install.sh}. The other files are not checked for, so that using +@code{AC_PROG_INSTALL} does not automatically require distributing the +other auxiliary files. +@end defmac @defmac AC_CONFIG_HEADER (@var{header-to-create} @dots{}) @maindex CONFIG_HEADER @vindex HAVE_CONFIG_H -Make @code{AC_OUTPUT} create the file(s) in the -whitespace-separated list @var{header-to-create} containing C -preprocessor @code{#define} statements and replace @samp{@@DEFS@@} in -generated files with @samp{-DHAVE_CONFIG_H} instead of the value of -@code{DEFS}. -This macro should be called right after @code{AC_INIT}. The usual name -for @var{header-to-create} is @file{config.h}. +Make @code{AC_OUTPUT} create the file(s) in the whitespace-separated +list @var{header-to-create} containing C preprocessor @code{#define} +statements and replace @samp{@@DEFS@@} in generated files with +@samp{-DHAVE_CONFIG_H} instead of the value of @code{DEFS}. The usual +name for @var{header-to-create} is @file{config.h}. If @var{header-to-create} already exists and its contents are identical to what @code{AC_OUTPUT} would put in it, it is left alone. Doing this @@ -1444,6 +1492,20 @@ You can use the program @code{autoheader} to create @file{@var{header-to-create}.in} (@pxref{Invoking autoheader}). @end defmac +@defmac AC_CONFIG_SUBDIRS (@var{dir} @dots{}) +@maindex CONFIG_SUBDIRS +Run @code{configure} in each subdirectory @var{dir} in the given +whitespace-separated list If a given @var{dir} is not found, no error is +reported, so a @code{configure} script can configure whichever parts of +a large source tree are present. If a given @var{dir} contains +@file{configure.in} but no @file{configure}, the Cygnus @code{configure} +script found by @code{AC_CONFIG_AUXDIR} is used. + +The subdirectory @code{configure} scripts are given the same command +line options that were given to this @code{configure} script, with minor +changes if needed (e.g., to adjust a relative path for the cache file). +@end defmac + @defmac AC_INIT (@var{unique-file-in-source-dir}) @maindex INIT Process the command-line arguments and find the source code directory. @@ -1471,6 +1533,18 @@ If you pass @var{extra-cmds}, those commands will be inserted into @file{config.status} to be run after all its other processing. @end defmac +@defmac AC_PREFIX_PROGRAM (@var{program}) +@maindex PREFIX_PROGRAM +If the user did not specify an installation prefix (using the +@samp{--prefix} option), guess a value for it by looking for +@var{program} in @code{PATH}, the way the shell does. If @var{program} +is found, set the prefix to the parent of the directory containing +@var{program}; otherwise leave the prefix specified in +@file{Makefile.in} unchanged. For example, if @var{program} is +@code{gcc} and the @code{PATH} contains @file{/usr/local/gnu/bin/gcc}, +set the prefix to @file{/usr/local/gnu}. +@end defmac + @defmac AC_PREPARE (@var{unique-file-in-source-dir}) @maindex PREPARE Find the source code directory and set up shell variables necessary for @@ -1528,42 +1602,74 @@ produces this in @file{configure}: @end example @end defmac -@node General Feature Tests, Command Line, Setup, General Purpose Macros -@section Checking for Kinds of Features +@node File Existence, C Features, Setup, General Purpose Macros +@section Checking Whether Particular Files Exist -These macros are templates that, when called with actual parameters, -check for various kinds of features. Many of these macros handle two -cases: what to do if the given condition is met, and what to do if the -condition is not met. In some places you you might want to do something -if a condition is true but do nothing if it's false, or vice versa. To -omit the true case, pass an empty value for the @var{action-if-found} -argument to the macro. To omit the false case, omit the -@var{action-if-not-found} argument to the macro, including the comma -before it. +These macros check whether particular files exist. -One shell programming construction that you should not use in the action -arguments to these macros is -@samp{@var{var}=$@{@var{var}:-@var{value}@}}. Old BSD shells, including -the Ultrix @code{sh}, don't understand the colon, and complain and die. -If you omit the colon, it works fine: -@samp{@var{var}=$@{@var{var}-@var{value}@}}. Using the form without the -colon has one small disadvantage. Users can not select a default value -by giving a variable an empty value, e.g., @samp{CC= configure}. -Instead, they must unset the variable, e.g., @samp{unset CC; configure}. +@defmac AC_HAVE_LIBRARY (@var{library} @r{[}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]]}) +@maindex HAVE_LIBRARY +Create a test C program to see whether that program can be linked with +the specified library. @var{action-if-found} is a list of shell +commands to run if the link succeeds (which means that the library is +present); @var{action-if-not-found} is a list of shell commands to run +if the link fails. If @var{action-if-found} and +@var{action-if-not-found} are not specified, the default action is to +add @samp{-lfoo} to @code{LIBS} and define @samp{HAVE_LIBfoo} +for library @samp{foo}. @var{library} can be written as any of +@samp{foo}, @samp{-lfoo}, or @samp{libfoo.a}. In all of those cases, +the compiler is passed @samp{-lfoo}. +@end defmac -@xref{Writing Macros}, for more information on how best to use these -macros. +@defmac AC_PREFIX (@var{program}) +@maindex PREFIX +This macro is like @code{AC_PREFIX_PROGRAM}, except that it prevents +finding the site-wide defaults file correctly, so it is obsolete. +@end defmac + +@defmac AC_PROGRAM_CHECK (@var{variable}, @var{prog-to-check-for}, @var{value-if-found} @r{[}, @var{value-if-not-found}@r{]}) +@maindex PROGRAM_CHECK +Check whether program @var{prog-to-check-for} exists in @code{PATH}. If +it is found, set @var{variable} to @var{value-if-found}, otherwise to +@var{value-if-not-found}, if given. If @var{variable} was already set, +do nothing. Calls @code{AC_SUBST} for @var{variable}. +@end defmac + +@defmac AC_PROGRAM_PATH (@var{variable}, @var{prog-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) +@maindex PROGRAM_PATH +Similar to @code{AC_PROGRAM_CHECK}, but set @var{variable} to the entire +path of @var{prog-to-check-for} if found. Otherwise, set @var{variable} +to @var{value-if-not-found}, if given. If @var{variable} was already +set, do nothing. Calls @code{AC_SUBST} for @var{variable}. +@end defmac + +@defmac AC_PROGRAMS_CHECK (@var{variable}, @var{progs-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) +@maindex PROGRAMS_CHECK +Check for each program in the whitespace-separated list +@var{progs-to-check-for} exists in @code{PATH}. If it is found, set +@var{variable} to the name of that program. Otherwise, continue +checking the next program in the list. If none of the programs in the +list are found, set @var{variable} to @var{value-if-not-found}; if +@var{value-if-not-found} is not specified, the value of @var{variable} +is not changed. Calls @code{AC_SUBST} for @var{variable}. +@end defmac + +@defmac AC_PROGRAMS_PATH (@var{variable}, @var{progs-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) +@maindex PROGRAMS_PATH +Like @code{AC_PROGRAMS_CHECK}, but if any of @var{progs-to-check-for} +are found, set @var{variable} to the entire pathname of the program +found. +@end defmac + +@node C Features, Command Line, File Existence, General Purpose Macros +@section Checking For C Features + +These macros check for features of the C compiler, libraries, and headers. @defmac AC_COMPILE_CHECK (@var{echo-text}, @var{includes}, @var{function-body}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]}) @maindex COMPILE_CHECK - -Print @samp{checking for @var{echo-text}} to the standard output -(using @code{AC_CHECKING}, @pxref{Printing Messages}). -Create a test C program to see whether a function whose body consists of -@var{function-body} can be compiled and linked; @var{includes} is any -@code{#include} statements needed by the code in @var{function-body}. -If the file compiles and links successfully, run shell commands -@var{action-if-found}, otherwise run @var{action-if-not-found}. +This is an obsolete alias for @code{AC_TEST_LINK}, with the addition that it +prints @samp{checking for @var{echo-text}} to the standard output first. @end defmac @defmac AC_FUNC_CHECK (@var{function}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]}) @@ -1595,20 +1701,6 @@ list that exists, define @code{HAVE_@var{header-file}} (in all caps). it is used here. @end defmac -@defmac AC_HAVE_LIBRARY (@var{library} @r{[}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]]}) -@maindex HAVE_LIBRARY -Create a test C program to see whether that program can be linked with -the specified library. @var{action-if-found} is a list of shell -commands to run if the link succeeds (which means that the library is -present); @var{action-if-not-found} is a list of shell commands to run -if the link fails. If @var{action-if-found} and -@var{action-if-not-found} are not specified, the default action is to -add @samp{-lfoo} to @code{LIBS} and define @samp{HAVE_LIBfoo} -for library @samp{foo}. @var{library} can be written as any of -@samp{foo}, @samp{-lfoo}, or @samp{libfoo.a}. In all of those cases, -the compiler is passed @samp{-lfoo}. -@end defmac - @defmac AC_HEADER_CHECK (@var{header-file}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]}) @maindex HEADER_CHECK If @var{header-file} exists, execute shell commands @@ -1634,14 +1726,6 @@ almost always detect them by simply using @code{#ifdef} directives in your programs. @end defmac -@defmac AC_PROGRAM_CHECK (@var{variable}, @var{prog-to-check-for}, @var{value-if-found} @r{[}, @var{value-if-not-found}@r{]}) -@maindex PROGRAM_CHECK -Check whether program @var{prog-to-check-for} exists in @code{PATH}. If -it is found, set @var{variable} to @var{value-if-found}, otherwise to -@var{value-if-not-found}, if given. If @var{variable} was already set, -do nothing. Calls @code{AC_SUBST} for @var{variable}. -@end defmac - @defmac AC_PROGRAM_EGREP (@var{pattern}, @var{program}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]}) @maindex PROGRAM_EGREP @var{program} is the text of a C or C++ program, on which shell variable and @@ -1657,32 +1741,6 @@ on which language is current, @pxref{Language Choice}), if it hasn't been called already. @end defmac -@defmac AC_PROGRAM_PATH (@var{variable}, @var{prog-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) -@maindex PROGRAM_PATH -Similar to @code{AC_PROGRAM_CHECK}, but set @var{variable} to the entire -path of @var{prog-to-check-for} if found. Otherwise, set @var{variable} -to @var{value-if-not-found}, if given. If @var{variable} was already -set, do nothing. Calls @code{AC_SUBST} for @var{variable}. -@end defmac - -@defmac AC_PROGRAMS_CHECK (@var{variable}, @var{progs-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) -@maindex PROGRAMS_CHECK -Check for each program in the whitespace-separated list -@var{progs-to-check-for} exists in @code{PATH}. If it is found, set -@var{variable} to the name of that program. Otherwise, continue -checking the next program in the list. If none of the programs in the -list are found, set @var{variable} to @var{value-if-not-found}; if -@var{value-if-not-found} is not specified, the value of @var{variable} -is not changed. Calls @code{AC_SUBST} for @var{variable}. -@end defmac - -@defmac AC_PROGRAMS_PATH (@var{variable}, @var{progs-to-check-for} @r{[}, @var{value-if-not-found}@r{]}) -@maindex PROGRAMS_PATH -Like @code{AC_PROGRAMS_CHECK}, but if any of @var{progs-to-check-for} -are found, set @var{variable} to the entire pathname of the program -found. -@end defmac - @defmac AC_REPLACE_FUNCS (@var{function-name}@dots{}) @maindex REPLACE_FUNCS For each given @var{function-name} in the whitespace-separated argument @@ -1720,8 +1778,22 @@ on which language is current, @pxref{Language Choice}), if it hasn't been called already. @end defmac +@defmac AC_TEST_LINK (@var{includes}, @var{function-body}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]}) +@maindex TEST_LINK +Create a test C program to see whether a function whose body consists of +@var{function-body} can be compiled and linked; @var{includes} is any +@code{#include} statements needed by the code in @var{function-body}. +If the file compiles and links successfully, run shell commands +@var{action-if-found}, otherwise run @var{action-if-not-found}. +@end defmac + @defmac AC_TEST_PROGRAM (@var{program}, @var{action-if-true} @r{[}, @var{action-if-false} @r{[}, @var{action-if-cross-compiling}@r{]]}) @maindex TEST_PROGRAM +This is an obsolete alias for @code{AC_TEST_RUN}. +@end defmac + +@defmac AC_TEST_RUN (@var{program}, @var{action-if-true} @r{[}, @var{action-if-false} @r{[}, @var{action-if-cross-compiling}@r{]]}) +@maindex TEST_RUN @var{program} is the text of a C program, on which shell variable and backquote substitutions are performed. If it compiles and links successfully and returns an exit status of 0 when executed, run shell @@ -1736,28 +1808,35 @@ run. If that argument is given, this macro calls @code{AC_CROSS_CHECK} if it has not already been called (@pxref{Compiler Characteristics}). @end defmac -@node Command Line, Setting Variables, General Feature Tests, General Purpose Macros +@node Command Line, Setting Variables, C Features, General Purpose Macros @section Checking Command Line Arguments These macros check whether the user gave @code{configure} various command line arguments. Like the general feature tests (@pxref{General -Feature Tests}), they may take an argument to use if the argument was +Purpose Macros}), they may take an argument to use if the argument was given and one for if it was not given. -@defmac AC_ENABLE (@var{feature}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) -@maindex ENABLE +@defmac AC_ARG_ENABLE (@var{feature}, @var{help-string}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) +@maindex ARG_ENABLE If the user gave @code{configure} the option @samp{--enable-@var{feature}} or @samp{--disable-@var{feature}}, run shell commands @var{action-if-true}. Otherwise run shell commands -@var{action-if-false}. The name @var{feature} should consist only of -alphanumeric characters and dashes. +@var{action-if-false}. @var{help-string} is a description of +the option which looks like this: +@example +--enable-readline support fancy command line editing +@end example +@noindent +@var{help-string} may be more than one line long, if more detail is +needed. Just make sure the columns line up in @samp{configure --help}. -The @var{feature} indicates an optional user-level facility. This -option allows users to choose which optional features to build and -install. @samp{--enable-@var{feature}} options should never make a -feature behave differently or cause one feature to replace another. -They should only cause parts of the program to be built rather than left -out. +The name @var{feature} should consist only of alphanumeric characters +and dashes. The @var{feature} indicates an optional user-level +facility. This option allows users to choose which optional features to +build and install. @samp{--enable-@var{feature}} options should never +make a feature behave differently or cause one feature to replace +another. They should only cause parts of the program to be built rather +than left out. The user can give an argument by following the feature name with @samp{=} and the argument. Giving an argument of @samp{no} indicates @@ -1770,34 +1849,28 @@ the shell variable @code{enableval}. If no argument was given to @samp{--disable-@var{feature}} is equivalent to @samp{--enable-@var{feature}=no}. At present, arguments containing blanks are not handled correctly; if you need an argument to contain a list, -require the items to be separated by commas instead. (This restriction -might disappear in the future.) +require the items to be separated by commas instead. @end defmac -@defmac AC_PREFIX (@var{program}) -@maindex PREFIX -If the user did not specify an installation prefix (using the -@samp{--prefix} option), guess a value for it by looking for -@var{program} in @code{PATH}, the way the shell does. If @var{program} -is found, set the prefix to the parent of the directory containing -@var{program}; otherwise leave the prefix specified in -@file{Makefile.in} unchanged. For example, if @var{program} is -@code{gcc} and the @code{PATH} contains @file{/usr/local/gnu/bin/gcc}, -set the prefix to @file{/usr/local/gnu}. -@end defmac - -@defmac AC_WITH (@var{package}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) -@maindex WITH +@defmac AC_ARG_WITH (@var{package}, @var{help-string}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) +@maindex ARG_WITH If the user gave @code{configure} the option @samp{--with-@var{package}} or @samp{--without-@var{package}}, run shell commands @var{action-if-true}. Otherwise run shell commands -@var{action-if-false}. The name @var{package} should consist only of -alphanumeric characters and dashes. +@var{action-if-false}. @var{help-string} is a description of +the option which looks like this: +@example +--with-gnu-as use the GNU assembler +@end example +@noindent +@var{help-string} may be more than one line long, if more detail is +needed. Just make sure the columns line up in @samp{configure --help}. -The @var{package} indicates another software package that this program -should work with. For example, @samp{--with-gnu-ld} means work with the -GNU linker instead of some other linker. @samp{--with-x11} means work -with X11. +The name @var{package} should consist only of alphanumeric characters +and dashes. The @var{package} indicates another software package that +this program should work with. For example, @samp{--with-gnu-ld} means +work with the GNU linker instead of some other linker. +@samp{--with-x11} means work with X11. The user can give an argument by following the package name with @samp{=} and the argument. Giving an argument of @samp{no} is for @@ -1813,8 +1886,19 @@ the shell variable @code{withval}. If no argument was given to @samp{--without-@var{package}} is equivalent to @samp{--with-@var{package}=no}. At present, arguments containing blanks are not handled correctly; if you need an argument to contain a list, -require the items to be separated by commas instead. (This restriction -might disappear in the future.) +require the items to be separated by commas instead. +@end defmac + +@defmac AC_ENABLE (@var{feature}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) +@maindex ENABLE +This is an obsolete version of @code{AC_ARG_ENABLE} that does not +provide a help string. +@end defmac + +@defmac AC_WITH (@var{package}, @var{action-if-true} @r{[}, @var{action-if-false}@r{]}) +@maindex WITH +This is an obsolete version of @code{AC_ARG_WITH} that does not +provide a help string. @end defmac @node Setting Variables, Printing Messages, Command Line, General Purpose Macros @@ -1923,6 +2007,17 @@ LIBS="$LIBS -ltermcap" @end example @end defmac +@ignore +@defmac AC_SUBST_FILE (@var{variable}, @var{file}) +@maindex SUBST_FILE +Substitute the contents of the file @file{@var{srcdir}/@var{file}} into +@file{Makefile} variable @var{variable} when creating the output files +(typically one or more @file{Makefile}s). This macro is useful for +inserting @file{Makefile} fragments for particular host or tartet types +into @file{Makefile}s. +@end defmac +@end ignore + @node Printing Messages, Language Choice, Setting Variables, General Purpose Macros @section Printing Messages @@ -2272,19 +2367,19 @@ come later should contain a call to @code{AC_PROVIDE}. For example, @code{AC_AIX} contains @example -AC_BEFORE([$0], [AC_COMPILE_CHECK]) +AC_BEFORE([$0], [AC_TEST_LINK]) @end example @noindent -and @code{AC_COMPILE_CHECK} contains +and @code{AC_TEST_LINK} contains @example AC_PROVIDE([$0]) @end example @noindent -As a result, if @code{AC_AIX} is called after @code{AC_COMPILE_CHECK}, -it will note that @code{AC_COMPILE_CHECK} has already been called and +As a result, if @code{AC_AIX} is called after @code{AC_TEST_LINK}, +it will note that @code{AC_TEST_LINK} has already been called and print a warning message. @node Checking for Files, Checking for Symbols, Dependencies Between Macros, Writing Macros @@ -2308,7 +2403,7 @@ Do not use @samp{test -x}, because 4.3BSD does not have it. Use If you need to check whether a symbol is defined in a C header file, you can use @code{AC_HEADER_EGREP} if the symbol is not a C preprocessor -macro (@pxref{General Feature Tests}), or compile a small test program that includes +macro (@pxref{C Features}), or compile a small test program that includes the file and references the symbol (@pxref{Test Programs}). Don't directly @code{grep} for the symbol in the file, because on some systems it might be defined in another header file that the file you are @@ -2355,16 +2450,16 @@ than scanning the libraries. If you need to check for a condition other than whether some symbol exists on the system or has a certain value, then you can't use -@code{AC_COMPILE_CHECK} (@pxref{General Feature Tests}). You have to write a +@code{AC_TEST_LINK} (@pxref{C Features}). You have to write a test program by hand. You can compile and run it using -@code{AC_TEST_PROGRAM} (@pxref{General Feature Tests}). +@code{AC_TEST_RUN} (@pxref{C Features}). Try to avoid writing test programs if possible, because using them prevents people from configuring your package for cross-compiling. If it's really best that you test for a run-time behavior, try to provide a default ``worst case'' value to use when cross-compiling makes run-time tests impossible. You do this by passing the optional last argument to -@code{AC_TEST_PROGRAM}. +@code{AC_TEST_RUN}. @menu * Guidelines:: General rules for writing test programs. @@ -2526,7 +2621,7 @@ redundant. @defvar LIBOBJS Names of object files (ending in @file{.o}). Set by -@code{AC_REPLACE_FUNCS} (@pxref{General Feature Tests}). +@code{AC_REPLACE_FUNCS} (@pxref{C Features}). @end defvar @node VPATH Substitutions, Automatic Remaking, Predefined Variables, Makefiles @@ -2791,7 +2886,14 @@ The shell with which to run @code{configure} for the @samp{--recheck} option. The default is @file{/bin/sh}. @end defvar -The following two variables provide one way for separately distributed +@defvar CONFIG_STATUS +The file name to use for the shell script that records the +configuration. The default is @file{./config.status}. This variable is +useful when one package uses parts of another and the @file{configure} +scripts shouldn't be merged because they are maintained separately. +@end defvar + +The following variables provide one way for separately distributed packages to share the values computed by @code{configure}. Doing so can be useful if some of the packages need a superset of the features that one of them, perhaps a common library, does. These variables allow a diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4 index eeef4fc9..6c3e5cfd 100644 --- a/lib/autoconf/general.m4 +++ b/lib/autoconf/general.m4 @@ -29,35 +29,16 @@ dnl ifdef([__gnu__], , [errprint(Autoconf requires GNU m4 )m4exit(2)])dnl dnl -dnl -dnl ### Utility functions for stamping the configure script. -dnl -dnl -define(AC_ACVERSION, 1.91)dnl +define(AC_ACVERSION, 1.93)dnl dnl This is defined by the --version option of the autoconf script. ifdef([AC_PRINT_VERSION], [errprint(Autoconf version AC_ACVERSION -)])dnl -dnl -dnl These are currently not used, for the sake of people who diff -dnl configure scripts and don't want spurious differences. -dnl But they are too clever to just delete. -dnl -define(AC_USER, [esyscmd( -changequote({,})dnl -# Extract the user name from the first pair of parentheses. -({ac_sedcmd='s/[^(]*(\([^)]*\)).*/\1/';} -changequote([,])dnl -whoami || id|sed "$ac_sedcmd") 2>/dev/null|tr -d '\012')])dnl -dnl -define(AC_HOST, [esyscmd((hostname || uname -n) 2>/dev/null|tr -d '\012')])dnl -dnl -define(AC_DATE, [esyscmd(date|tr -d '\012')])dnl +)m4exit(0)])dnl dnl dnl dnl ### Controlling Autoconf operation dnl dnl -dnl Diversions: +dnl m4 diversions: define(AC_DIVERSION_NORMAL, 0)dnl normal output define(AC_DIVERSION_SED, 1)dnl sed substitutions for config.status define(AC_DIVERSION_VAR, 2)dnl variable assignments for config.status @@ -66,13 +47,9 @@ define(AC_DIVERSION_ARG_ENABLE, 4)dnl --enable/--disable actions define(AC_DIVERSION_HELP_WITH, 5)dnl --with/--without help strings define(AC_DIVERSION_ARG_WITH, 6)dnl --with/--without actions dnl -dnl This is separate from AC_INIT to prevent GNU m4 1.0 from coredumping -dnl when AC_CONFIG_HEADER is used. define(AC_NOTICE, [# Guess values for system-dependent variables and create Makefiles. -dnl [#] Generated automatically using autoconf. # Generated automatically using autoconf version] AC_ACVERSION [ -dnl [#] by AC_USER@AC_HOST on AC_DATE # Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. # # This configure script is free software; you can redistribute it and/or @@ -91,12 +68,13 @@ dnl [#] by AC_USER@AC_HOST on AC_DATE ])dnl dnl define(AC_PARSEARGS, -[AC_BEFORE([$0], AC_ARG_ENABLE)dnl -AC_BEFORE([$0], AC_ARG_WITH)dnl +[AC_BEFORE([$0], [AC_ARG_ENABLE])dnl +AC_BEFORE([$0], [AC_ARG_WITH])dnl # Save the original args to write them into config.status later. configure_args="[$]*" -# Omit internal or obsolete options to make the list less imposing. +# Omit some internal, obsolete, or unimplemented options to make the +# list less imposing. changequote(,)dnl ac_usage="Usage: configure [options] [host] Options: [defaults in brackets after descriptions] @@ -130,12 +108,12 @@ changequote([,])dnl # dashes changed to underlines. build=NONE cache_file=./config.cache -exec_prefix= +exec_prefix=NONE host=NONE no_create= nonopt=NONE norecursion= -prefix= +prefix=NONE program_prefix= program_suffix= program_transform_name= @@ -382,8 +360,12 @@ AC_PREPARE($1)])dnl dnl dnl AC_PREPARE(UNIQUE-FILE-IN-SOURCE-DIR) define(AC_PREPARE, -[AC_BEFORE([$0], AC_ARG_ENABLE)dnl -AC_BEFORE([$0], AC_ARG_WITH)dnl +[AC_BEFORE([$0], [AC_ARG_ENABLE])dnl +AC_BEFORE([$0], [AC_ARG_WITH])dnl +AC_BEFORE([$0], [AC_CONFIG_HEADER])dnl +AC_BEFORE([$0], [AC_REVISION])dnl +AC_BEFORE([$0], [AC_PREREQ])dnl +AC_BEFORE([$0], [AC_CONFIG_SUBDIRS])dnl trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15 trap 'rm -fr confdefs* $ac_clean_files' 0 @@ -392,8 +374,9 @@ trap 'rm -fr confdefs* $ac_clean_files' 0 # 1 file creation # 2 errors and warnings # 3 unused; some systems may open it to /dev/tty -# 4 checking for... +# 4 checking for... messages # 5 test results +# 6 compiler messages if test "$silent" = yes; then exec 4>/dev/null else @@ -404,6 +387,12 @@ if test "$verbose" = yes; then else exec 5>/dev/null fi +exec 6>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&6 # Save the original args if we used an alternate arg parser. ac_configure_temp="${configure_args-[$]*}" @@ -458,7 +447,12 @@ if test ! -r $srcdir/$ac_unique_file; then AC_ERROR(can not find sources in ${srcdir}) fi fi + +ifdef([AC_LIST_PREFIX_PROGRAM], [AC_PREFIX(AC_LIST_PREFIX_PROGRAM)])dnl +dnl Let the site file select an alternate cache file if it wants to. +AC_SITE_LOAD AC_CACHE_LOAD + AC_LANG_C undivert(AC_DIVERSION_ARG_ENABLE)dnl undivert(AC_DIVERSION_ARG_WITH)dnl @@ -466,7 +460,8 @@ undivert(AC_DIVERSION_ARG_WITH)dnl dnl dnl AC_ARG_ENABLE(FEATURE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE]) define(AC_ARG_ENABLE, -[divert(AC_DIVERSION_HELP_ENABLE)dnl +[AC_PROVIDE([$0])dnl +divert(AC_DIVERSION_HELP_ENABLE)dnl $2 divert(AC_DIVERSION_ARG_ENABLE)dnl AC_ENABLE_INTERNAL([$1], [$3], [$4])dnl @@ -492,7 +487,8 @@ fi dnl dnl AC_ARG_WITH(PACKAGE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE]) define(AC_ARG_WITH, -[divert(AC_DIVERSION_HELP_WITH)dnl +[AC_PROVIDE([$0])dnl +divert(AC_DIVERSION_HELP_WITH)dnl $2 divert(AC_DIVERSION_ARG_WITH)dnl AC_WITH_INTERNAL([$1], [$3], [$4])dnl @@ -517,10 +513,10 @@ fi ])dnl dnl dnl AC_CONFIG_HEADER(HEADER-TO-CREATE ...) -define(AC_CONFIG_HEADER, [define(AC_LIST_HEADERS, $1)])dnl +define(AC_CONFIG_HEADER, [AC_PROVIDE([$0])define(AC_LIST_HEADERS, $1)])dnl dnl dnl AC_REVISION(REVISION-INFO) -define(AC_REVISION, [AC_REQUIRE([AC_BINSH])dnl +define(AC_REVISION, [AC_PROVIDE([$0])AC_REQUIRE([AC_BINSH])dnl [# From configure.in] translit([$1],$")])dnl dnl dnl Subroutines of AC_PREREQ. @@ -543,16 +539,44 @@ dnl dnl Complain and exit if the Autoconf version is less than $1. dnl AC_PREREQ(VERSION) define(AC_PREREQ, -[AC_PREREQ_COMPARE(AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), +[AC_PROVIDE([$0])dnl +AC_PREREQ_COMPARE(AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),[$1])])dnl dnl dnl Run configure in subdirectories $1. dnl Not actually done until AC_OUTPUT_SUBDIRS. dnl AC_CONFIG_SUBDIRS(DIR ...) define(AC_CONFIG_SUBDIRS, -[AC_REQUIRE([AC_CONFIG_AUXDIR_DEFAULT])dnl +[AC_PROVIDE([$0])dnl +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl define([AC_LIST_SUBDIRS],[$1])])dnl dnl +dnl Guess the value for the `prefix' variable by looking for +dnl the argument program along PATH and taking its parent. +dnl Example: if the argument is `gcc' and we find /usr/local/gnu/bin/gcc, +dnl set `prefix' to /usr/local/gnu. +dnl AC_PREFIX_PROGRAM(PROGRAM) +define(AC_PREFIX_PROGRAM, [define([AC_LIST_PREFIX_PROGRAM],[$1])])dnl +define(AC_PREFIX_INTERNAL, +[if test "x$prefix" = xNONE; then +changequote(<<,>>)dnl +define(<>, translit($1, [a-z], [A-Z]))dnl +changequote([,])dnl +AC_PROGRAM_PATH(AC_VAR_NAME, $1) +changequote(<<,>>)dnl + if test -n "$ac_cv_path_<<>>AC_VAR_NAME"; then + prefix=`echo $ac_cv_path_<<>>AC_VAR_NAME|sed 's%/[^/][^/]*/[^/][^/]*$%%'` +changequote([,])dnl +dnl test -z "$prefix" && prefix=/ + AC_VERBOSE(setting installation directory prefix to ${prefix}) + fi +fi +undefine(AC_VAR_NAME)dnl +])dnl +define(AC_PREFIX, +[AC_OBSOLETE([$0], [; instead use AC_PREFIX_PROGRAM before AC_INIT])dnl +AC_PREFIX_INTERNAL([$1])])dnl +dnl dnl dnl ### Canonicalizing the system type dnl @@ -560,21 +584,21 @@ dnl dnl Find install.sh, config.sub, config.guess, and Cygnus configure dnl in directory $1. These are auxiliary files used in configuration. dnl $1 can be either absolute or relative to ${srcdir}. -dnl AC_CONFIG_AUXDIR(DIR) -define(AC_CONFIG_AUXDIR, -[AC_CONFIG_AUXDIR_DIRS($1 ${srcdir}/$1)])dnl +dnl AC_CONFIG_AUX_DIR(DIR) +define(AC_CONFIG_AUX_DIR, +[AC_CONFIG_AUX_DIRS($1 ${srcdir}/$1)])dnl dnl dnl The default is `${srcdir}' or `${srcdir}/..' or `${srcdir}/../..'. dnl There's no need to call this macro explicitly; just AC_REQUIRE it. -define(AC_CONFIG_AUXDIR_DEFAULT, -[AC_CONFIG_AUXDIR_DIRS(${srcdir} ${srcdir}/.. ${srcdir}/../..)])dnl +define(AC_CONFIG_AUX_DIR_DEFAULT, +[AC_CONFIG_AUX_DIRS(${srcdir} ${srcdir}/.. ${srcdir}/../..)])dnl dnl dnl Internal subroutine. dnl Search for the configuration auxiliary files in directory list $1. dnl We look only for install.sh, so users of AC_PROG_INSTALL dnl do not automatically need to distribute the other auxiliary files. -dnl AC_CONFIG_AUXDIR_DIRS(DIR ...) -define(AC_CONFIG_AUXDIR_DIRS, +dnl AC_CONFIG_AUX_DIRS(DIR ...) +define(AC_CONFIG_AUX_DIRS, [ac_aux_dir= for ac_dir in $1; do if test -f $ac_dir/install.sh; then @@ -588,12 +612,12 @@ ac_config_guess=${ac_aux_dir}/config.guess ac_config_sub=${ac_aux_dir}/config.sub ac_configure=${ac_aux_dir}/configure # This should be Cygnus configure. ac_install_sh="${ac_aux_dir}/install.sh -c" -AC_PROVIDE([AC_CONFIG_AUXDIR_DEFAULT])dnl +AC_PROVIDE([AC_CONFIG_AUX_DIR_DEFAULT])dnl ])dnl dnl dnl Canonicalize the host, target, and build system types. -define(AC_CANON_SYSTEM, -[AC_REQUIRE([AC_CONFIG_AUXDIR_DEFAULT])dnl +define(AC_CANONICAL_SYSTEM, +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Do some error checking and defaulting for the host and target type. # The inputs are: # configure --host=HOST --target=TARGET --build=BUILD NONOPT @@ -623,14 +647,14 @@ if ${ac_config_sub} sun4 >/dev/null 2>&1; then : else AC_ERROR(can not run ${ac_config_sub}) fi -AC_CANON_HOST -AC_CANON_TARGET -AC_CANON_BUILD +AC_CANONICAL_HOST +AC_CANONICAL_TARGET +AC_CANONICAL_BUILD ])dnl dnl -dnl Subroutines of AC_CANON_SYSTEM. +dnl Subroutines of AC_CANONICAL_SYSTEM. dnl -define(AC_CANON_HOST, +define(AC_CANONICAL_HOST, [AC_CHECKING(host type) case "${host_alias}" in @@ -653,7 +677,7 @@ AC_SUBST(host)dnl AC_SUBST(host_alias)dnl ])dnl dnl -define(AC_CANON_TARGET, +define(AC_CANONICAL_TARGET, [AC_CHECKING(target type) case "${target_alias}" in @@ -673,7 +697,7 @@ AC_SUBST(target)dnl AC_SUBST(target_alias)dnl ])dnl dnl -define(AC_CANON_BUILD, +define(AC_CANONICAL_BUILD, [AC_CHECKING(build type) case "${build_alias}" in @@ -690,30 +714,38 @@ AC_SUBST(build)dnl AC_SUBST(build_alias)dnl ])dnl dnl -dnl Put the contents of file $2 into Makefile variable $1. -dnl Useful for inserting Makefile fragments into Makefiles. -dnl AC_SUBST_FILE(VARIABLE, FILE) -define(AC_SUBST_FILE, -[AC_SUBST($1)dnl -if test -f ${srcdir}/$2; then - AC_VERBOSE(using $2 for $1) - $1=`cat ${srcdir}/$2` -fi -])dnl -dnl dnl Link each of the existing files in $2 to the corresponding dnl link name in $1. dnl Not actually done until AC_OUTPUT_LINKS. -dnl AC_MAKE_LINKS(LINK ..., FILE ...) -define(AC_MAKE_LINKS, +dnl AC_LINK_FILES(LINK ..., FILE ...) +define(AC_LINK_FILES, [define([AC_LIST_LINKS],[$1])define([AC_LIST_FILES],[$2])])dnl dnl dnl dnl ### Caching test results dnl dnl +dnl Look for site or system specific initialization scripts. +define(AC_SITE_LOAD, +[ac_site_dirs=/usr/local +if test "x$prefix" != xNONE; then + ac_site_dirs=$prefix +fi +# System dependent files override system independent ones in case of conflict. +if test "x$exec_prefix" != xNONE && test "x$exec_prefix" != "x$prefix"; then + ac_site_dirs="$ac_site_dirs $exec_prefix" +fi +for ac_site_dir in $ac_site_dirs; do + ac_site_file=$ac_site_dir/lib/config.site + if test -r "$ac_site_file"; then + AC_VERBOSE(loading site initialization script $ac_site_file) + . $ac_site_file + fi +done +])dnl +dnl define(AC_CACHE_LOAD, -[if test -r $cache_file; then +[if test -r "$cache_file"; then AC_VERBOSE(loading test results from cache file $cache_file) . $cache_file else @@ -728,7 +760,7 @@ cat > $cache_file <<\CEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs. It is not useful on other systems. -# If its contents are invalid for some reason, you may edit or delete it. +# If its contents are invalid for some reason, you may delete or edit it. # # By default, configure uses ./config.cache as the cache file, # creating it if it does not exist already. You can give configure @@ -739,7 +771,8 @@ cat > $cache_file <<\CEOF # --recheck option to rerun configure. CEOF changequote(,)dnl -set | sed -n "/^[a-zA-Z0-9_]*_cv_/s/=\(.*\)/='\1'/p" >> $cache_file +dnl Allow a site initialization script to override cache values. +set | sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1-'\2'}/p" >> $cache_file changequote([,])dnl fi])dnl dnl @@ -888,7 +921,7 @@ AC_PROVIDE([$0])dnl ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='${CPP}' -ac_compile='${CC-cc} $CFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS >/dev/null 2>&1' +ac_compile='${CC-cc} $CFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS 1>&6 2>&6' ])dnl dnl define(AC_LANG_CPLUSPLUS, @@ -897,7 +930,7 @@ AC_PROVIDE([$0])dnl ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='${CXXCPP}' -ac_compile='${CXX-gcc} $CXXFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS >/dev/null 2>&1' +ac_compile='${CXX-gcc} $CXXFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS 1>&6 2>&6' ])dnl dnl dnl Push the current language on a stack. @@ -940,25 +973,25 @@ define(AC_PROGRAM_CHECK, [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_program_$1, +AC_CACHE_VAL(ac_cv_prog_$1, [if test -n "[$]$1"; then - ac_cv_program_$1="[$]$1" # Let the user override the test. + ac_cv_prog_$1="[$]$1" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then - ac_cv_program_$1="$3" + ac_cv_prog_$1="$3" break fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PROGRAMS_CHECK will keep looking. -ifelse([$4],,, [ test -z "[$]ac_cv_program_$1" && ac_cv_program_$1="$4" +ifelse([$4],,, [ test -z "[$]ac_cv_prog_$1" && ac_cv_prog_$1="$4" ])dnl fi])dnl -$1="$ac_cv_program_$1" +$1="$ac_cv_prog_$1" test -n "[$]$1" && AC_VERBOSE(setting $1 to [$]$1) AC_SUBST($1)dnl ])dnl @@ -1018,28 +1051,6 @@ done ifelse([$3],,, [test -n "[$]$1" || $1="$3" ])])dnl dnl -dnl Guess the value for the `prefix' variable by looking for -dnl the argument program along PATH and taking its parent. -dnl Example: if the argument is `gcc' and we find /usr/local/gnu/bin/gcc, -dnl set `prefix' to /usr/local/gnu. -dnl AC_PREFIX(PROGRAM) -define(AC_PREFIX, -[if test -z "$prefix"; then -changequote(<<,>>)dnl -define(<>, translit($1, [a-z], [A-Z]))dnl -changequote([,])dnl -AC_PROGRAM_PATH(AC_VAR_NAME, $1) -changequote(<<,>>)dnl - if test -n "$ac_cv_path_<<>>AC_VAR_NAME"; then - prefix=`echo $ac_cv_path_<<>>AC_VAR_NAME|sed 's%/[^/][^/]*/[^/][^/]*$%%'` -changequote([,])dnl - test -z "$prefix" && prefix=/ - AC_VERBOSE(setting installation directory prefix to ${prefix}) - fi -fi -undefine(AC_VAR_NAME)dnl -])dnl -dnl dnl AC_HAVE_LIBRARY(LIBRARY [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) define(AC_HAVE_LIBRARY, [dnl changequote(/,/)dnl @@ -1106,7 +1117,8 @@ dnl AC_COMPILE_CHECK(ECHO-TEXT, INCLUDES, FUNCTION-BODY, dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) define(AC_COMPILE_CHECK, [AC_PROVIDE([$0])dnl -AC_OBSOLETE([$0], [; instead use AC_TEST_LINK])dnl +dnl It's actually ok to use this, if you don't care about caching. +dnl AC_OBSOLETE([$0], [; instead use AC_TEST_LINK])dnl ifelse([$1], , , [AC_CHECKING([for $1]) ])dnl AC_TEST_LINK([$2], [$3], [$4], [$5])dnl @@ -1134,14 +1146,15 @@ fi rm -f conftest*] )dnl dnl -dnl AC_TEST_PROGRAM(PROGRAM, ACTION-IF-TRUE [, ACTION-IF-FALSE -dnl [, ACTION-IF-CROSS-COMPILING]]) -define(AC_TEST_PROGRAM, +dnl AC_TEST_RUN(PROGRAM, ACTION-IF-TRUE [, ACTION-IF-FALSE +dnl [, ACTION-IF-CROSS-COMPILING]]) +define(AC_TEST_RUN, [AC_PROVIDE([$0])dnl AC_REQUIRE([AC_CROSS_CHECK])dnl if test -n "$cross_compiling"; then ifelse([$4], , AC_ERROR(can not run test program while cross compiling), - [$4 + [AC_VERBOSE(using default for cross-compiling) +$4 ]) else cat > conftest.${ac_ext} <], [ +[AC_TEST_LINK( +[#include /* Arbitrary system header to define __stub macros. */], [ /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ @@ -1266,15 +1283,14 @@ define(<>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl changequote([,])dnl AC_CHECKING(size of $1) AC_CACHE_VAL(AC_CV_NAME, -[dnl If cross-compiling, the caller has to decide what to do; we can't. -AC_TEST_PROGRAM([#include +[AC_TEST_RUN([#include main() { FILE *f=fopen("conftestval", "w"); if (!f) exit(1); fprintf(f, "%d\n", sizeof($1)); exit(0); -}], AC_CV_NAME=`cat conftestval`, AC_ERROR(can not determine size of $1))])dnl +}], AC_CV_NAME=`cat conftestval`)])dnl AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME) undefine(AC_TYPE_NAME)dnl undefine(AC_CV_NAME)dnl @@ -1288,9 +1304,9 @@ dnl AC_OUTPUT([FILE...] [,EXTRA-CMDS]) define(AC_OUTPUT, [AC_CACHE_SAVE -test -z "$prefix" && prefix=/usr/local +test "x$prefix" = xNONE && prefix=/usr/local # Let make expand exec_prefix. -test -z "$exec_prefix" && exec_prefix='${prefix}' +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Any assignment to VPATH causes Sun make to only execute # the first set of double-colon rules, so remove it if not needed. diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4 index c07b6c6d..3024af70 100644 --- a/lib/autoconf/specific.m4 +++ b/lib/autoconf/specific.m4 @@ -28,58 +28,60 @@ define(AC_PROG_CC, [AC_BEFORE([$0], [AC_PROG_CPP])dnl AC_PROVIDE([$0])dnl AC_PROGRAM_CHECK(CC, gcc, gcc, cc) + # Find out if we are using GNU C, under whatever name. -cat > conftest.c < conftest.c < conftest.out 2>&1 -if egrep yes conftest.out >/dev/null 2>&1; then - GCC=yes +if ${CC-cc} -E conftest.c 2>&6 | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes else - GCC= -fi -rm -f conftest* + ac_cv_prog_gcc=no +fi])dnl +if test "$ac_cv_prog_gcc" = yes; then GCC=yes; else GCC= ; fi ])dnl dnl define(AC_PROG_CXX, [AC_BEFORE([$0],[AC_PROG_CXXCPP])dnl AC_PROVIDE([$0])dnl AC_PROGRAMS_CHECK(CXX, $CCC c++ g++ gcc CC cxx, gcc) + # Find out if we are using GNU C++, under whatever name. -cat > conftest.C < conftest.C < conftest.out 2>&1 -if egrep yes conftest.out >/dev/null 2>&1; then - GXX=yes +if ${CXX-gcc} -E conftest.C 2>&6 | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gxx=yes else - GXX= -fi -rm -f conftest* + ac_cv_prog_gxx=no +fi])dnl +if test "$ac_cv_prog_gxx" = yes; then GXX=yes; else GXX= ; fi ])dnl dnl define(AC_GCC_TRADITIONAL, [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_CPP])dnl -if test "$GCC" = yes; then +if test "$ac_cv_prog_gcc" = yes; then AC_CHECKING(whether -traditional is needed) -changequote(,)dnl - ac_pattern="Autoconf.*'x'" -changequote([,])dnl +AC_CACHE_VAL(ac_cv_prog_gcc_traditional, +[ ac_pattern="Autoconf.*'x'" ac_prog='#include Autoconf TIOCGETP' - AC_PROGRAM_EGREP($ac_pattern, $ac_prog, ac_need_trad=yes, ac_need_trad=no) + AC_PROGRAM_EGREP($ac_pattern, $ac_prog, + ac_cv_prog_gcc_traditional=yes, ac_cv_prog_gcc_traditional=no) - if test "$ac_need_trad" = no; then + if test "$ac_cv_prog_gcc_traditional" = no; then ac_prog='#include Autoconf TCGETA' - AC_PROGRAM_EGREP($ac_pattern, $ac_prog, ac_need_trad=yes) - fi - if test "$ac_need_trad" = yes; then + AC_PROGRAM_EGREP($ac_pattern, $ac_prog, ac_cv_prog_gcc_traditional=yes) + fi])dnl + if test "$ac_cv_prog_gcc_traditional" = yes; then CC="$CC -traditional" AC_VERBOSE(setting CC to $CC) fi @@ -96,15 +98,15 @@ echo 'foo(){}' > conftest.c # Make sure it works both with $CC and with simple cc. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. -if ${CC-cc} -c conftest.c -o conftest.o >/dev/null 2>&1 \ - && test -f conftest.o && ${CC-cc} -c conftest.c -o conftest.o >/dev/null 2>&1 +if ${CC-cc} -c conftest.c -o conftest.o 1>&6 2>&6 && + test -f conftest.o && ${CC-cc} -c conftest.c -o conftest.o 1>&6 2>&6 then if test "x$CC" != xcc; then # Test first that cc exists at all. - if cc -c conftest.c >/dev/null 2>&1 + if cc -c conftest.c 1>&6 2>&6 then - if cc -c conftest.c -o conftest2.o >/dev/null 2>&1 && \ - test -f conftest2.o && cc -c conftest.c -o conftest2.o >/dev/null 2>&1 + if cc -c conftest.c -o conftest2.o 1>&6 2>&6 && + test -f conftest2.o && cc -c conftest.c -o conftest2.o 1>&6 2>&6 then : else @@ -230,7 +232,7 @@ AC_SUBST(LEX_OUTPUT_ROOT)dnl ])dnl dnl define(AC_PROG_INSTALL, -[AC_REQUIRE([AC_CONFIG_AUX_DEFAULT])dnl +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Make sure to not get the incompatible SysV /etc/install and # /usr/sbin/install, which might be in PATH before a BSD-like install, # or the SunOS /usr/etc/install directory, or the AIX /bin/install, @@ -249,7 +251,7 @@ define(AC_PROG_INSTALL, # by make from ./install.sh. AC_CHECKING(for a BSD compatible install) if test -z "${INSTALL}"; then -AC_CACHE_VAL(ac_cv_path_INSTALL, +AC_CACHE_VAL(ac_cv_path_install, [ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do case "$ac_dir" in @@ -264,7 +266,7 @@ AC_CACHE_VAL(ac_cv_path_INSTALL, # OSF/1 installbsd also uses dspmsg, but is usable. : else - ac_cv_path_INSTALL="$ac_dir/$ac_prog -c" + ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi fi @@ -274,8 +276,8 @@ AC_CACHE_VAL(ac_cv_path_INSTALL, done IFS="$ac_save_ifs" # As a last resort, use the slow shell script. - test -z "$ac_cv_path_INSTALL" && ac_cv_path_INSTALL="$ac_install_sh"])dnl - INSTALL="$ac_cv_path_INSTALL" + test -z "$ac_cv_path_install" && ac_cv_path_install="$ac_install_sh"])dnl + INSTALL="$ac_cv_path_install" fi AC_SUBST(INSTALL)dnl AC_VERBOSE(setting INSTALL to $INSTALL) @@ -348,7 +350,7 @@ fi if test "$ac_stdc_hdrs" = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #define XOR(e,f) (((e) && !(f)) || (!(e) && (f))) @@ -402,14 +404,12 @@ AC_DIR_HEADER_CHECK(sys/dir.h, SYSDIR) AC_DIR_HEADER_CHECK(ndir.h, NDIR) AC_CHECKING(for closedir return value) -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include #include <$ac_dir_header> int closedir(); main() { exit(closedir(opendir(".")) != 0); }], , AC_DEFINE(VOID_CLOSEDIR)) ])dnl dnl Subroutine of AC_DIR_HEADER. -dnl ??? I tried to put this define inside AC_DIR_HEADER, but when I did -dnl that, $1 and $2 did not get expanded. --roland dnl Check if $1 is the winning directory library header file. dnl It must not only exist, but also correctly define the `DIR' type. dnl If it is really winning, define $2 and set shell var `ac_dir_header' to $1. @@ -486,7 +486,7 @@ main() exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0); }' changequote([,])dnl -AC_TEST_PROGRAM([$ac_prog], +AC_TEST_RUN([$ac_prog], AC_DEFINE(GETGROUPS_T, gid_t), AC_DEFINE(GETGROUPS_T, int)) ])dnl dnl @@ -535,7 +535,7 @@ dnl dnl define(AC_MMAP, [ AC_CHECKING(for working mmap) -AC_TEST_PROGRAM([/* Thanks to Mike Haertel and Jim Avera for this test. */ +AC_TEST_RUN([/* Thanks to Mike Haertel and Jim Avera for this test. */ #include #include #include @@ -605,12 +605,9 @@ main() ])dnl dnl define(AC_VPRINTF, -[AC_CHECKING([for vprintf]) -AC_TEST_LINK( , [vprintf();], - [ac_have_vprintf=yes AC_DEFINE(HAVE_VPRINTF)], ac_have_vprintf=no) -if test "$ac_have_vprintf" = no; then -AC_CHECKING([for _doprnt]) -AC_TEST_LINK( , [_doprnt();], AC_DEFINE(HAVE_DOPRNT)) +[AC_FUNC_CHECK(vprintf, AC_DEFINE(HAVE_VPRINTF)) +if test "$ac_cv_func_vprintf" != yes; then +AC_FUNC_CHECK(_doprnt, AC_DEFINE(HAVE_DOPRNT)) fi ])dnl dnl @@ -619,7 +616,7 @@ define(AC_VFORK, AC_HEADER_CHECK(vfork.h, AC_DEFINE(HAVE_VFORK_H)) AC_CHECKING(for working vfork) AC_REQUIRE([AC_RETSIGTYPE]) -AC_TEST_PROGRAM([/* Thanks to Paul Eggert for this test. */ +AC_TEST_RUN([/* Thanks to Paul Eggert for this test. */ #include #include #include @@ -704,7 +701,7 @@ main() { dnl define(AC_WAIT3, [AC_CHECKING(for wait3 that fills in rusage) -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include #include #include #include @@ -749,10 +746,12 @@ ac_decl="#ifdef __GNUC__ #ifdef _AIX #pragma alloca #else +#ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); #endif #endif #endif +#endif " AC_CHECKING([for alloca]) AC_TEST_LINK($ac_decl, @@ -780,7 +779,7 @@ AC_FUNC_CHECK([GETB67],AC_DEFINE([CRAY_STACKSEG_END],[GETB67]), AC_FUNC_CHECK([getb67],AC_DEFINE([CRAY_STACKSEG_END],[getb67]))))) AC_CHECKING(stack direction for C alloca) -AC_TEST_PROGRAM([find_stack_direction () +AC_TEST_RUN([find_stack_direction () { static char *addr = 0; auto char dummy; @@ -889,7 +888,7 @@ define(AC_UTIME_NULL, [AC_CHECKING(utime with null argument) rm -f conftestdata; > conftestdata # Sequent interprets utime(file, 0) to mean use start of epoch. Wrong. -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include #include main() { struct stat s, t; @@ -901,7 +900,7 @@ rm -f core ])dnl dnl define(AC_STRCOLL, [AC_CHECKING(for strcoll) -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include main () { exit (strcoll ("abc", "def") >= 0 || @@ -911,7 +910,7 @@ main () dnl define(AC_SETVBUF_REVERSED, [AC_CHECKING(whether setvbuf arguments are reversed) -AC_TEST_PROGRAM([#include +AC_TEST_RUN([#include /* If setvbuf has the reversed format, exit 0. */ main () { /* This call has the arguments reversed. @@ -999,14 +998,14 @@ define(AC_CROSS_CHECK, [AC_PROVIDE([$0])dnl AC_CHECKING(whether cross-compiling) # If we cannot run a trivial program, we must be cross compiling. -AC_TEST_PROGRAM([main(){exit(0);}], cross_compiling=, cross_compiling=yes) +AC_TEST_RUN([main(){exit(0);}], cross_compiling=, cross_compiling=yes) if test "$cross_compiling" = yes; then AC_VERBOSE(we are cross-compiling) fi])dnl dnl define(AC_CHAR_UNSIGNED, [AC_CHECKING(for unsigned characters) -AC_TEST_PROGRAM( +AC_TEST_RUN( [/* volatile prevents gcc2 from optimizing the test away on sparcs. */ #if !__STDC__ #define volatile @@ -1023,10 +1022,10 @@ dnl define(AC_LONG_DOUBLE, [AC_REQUIRE([AC_PROG_CC])dnl AC_CHECKING(for long double) -if test -n "$GCC"; then +if test "$GCC" = yes; then AC_DEFINE(HAVE_LONG_DOUBLE) else -AC_TEST_PROGRAM([int main() { +AC_TEST_RUN([int main() { /* The Stardent Vistra knows sizeof(long double), but does not support it. */ long double foo = 0.0; /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ @@ -1038,20 +1037,20 @@ dnl define(AC_INT_16_BITS, [AC_OBSOLETE([$0], [; instead use AC_SIZEOF_TYPE(int)]) AC_CHECKING(integer size) -AC_TEST_PROGRAM([main() { exit(sizeof(int) != 2); }], +AC_TEST_RUN([main() { exit(sizeof(int) != 2); }], AC_DEFINE(INT_16_BITS)) ])dnl dnl define(AC_LONG_64_BITS, [AC_OBSOLETE([$0], [; instead use AC_SIZEOF_TYPE(long)]) AC_CHECKING(for 64-bit long ints) -AC_TEST_PROGRAM([main() { exit(sizeof(long int) != 8); }], +AC_TEST_RUN([main() { exit(sizeof(long int) != 8); }], AC_DEFINE(LONG_64_BITS)) ])dnl dnl define(AC_WORDS_BIGENDIAN, [AC_CHECKING(byte ordering) -AC_TEST_PROGRAM([main () { +AC_TEST_RUN([main () { /* Are we little or big endian? From Harbison&Steele. */ union { @@ -1065,7 +1064,7 @@ AC_TEST_PROGRAM([main () { dnl define(AC_ARG_ARRAY, [AC_CHECKING(whether the address of an argument can be used as an array) -AC_TEST_PROGRAM([main() { +AC_TEST_RUN([main() { /* Return 0 iff arg arrays are ok. */ exit(!x(1, 2, 3, 4)); } @@ -1186,7 +1185,7 @@ test "$ac_some_dir_failed" = yes || AC_DEFINE(HAVE_LONG_FILE_NAMES) dnl define(AC_RESTARTABLE_SYSCALLS, [AC_CHECKING(for restartable system calls) -AC_TEST_PROGRAM( +AC_TEST_RUN( [/* Exit 0 (true) if wait returns something other than -1, i.e. the pid of the child, which means that wait was restarted after getting the signal. */ @@ -1373,8 +1372,8 @@ fi # It would also be nice to do this for all -L options, not just this one. if test -n "$x_libraries"; then X_LIBS="$X_LIBS -L$x_libraries" - if test "`(uname) 2>/dev/null`" = SunOS \ - && uname -r | grep '^5' >/dev/null; then + if test "`(uname) 2>/dev/null`" = SunOS && + uname -r | grep '^5' >/dev/null; then X_LIBS="$X_LIBS -R$x_libraries" fi fi @@ -1410,13 +1409,13 @@ AC_SUBST(X_EXTRA_LIBS)dnl dnl dnl dnl ### Checks for UNIX variants -dnl These are kludges; we need a better approach. +dnl These are kludges; we need a more systematic approach. dnl dnl define(AC_AIX, [AC_CHECKING(for AIX) AC_BEFORE([$0], [AC_TEST_LINK])dnl -AC_BEFORE([$0], [AC_TEST_PROGRAM])dnl +AC_BEFORE([$0], [AC_TEST_RUN])dnl AC_BEFORE([$0], [AC_TEST_CPP])dnl AC_PROGRAM_EGREP(yes, [#ifdef _AIX @@ -1427,7 +1426,7 @@ AC_PROGRAM_EGREP(yes, dnl define(AC_MINIX, [AC_BEFORE([$0], [AC_TEST_LINK])dnl -AC_BEFORE([$0], [AC_TEST_PROGRAM])dnl +AC_BEFORE([$0], [AC_TEST_RUN])dnl AC_BEFORE([$0], [AC_TEST_CPP])dnl AC_HEADER_CHECK(minix/config.h, MINIX=yes, MINIX=) # The Minix shell ca not assign to the same variable on the same line! @@ -1441,7 +1440,7 @@ dnl define(AC_ISC_POSIX, [AC_PROVIDE([$0])dnl AC_BEFORE([$0], [AC_TEST_LINK])dnl -AC_BEFORE([$0], [AC_TEST_PROGRAM])dnl +AC_BEFORE([$0], [AC_TEST_RUN])dnl AC_BEFORE([$0], [AC_TEST_CPP])dnl AC_CHECKING(for POSIXized ISC) if test -d /etc/conf/kconfig.d && @@ -1449,7 +1448,7 @@ if test -d /etc/conf/kconfig.d && then ISC=yes # If later tests want to check for ISC. AC_DEFINE(_POSIX_SOURCE) - if test -n "$GCC"; then + if test "$GCC" = yes; then CC="$CC -posix" else CC="$CC -Xp"