Next: autoheader Invocation Up: Configuration Headers
4.9.1 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:
Then you could have code like the following in `conf.h.in'. On systems
that have `unistd.h', `configure' defines `HAVE_UNISTD_H' to 1. On
other systems, the whole line is commented out (in case the system
predefines that symbol).
/* Define as 1 if you have unistd.h. */
Pay attention that `#undef' is in the first column, and there is
nothing after `HAVE_UNISTD_H', not even white space. You can then
decode the configuration header using the preprocessor directives:
# include <unistd.h>
/* We are in trouble. */
The use of old form templates, with `#define' instead of `#undef' is
strongly discouraged. Similarly with old templates with comments on
the same line as the `#undef'. Anyway, putting comments in
preprocessor macros has never been a good idea.
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.
automatically generated by info2www