processor for Unix
which is more flexible than cpp
. m4 copies its input to the output, expanding macros which can be either built-in or user-defined. m4 has built-in functions for including files, running Unix
commands, doing integer arithmetic, manipulating text in various ways and recursing. m4 can be used either as a front-end
to a compiler or as a stand-alone tool. sendmail
's configuration file (/etc/sendmail.cf) is writen in m4 macros.
There is a GNU m4 v1.1 (ftp://gnu.org/pub/gnu/m4-1.0.tar.Z) by Francois Pinard and a public domain version by Ozan Yigit and Richard A. O'Keefe firstname.lastname@example.org.OZ.AU (FTP from any 386BSD, NetBSD or FreeBSD archive). A Macintosh version is here (ftp://nic.switch.ch/pub/software/mac/src/mpw-c/).
See also m3, m5.
["The M4 Macro Processor", Kernighan & Ritchie, Jul 1977].