6.26. M4-1.4.9

The M4 package contains a macro processor.

6.26.1. Installation of M4

M4 can be compiled with warnings enabled:

find . -type f -name Makefile.in -exec \
    sed 's/^CFLAGS =.*/& -Wall -Werror -Wfatal-errors/' -i.orig {} \;

Add assert() to deal with -D_FORTIFY_SOURCE=2 warnings:

sed -e 's/write (.*)/assert(&)/' \
    -e 's/#include <signal.h>/&\n#include <assert.h>/' \
    -i.orig src/stackovf.c

Prepare M4 for compilation:

./configure --prefix=/usr

Compile the package:

make

To test the results, issue: make check.

Install the package:

make install

6.26.2. Contents of M4

Installed program: m4

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 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.