blob: 3fc931585f27797b1b05cbde490236dfa59b22d5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
.TH CPP 1
.SH NAME
cpp \- C language preprocessor
.SH SYNOPSIS
.B cpp
[
.I option ...
]
[
.I ifile
[
.I ofile
]
]
.SH DESCRIPTION
.I Cpp\^
interprets ANSI C preprocessor directives
and does macro substitution.
The input
.I ifile
and output
.I ofile
default to standard input and standard output respectively.
.PP
The options are:
.TP
.BI -D name\^
.PD 0
.TP
.BI -D name=def\^
.TP
.BI -I dir\^
Same as in
.IR 2c "(1): add
.I dir
to the search for
.CW search
directives.
.PD
.TP
.B -M
Generate no output except a list of include files
in a form suitable for specifying dependencies to
.IR mk (1).
Use twice to list files in angle brackets.
.TP
.B -N
Turn off default include directories. All must be
specified with
.BR -I ,
or in the environment variable
.BR include .
Without this option,
.B /$objtype/include
and
.B /sys/include
are used as the last two searched directories for include directives,
where
.B $objtype
is read from the environment.
.TP
.B -V
Print extra debugging information.
.TP
.B -P
Do not insert
.RB `` #line ''
directives into the output.
.TP
.B -+
Understand C++ comments.
.TP
.B -.
Inhibit include search in the source's directory.
.TP
.B -i
Print the list of directories searched when
.I #include
is found.
Last listed are searched first.
.PD
.PP
In the absence of the
.B -P
option, the processed text output is sprinkled
with lines that show the original input line numbering:
.IP
.B #line
.I linenumber
.L
"\fIifile\fP"
.PP
The command reads the environment variable
.IR include
and adds its (blank-separated) list of directories to
the standard search path for
.CW #include
directives. They are looked at before any directories specified with
.BR -I ,
which are looked at before the default directories.
.PP
The input language is as described in the ANSI C standard.
The standard Plan 9 C compilers do not use
.IR cpp ;
they contain their own simple but adequate preprocessor, so
.I cpp
is usually superfluous.
.SH FILES
.TF /objtype/include
.TP
.B /sys/include
directory for machine-independent include files
.TP
.B /$objtype/include
directory for machine-dependent include files
.SH SOURCE
.B /sys/src/cmd/cpp
.SH SEE ALSO
.IR 2c (1)
|