### 2.1 Command line options for operation modes ¶

Several options control the overall operation of `m4`:

`--help`

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

`--version`

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

`-E` ¶
`--fatal-warnings`

  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.

`-i`
`--interactive`
`-e`

  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.

`-P`
`--prefix-builtins`

  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.

`-Q`
`--quiet`
`--silent`

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

`--warn-macro-sequence[=regexp]`

  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 to macros). 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`
`--word-regexp=regexp`

  Use regexp as an alternative syntax for macro names. This experimental option will not be present in all GNU `m4` implementations (see Changing the lexical structure of words).