aboutsummaryrefslogtreecommitdiff
path: root/gcc/cpp.1
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cpp.1')
-rw-r--r--gcc/cpp.1731
1 files changed, 0 insertions, 731 deletions
diff --git a/gcc/cpp.1 b/gcc/cpp.1
deleted file mode 100644
index 0f950fa887f..00000000000
--- a/gcc/cpp.1
+++ /dev/null
@@ -1,731 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.1
-.\" Wed Jan 24 19:43:25 2001
-.\"
-.\" Standard preamble:
-.\" ======================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used
-.\" to do unbreakable dashes and therefore won't be available. \*(C` and
-.\" \*(C' expand to `' in nroff, nothing in troff, for use with C<>
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr
-.\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and
-.\" index entries marked with X<> in POD. Of course, you'll have to process
-.\" the output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it
-.\" makes way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-.bd B 3
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ======================================================================
-.\"
-.IX Title "CPP 1"
-.TH CPP 1 "gcc-2.97" "2001-01-24" "GNU"
-.UC
-.SH "NAME"
-cpp \- The C Preprocessor
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-cpp [\fB\-P\fR] [\fB\-C\fR] [\fB\-gcc\fR] [\fB\-traditional\fR]
- [\fB\-undef\fR] [\fB\-trigraphs\fR] [\fB\-pedantic\fR]
- [\fB\-W\fR\fIwarn\fR...] [\fB\-I\fR\fIdir\fR...]
- [\fB\-D\fR\fImacro\fR[=\fIdefn\fR]...] [\fB\-U\fR\fImacro\fR]
- [\fB\-A\fR\fIpredicate\fR(\fIanswer\fR)]
- [\fB\-M\fR|\fB\-MM\fR][\fB\-MG\fR][\fB\-MF\fR\fIfilename\fR]
- [\fB\-MP\fR][\fB\-MQ\fR\fItarget\fR...][\fB\-MT\fR\fItarget\fR...]
- [\fB\-x\fR \fIlanguage\fR] [\fB\-std=\fR\fIstandard\fR]
- \fIinfile\fR \fIoutfile\fR
-.PP
-Only the most useful options are listed here; see below for the remainder.
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The C preprocessor is a \fImacro processor\fR that is used automatically
-by the C compiler to transform your program before actual compilation.
-It is called a macro processor because it allows you to define
-\&\fImacros\fR, which are brief abbreviations for longer constructs.
-.PP
-The C preprocessor is intended only for macro processing of C, \*(C+ and
-Objective C source files. For macro processing of other files, you are
-strongly encouraged to use alternatives like M4, which will likely give
-you better results and avoid many problems. For example, normally the C
-preprocessor does not preserve arbitrary whitespace verbatim, but
-instead replaces each sequence with a single space.
-.PP
-For use on C-like source files, the C preprocessor provides four
-separate facilities that you can use as you see fit:
-.Ip "\(bu" 4
-Inclusion of header files. These are files of declarations that can be
-substituted into your program.
-.Ip "\(bu" 4
-Macro expansion. You can define \fImacros\fR, which are abbreviations
-for arbitrary fragments of C code, and then the C preprocessor will
-replace the macros with their definitions throughout the program.
-.Ip "\(bu" 4
-Conditional compilation. Using special preprocessing directives, you
-can include or exclude parts of the program according to various
-conditions.
-.Ip "\(bu" 4
-Line control. If you use a program to combine or rearrange source files
-into an intermediate file which is then compiled, you can use line
-control to inform the compiler of where each source line originally came
-from.
-.PP
-C preprocessors vary in some details. This manual discusses the \s-1GNU\s0 C
-preprocessor, which provides a small superset of the features of \s-1ISO\s0
-Standard C.
-.PP
-In its default mode, the \s-1GNU\s0 C preprocessor does not do a few things
-required by the standard. These are features which are rarely, if ever,
-used, and may cause surprising changes to the meaning of a program which
-does not expect them. To get strict \s-1ISO\s0 Standard C, you should use the
-\&\fB\-std=c89\fR or \fB\-std=c99\fR options, depending on which version
-of the standard you want. To get all the mandatory diagnostics, you
-must also use \fB\-pedantic\fR.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The C preprocessor expects two file names as arguments, \fIinfile\fR and
-\&\fIoutfile\fR. The preprocessor reads \fIinfile\fR together with any
-other files it specifies with \fB#include\fR. All the output generated
-by the combined input files is written in \fIoutfile\fR.
-.PP
-Either \fIinfile\fR or \fIoutfile\fR may be \fB-\fR, which as
-\&\fIinfile\fR means to read from standard input and as \fIoutfile\fR
-means to write to standard output. Also, if either file is omitted, it
-means the same as if \fB-\fR had been specified for that file.
-.PP
-Here is a table of command options accepted by the C preprocessor.
-These options can also be given when compiling a C program; they are
-passed along automatically to the preprocessor when it is invoked by the
-compiler.
-.Ip "\fB\-P\fR" 4
-.IX Item "-P"
-Inhibit generation of \fB#\fR\-lines with line-number information in the
-output from the preprocessor. This might be useful when running the
-preprocessor on something that is not C code and will be sent to a
-program which might be confused by the \fB#\fR\-lines.
-.Ip "\fB\-C\fR" 4
-.IX Item "-C"
-Do not discard comments. All comments are passed through to the output
-file, except for comments in processed directives, which are deleted
-along with the directive. Comments appearing in the expansion list of a
-macro will be preserved, and appear in place wherever the macro is
-invoked.
-.Sp
-You should be prepared for side effects when using \fB\-C\fR; it causes
-the preprocessor to treat comments as tokens in their own right. For
-example, macro redefinitions that were trivial when comments were
-replaced by a single space might become significant when comments are
-retained. Also, comments appearing at the start of what would be a
-directive line have the effect of turning that line into an ordinary
-source line, since the first token on the line is no longer a \fB#\fR.
-.Ip "\fB\-traditional\fR" 4
-.IX Item "-traditional"
-Try to imitate the behavior of old-fashioned C, as opposed to \s-1ISO\s0 C.
-.RS 4
-.Ip "\(bu" 4
-Traditional macro expansion pays no attention to single-quote or
-double-quote characters; macro argument symbols are replaced by the
-argument values even when they appear within apparent string or
-character constants.
-.Ip "\(bu" 4
-Traditionally, it is permissible for a macro expansion to end in the
-middle of a string or character constant. The constant continues into
-the text surrounding the macro call.
-.Ip "\(bu" 4
-However, traditionally the end of the line terminates a string or
-character constant, with no error.
-.Ip "\(bu" 4
-In traditional C, a comment is equivalent to no text at all. (In \s-1ISO\s0
-C, a comment counts as whitespace.)
-.Ip "\(bu" 4
-Traditional C does not have the concept of a ``preprocessing number''.
-It considers \fB1.0e+4\fR to be three tokens: \fB1.0e\fR, \fB+\fR,
-and \fB4\fR.
-.Ip "\(bu" 4
-A macro is not suppressed within its own definition, in traditional C.
-Thus, any macro that is used recursively inevitably causes an error.
-.Ip "\(bu" 4
-The character \fB#\fR has no special meaning within a macro definition
-in traditional C.
-.Ip "\(bu" 4
-In traditional C, the text at the end of a macro expansion can run
-together with the text after the macro call, to produce a single token.
-(This is impossible in \s-1ISO\s0 C.)
-.Ip "\(bu" 4
-None of the \s-1GNU\s0 extensions to the preprocessor are available in
-\&\fB\-traditional\fR mode.
-.RE
-.RS 4
-.Sp
-Use the \fB\-traditional\fR option when preprocessing Fortran code, so
-that single-quotes and double-quotes within Fortran comment lines (which
-are generally not recognized as such by the preprocessor) do not cause
-diagnostics about unterminated character or string constants.
-.Sp
-However, this option does not prevent diagnostics about unterminated
-comments when a C-style comment appears to start, but not end, within
-Fortran-style commentary.
-.Sp
-So, the following Fortran comment lines are accepted with
-\&\fB\-traditional\fR:
-.Sp
-.Vb 3
-\& C This isn't an unterminated character constant
-\& C Neither is "20000000000, an octal constant
-\& C in some dialects of Fortran
-.Ve
-However, this type of comment line will likely produce a diagnostic, or
-at least unexpected output from the preprocessor, due to the
-unterminated comment:
-.Sp
-.Vb 2
-\& C Some Fortran compilers accept /* as starting
-\& C an inline comment.
-.Ve
-Note that \f(CW\*(C`g77\*(C'\fR automatically supplies the \fB\-traditional\fR
-option when it invokes the preprocessor. However, a future version of
-\&\f(CW\*(C`g77\*(C'\fR might use a different, more-Fortran-aware preprocessor in
-place of \f(CW\*(C`cpp\*(C'\fR.
-.RE
-.Ip "\fB\-trigraphs\fR" 4
-.IX Item "-trigraphs"
-Process \s-1ISO\s0 standard trigraph sequences. These are three-character
-sequences, all starting with \fB??\fR, that are defined by \s-1ISO\s0 C to
-stand for single characters. For example, \fB??/\fR stands for
-\&\fB\e\fR, so \fB'??/n'\fR is a character constant for a newline. By
-default, \s-1GCC\s0 ignores trigraphs, but in standard-conforming modes it
-converts them. See the \fB\-std\fR option.
-.Sp
-The nine trigraph sequences are
-.RS 4
-.Ip "\fB??(\fR" 4
-.IX Item "??("
--> \fB[\fR
-.Ip "\fB??)\fR" 4
-.IX Item "??)"
--> \fB]\fR
-.Ip "\fB??<\fR" 4
-.IX Item "??<"
--> \fB{\fR
-.Ip "\fB??>\fR" 4
-.IX Item "??>"
--> \fB}\fR
-.Ip "\fB??=\fR" 4
-.IX Item "??="
--> \fB#\fR
-.Ip "\fB??/\fR" 4
-.IX Item "??/"
--> \fB\e\fR
-.Ip "\fB??'\fR" 4
-.IX Item "??'"
--> \fB^\fR
-.Ip "\fB??!\fR" 4
-.IX Item "??!"
--> \fB|\fR
-.Ip "\fB??-\fR" 4
-.IX Item "??-"
--> \fB~\fR
-.RE
-.RS 4
-.Sp
-Trigraph support is not popular, so many compilers do not implement it
-properly. Portable code should not rely on trigraphs being either
-converted or ignored.
-.RE
-.Ip "\fB\-pedantic\fR" 4
-.IX Item "-pedantic"
-Issue warnings required by the \s-1ISO\s0 C standard in certain cases such
-as when text other than a comment follows \fB#else\fR or \fB#endif\fR.
-.Ip "\fB\-pedantic-errors\fR" 4
-.IX Item "-pedantic-errors"
-Like \fB\-pedantic\fR, except that errors are produced rather than
-warnings.
-.Ip "\fB\-Wcomment\fR" 4
-.IX Item "-Wcomment"
-.PD 0
-.Ip "\fB\-Wcomments\fR" 4
-.IX Item "-Wcomments"
-.PD
-(Both forms have the same effect).
-Warn whenever a comment-start sequence \fB/*\fR appears in a \fB/*\fR
-comment, or whenever a backslash-newline appears in a \fB//\fR comment.
-.Ip "\fB\-Wtrigraphs\fR" 4
-.IX Item "-Wtrigraphs"
-Warn if any trigraphs are encountered. This option used to take effect
-only if \fB\-trigraphs\fR was also specified, but now works
-independently. Warnings are not given for trigraphs within comments, as
-we feel this is obnoxious.
-.Ip "\fB\-Wwhite-space\fR" 4
-.IX Item "-Wwhite-space"
-Warn about possible white space confusion, e.g. white space between a
-backslash and a newline.
-.Ip "\fB\-Wall\fR" 4
-.IX Item "-Wall"
-Requests \fB\-Wcomment\fR, \fB\-Wtrigraphs\fR, and \fB\-Wwhite-space\fR
-(but not \fB\-Wtraditional\fR or \fB\-Wundef\fR).
-.Ip "\fB\-Wtraditional\fR" 4
-.IX Item "-Wtraditional"
-Warn about certain constructs that behave differently in traditional and
-\&\s-1ISO\s0 C.
-.Ip "\fB\-Wundef\fR" 4
-.IX Item "-Wundef"
-Warn if an undefined identifier is evaluated in an \fB#if\fR directive.
-.Ip "\fB\-I\fR \fIdirectory\fR" 4
-.IX Item "-I directory"
-Add the directory \fIdirectory\fR to the head of the list of
-directories to be searched for header files.
-This can be used to override a system header file, substituting your
-own version, since these directories are searched before the system
-header file directories. If you use more than one \fB\-I\fR option,
-the directories are scanned in left-to-right order; the standard
-system directories come after.
-.Ip "\fB\-I-\fR" 4
-.IX Item "-I-"
-Any directories specified with \fB\-I\fR options before the \fB\-I-\fR
-option are searched only for the case of \fB#include "\fR\fIfile\fR\fB"\fR;
-they are not searched for \fB#include <\fR\fIfile\fR\fB>\fR.
-.Sp
-If additional directories are specified with \fB\-I\fR options after
-the \fB\-I-\fR, these directories are searched for all \fB#include\fR
-directives.
-.Sp
-In addition, the \fB\-I-\fR option inhibits the use of the current
-directory as the first search directory for \fB#include "\fR\fIfile\fR\fB"\fR.
-Therefore, the current directory is searched only if it is requested
-explicitly with \fB\-I.\fR. Specifying both \fB\-I-\fR and \fB\-I.\fR
-allows you to control precisely which directories are searched before
-the current one and which are searched after.
-.Ip "\fB\-nostdinc\fR" 4
-.IX Item "-nostdinc"
-Do not search the standard system directories for header files.
-Only the directories you have specified with \fB\-I\fR options
-(and the current directory, if appropriate) are searched.
-.Sp
-By using both \fB\-nostdinc\fR and \fB\-I-\fR, you can limit the include-file
-search path to only those directories you specify explicitly.
-.Ip "\fB\-nostdinc++\fR" 4
-.IX Item "-nostdinc++"
-Do not search for header files in the \*(C+\-specific standard directories,
-but do still search the other standard directories. (This option is
-used when building the \*(C+ library.)
-.Ip "\fB\-remap\fR" 4
-.IX Item "-remap"
-When searching for a header file in a directory, remap file names if a
-file named \fIheader.gcc\fR exists in that directory. This can be used
-to work around limitations of file systems with file name restrictions.
-The \fIheader.gcc\fR file should contain a series of lines with two
-tokens on each line: the first token is the name to map, and the second
-token is the actual name to use.
-.Ip "\fB\-D\fR \fIname\fR" 4
-.IX Item "-D name"
-Predefine \fIname\fR as a macro, with definition \fB1\fR.
-.Ip "\fB\-D\fR \fIname\fR\fB=\fR\fIdefinition\fR" 4
-.IX Item "-D name=definition"
-Predefine \fIname\fR as a macro, with definition \fIdefinition\fR.
-There are no restrictions on the contents of \fIdefinition\fR, but if
-you are invoking the preprocessor from a shell or shell-like program you
-may need to use the shell's quoting syntax to protect characters such as
-spaces that have a meaning in the shell syntax. If you use more than
-one \fB\-D\fR for the same \fIname\fR, the rightmost definition takes
-effect.
-.Sp
-Any \fB\-D\fR and \fB\-U\fR options on the command line are processed in
-order, and always before \fB\-imacros\fR \fIfile\fR, regardless of the
-order in which they are written.
-.Ip "\fB\-U\fR \fIname\fR" 4
-.IX Item "-U name"
-Do not predefine \fIname\fR.
-.Sp
-Any \fB\-D\fR and \fB\-U\fR options on the command line are processed in
-order, and always before \fB\-imacros\fR \fIfile\fR, regardless of the
-order in which they are written.
-.Ip "\fB\-undef\fR" 4
-.IX Item "-undef"
-Do not predefine any nonstandard macros.
-.Ip "\fB\-gcc\fR" 4
-.IX Item "-gcc"
-Define the macros \fI_\|_GNUC_\|_\fR, \fI_\|_GNUC_MINOR_\|_\fR and
-\&\fI_\|_GNUC_PATCHLEVEL_\|_\fR. These are defined automatically when you use
-\&\fBgcc \-E\fR; you can turn them off in that case with \fB\-no-gcc\fR.
-.Ip "\fB\-A\fR \fIpredicate\fR\fB=\fR\fIanswer\fR" 4
-.IX Item "-A predicate=answer"
-Make an assertion with the predicate \fIpredicate\fR and answer
-\&\fIanswer\fR. This form is preferred to the older form \fB\-A\fR
-\&\fIpredicate\fR\fB(\fR\fIanswer\fR\fB)\fR, which is still supported, because
-it does not use shell special characters.
-.Ip "\fB\-A -\fR\fIpredicate\fR\fB=\fR\fIanswer\fR" 4
-.IX Item "-A -predicate=answer"
-Disable an assertion with the predicate \fIpredicate\fR and answer
-\&\fIanswer\fR. Specifying no predicate, by \fB\-A-\fR or \fB\-A -\fR,
-disables all predefined assertions and all assertions preceding it on
-the command line; and also undefines all predefined macros and all
-macros preceding it on the command line.
-.Ip "\fB\-dM\fR" 4
-.IX Item "-dM"
-Instead of outputting the result of preprocessing, output a list of
-\&\fB#define\fR directives for all the macros defined during the
-execution of the preprocessor, including predefined macros. This gives
-you a way of finding out what is predefined in your version of the
-preprocessor; assuming you have no file \fBfoo.h\fR, the command
-.Sp
-.Vb 1
-\& touch foo.h; cpp -dM foo.h
-.Ve
-will show the values of any predefined macros.
-.Ip "\fB\-dD\fR" 4
-.IX Item "-dD"
-Like \fB\-dM\fR except in two respects: it does \fInot\fR include the
-predefined macros, and it outputs \fIboth\fR the \fB#define\fR
-directives and the result of preprocessing. Both kinds of output go to
-the standard output file.
-.Ip "\fB\-dN\fR" 4
-.IX Item "-dN"
-Like \fB\-dD\fR, but emit only the macro names, not their expansions.
-.Ip "\fB\-dI\fR" 4
-.IX Item "-dI"
-Output \fB#include\fR directives in addition to the result of
-preprocessing.
-.Ip "\fB\-M\fR" 4
-.IX Item "-M"
-Instead of outputting the result of preprocessing, output a rule
-suitable for \f(CW\*(C`make\*(C'\fR describing the dependencies of the main source
-file. The preprocessor outputs one \f(CW\*(C`make\*(C'\fR rule containing the
-object file name for that source file, a colon, and the names of all the
-included files, including those coming from \fB\-include\fR or
-\&\fB\-imacros\fR command line options. If there are many included files
-then the rule is split into several lines using \fB\e\fR\-newline.
-.Ip "\fB\-MM\fR" 4
-.IX Item "-MM"
-Like \fB\-M\fR, but mention only the files included with \fB#include
-"\fR\fIfile\fR\fB"\fR or with \fB\-include\fR or \fB\-imacros\fR command line
-options. System header files included with \fB#include <\fR\fIfile\fR\fB>\fR
-are omitted.
-.Ip "\fB\-MF\fR \fIfile\fR" 4
-.IX Item "-MF file"
-When used with \fB\-M\fR or \fB\-MM\fR, specifies a file to write the
-dependencies to. This allows the preprocessor to write the preprocessed
-file to stdout normally. If no \fB\-MF\fR switch is given, \s-1CPP\s0 sends
-the rules to stdout and suppresses normal preprocessed output.
-.Ip "\fB\-MG\fR" 4
-.IX Item "-MG"
-When used with \fB\-M\fR or \fB\-MM\fR, \fB\-MG\fR says to treat missing
-header files as generated files and assume they live in the same
-directory as the source file. It suppresses preprocessed output, as a
-missing header file is ordinarily an error.
-.Sp
-This feature is used in automatic updating of makefiles.
-.Ip "\fB\-MP\fR" 4
-.IX Item "-MP"
-This option instructs \s-1CPP\s0 to add a phony target for each dependency
-other than the main file, causing each to depend on nothing. These
-dummy rules work around errors \f(CW\*(C`make\*(C'\fR gives if you remove header
-files without updating the \f(CW\*(C`Makefile\*(C'\fR to match.
-.Sp
-This is typical output:\-
-.Sp
-.Vb 1
-\& /tmp/test.o: /tmp/test.c /tmp/test.h
-.Ve
-.Vb 1
-\& /tmp/test.h:
-.Ve
-.Ip "\fB\-MQ\fR \fItarget\fR" 4
-.IX Item "-MQ target"
-.PD 0
-.Ip "\fB\-MT\fR \fItarget\fR" 4
-.IX Item "-MT target"
-.PD
-By default \s-1CPP\s0 uses the main file name, including any path, and appends
-the object suffix, normally ``.o'', to it to obtain the name of the
-target for dependency generation. With \fB\-MT\fR you can specify a
-target yourself, overriding the default one.
-.Sp
-If you want multiple targets, you can specify them as a single argument
-to \fB\-MT\fR, or use multiple \fB\-MT\fR options.
-.Sp
-The targets you specify are output in the order they appear on the
-command line. \fB\-MQ\fR is identical to \fB\-MT\fR, except that the
-target name is quoted for Make, but with \fB\-MT\fR it isn't. For
-example, \-MT '$(objpfx)foo.o' gives
-.Sp
-.Vb 1
-\& $(objpfx)foo.o: /tmp/foo.c
-.Ve
-but \-MQ '$(objpfx)foo.o' gives
-.Sp
-.Vb 1
-\& $$(objpfx)foo.o: /tmp/foo.c
-.Ve
-The default target is automatically quoted, as if it were given with
-\&\fB\-MQ\fR.
-.Ip "\fB\-H\fR" 4
-.IX Item "-H"
-Print the name of each header file used, in addition to other normal
-activities.
-.Ip "\fB\-imacros\fR \fIfile\fR" 4
-.IX Item "-imacros file"
-Process \fIfile\fR as input, discarding the resulting output, before
-processing the regular input file. Because the output generated from
-\&\fIfile\fR is discarded, the only effect of \fB\-imacros\fR \fIfile\fR
-is to make the macros defined in \fIfile\fR available for use in the
-main input.
-.Ip "\fB\-include\fR \fIfile\fR" 4
-.IX Item "-include file"
-Process \fIfile\fR as input, and include all the resulting output,
-before processing the regular input file.
-.Ip "\fB\-idirafter\fR \fIdir\fR" 4
-.IX Item "-idirafter dir"
-Add the directory \fIdir\fR to the second include path. The directories
-on the second include path are searched when a header file is not found
-in any of the directories in the main include path (the one that
-\&\fB\-I\fR adds to).
-.Ip "\fB\-iprefix\fR \fIprefix\fR" 4
-.IX Item "-iprefix prefix"
-Specify \fIprefix\fR as the prefix for subsequent \fB\-iwithprefix\fR
-options. If the prefix represents a directory, you should include the
-final \fB/\fR.
-.Ip "\fB\-iwithprefix\fR \fIdir\fR" 4
-.IX Item "-iwithprefix dir"
-Add a directory to the second include path. The directory's name is
-made by concatenating \fIprefix\fR and \fIdir\fR, where \fIprefix\fR was
-specified previously with \fB\-iprefix\fR.
-.Ip "\fB\-isystem\fR \fIdir\fR" 4
-.IX Item "-isystem dir"
-Add a directory to the beginning of the second include path, marking it
-as a system directory, so that it gets the same special treatment as
-is applied to the standard system directories.
-.Ip "\fB\-x c\fR" 4
-.IX Item "-x c"
-.PD 0
-.Ip "\fB\-x c++\fR" 4
-.IX Item "-x c++"
-.Ip "\fB\-x objective-c\fR" 4
-.IX Item "-x objective-c"
-.Ip "\fB\-x assembler-with-cpp\fR" 4
-.IX Item "-x assembler-with-cpp"
-.PD
-Specify the source language: C, \*(C+, Objective-C, or assembly. This has
-nothing to do with standards conformance or extensions; it merely
-selects which base syntax to expect. If you give none of these options,
-cpp will deduce the language from the extension of the source file:
-\&\fB.c\fR, \fB.cc\fR, \fB.m\fR, or \fB.S\fR. Some other common
-extensions for \*(C+ and assembly are also recognized. If cpp does not
-recognize the extension, it will treat the file as C; this is the most
-generic mode.
-.Sp
-\&\fBNote:\fR Previous versions of cpp accepted a \fB\-lang\fR option
-which selected both the language and the standards conformance level.
-This option has been removed, because it conflicts with the \fB\-l\fR
-option.
-.Ip "\fB\-std=\fR\fIstandard\fR" 4
-.IX Item "-std=standard"
-.PD 0
-.Ip "\fB\-ansi\fR" 4
-.IX Item "-ansi"
-.PD
-Specify the standard to which the code should conform. Currently cpp
-only knows about the standards for C; other language standards will be
-added in the future.
-.Sp
-\&\fIstandard\fR
-may be one of:
-.RS 4
-.if n .Ip "\f(CW""iso9899:1990""\fR" 4
-.el .Ip "\f(CWiso9899:1990\fR" 4
-.IX Item "iso9899:1990"
-.PD 0
-.if n .Ip "\f(CW""c89""\fR" 4
-.el .Ip "\f(CWc89\fR" 4
-.IX Item "c89"
-.PD
-The \s-1ISO\s0 C standard from 1990. \fBc89\fR is the customary shorthand for
-this version of the standard.
-.Sp
-The \fB\-ansi\fR option is equivalent to \fB\-std=c89\fR.
-.if n .Ip "\f(CW""iso9899:199409""\fR" 4
-.el .Ip "\f(CWiso9899:199409\fR" 4
-.IX Item "iso9899:199409"
-The 1990 C standard, as amended in 1994.
-.if n .Ip "\f(CW""iso9899:1999""\fR" 4
-.el .Ip "\f(CWiso9899:1999\fR" 4
-.IX Item "iso9899:1999"
-.PD 0
-.if n .Ip "\f(CW""c99""\fR" 4
-.el .Ip "\f(CWc99\fR" 4
-.IX Item "c99"
-.if n .Ip "\f(CW""iso9899:199x""\fR" 4
-.el .Ip "\f(CWiso9899:199x\fR" 4
-.IX Item "iso9899:199x"
-.if n .Ip "\f(CW""c9x""\fR" 4
-.el .Ip "\f(CWc9x\fR" 4
-.IX Item "c9x"
-.PD
-The revised \s-1ISO\s0 C standard, published in December 1999. Before
-publication, this was known as C9X.
-.if n .Ip "\f(CW""gnu89""\fR" 4
-.el .Ip "\f(CWgnu89\fR" 4
-.IX Item "gnu89"
-The 1990 C standard plus \s-1GNU\s0 extensions. This is the default.
-.if n .Ip "\f(CW""gnu99""\fR" 4
-.el .Ip "\f(CWgnu99\fR" 4
-.IX Item "gnu99"
-.PD 0
-.if n .Ip "\f(CW""gnu9x""\fR" 4
-.el .Ip "\f(CWgnu9x\fR" 4
-.IX Item "gnu9x"
-.PD
-The 1999 C standard plus \s-1GNU\s0 extensions.
-.RE
-.RS 4
-.RE
-.Ip "\fB\-ftabstop=NUMBER\fR" 4
-.IX Item "-ftabstop=NUMBER"
-Set the distance between tab stops. This helps the preprocessor
-report correct column numbers in warnings or errors, even if tabs appear
-on the line. Values less than 1 or greater than 100 are ignored. The
-default is 8.
-.Ip "\fB\-$\fR" 4
-.IX Item "-$"
-Forbid the use of \fB$\fR in identifiers. The C standard allows
-implementations to define extra characters that can appear in
-identifiers. By default the \s-1GNU\s0 C preprocessor permits \fB$\fR, a
-common extension.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIgcc\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), and the Info entries for \fIcpp\fR, \fIgcc\fR, and
-\&\fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,
-1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-.PP
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-.PP
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-.PP
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.