OS Manuals

/usr/bin/cppo-4

C-style preprocessor for OCaml

From ocaml4-cppo 1.8.0-r7 (enterprise-packages), captured 2026-11-08 by running cppo-4 --help (exit 0). permalink

Usage: /usr/bin/cppo-4 [OPTIONS] [FILE1 [FILE2 ...]]
Options:
  -D DEF
          Equivalent of interpreting '#define DEF' before processing the
          input, e.g. `cppo -D 'VERSION "1.2.3"'` (no equal sign)
  -U IDENT
          Equivalent of interpreting '#undef IDENT' before processing the
          input
  -I DIR
          Add directory DIR to the search path for included files
  -V VAR:MAJOR.MINOR.PATCH-OPTPRERELEASE+OPTBUILD
          Define the following variables extracted from a version string
          (following the Semantic Versioning syntax http://semver.org/):

            VAR_MAJOR           must be a non-negative int
            VAR_MINOR           must be a non-negative int
            VAR_PATCH           must be a non-negative int
            VAR_PRERELEASE      if the OPTPRERELEASE part exists
            VAR_BUILD           if the OPTBUILD part exists
            VAR_VERSION         is the tuple (MAJOR, MINOR, PATCH)
            VAR_VERSION_STRING  is the string MAJOR.MINOR.PATCH
            VAR_VERSION_FULL    is the original string

          Example: cppo -V OCAML:4.02.1

          Note that cppo recognises both '-' and '~' preceding the pre-release
          meaning -V OCAML:4.11.0+alpha1 sets OCAML_BUILD to alpha1 but
          -V OCAML:4.12.0~alpha1 sets OCAML_PRERELEASE to alpha1.

  -o FILE
          Output file
  -q
          Identify and preserve camlp4 quotations
  -s
          Output line directives pointing to the exact source location of
          each token, including those coming from the body of macro
          definitions.  This behavior is off by default.
  -n
          Do not output any line directive other than those found in the
          input (overrides -s).
  -version
          Print the version of the program and exit.
  -x NAME:CMD_TEMPLATE
          Define a custom preprocessor target section starting with:
            #ext "NAME"
          and ending with:
            #endext

          NAME must be a lowercase identifier of the form [a-z][A-Za-z0-9_]*

          CMD_TEMPLATE is a command template supporting the following
          special sequences:
            %F  file name (unescaped; beware of potential scripting attacks)
            %B  number of the first line
            %E  number of the last line
            %%  a single percent sign

          Filename, first line number and last line number are also
          available from the following environment variables:
          CPPO_FILE, CPPO_FIRST_LINE, CPPO_LAST_LINE.

          The command produced is expected to read the data lines from stdin
          and to write its output to stdout.
  -help  Display this list of options
  --help  Display this list of options
Options (12)
OptionDescriptionSource
-D DEFEquivalent of interpreting '#define DEF' before processing the input, e.g. `cppo -D 'VERSION "1.2.3"'` (no equal sign)help
-U IDENTEquivalent of interpreting '#undef IDENT' before processing the inputhelp
-I DIRAdd directory DIR to the search path for included fileshelp
-VDefine the following variables extracted from a version string (following the Semantic Versioning syntax http://semver.org/):help
-o FILEOutput filehelp
-qIdentify and preserve camlp4 quotationshelp
-sOutput line directives pointing to the exact source location of each token, including those coming from the body of macro definitions.help
-nDo not output any line directive other than those found in the input (overrides -s).help
-versionPrint the version of the program and exit.help
-x NAME:CMD_TEMPLATEDefine a custom preprocessor target section starting with: #ext "NAME" and ending with: #endexthelp
-helpDisplay this list of optionshelp
--helpDisplay this list of optionshelp

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.