Next: , Up: Invoking m4   [Contents][Index]

2.1 Command line options for operation modes

Several options control the overall operation of m4:


Print a help summary on standard output, then immediately exit m4 without reading any input files or performing any other actions.


Print the version number of the program on standard output, then immediately exit m4 without reading any input files or performing any other actions.


Controls the effect of warnings. If unspecified, then execution continues and exit status is unaffected when a warning is printed. If specified exactly once, warnings become fatal; when one is issued, execution continues, but the exit status will be non-zero. If specified multiple times, then execution halts with non-zero status the first time a warning is issued. The introduction of behavior levels is new to M4 1.4.9; for behavior consistent with earlier versions, you should specify -E twice.


Makes this invocation of m4 interactive. This means that all output will be unbuffered, and interrupts will be ignored. The spelling -e exists for compatibility with other m4 implementations, and issues a warning because it may be withdrawn in a future version of GNU M4.


Internally modify all builtin macro names so they all start with the prefix ‘m4_’. For example, using this option, one should write ‘m4_define’ instead of ‘define’, and ‘m4___file__’ instead of ‘__file__’. This option has no effect if -R is also specified.


Suppress warnings, such as missing or superfluous arguments in macro calls, or treating the empty string as zero.


Issue a warning if the regular expression regexp has a non-empty match in any macro definition (either by define or pushdef). Empty matches are ignored; therefore, supplying the empty string as regexp disables any warning. If the optional regexp is not supplied, then the default regular expression is ‘\$\({[^}]*}\|[0-9][0-9]+\)’ (a literal ‘$’ followed by multiple digits or by an open brace), since these sequences will change semantics in the default operation of GNU M4 2.0 (due to a change in how more than 9 arguments in a macro definition will be handled, see Arguments). Providing an alternate regular expression can provide a useful reverse lookup feature of finding where a macro is defined to have a given definition.

-W regexp

Use regexp as an alternative syntax for macro names. This experimental option will not be present in all GNU m4 implementations (see Changeword).

Next: , Up: Invoking m4   [Contents][Index]