Copyright (C) 2000-2012 |
GNU Info (autoconf.info)Default IncludesDefault 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: #if TIME_WITH_SYS_TIME # include <sys/time.h> # include <time.h> #else # if 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 provide the following default set of includes: #include <stdio.h> #if HAVE_SYS_TYPES_H # include <sys/types.h> #endif #if HAVE_SYS_STAT_H # include <sys/stat.h> #endif #if STDC_HEADERS # include <stdlib.h> # include <stddef.h> #else # if HAVE_STDLIB_H # include <stdlib.h> # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include <memory.h> # endif # include <string.h> #endif #if HAVE_STRINGS_H # include <strings.h> #endif #if HAVE_INTTYPES_H # include <inttypes.h> #else # if HAVE_STDINT_H # include <stdint.h> # endif #endif #if HAVE_UNISTD_H # include <unistd.h> #endif If the default includes are used, then Autoconf will automatically check for the presence of these headers and their compatibility, i.e., you don't need to run `AC_HEADERS_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' will be defined, but `HAVE_STRINGS_H' won't. automatically generated by info2www version 1.2.2.9 |