m4 is a general purpose macro processing language developed by Brian Kernighan and Dennis Ritchie.

m4 is a general-purpose macro processor originally designed by Brian Kernighan and Dennis Ritchie. m4 is an extension of an earlier macro processor called m3, written by Ritchie for the AP-3 minicomputer.

All UNIX-like systems make the m4 macro processor available, and POSIX has standardized it. Most users require m4 simply as a dependency of GNU autoconf, although the language is used in other contexts.

A macro processor (or a preprocessor) operates as a text-replacement tool. End-users often employ it to re-use text templates, typically in computer programming applications, but also in text editing and text-processing applications.

See the Wikipedia entry on m4 for further information, or type

man m4

in your terminal, if your are using a UNIX compatible system, to bring up the manual pages for m4.