GPP is a general-purpose preprocessor with customizable syntax, suitable for a wide range of preprocessing tasks. Its independence from any one programming language makes it much more versatile than the C preprocessor (cpp), while its syntax is lighter and more flexible than that of GNU m4. There are built-in macros for use with C/C++, LaTeX, HTML, XHTML, and Prolog files.
The latest version of GPP is 2.24, released on 2004-09-19. A list of changes from previous versions can be found in the change log.
NOTE: GPP 2.1a is an incompletely documented and dead branch of the GPP development tree. Most of the differences from the previous version, 2.1, are internal changes to speed up performance when processing particularly complicated macros. These changes will probably eventually be merged with the main development tree (version 2.12 and beyond).
Unless you are using very tricky macros and are particularly concerned about execution speed, you would probably be better off with one of the stable, current releases.
For convenience, gpp.tar.bz2 is always a link to the latest version.
Ports and binary packages
NOTE: Some SuSE users may experience dependency errors with the SuSE RPMs provided here. This is because `gpp' was also the name of a now-obsolete SuSE package related to the GNU Compiler Collection. SuSE has pledged to fix this problem in their next release. In the meantime, if you are using SuSE 9.2 or earlier and have the gcc-g++ RPM installed, you may need to install GPP using the source code.
Darwin, Mac OS X
You can browse through the online HTML documentation. The source distribution includes the documention as an HTML file, man page, and LaTeX document.
If you would like to be informed of new releases of GPP, you can subscribe to the GPP project on freshmeat.net.