Short descriptions
m4 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 just doing macro
expansion, m4 has built-in functions for including named files, running Unix
commands, doing integer arithmetic, manipulating text in various ways,
recursion, and so on. The m4 program can be used either as a front-end to a
compiler or as a macro processor in its own right.