M4 is a macro processor. It copies input to output expanding macros as it goes. 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, etc. M4 can be used either as a front-end to a compiler or as a macro processor in its own right.
M4-1.4 needs the following to be installed:
bash: sh
binutils: ar, as, ld, ranlib
diffutils: cmp
fileutils: chmod, cp, install, mv, rm
make: make
gcc: cc1, collect2, cpp0, gcc
grep: egrep, grep
sed: sed
sh-utils: date, echo, hostname
textutils: cat, tr