AutoGen: SCM make-header-guard

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 3.4.39 ``make-header-guard'` - make self-inclusion guard

Emit a `#ifndef`/`#define` sequence based upon the output file name and the provided prefix. It will also define a scheme variables named, `header-file` and `header-guard`. The `#define` name is composed as follows:

1. The first element is the string argument and a separating underscore.
2. That is followed by the name of the header file with illegal characters mapped to underscores.
3. The end of the name is always, "`_GUARD`".
4. Finally, the entire string is mapped to upper case.

The final `#define` name is stored in an SCM symbol named `header-guard`. Consequently, the concluding `#endif` for the file should read something like:

    #endif /* [+ (. header-guard) +] */

The name of the header file (the current output file) is also stored in an SCM symbol, `header-file`. Therefore, if you are also generating a C file that uses the previously generated header file, you can put this into that generated file:

    #include "[+ (. header-file) +]"

Obviously, if you are going to produce more than one header file from a particular template, you will need to be careful how these SCM symbols get handled.

Arguments:
prefix - first segment of `#define` name

This document was generated by Bruce Korb on February 23, 2004 using texi2html