Switches for gnatchop (GNAT User’s Guide for Native Platforms)

#### 3.3.6.4 Switches for `gnatchop` ¶

`gnatchop` recognizes the following switches:

`--version`

  Display copyright and version, then exit, disregarding all other options.

`--help`

  If `--version` is not present, display usage, then exit, disregarding all other options.

`-c`

  Causes `gnatchop` to operate in compilation mode, in which configuration pragmas are handled according to strict RM rules. See the previous section for a full description of this mode.

`-gnat`xxx'`

  This passes the given `-gnat`xxx'` switch to `gcc` which is used to parse the given file. Not all ‘xxx’ options make sense, but, for example, the use of `-gnati2` allows `gnatchop` to process a source file that uses Latin-2 coding for identifiers.

`-h`

  Causes `gnatchop` to generate a brief help summary to the standard output file showing usage information.

`-k`mm'`

> Limit generated file names to the specified number `mm` of characters. This is useful if the resulting set of files is required to be interoperable with systems which limit the length of file names. You may not place any space between the `-k` and the numeric value. You can omit the numeric value, in which case `gnatchop` will use a default of `-k8`, suitable for use with DOS-like file systems. If you don’t specify a `-k` switch, there is no limit on the length of file names.

`-p`

  Causes the file modification time stamp of the input file to be preserved and used for the time stamp of the output file(s). You may find this useful for preserving coherency of time stamps in an environment where `gnatchop` is used as part of a standard build process.

`-q`

  Causes output of informational messages indicating the set of generated files to be suppressed. Warnings and error messages are unaffected.

`-r`

  Generate `Source_Reference` pragmas. Use this switch if the output files are regarded as temporary and development is to be done from of the original unchopped file. This switch causes `Source_Reference` pragmas to be inserted into each of the generated files to refer back to the original file name and line number. The result is that all error messages refer back to the original unchopped file. In addition, the debugging information placed into the object file (when the `-g` switch of `gcc` or `gnatmake` is specified) also refers back to this original file so that tools like profilers and debuggers will give information in terms of the original unchopped file.

  If the original file to be chopped itself contains a `Source_Reference` pragma referencing a third file, `gnatchop` respects these pragmas and the generated `Source_Reference` pragmas in the chopped file refer to the original file, with appropriate line numbers. This is particularly useful when `gnatchop` is used in conjunction with `gnatprep` to compile files that contain preprocessing statements and multiple units.

`-v`

  Causes `gnatchop` to operate in verbose mode. It outputs the version number and copyright notice as well as exact copies of the commands spawned to obtain the information needed to control chopping.

`-w`

  Overwrite existing file names. Normally, `gnatchop` treats it as a fatal error if there’s already a file with the same name as a file it would otherwise output. This can happen either if you’ve previously chopped that file or if the files to be chopped contain duplicated units. This switch bypasses this check and causes all but the last instance of such duplicated units to be skipped.

`--GCC=`xxxx'`

  Specify the path of the GNAT parser to be used. When this switch is used, `gnatchop` makes no attempt to add a prefix to the GNAT parser executable, so it must include the full pathname.