[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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> ]
After the definitions file has been processed, any remaining entries in the define list will be added to the environment.
#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
getdefs
uses this mechanism so AutoGen will report the correct
file and approximate line number of any errors found in extracted
definitions.
#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
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |