Node:Generic Functions, Previous:Particular Functions, Up:Library Functions
These macros are used to find functions not covered by the "particular"
test macros. If the functions might be in libraries other than the
default C library, first call AC_CHECK_LIB
for those libraries.
If you need to check the behavior of a function as well as find out
whether it is present, you have to write your own test for
it (see Writing Tests).
AC_CHECK_FUNC (function, [action-if-found], [action-if-not-found]) | Macro |
If C function function is available, run shell commands
action-if-found, otherwise action-if-not-found. If you just
want to define a symbol if the function is available, consider using
AC_CHECK_FUNCS instead. This macro checks for functions with C
linkage even when AC_LANG(C++) has been called, since C is more
standardized than C++. (see Language Choice, for more information
about selecting the language for checks.)
|
AC_CHECK_FUNCS (function..., [action-if-found], [action-if-not-found]) | Macro |
For each function in the whitespace-separated argument list,
define HAVE_function (in all capitals) if it is available.
If action-if-found is given, it is additional shell code to
execute when one of the functions is found. You can give it a value of
break to break out of the loop on the first match. If
action-if-not-found is given, it is executed when one of the
functions is not found.
|
Autoconf follows a philosophy that was formed over the years by those who have struggled for portability: isolate the portability issues in specific files, and then program as if you were in a POSIX environment. Some functions may be missing or unfixable, and your package must be ready to replace them.
Use the first three of the following macros to specify a function to be
replaced, and the last one (AC_REPLACE_FUNCS
) to check for and
replace the function if needed.
AC_LIBOBJ (function) | Macro |
Specify that function.c must be included in the executables
to replace a missing or broken implementation of function.
Technically, it adds |
AC_LIBSOURCE (file) | Macro |
Specify that file might be needed to compile the project. If you
need to know what files might be needed by a configure.ac , you
should trace AC_LIBSOURCE . file must be a literal.
This macro is called automatically from AC_LIBSOURCE(foo.c) AC_LIBSOURCE(bar.c) AC_LIBOBJ($foo_or_bar) There is usually a way to avoid this, however, and you are encouraged to
simply call Note that this macro replaces the obsolete |
AC_LIBSOURCES (files) | Macro |
Like AC_LIBSOURCE , but accepts one or more files in a
comma-separated M4 list. Thus, the above example might be rewritten:
AC_LIBSOURCES([foo.c, bar.c]) AC_LIBOBJ($foo_or_bar) |
AC_REPLACE_FUNCS (function...) | Macro |
Like AC_CHECK_FUNCS , but uses AC_LIBOBJ(function) as
action-if-not-found. You can declare your replacement function by
enclosing the prototype in #if !HAVE_function . If the
system has the function, it probably declares it in a header file you
should be including, so you shouldn't redeclare it lest your declaration
conflict.
|