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 Lesser General Public Licence.


The latest stable version of GPP is 2.25, released on 2016-12-27. A list of changes from previous versions can be found in the change log.

Source code

You can download portable source packages for the current and previous releases on GitHub or You can also browse, download, or clone the development version on GitHub.

Fork me on GitHub

Ports and binary packages

Binary packages are available for several systems, including:

Note that these packages are produced and hosted by third parties. I take no responsibility for them.


You can browse through the online HTML documentation. The source distribution includes the documention as an HTML file, man page, and LaTeX document.


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