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

3.4.37 `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.

prefix - first segment of #define name

This document was generated by Bruce Korb on February 17, 2003 using texi2html

Viewable With Any Browser   AutoGen Home