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 stable version of GPP is 2.28, released on 2023-09-26. A list of changes from previous versions can be found in the change log.
Alternatively, you can browse, download, or clone the development version on GitHub, though note that if you do this you will need to manually set up the build system using the GNU Autotools rather than using the end-user installation instructions mentioned above.
Ports and binary packages
Binary packages are available for several systems, including:
- Debian GNU/Linux
- openSUSE and SUSE Linux Enterprise
- Fedora (via its package management tool, DNF)
Note that these packages are produced and hosted by third parties. The GPP authors take no responsibility for them.
You can browse through the online HTML documentation.
Note that the documentation itself is generated by GPP using an input
file with macros that can automatically produce HTML, LaTeX, or troff
(man page) output. Studying this file (
gpp.pp in the source) should
prove instructive, and manually running it through GPP can serve as a
basic test of the program's functionality.
To refer to GPP in a publication, please use the following citation: