http://www.math.polytechnique.fr/cmat/auroux/prog/gpp.html
As of version 2.1, XSB uses gpp as a source code preprocessor for Prolog programs. This helps maintain consistency between the C and the Prolog parts of XSB through the use of the same .h files. In addition, the use of macros improves the readability of many Prolog programs, especially those that deal with low-level aspects of XSB. Chapter 3.8 explains how gpp is invoked in XSB.