Manual Reference Pages  - M4 (1)


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:

--help 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:

a show actual arguments
c show before collect, after collect and after call
e show expansion
f say current input file name
i show changes in input files
l say current input line number
p show results of path searches
q quote values as necessary, with a or e flag
t trace for all macro calls, not only traceon’ed
x add a unique macro call id, useful with c flag
V 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.


Report bugs to:
GNU M4 home page: <>
General help using GNU software: <>


Copyright © 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


The full documentation for m4 is maintained as a Texinfo manual. If the info and m4 programs are properly installed at your site, the command
info m4
should give you access to the complete manual.

GNU M4 1.4.16 M4 (1) March 2011
blog comments powered by Disqus