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.
m4 macro processor is widely available on all UNIXes.
Usually, only a small percentage of users are aware of its existence.
However, those who do often become commited users. The growing
popularity of GNU Autoconf, which prerequires GNU
generating the `configure' scripts, is an incentive
for many to install it, while these people will not themselves
m4 is mostly compatible with the
System V, Release 3 version, except for some minor differences.
See section Compatibility with other versions of
m4 for more details.
Some people found
m4 to be fairly addictive. They first use
m4 for simple problems, then take bigger and bigger challenges,
learning how to write complex
m4 sets of macros along the way.
Once really addicted, users pursue writing of sophisticated
applications even to solve simple problems, devoting more time
m4 scripts than doing real work. Beware that
m4 may be dangerous for the health of compulsive programmers.
Go to the first, previous, next, last section, table of contents.