The autoheader program can create a template file of C #define statements for configure to use. If configure.in invokes AC_CONFIG_HEADER(FILE), autoheader creates FILE.in; if multiple file arguments are given, the first one is used. Otherwise, autoheader creates config.h.in.
If you give autoheader an argument, it uses that file instead of configure.in and writes the header file to the standard output instead of to config.h.in autoheader an argument of -, it reads the standard input instead of configure.in and writes the header file to the standard output.
autoheader scans configure.in and figures out which C preprocessor symbols it might define. It copies comments and #define and #undef statements from a file called acconfig.h, which comes with and is installed with Autoconf. It also uses a file called acconfig.h in the current directory, if present. If you AC_DEFINE any additional symbols, you must create that file with entries for them. For symbols defined by AC_CHECK_HEADERS, AC_CHECK_FUNCS, AC_CHECK_SIZEOF, or AC_CHECK_LIB, autoheader generates comments and #undef statements itself rather than copying them from a file, since the possible symbols are effectively limitless.
The file that autoheader creates contains mainly #define and #undef statements and their accompanying comments. If ./acconfig.h contains the string @TOP@, autoheader copies the lines before the line containing @TOP@ into the top of the file that it generates. Similarly, if ./acconfig.h contains the string @BOTTOM@, autoheader copies the lines after that line to the end of the file it generates. Either or both of those strings may be omitted.
An alternate way to produce the same effect is to create the files FILE.top (typically config.h.top) and/or FILE.bot in the current directory. If they exist, autoheader copies them to the beginning and end, respectively, of its output. Their use is discouraged because they have file names that contain two periods, and so can not be stored on MS-DOS; also, they are two more files to clutter up the directory. But if you use the --localdir=DIR option to use an acconfig.h in another directory, they give you a way to put custom boilerplate in each individual config.h.in.
autoheader accepts the following options: