Chapter 10. USING THE M4 MACRO PROCESSOR WITH AUTOCONF
By the time you've sorted out a complicated idea into little steps that even a stupid machine can deal with, you've learned something about it yourself.
The M4 macro processor is simple to use, and yet hard to comprehend. The simplicity comes from the fact that it does just one thing very well. I'll wager that you or I could write the base functionality of M4 in a C program in just a few hours. At the same time, two aspects of M4 make it rather difficult to understand immediately.
First, the exceptions introduced by special cases that M4 ...