DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(autoconf.info.gz) Generic Declarations

Info Catalog (autoconf.info.gz) Particular Declarations (autoconf.info.gz) Declarations
 
 Generic Declaration Checks
 --------------------------
 
    These macros are used to find declarations not covered by the
 "particular" test macros.
 
  - Macro: AC_CHECK_DECL (SYMBOL, [ACTION-IF-FOUND],
           [ACTION-IF-NOT-FOUND], [INCLUDES = `default-includes'])
      If SYMBOL (a function or a variable) is not declared in INCLUDES
      and a declaration is needed, run the shell commands
      ACTION-IF-NOT-FOUND, otherwise ACTION-IF-FOUND.  If no INCLUDES
      are specified, the default includes are used ( Default
      Includes).
 
      This macro actually tests whether it is valid to use SYMBOL as an
      r-value, not if it is really declared, because it is much safer to
      avoid introducing extra declarations when they are not needed.
 
  - Macro: AC_CHECK_DECLS (SYMBOLS, [ACTION-IF-FOUND],
           [ACTION-IF-NOT-FOUND], [INCLUDES = `default-includes'])
      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
           char *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.
 
Info Catalog (autoconf.info.gz) Particular Declarations (autoconf.info.gz) Declarations
automatically generated byinfo2html