Configuration Header Templates
------------------------------
Your distribution should contain a template file that looks as you
want the final header file to look, including comments, with `#undef'
statements which are used as hooks. For example, suppose your
`configure.ac' makes these calls:
AC_CONFIG_HEADERS([conf.h])
AC_CHECK_HEADERS([unistd.h])
Then you could have code like the following in `conf.h.in'. On systems
that have `unistd.h', `configure' will `#define' `HAVE_UNISTD_H' to 1.
On other systems, the whole line will be commented out (in case the
system predefines that symbol).
/* Define as 1 if you have unistd.h. */
#undef HAVE_UNISTD_H
You can then decode the configuration header using the preprocessor
directives:
#include <conf.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#else
/* We are in trouble. */
#endif
The use of old form templates, with `#define' instead of `#undef' is
strongly discouraged.
Since it is a tedious task to keep a template header up to date, you
may use `autoheader' to generate it, see Note:autoheader Invocation.