copies the given files while expanding the macros that
they contain. These macros are either built-in or
user-defined and can take any number of arguments.
Besides performing macro expansion, m4 has built-in functions for
including named files, running Unix commands, performing
integer arithmetic, manipulating text, recursion, etc.
The m4
program can be used either as a front-end to a compiler
or as a macro processor in its own right.