configure --verbose no longer has any effect.
* AC_PREFIX_PROGRAM, which obsoletes AC_PREFIX.
* AC_HEADER_DIRENT, which obsoletes AC_DIR_HEADER.
+* AC_CHECK_LIB, which obsoletes AC_HAVE_LIBRARY.
* AC_ARG_ENABLE and AC_ARG_WITH, which obsolete AC_ENABLE and AC_WITH.
* AC_SUBST_FILE, to insert one file into another.
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
- echo "loading site initialization script $ac_site_file"
+ echo "loading site script $ac_site_file"
. $ac_site_file
fi
done
dnl
define(AC_CACHE_LOAD,
[if test -r "$cache_file"; then
- echo "loading test results from cache file $cache_file"
+ echo "loading cache $cache_file"
. $cache_file
else
- echo "creating new cache file $cache_file"
+ echo "creating cache $cache_file"
> $cache_file
fi])dnl
dnl
define(AC_CACHE_SAVE,
[if test -w $cache_file; then
-echo "saving test results in cache file $cache_file"
+echo "updating cache $cache_file"
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
dnl AC_CACHE_VAL(CACHE-ID, COMMANDS-TO-SET-IT)
dnl The name of shell var CACHE-ID must contain `_cv_' in order to get saved.
define(AC_CACHE_VAL,
-[AC_REQUIRE([AC_MSG_ECHO_N])dnl
+[AC_REQUIRE([AC_PROG_ECHO_N])dnl
dnl We used to use the below line, but it fails if the 1st arg is a
dnl shell variable, so we need the eval.
dnl if test "${$1+set}" = set; then
dnl ### Printing messages
dnl
dnl
-dnl Check whether to use -n, \c, or newline-tab to separate
-dnl checking messages from result messages.
-define(AC_MSG_ECHO_N,
-[AC_PROVIDE([$0])dnl
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- if (echo -n testing; echo 1,2,3) | grep -e -n > /dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi])dnl
-dnl
dnl AC_MSG_CHECKING(FEATURE-DESCRIPTION)
define(AC_MSG_CHECKING,
-[AC_REQUIRE([AC_MSG_ECHO_N])dnl
-echo $ac_n "checking $1""...$ac_c" 1>&4])dnl
+[AC_REQUIRE([AC_PROG_ECHO_N])dnl
+echo $ac_n "checking $1""... $ac_c" 1>&4])dnl
dnl
-dnl Obsolete version.
define(AC_CHECKING,
[AC_OBSOLETE([$0], [; instead use AC_MSG_CHECKING])dnl
echo "checking $1" 1>&4])dnl
dnl
dnl AC_MSG_RESULT(RESULT-DESCRIPTION)
define(AC_MSG_RESULT,
-[AC_REQUIRE([AC_MSG_ECHO_N])dnl
+[AC_REQUIRE([AC_PROG_ECHO_N])dnl
echo "$ac_t""$1" 1>&4])dnl
dnl
-dnl Obsolete version.
define(AC_VERBOSE,
[AC_OBSOLETE([$0], [; instead use AC_MSG_RESULT])dnl
echo " $1" 1>&4])dnl
ifelse([$3], , , [test -n "[$]$1" || $1="$3"
])])dnl
dnl
-dnl AC_CHECK_LIB(LIBRARY [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
+dnl AC_CHECK_LIB(LIBRARY, FUNCTION, [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
dnl [, OTHER-LIBRARIES]]])
-define(AC_CHECK_LIB, [dnl
-changequote(/, /)dnl
+define(AC_CHECK_LIB,
+[changequote(/, /)dnl
define(/AC_LIB_NAME/, dnl
patsubst(patsubst($1, /lib\([^\.]*\)\.a/, /\1/), /-l/, //))dnl
define(/AC_CV_NAME/, ac_cv_lib_//AC_LIB_NAME)dnl
AC_MSG_CHECKING([for -l[]AC_LIB_NAME])
AC_CACHE_VAL(AC_CV_NAME,
[ac_save_LIBS="${LIBS}"
-LIBS="${LIBS} -l[]AC_LIB_NAME[] $4"
-AC_TRY_LINK( , [main();], AC_CV_NAME=yes, AC_CV_NAME=no)dnl
+LIBS="${LIBS} -l[]AC_LIB_NAME[] $5"
+AC_TRY_LINK( , [$2()], AC_CV_NAME=yes, AC_CV_NAME=no)dnl
LIBS="${ac_save_LIBS}"
])dnl
AC_MSG_RESULT($AC_CV_NAME)
if test "${AC_CV_NAME}" = yes; then
- ifelse([$2], ,
+ ifelse([$3], ,
[AC_DEFINE([HAVE_LIB]translit(AC_LIB_NAME, [a-z], [A-Z]))
LIBS="${LIBS} -l[]AC_LIB_NAME[]"
-], [$2])
-ifelse([$3], , , [else
- $3
+], [$3])
+ifelse([$4], , , [else
+ $4
])dnl
fi
undefine(AC_LIB_NAME)dnl
undefine(AC_CV_NAME)dnl
])dnl
dnl
+dnl AC_HAVE_LIBRARY(LIBRARY, [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
+dnl [, OTHER-LIBRARIES]]])
+define(AC_HAVE_LIBRARY,
+[AC_OBSOLETE([$0], [; instead use AC_CHECK_LIB])dnl
+AC_CHECK_LIB([$1], main, [$2], [$3], [$4])dnl
+])dnl
+dnl
dnl
dnl ### Checking for C features - fundamental (no caching)
dnl
dnl ### Checks for programs
dnl
dnl
+dnl Check whether to use -n, \c, or newline-tab to separate
+dnl checking messages from result messages.
+dnl Idea borrowed from dist 3.0.
+dnl Internal use only.
+define(AC_PROG_ECHO_N,
+[AC_PROVIDE([$0])dnl
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ if (echo -n testing; echo 1,2,3) | grep -e -n > /dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi])dnl
+dnl
define(AC_PROG_CC,
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
AC_PROVIDE([$0])dnl
if test -z "$LEXLIB"
then
case "$LEX" in
- flex*) AC_CHECK_LIB(fl, LEXLIB="-lfl") ;;
+ flex*) AC_CHECK_LIB(fl, main, LEXLIB="-lfl") ;;
*) LEXLIB="-ll" ;;
esac
fi
ac_have_func=no
# Check for the 4.4BSD definition of getloadavg.
-AC_CHECK_LIB(util, [LIBS="$LIBS -lutil" ac_have_func=yes
+AC_CHECK_LIB(util, getloadavg, [LIBS="$LIBS -lutil" ac_have_func=yes
# Some systems with -lutil have (and need) -lkvm as well, some do not.
-AC_CHECK_LIB(kvm, LIBS="$LIBS -lkvm")])
+AC_CHECK_LIB(kvm, kvm_open, LIBS="$LIBS -lkvm")])
if test $ac_have_func = no; then
# There is a commonly available library for RS/6000 AIX.
# Since it is not a standard part of AIX, it might be installed locally.
ac_save_LIBS="$LIBS" LIBS="-L/usr/local/lib $LIBS"
-AC_CHECK_LIB(getloadavg, LIBS="$LIBS -lgetloadavg", LIBS="$ac_save_LIBS")
+AC_CHECK_LIB(getloadavg, getloadavg, LIBS="$LIBS -lgetloadavg", LIBS="$ac_save_LIBS")
fi
# Make sure it is really in the library, if we think we found it.
ac_have_func=no
AC_CHECK_HEADER(sys/dg_sys_info.h,
[ac_have_func=yes AC_DEFINE(DGUX)
-# Some versions of DGUX need -ldgc for dg_sys_info.
-AC_CHECK_LIB(dgc)])
+AC_CHECK_LIB(dgc, dg_sys_info)])
if test $ac_have_func = no; then
# We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it
# uses stabs), but it is still SVR4. We cannot check for <elf.h> because
# Irix 4.0.5F has the header but not the library.
-AC_CHECK_LIB(elf,
+AC_CHECK_LIB(elf, elf_read,
[LIBS="$LIBS -lelf" ac_have_func=yes AC_DEFINE(SVR4)
- AC_CHECK_LIB(kvm, LIBS="$LIBS -lkvm")])
+ AC_CHECK_LIB(kvm, kvm_open, LIBS="$LIBS -lkvm")])
fi
if test $ac_have_func = no; then
AC_CHECK_HEADER(inq_stats/cpustats.h,
dnl Internal subroutine of AC_PATH_X.
define(AC_PATH_X_DIRECT,
[AC_CHECKING(for X include and library files directly)
-test -z "$x_direct_TRY_library" && x_direct_TRY_library=Xt
-test -z "$x_direct_TRY_include" && x_direct_TRY_include=X11/Intrinsic.h
-AC_TRY_CPP([#include <$x_direct_TRY_include>], no_x=,
+test -z "$x_direct_test_library" && x_direct_test_library=Xt
+test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
+AC_TRY_CPP([#include <$x_direct_test_include>], no_x=,
for ac_dir in \
/usr/X11R6/include \
/usr/X11R5/include \
/usr/openwin/share/include \
; \
do
- if test -r "$ac_dir/$x_direct_TRY_include"; then
+ if test -r "$ac_dir/$x_direct_test_include"; then
test -z "$ac_cv_x_includes" && ac_cv_x_includes=$ac_dir
no_x=
break
# Check for the libraries. First see if replacing the include by
# lib works.
-AC_CHECK_LIB("$x_direct_TRY_library", no_x=,
+AC_HAVE_LIBRARY("$x_direct_test_library", no_x=,
for ac_dir in `echo "$ac_cv_x_includes" | sed s/include/lib/` \
/usr/X11R6/lib \
/usr/X11R5/lib \
; \
do
for ac_extension in a so sl; do
- if test -r $ac_dir/lib${x_direct_TRY_library}.$ac_extension; then
+ if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
test -z "$ac_cv_x_libraries" && ac_cv_x_libraries=$ac_dir
no_x=
break 2
# Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X
# libraries were built with DECnet support. And karl@cs.umb.edu says
# the Alpha needs dnet_stub (dnet does not exist).
- AC_CHECK_LIB(dnet,
+ AC_CHECK_LIB(dnet, dnet_ntoa,
[X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" ac_have_dnet=yes], ac_have_dnet=no)
if test "$ac_have_dnet" = no; then
- AC_CHECK_LIB(dnet_stub, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
+ AC_CHECK_LIB(dnet_stub, dnet_ntoa,
+ [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
fi
# lieder@skyler.mavd.honeywell.com says without -lsocket,
# socket/setsockopt and other routines are undefined under SCO ODT 2.0.
# But -lsocket is broken on IRIX, according to simon@lia.di.epfl.ch.
if test "`(uname) 2>/dev/null`" != IRIX; then
- AC_CHECK_LIB(socket, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lsocket"])
+ AC_CHECK_LIB(socket, socket, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lsocket"])
fi
fi
#
])dnl
dnl
define(AC_OS_SCO,
-[AC_CHECK_LIB(intl, LIBS="$LIBS -lintl")
+[AC_CHECK_LIB(intl, strftime, LIBS="$LIBS -lintl")
])dnl
dnl
define(AC_OS_IRIX,
-[AC_CHECK_LIB(sun, LIBS="$LIBS -lsun")
+[AC_CHECK_LIB(sun, getmntent, LIBS="$LIBS -lsun")
])dnl
dnl
define(AC_OS_DYNIX,
-[AC_CHECK_LIB(seq, LIBS="$LIBS -lseq")
+[AC_CHECK_LIB(seq, getmntent, LIBS="$LIBS -lseq")
])dnl
These macros check whether particular files exist.
-@defmac AC_CHECK_LIB (@var{library} @r{[}, @var{action-if-found} @r{[}, @var{action-if-not-found} @r{[}, @var{other-libraries}@r{]]]})
+@defmac AC_CHECK_LIB (@var{library}, @var{function}, @r{[}, @var{action-if-found} @r{[}, @var{action-if-not-found} @r{[}, @var{other-libraries}@r{]]]})
@maindex CHECK_LIB
Create a test C program to see whether that program can be linked with
-the library @var{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}.
+the library @var{library}. @var{function} should be the name of a
+function that that library contains, to force the linker to try to link
+with the library to resolve the name.
+
+@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}.
If linking with @var{library} results in unresolved symbols, which would
be resolved by linking with additional libraries, give those libraries
unresolved symbols.
@end defmac
+@defmac AC_HAVE_LIBRARY (@var{library}, @r{[}, @var{action-if-found} @r{[}, @var{action-if-not-found} @r{[}, @var{other-libraries}@r{]]]})
+@maindex HAVE_LIBRARY
+This macro is equivalent to calling @code{AC_CHECK_LIB} with a
+@var{function} argument of @code{main}. It is considered obsolete,
+because some linkers (e.g., Apollo's) do not fail when asked to link
+with a nonexistent library if there are no unresolved sybols.
+@end defmac
+
@defmac AC_PREFIX (@var{program})
@maindex PREFIX
This macro is like @code{AC_PREFIX_PROGRAM}, except that it prevents
This macro calls @code{AC_PROG_CPP} or @code{AC_PROG_CXXCPP} (depending
on which language is current, @pxref{Language Choice}), if it hasn't
-been called already.
+been called already. It does not use @code{CFLAGS}, because -g, -O,
+etc. are not valid options to many C preprocessors.
@end defmac
@defmac AC_TRY_LINK (@var{includes}, @var{function-body}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]})
@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}.
+@var{action-if-found}, otherwise run @var{action-if-not-found}. This
+macro uses @code{CFLAGS} and @code{LDFLAGS} and @code{LIBS} when
+compiling.
@end defmac
@defmac AC_TRY_RUN (@var{program}, @var{action-if-true} @r{[}, @var{action-if-false} @r{[}, @var{action-if-cross-compiling}@r{]]})
backquote substitutions are performed. If it compiles and links
successfully and returns an exit status of 0 when executed, run shell
commands @var{action-if-true}. Otherwise run shell commands
-@var{action-if-false}.
+@var{action-if-false}. This macro uses @code{CFLAGS} and @code{LDFLAGS}
+and @code{LIBS} when compiling.
-If the optional argument @var{action-if-cross-compiling} is given and
-the C compiler being used does not produce executables that run on the
-system where @code{configure} is being run, then the test program is not
-run. Instead, the shell commands @var{action-if-cross-compiling} are
-run. If that argument is given, this macro calls @code{AC_C_CROSS}
+If the C compiler being used does not produce executables that run on
+the system where @code{configure} is being run, then the test program is
+not run. If the optional shell commands @var{action-if-cross-compiling}
+are given, they are run instead and this macro calls @code{AC_C_CROSS}
if it has not already been called (@pxref{Compiler Characteristics}).
+Otherwise, @code{configure} prints an error message and exits.
+
+It is preferable to use @code{AC_TRY_LINK} instead of @code{AC_TRY_RUN},
+when possible. @xref{Test Programs}, for more information.
@end defmac
@node Command Line, Setting Variables, C Features, General Purpose Macros
test program by hand. You can compile and run it using
@code{AC_TRY_RUN} (@pxref{C Features}).
-Try to avoid writing test programs if possible, because using them
+Try to avoid running 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
are good places to set default values for other shell variables like
@code{CC}, if you need to give them unusual values: anything you would
normally do, repetitively, on the command line. If you use non-default
-values for @var{prefix} or @var{exec_prefix}, you can't set them in the
-site file, since you have to specify them on the command line in order
-for @code{configure} to find the site file!
+values for @var{prefix} or @var{exec_prefix} (wherever you locate the
+site file), you can't set them in the site file, since you have to
+specify them on the command line in order for @code{configure} to find
+the site file!
-In addition, it is possible to set some cache values in the site file.
+It is possible to set some cache values in the site file.
If you are cross-compiling, it is impossible to check features that
require running a test program. You could ``prime the cache'' by
setting those values correctly for that system in
their default values (as set near the top of @code{configure}) before
changing them.
+Here is a sample file @file{/usr/share/local/gnu/lib/config.site}.
+@samp{configure --prefix=/usr/share/local/gnu} would read this file.
+
+@example
+# config.site for configure
+#
+# Give Autoconf 2.x generated configure scripts a shared default
+# cache file for feature test results, architecture-specific.
+test $cache_file = ./config.cache &&
+ cache_file=/usr/local/gnu/lib/config.cache
+# Also, if you give --prefix, you get --exec-prefix automatically.
+test $exec_prefix = NONE && exec_prefix=/usr/local/gnu
+@end example
+
@node Old Macro Names, Example, Site Default Values, Top
@chapter Old Macro Names
@vindex PROGRAMS_PATH
@vindex PATH_PROGS
@code{AC_PATH_PROGS}
-@item AC_HAVE_LIBRARY
-@vindex HAVE_LIBRARY
-@vindex CHECK_LIB
-@code{AC_CHECK_LIB}
@item AC_HEADER_EGREP
@vindex HEADER_EGREP
@vindex EGREP_HEADER
These macros check whether particular files exist.
-@defmac AC_CHECK_LIB (@var{library} @r{[}, @var{action-if-found} @r{[}, @var{action-if-not-found} @r{[}, @var{other-libraries}@r{]]]})
+@defmac AC_CHECK_LIB (@var{library}, @var{function}, @r{[}, @var{action-if-found} @r{[}, @var{action-if-not-found} @r{[}, @var{other-libraries}@r{]]]})
@maindex CHECK_LIB
Create a test C program to see whether that program can be linked with
-the library @var{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}.
+the library @var{library}. @var{function} should be the name of a
+function that that library contains, to force the linker to try to link
+with the library to resolve the name.
+
+@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}.
If linking with @var{library} results in unresolved symbols, which would
be resolved by linking with additional libraries, give those libraries
unresolved symbols.
@end defmac
+@defmac AC_HAVE_LIBRARY (@var{library}, @r{[}, @var{action-if-found} @r{[}, @var{action-if-not-found} @r{[}, @var{other-libraries}@r{]]]})
+@maindex HAVE_LIBRARY
+This macro is equivalent to calling @code{AC_CHECK_LIB} with a
+@var{function} argument of @code{main}. It is considered obsolete,
+because some linkers (e.g., Apollo's) do not fail when asked to link
+with a nonexistent library if there are no unresolved sybols.
+@end defmac
+
@defmac AC_PREFIX (@var{program})
@maindex PREFIX
This macro is like @code{AC_PREFIX_PROGRAM}, except that it prevents
This macro calls @code{AC_PROG_CPP} or @code{AC_PROG_CXXCPP} (depending
on which language is current, @pxref{Language Choice}), if it hasn't
-been called already.
+been called already. It does not use @code{CFLAGS}, because -g, -O,
+etc. are not valid options to many C preprocessors.
@end defmac
@defmac AC_TRY_LINK (@var{includes}, @var{function-body}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]})
@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}.
+@var{action-if-found}, otherwise run @var{action-if-not-found}. This
+macro uses @code{CFLAGS} and @code{LDFLAGS} and @code{LIBS} when
+compiling.
@end defmac
@defmac AC_TRY_RUN (@var{program}, @var{action-if-true} @r{[}, @var{action-if-false} @r{[}, @var{action-if-cross-compiling}@r{]]})
backquote substitutions are performed. If it compiles and links
successfully and returns an exit status of 0 when executed, run shell
commands @var{action-if-true}. Otherwise run shell commands
-@var{action-if-false}.
+@var{action-if-false}. This macro uses @code{CFLAGS} and @code{LDFLAGS}
+and @code{LIBS} when compiling.
-If the optional argument @var{action-if-cross-compiling} is given and
-the C compiler being used does not produce executables that run on the
-system where @code{configure} is being run, then the test program is not
-run. Instead, the shell commands @var{action-if-cross-compiling} are
-run. If that argument is given, this macro calls @code{AC_C_CROSS}
+If the C compiler being used does not produce executables that run on
+the system where @code{configure} is being run, then the test program is
+not run. If the optional shell commands @var{action-if-cross-compiling}
+are given, they are run instead and this macro calls @code{AC_C_CROSS}
if it has not already been called (@pxref{Compiler Characteristics}).
+Otherwise, @code{configure} prints an error message and exits.
+
+It is preferable to use @code{AC_TRY_LINK} instead of @code{AC_TRY_RUN},
+when possible. @xref{Test Programs}, for more information.
@end defmac
@node Command Line, Setting Variables, C Features, General Purpose Macros
test program by hand. You can compile and run it using
@code{AC_TRY_RUN} (@pxref{C Features}).
-Try to avoid writing test programs if possible, because using them
+Try to avoid running 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
are good places to set default values for other shell variables like
@code{CC}, if you need to give them unusual values: anything you would
normally do, repetitively, on the command line. If you use non-default
-values for @var{prefix} or @var{exec_prefix}, you can't set them in the
-site file, since you have to specify them on the command line in order
-for @code{configure} to find the site file!
+values for @var{prefix} or @var{exec_prefix} (wherever you locate the
+site file), you can't set them in the site file, since you have to
+specify them on the command line in order for @code{configure} to find
+the site file!
-In addition, it is possible to set some cache values in the site file.
+It is possible to set some cache values in the site file.
If you are cross-compiling, it is impossible to check features that
require running a test program. You could ``prime the cache'' by
setting those values correctly for that system in
their default values (as set near the top of @code{configure}) before
changing them.
+Here is a sample file @file{/usr/share/local/gnu/lib/config.site}.
+@samp{configure --prefix=/usr/share/local/gnu} would read this file.
+
+@example
+# config.site for configure
+#
+# Give Autoconf 2.x generated configure scripts a shared default
+# cache file for feature test results, architecture-specific.
+test $cache_file = ./config.cache &&
+ cache_file=/usr/local/gnu/lib/config.cache
+# Also, if you give --prefix, you get --exec-prefix automatically.
+test $exec_prefix = NONE && exec_prefix=/usr/local/gnu
+@end example
+
@node Old Macro Names, Example, Site Default Values, Top
@chapter Old Macro Names
@vindex PROGRAMS_PATH
@vindex PATH_PROGS
@code{AC_PATH_PROGS}
-@item AC_HAVE_LIBRARY
-@vindex HAVE_LIBRARY
-@vindex CHECK_LIB
-@code{AC_CHECK_LIB}
@item AC_HEADER_EGREP
@vindex HEADER_EGREP
@vindex EGREP_HEADER
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
- echo "loading site initialization script $ac_site_file"
+ echo "loading site script $ac_site_file"
. $ac_site_file
fi
done
dnl
define(AC_CACHE_LOAD,
[if test -r "$cache_file"; then
- echo "loading test results from cache file $cache_file"
+ echo "loading cache $cache_file"
. $cache_file
else
- echo "creating new cache file $cache_file"
+ echo "creating cache $cache_file"
> $cache_file
fi])dnl
dnl
define(AC_CACHE_SAVE,
[if test -w $cache_file; then
-echo "saving test results in cache file $cache_file"
+echo "updating cache $cache_file"
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
dnl AC_CACHE_VAL(CACHE-ID, COMMANDS-TO-SET-IT)
dnl The name of shell var CACHE-ID must contain `_cv_' in order to get saved.
define(AC_CACHE_VAL,
-[AC_REQUIRE([AC_MSG_ECHO_N])dnl
+[AC_REQUIRE([AC_PROG_ECHO_N])dnl
dnl We used to use the below line, but it fails if the 1st arg is a
dnl shell variable, so we need the eval.
dnl if test "${$1+set}" = set; then
dnl ### Printing messages
dnl
dnl
-dnl Check whether to use -n, \c, or newline-tab to separate
-dnl checking messages from result messages.
-define(AC_MSG_ECHO_N,
-[AC_PROVIDE([$0])dnl
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- if (echo -n testing; echo 1,2,3) | grep -e -n > /dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi])dnl
-dnl
dnl AC_MSG_CHECKING(FEATURE-DESCRIPTION)
define(AC_MSG_CHECKING,
-[AC_REQUIRE([AC_MSG_ECHO_N])dnl
-echo $ac_n "checking $1""...$ac_c" 1>&4])dnl
+[AC_REQUIRE([AC_PROG_ECHO_N])dnl
+echo $ac_n "checking $1""... $ac_c" 1>&4])dnl
dnl
-dnl Obsolete version.
define(AC_CHECKING,
[AC_OBSOLETE([$0], [; instead use AC_MSG_CHECKING])dnl
echo "checking $1" 1>&4])dnl
dnl
dnl AC_MSG_RESULT(RESULT-DESCRIPTION)
define(AC_MSG_RESULT,
-[AC_REQUIRE([AC_MSG_ECHO_N])dnl
+[AC_REQUIRE([AC_PROG_ECHO_N])dnl
echo "$ac_t""$1" 1>&4])dnl
dnl
-dnl Obsolete version.
define(AC_VERBOSE,
[AC_OBSOLETE([$0], [; instead use AC_MSG_RESULT])dnl
echo " $1" 1>&4])dnl
ifelse([$3], , , [test -n "[$]$1" || $1="$3"
])])dnl
dnl
-dnl AC_CHECK_LIB(LIBRARY [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
+dnl AC_CHECK_LIB(LIBRARY, FUNCTION, [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
dnl [, OTHER-LIBRARIES]]])
-define(AC_CHECK_LIB, [dnl
-changequote(/, /)dnl
+define(AC_CHECK_LIB,
+[changequote(/, /)dnl
define(/AC_LIB_NAME/, dnl
patsubst(patsubst($1, /lib\([^\.]*\)\.a/, /\1/), /-l/, //))dnl
define(/AC_CV_NAME/, ac_cv_lib_//AC_LIB_NAME)dnl
AC_MSG_CHECKING([for -l[]AC_LIB_NAME])
AC_CACHE_VAL(AC_CV_NAME,
[ac_save_LIBS="${LIBS}"
-LIBS="${LIBS} -l[]AC_LIB_NAME[] $4"
-AC_TRY_LINK( , [main();], AC_CV_NAME=yes, AC_CV_NAME=no)dnl
+LIBS="${LIBS} -l[]AC_LIB_NAME[] $5"
+AC_TRY_LINK( , [$2()], AC_CV_NAME=yes, AC_CV_NAME=no)dnl
LIBS="${ac_save_LIBS}"
])dnl
AC_MSG_RESULT($AC_CV_NAME)
if test "${AC_CV_NAME}" = yes; then
- ifelse([$2], ,
+ ifelse([$3], ,
[AC_DEFINE([HAVE_LIB]translit(AC_LIB_NAME, [a-z], [A-Z]))
LIBS="${LIBS} -l[]AC_LIB_NAME[]"
-], [$2])
-ifelse([$3], , , [else
- $3
+], [$3])
+ifelse([$4], , , [else
+ $4
])dnl
fi
undefine(AC_LIB_NAME)dnl
undefine(AC_CV_NAME)dnl
])dnl
dnl
+dnl AC_HAVE_LIBRARY(LIBRARY, [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
+dnl [, OTHER-LIBRARIES]]])
+define(AC_HAVE_LIBRARY,
+[AC_OBSOLETE([$0], [; instead use AC_CHECK_LIB])dnl
+AC_CHECK_LIB([$1], main, [$2], [$3], [$4])dnl
+])dnl
+dnl
dnl
dnl ### Checking for C features - fundamental (no caching)
dnl
dnl ### Checks for programs
dnl
dnl
+dnl Check whether to use -n, \c, or newline-tab to separate
+dnl checking messages from result messages.
+dnl Idea borrowed from dist 3.0.
+dnl Internal use only.
+define(AC_PROG_ECHO_N,
+[AC_PROVIDE([$0])dnl
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ if (echo -n testing; echo 1,2,3) | grep -e -n > /dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi])dnl
+dnl
define(AC_PROG_CC,
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
AC_PROVIDE([$0])dnl
if test -z "$LEXLIB"
then
case "$LEX" in
- flex*) AC_CHECK_LIB(fl, LEXLIB="-lfl") ;;
+ flex*) AC_CHECK_LIB(fl, main, LEXLIB="-lfl") ;;
*) LEXLIB="-ll" ;;
esac
fi
ac_have_func=no
# Check for the 4.4BSD definition of getloadavg.
-AC_CHECK_LIB(util, [LIBS="$LIBS -lutil" ac_have_func=yes
+AC_CHECK_LIB(util, getloadavg, [LIBS="$LIBS -lutil" ac_have_func=yes
# Some systems with -lutil have (and need) -lkvm as well, some do not.
-AC_CHECK_LIB(kvm, LIBS="$LIBS -lkvm")])
+AC_CHECK_LIB(kvm, kvm_open, LIBS="$LIBS -lkvm")])
if test $ac_have_func = no; then
# There is a commonly available library for RS/6000 AIX.
# Since it is not a standard part of AIX, it might be installed locally.
ac_save_LIBS="$LIBS" LIBS="-L/usr/local/lib $LIBS"
-AC_CHECK_LIB(getloadavg, LIBS="$LIBS -lgetloadavg", LIBS="$ac_save_LIBS")
+AC_CHECK_LIB(getloadavg, getloadavg, LIBS="$LIBS -lgetloadavg", LIBS="$ac_save_LIBS")
fi
# Make sure it is really in the library, if we think we found it.
ac_have_func=no
AC_CHECK_HEADER(sys/dg_sys_info.h,
[ac_have_func=yes AC_DEFINE(DGUX)
-# Some versions of DGUX need -ldgc for dg_sys_info.
-AC_CHECK_LIB(dgc)])
+AC_CHECK_LIB(dgc, dg_sys_info)])
if test $ac_have_func = no; then
# We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it
# uses stabs), but it is still SVR4. We cannot check for <elf.h> because
# Irix 4.0.5F has the header but not the library.
-AC_CHECK_LIB(elf,
+AC_CHECK_LIB(elf, elf_read,
[LIBS="$LIBS -lelf" ac_have_func=yes AC_DEFINE(SVR4)
- AC_CHECK_LIB(kvm, LIBS="$LIBS -lkvm")])
+ AC_CHECK_LIB(kvm, kvm_open, LIBS="$LIBS -lkvm")])
fi
if test $ac_have_func = no; then
AC_CHECK_HEADER(inq_stats/cpustats.h,
dnl Internal subroutine of AC_PATH_X.
define(AC_PATH_X_DIRECT,
[AC_CHECKING(for X include and library files directly)
-test -z "$x_direct_TRY_library" && x_direct_TRY_library=Xt
-test -z "$x_direct_TRY_include" && x_direct_TRY_include=X11/Intrinsic.h
-AC_TRY_CPP([#include <$x_direct_TRY_include>], no_x=,
+test -z "$x_direct_test_library" && x_direct_test_library=Xt
+test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
+AC_TRY_CPP([#include <$x_direct_test_include>], no_x=,
for ac_dir in \
/usr/X11R6/include \
/usr/X11R5/include \
/usr/openwin/share/include \
; \
do
- if test -r "$ac_dir/$x_direct_TRY_include"; then
+ if test -r "$ac_dir/$x_direct_test_include"; then
test -z "$ac_cv_x_includes" && ac_cv_x_includes=$ac_dir
no_x=
break
# Check for the libraries. First see if replacing the include by
# lib works.
-AC_CHECK_LIB("$x_direct_TRY_library", no_x=,
+AC_HAVE_LIBRARY("$x_direct_test_library", no_x=,
for ac_dir in `echo "$ac_cv_x_includes" | sed s/include/lib/` \
/usr/X11R6/lib \
/usr/X11R5/lib \
; \
do
for ac_extension in a so sl; do
- if test -r $ac_dir/lib${x_direct_TRY_library}.$ac_extension; then
+ if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
test -z "$ac_cv_x_libraries" && ac_cv_x_libraries=$ac_dir
no_x=
break 2
# Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X
# libraries were built with DECnet support. And karl@cs.umb.edu says
# the Alpha needs dnet_stub (dnet does not exist).
- AC_CHECK_LIB(dnet,
+ AC_CHECK_LIB(dnet, dnet_ntoa,
[X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" ac_have_dnet=yes], ac_have_dnet=no)
if test "$ac_have_dnet" = no; then
- AC_CHECK_LIB(dnet_stub, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
+ AC_CHECK_LIB(dnet_stub, dnet_ntoa,
+ [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
fi
# lieder@skyler.mavd.honeywell.com says without -lsocket,
# socket/setsockopt and other routines are undefined under SCO ODT 2.0.
# But -lsocket is broken on IRIX, according to simon@lia.di.epfl.ch.
if test "`(uname) 2>/dev/null`" != IRIX; then
- AC_CHECK_LIB(socket, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lsocket"])
+ AC_CHECK_LIB(socket, socket, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lsocket"])
fi
fi
#
])dnl
dnl
define(AC_OS_SCO,
-[AC_CHECK_LIB(intl, LIBS="$LIBS -lintl")
+[AC_CHECK_LIB(intl, strftime, LIBS="$LIBS -lintl")
])dnl
dnl
define(AC_OS_IRIX,
-[AC_CHECK_LIB(sun, LIBS="$LIBS -lsun")
+[AC_CHECK_LIB(sun, getmntent, LIBS="$LIBS -lsun")
])dnl
dnl
define(AC_OS_DYNIX,
-[AC_CHECK_LIB(seq, LIBS="$LIBS -lseq")
+[AC_CHECK_LIB(seq, getmntent, LIBS="$LIBS -lseq")
])dnl