Go to the first, previous, next, last section, table of contents.
Definition processing directives can only be processed
if the '#' character is the first character on a line. Also, if you
want a '#' as the first character of a line in one of your string
assignments, you should either escape it by preceding it with a
backslash `\', or by embedding it in the string as in "\n#".
All of the normal C preprocessing directives are recognized, though
several are ignored. There is also an additional #shell -
#endshell pair. Another minor difference is that AutoGen
directives must have the hash character (#) in column 1.
The ignored directives are:
`#assert', `#ident', `#pragma', and `#if'.
Note that when ignoring the #if directive, all intervening
text through its matching #endif is also ignored,
including the #else clause.
The AutoGen directives that affect the processing of definitions are:
#define name [ <text> ]
#elif
#if
otherwise it will generate an error.
It will be ignored.
#else
#if, #ifdef or #ifndef.
If it follows the #if, then it will be ignored. Otherwise,
it will change the processing state to the reverse of what it was.
#endif
#if, #ifdef or #ifndef.
In all cases, this will resume normal processing of text.
#endshell
#error [ <descriptive text> ]
#if [ <ignored conditional expression> ]
#if expressions are not analyzed. Everything from here
to the matching #endif is skipped.
#ifdef name-to-test
#endif will be
processed only if there is a corresponding -Dname command line
option.
#ifndef name-to-test
#endif will be
processed only if there is not a corresponding -Dname
command line option or there was a canceling -Uname option.
#include unadorned-file-name
#line
#shell
$SHELL or `/bin/sh' on a script that should
generate AutoGen definitions. It does this using the same server
process that handles the back-quoted ` text.
CAUTION let not your $SHELL be csh.
#undef name-to-undefine
Go to the first, previous, next, last section, table of contents.