GNU M4
Introduction to GNU M4
GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4
compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.
GNU M4 is a macro processor in the sense that it copies its input to the output expanding macros as it goes. Macros are either builtin or user-defined and can take any number of arguments. Besides just doing macro expansion, m4 has builtin functions for including named files, running UNIX commands, doing integer arithmetic, manipulating text in various ways, recursion etc... m4 can be used either as a front-end to a compiler or as a macro processor in its own right.
One of the biggest users of GNU M4 is the GNU Autoconf
project.
Downloading M4
The latest stable version is 1.4.17, and can be found on http://ftp.gnu.org/gnu/m4/ [via http] and ftp://ftp.gnu.org/gnu/m4/ [via FTP]. It can also be found on one of our FTP mirrors. The stable development branch can also be checked out from git, using either of:
git clone git://git.sv.gnu.org/m4
git clone http://git.savannah.gnu.org/r/m4.git
followed by:
git checkout -b branch-1.6 origin/branch-1.6
Documentation
GNU M4 documentation can be found in several formats at http://www.gnu.org/software/m4/manual/. You may also find more information about GNU M4 by looking at your local documentation. For example, you might try looking in /usr/share/doc/m4/, or use info m4 at the shell prompt.