m4 man page

m4 — macro processor


m4 [OPTION]... [FILE]...


Process macros in FILEs. If no FILE or if FILE is `-', standard input is read.

Mandatory or optional arguments to long options are mandatory or optional for short options too.

Operation modes

display this help and exit
output version information and exit
-E, --fatal-warnings
once: warnings become errors, twice: stop execution at first error
-i, --interactive
unbuffer output, ignore interrupts
-P, --prefix-builtins
force a `m4_' prefix to all builtins
-Q, --quiet, --silent
suppress some warnings for builtins

warn if macro definition matches REGEXP,

default \$\({[^}]*}\|[0-9][0-9]+\)

Preprocessor features

-D, --define=NAME[=VALUE]
define NAME as having VALUE, or empty
-I, --include=DIRECTORY
append DIRECTORY to include path
-s, --synclines
generate `#line NUM "FILE"' lines
-U, --undefine=NAME
undefine NAME

Limits control

-g, --gnu
override -G to re-enable GNU extensions
-G, --traditional
suppress all GNU extensions
-H, --hashsize=PRIME
set symbol lookup hash table size [509]
-L, --nesting-limit=NUMBER
change nesting limit, 0 for unlimited [0]

Frozen state files

-F, --freeze-state=FILE
produce a frozen state on FILE at end
-R, --reload-state=FILE
reload a frozen state from FILE at start


-d, --debug[=FLAGS]
set debug level (no FLAGS implies `aeq')
redirect debug and trace output to FILE (default stderr, discard if empty string)
-l, --arglength=NUM
restrict macro tracing size
-t, --trace=NAME
trace NAME when it is defined

FLAGS is any of

show actual arguments
show before collect, after collect and after call
show expansion
say current input file name
show changes in input files
say current input line number
show results of path searches
quote values as necessary, with a or e flag
trace for all macro calls, not only traceon'ed
add a unique macro call id, useful with c flag
shorthand for all of the above flags

If defined, the environment variable `M4PATH' is a colon-separated list of directories included after any specified by `-I'.

Exit status is 0 for success, 1 for failure, 63 for frozen file version mismatch, or whatever value was passed to the m4exit macro.


Written by Rene' Seindal.

Reporting Bugs

Report bugs to: bug-m4@gnu.org
GNU M4 home page: <http://www.gnu.org/software/m4/>
General help using GNU software: <http://www.gnu.org/gethelp/>

Referenced By

colorit(1), gjots2html(1), milter-regex(8), suffixes(7), tilt(1).

Explore man page connections for m4(1).

GNU M4 1.4.17 September 2013