CPP(1)                                                     CPP(1)

     NAME
          cpp - C language preprocessor

     SYNOPSIS
          cpp [ option ... ] [ ifile [ ofile ] ]

     DESCRIPTION
          Cpp interprets ANSI C preprocessor directives and does macro
          substitution.  The input ifile and output ofile default to
          standard input and standard output respectively.

          The options are:

          -Dname
          -Dname=def
          -Idir
               Same as in 2c(1): add dir to the search for directives.

          -M   Generate no output except a list of include files in a
               form suitable for specifying dependencies to mk(1). Use
               twice to list files in angle brackets.

          -N   Turn off default include directories.  All must be
               specified with -I, or in the environment variable
               include.  Without this option, /$objtype/include and
               /sys/include are used as the last two searched directo-
               ries for include directives, where $objtype is read
               from the environment.

          -V   Print extra debugging information.

          -P   Do not insert ``#line'' directives into the output.

          -+   Understand C++ comments.

          -i   Print the list of directories searched when #include is
               found.  Last listed are searched first.

          In the absence of the -P option, the processed text output
          is sprinkled with lines that show the original input line
          numbering:

               #line linenumber "ifile"

          The command reads the environment variable include and adds
          its (blank-separated) list of directories to the standard
          search path for directives.  They are looked at before any
          directories specified with -I, which are looked at before
          the default directories.

     Page 1                       Plan 9            (printed 12/26/24)

     CPP(1)                                                     CPP(1)

          The input language is as described in the ANSI C standard.
          The standard Plan 9 C compilers do not use cpp; they contain
          their own simple but adequate preprocessor, so cpp is usu-
          ally superfluous.

     FILES
          /sys/include      directory for machine-independent include
                            files
          /$objtype/include directory for machine-dependent include
                            files

     SOURCE
          /sys/src/cmd/cpp

     SEE ALSO
          2c(1)

     Page 2                       Plan 9            (printed 12/26/24)