(autoconf.info)Default Includes


Prev: Standard Symbols Up: Common Behavior

5.1.2 Default Includes
----------------------

Several tests depend upon a set of header files.  Since these headers
are not universally available, tests actually have to provide a set of
protected includes, such as:

     #ifdef TIME_WITH_SYS_TIME
     # include <sys/time.h>
     # include <time.h>
     #else
     # ifdef HAVE_SYS_TIME_H
     #  include <sys/time.h>
     # else
     #  include <time.h>
     # endif
     #endif

Unless you know exactly what you are doing, you should avoid using
unconditional includes, and check the existence of the headers you
include beforehand (Note: Header Files).

   Most generic macros use the following macro to provide the default
set of includes:

 -- Macro: AC_INCLUDES_DEFAULT ([INCLUDE-DIRECTIVES])
     Expand to INCLUDE-DIRECTIVES if defined, otherwise to:

          #include <stdio.h>
          #ifdef HAVE_SYS_TYPES_H
          # include <sys/types.h>
          #endif
          #ifdef HAVE_SYS_STAT_H
          # include <sys/stat.h>
          #endif
          #ifdef STDC_HEADERS
          # include <stdlib.h>
          # include <stddef.h>
          #else
          # ifdef HAVE_STDLIB_H
          #  include <stdlib.h>
          # endif
          #endif
          #ifdef HAVE_STRING_H
          # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
          #  include <memory.h>
          # endif
          # include <string.h>
          #endif
          #ifdef HAVE_STRINGS_H
          # include <strings.h>
          #endif
          #ifdef HAVE_INTTYPES_H
          # include <inttypes.h>
          #endif
          #ifdef HAVE_STDINT_H
          # include <stdint.h>
          #endif
          #ifdef HAVE_UNISTD_H
          # include <unistd.h>
          #endif

     If the default includes are used, then check for the presence of
     these headers and their compatibility, i.e., you don't need to run
     `AC_HEADER_STDC', nor check for `stdlib.h' etc.

     These headers are checked for in the same order as they are
     included.  For instance, on some systems `string.h' and
     `strings.h' both exist, but conflict.  Then `HAVE_STRING_H' is
     defined, not `HAVE_STRINGS_H'.


automatically generated by info2www