AX_AUTO_INCLUDE_HEADERS(INCLUDE-FILE ...)
,
Scott Pakin <scott+ac@pakin.org>
AllPermissive
Copying and distribution of this file, with or
without modification, are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. Users of this software should generally follow the
principles of the
MIT License includings its disclaimer.
other's Miscellaneous (released)
Given a space-separated list of INCLUDE-FILEs,
AX_AUTO_INCLUDE_HEADERS will output a conditional #include for each
INCLUDE-FILE. The following example demonstrates how
AX_AUTO_INCLUDE_HEADERS's might be used in a configure.ac script:
AH_BOTTOM([
AX_AUTO_INCLUDE_HEADERS([sys/resource.h invent.h sys/sysinfo.h])dnl
])
The preceding invocation instructs autoheader to put the following
code at the bottom of the config.h file:
#ifdef HAVE_SYS_RESOURCE_H
# include <sys/resource.h>
#endif
#ifdef HAVE_INVENT_H
# include <invent.h>
#endif
#ifdef HAVE_SYS_SYSINFO_H
# include <sys/sysinfo.h>
#endif
Note that AX_AUTO_INCLUDE_HEADERS merely outputs
#ifdef/#include/#endif blocks. The configure.ac script still needs
to invoke AC_CHECK_HEADERS to #define the various HAVE_*_H
preprocessor macros.
Here's an easy way to get from config.h a complete list of header
files who existence is tested by the configure script:
cat config.h | perl -ane '/ HAVE_\S+_H / && do {$_=$F[$#F-1]; s/^HAVE_//; s/_H/.h/; s|_|/|g; tr/A-Z/a-z/; print "$_ "}'
You can then manually edit the resulting list and incorporate it
into one or more calls to AX_AUTO_INCLUDE_HEADERS.
AC_DEFUN([AX_AUTO_INCLUDE_HEADERS], [dnl
AC_FOREACH([AX_Header], [$1], [dnl
m4_pushdef([AX_IfDef], AS_TR_CPP(HAVE_[]AX_Header))dnl
[#]ifdef AX_IfDef
[#] include <AX_Header>
[#]endif
m4_popdef([AX_IfDef])dnl
])])