For each of the symbols (comma-separated list), define
HAVE_DECL_
symbol (in all capitals) to ‘1’ if
symbol is declared, otherwise to ‘0’. If
action-if-not-found is given, it is additional shell code to
execute when one of the function declarations is needed, otherwise
action-if-found is executed.
This macro uses an M4 list as first argument:
AC_CHECK_DECLS([strdup])
AC_CHECK_DECLS([strlen])
AC_CHECK_DECLS([malloc, realloc, calloc, free])
Unlike the other ‘AC_CHECK_*S’ macros, when a symbol is not
declared, HAVE_DECL_
symbol is defined to ‘0’ instead
of leaving HAVE_DECL_
symbol undeclared. When you are
sure that the check was performed, use
HAVE_DECL_
symbol just like any other result of Autoconf:
#if !HAVE_DECL_SYMBOL
extern char *symbol;
#endif
If the test may have not been performed, however, because it is safer
not to declare a symbol than to use a declaration that conflicts
with the system's one, you should use:
#if defined HAVE_DECL_MALLOC && !HAVE_DECL_MALLOC
void *malloc (size_t *s);
#endif
You fall into the second category only in extreme situations: either
your files may be used without being configured, or they are used during
the configuration. In most cases the traditional approach is enough.