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.

GPP is Free Software. It is distributed under the terms of the GNU General Public Licence.



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.

Source code

The source code can be found at MD5/SHA1 hashes and PGP signatures are available there too. For the latter, you will need my OpenPGP signing key.

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.

Debian GNU/Linux

A GPP package for Debian GNU/Linux has been created by Lucas Wall. Debian users can obtain and install this package the same way they do for any other Debian package.


A FreeBSD port of GPP is available from FreshPorts.

Darwin, Mac OS X

A GPP portfile for Darwin/Mac OS X is available at the DarwinPorts website. See also How To Install GPP on Mac OS X for an installation guide.


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


GPP was originally written by Denis Auroux. Since version 2.12 it has been maintained by Tristan Miller <>.