(autoconf.info)Running the Linker
Next: Runtime Prev: Running the Compiler Up: Writing Tests
6.5 Running the Linker
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, but accuracy is more important
`AC_LINK_IFELSE' 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 (Note: Libraries), by adding the library being
checked for to `LIBS' temporarily and trying to link a small program.
-- Macro: AC_LINK_IFELSE (INPUT, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
Run the compiler (and compilation flags) and the linker of the
current language (Note: Language Choice) on the INPUT, run the
shell commands ACTION-IF-TRUE on success, ACTION-IF-FALSE
otherwise. The INPUT can be made by `AC_LANG_PROGRAM' and friends.
`LDFLAGS' and `LIBS' are used for linking, in addition to the
current compilation flags.
It is customary to report unexpected failures with
`AC_MSG_FAILURE'. This macro does not try to execute the program;
use `AC_RUN_IFELSE' if you need to do that (Note: Runtime).
The `AC_LINK_IFELSE' macro cannot be used for Erlang tests, since
Erlang programs are interpreted and do not require linking.
automatically generated by info2www