m4: Command line files

 
 2.6 Specifying input files on the command line
 ==============================================
 
 The remaining arguments on the command line are taken to be input file
 names.  If no names are present, standard input is read.  A file name of
 '-' is taken to mean standard input.  It is conventional, but not
 required, for input files to end in '.m4'.
 
    The input files are read in the sequence given.  Standard input can
 be read more than once, so the file name '-' may appear multiple times
 on the command line; this makes a difference when input is from a
 terminal or other special file type.  It is an error if an input file
 ends in the middle of argument collection, a comment, or a quoted
 string.
 
    The options '--define' ('-D'), '--undefine' ('-U'), '--synclines'
 ('-s'), and '--trace' ('-t') only take effect after processing input
 from any file names that occur earlier on the command line.  For
 example, assume the file 'foo' contains:
 
      $ cat foo
      bar
 
    The text 'bar' can then be redefined over multiple uses of 'foo':
 
      $ m4 -Dbar=hello foo -Dbar=world foo
      =>hello
      =>world
 
    If none of the input files invoked 'm4exit' (⇒M4exit), the
 exit status of 'm4' will be 0 for success, 1 for general failure (such
 as problems with reading an input file), and 63 for version mismatch
 (⇒Using frozen files).
 
    If you need to read a file whose name starts with a '-', you can
 specify it as './-file', or use '--' to mark the end of options.