Previous: autoheader Invocation, Up: Configuration Headers


4.9.3 Autoheader Macros

autoheader scans configure.ac and figures out which C preprocessor symbols it might define. It knows how to generate templates for symbols defined by AC_CHECK_HEADERS, AC_CHECK_FUNCS etc., but if you AC_DEFINE any additional symbol, you must define a template for it. If there are missing templates, autoheader fails with an error message.

The template for a symbol is created by autoheader from the description argument to an AC_DEFINE; see Defining Symbols.

For special needs, you can use the following macros.

— Macro: AH_TEMPLATE (key, description)

Tell autoheader to generate a template for key. This macro generates standard templates just like AC_DEFINE when a description is given.

For example:

          AH_TEMPLATE([CRAY_STACKSEG_END],
                      [Define to one of _getb67, GETB67, getb67
                       for Cray-2 and Cray-YMP systems.  This
                       function is required for alloca.c support
                       on those systems.])
     

generates the following template, with the description properly justified.

          /* Define to one of _getb67, GETB67, getb67 for Cray-2 and
             Cray-YMP systems.  This function is required for alloca.c
             support on those systems.  */
          #undef CRAY_STACKSEG_END
     
— Macro: AH_VERBATIM (key, template)

Tell autoheader to include the template as-is in the header template file. This template is associated with the key, which is used to sort all the different templates and guarantee their uniqueness. It should be a symbol that can be defined via AC_DEFINE.

— Macro: AH_TOP (text)

Include text at the top of the header template file.

— Macro: AH_BOTTOM (text)

Include text at the bottom of the header template file.

Please note that text gets included “verbatim” to the template file, not to the resulting config header, so it can easily get mangled when the template is processed. There is rarely a need for something other than

     AH_BOTTOM([#include <custom.h>])