m4: Macro expansion
4.5 Macro expansion
===================
When the arguments, if any, to a macro call have been collected, the
macro is expanded, and the expansion text is pushed back onto the input
(unquoted), and reread. The expansion text from one macro call might
therefore result in more macros being called, if the calls are included,
completely or partially, in the first macro calls' expansion.
Taking a very simple example, if FOO expands to 'bar', and BAR
expands to 'Hello', the input
$ m4 -Dbar=Hello -Dfoo=bar
foo
=>Hello
will expand first to 'bar', and when this is reread and expanded, into
'Hello'.