To check for a library, a function, or a global variable, Autoconf
configure
scripts try to compile and link a small program that
uses it. This is unlike Metaconfig, which by default uses nm
or ar
on the C library to try to figure out which functions are
available. Trying to link with the function is usually a more reliable
approach because it avoids dealing with the variations in the options
and output formats of nm
and ar
and in the location of the
standard libraries. It also allows configuring for cross-compilation or
checking a function's runtime behavior if needed. On the other hand, it
can be slower than scanning the libraries once.
A few systems have linkers that do not return a failure exit status when
there are unresolved functions in the link. This bug makes the
configuration scripts produced by Autoconf unusable on those systems.
However, some of them can be given options that make the exit status
correct. This is a problem that Autoconf does not currently handle
automatically. If users encounter this problem, they might be able to
solve it by setting LDFLAGS
in the environment to pass whatever
options the linker needs (for example, `-Wl,-dn' on MIPS RISC/OS).
AC_TRY_LINK
is used to compile test programs to test for
functions and global variables. It is also used (by
AC_CHECK_LIB
) to check for libraries, by adding the library being
checked for to LIBS
temporarily and trying to link a small
program.
#include
statements needed by the code in function-body.
If the file compiles and links successfully, run shell commands
action-if-found, otherwise run action-if-not-found. This
macro uses CFLAGS
or CXXFLAGS
, CPPFLAGS
,
LDFLAGS
, and LIBS
when compiling.
AC_TRY_LINK
, with the addition that it
prints `checking for echo-text' to the standard output first,
if echo-text is non-empty. Use AC_MSG_CHECKING
and
AC_MSG_RESULT
instead to print messages (see section Printing Messages).