Quick Search:

View

Revision:
Expand:  
Changeset: MAIN:plunky:20121108111403

Diff

Diff from 1.16 to:

Annotations

Annotate by Age | Author | Mixed | None

Annotated File View

plunky
1.16
1 .\"     $Id: cpp.1,v 1.16 2012/11/08 11:14:03 plunky Exp $
reed
1.11
2 .\"
ragge
1.1
3 .\" Copyright (c) 2007 Jeremy C. Reed <reed@reedmedia.net>
reed
1.9
4 .\"
5 .\" Permission to use, copy, modify, and/or distribute this software for any
6 .\" purpose with or without fee is hereby granted, provided that the above
ragge
1.1
7 .\" copyright notice and this permission notice appear in all copies.
reed
1.9
8 .\"
9 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR AND CONTRIBUTORS DISCLAIM
10 .\" ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 .\" WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL AUTHOR AND
12 .\" CONTRIBUTORS BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
15 .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
ragge
1.1
16 .\" THIS SOFTWARE.
17 .\"
plunky
1.16
18 .Dd November 8, 2012
reed
1.9
19 .Dt CPP 1
ragge
1.1
20 .Os
21 .Sh NAME
22 .Nm cpp
23 .Nd C preprocessor
24 .Sh SYNOPSIS
25 .Nm
plunky
1.16
26 .Op Fl CEMPtVv
plunky
1.15
27 .Op Fl D Ar macro Ns Oo = Ns Ar value Oc
28 .Op Fl d Ar flags
ragge
1.1
29 .Op Fl I Ar path
reed
1.6
30 .Op Fl i Ar file
ragge
1.1
31 .Op Fl S Ar path
reed
1.6
32 .Op Fl U Ar macro
ragge
1.1
33 .Op Ar infile | -
34 .Op Ar outfile
35 .Sh DESCRIPTION
36 The
37 .Nm
38 utility is a macro preprocessor used by the
39 .Xr pcc 1
40 compiler.
plunky
1.15
41 It is mainly used to include header files,
ragge
1.1
42 expand macro definitions,
plunky
1.15
43 discard comments,
ragge
1.1
44 and perform conditional compilation.
plunky
1.15
45 .Nm
46 is written to comply with the
47 .St -isoC-99
48 specification.
ragge
1.1
49 .Pp
reed
1.9
50 The
ragge
1.1
51 .Ar infile
52 input file is optional.
53 If not provided or the file name is
54 .Qq -
55 (dash),
56 .Nm
57 reads its initial file from standard input.
58 The
59 .Ar outfile
plunky
1.15
60 output file is also optional, with output written to standard
61 output if not provided.
ragge
1.1
62 .Pp
63 The options are as follows:
64 .Bl -tag -width Ds
65 .It Fl C
66 Do not discard comments.
plunky
1.15
67 .It Fl D Ar macro Ns Oo = Ns Ar value Oc
68 Create a macro definition before processing any input, as if a
69 .Lp
70 .Dl #define Ar macro Ar value
71 .Lp
72 directive had appeared in the source.
reed
1.6
73 If
74 .Ar value
plunky
1.15
75 is not set on the command-line, then a value of 1 is used.
76 .It Fl d Ar flags
77 Modify output according to
78 .Ar flags ,
79 which can be a list of character flags.
80 The following flags are currently supported:
81 .Bl -tag -width ".Sy M"
82 .It Sy M
83 Do not process any input, but output a list of
ragge
1.4
84 .Dq #define
plunky
1.15
85 statements for all defined macros other than builtin macros
86 .Pq see below .
87 .El
88 .Lp
89 any unknown flags are ignored.
plunky
1.16
90 .It Fl E
91 Modify the exit code, if there were any warnings.
reed
1.6
92 .It Fl I Ar path
ragge
1.1
93 Add
reed
1.6
94 .Ar path
plunky
1.15
95 to the list of directories searched by the
96 .Dq #include
97 directive.
ragge
1.4
98 This may be used to override system include directories
plunky
1.15
99 .Pq see Fl S No option .
ragge
1.1
100 .Fl I
plunky
1.15
101 may be specified multiple times and is cumulative.
reed
1.6
102 .It Fl i Ar file
plunky
1.15
103 Include a file before processing any input, as if a
104 .Lp
105 .Dl #include Qo Ar file Qc
106 .Lp
107 directive had appeared in the source.
108 .Fl i
109 may be specified multiple times to include several files.
ragge
1.1
110 .It Fl M
plunky
1.15
111 Instead of producing a processed C code file, output a list
112 of dependencies for
113 .Xr make 1 ,
114 detailing the files that need to be processed when compiling
115 the input.
gmcgarry
1.10
116 .It Fl P
117 Inhibit generation of line markers.  This is sometimes useful when
118 running the preprocessor on something other than C code.
reed
1.6
119 .It Fl S Ar path
ragge
1.1
120 Add
reed
1.6
121 .Ar path
plunky
1.15
122 to the list of system directories searched by the
123 .Dq #include
124 directive.
reed
1.9
125 The
ragge
1.1
126 .Fl S
plunky
1.15
127 option may be specified multiple times and is cumulative.
ragge
1.1
128 .It Fl t
129 Traditional cpp syntax.
130 Do not define the
131 .Dv __TIME__ ,
ragge
1.4
132 .Dv __DATE__ ,
reed
1.8
133 .Dv __STDC__ ,
ragge
1.1
134 and
reed
1.9
135 .Dv __STDC_VERSION__
ragge
1.1
136 macros.
137 .It Fl U Ar macro
plunky
1.15
138 Undefine a macro before processing any input, as if a
139 .Lp
140 .Dl #undef Ar macro
141 .Lp
142 directive had appeared in the source.
reed
1.5
143 .It Fl V
ragge
1.1
144 Verbose debugging output.
reed
1.5
145 .Fl V
plunky
1.15
146 can be repeated for greater detail.
147 .Po
148 This is only available if the
149 .Nm
150 program was built with
151 .Dv PCC_DEBUG
152 defined, which is the default
153 .Pc .
reed
1.9
154 .It Fl v
155 Display version.
ragge
1.1
156 .El
plunky
1.15
157 .Pp
158 The
159 .Fl D ,
160 .Fl i
161 and
162 .Fl U
163 options are processed in the order that they appear on the command
164 line, before any input is read but after the command line options
165 have been scanned.
166 .Pp
167 Files referenced by the
168 .Dq #include
169 directive as
170 .Qq ... ,
171 are first looked for in the current directory, then as per
172 .Aq ...
173 files, which are first looked for in the list of
174 directories provided by any
175 .Fl I
176 options, then in the list of system directories provided by any
177 .Fl S
178 options.
179 Note that
180 .Nm
181 does not define any include directories by default; if no
182 .Fl I
183 or
184 .Fl S
185 options are given, then only the current directory will be
186 searched and no system files will be found.
reed
1.9
187 .Ss Builtin Macros
ragge
1.4
188 A few macros are interpreted inside the
189 .Nm cpp
190 program:
ragge
1.1
191 .Bl -diag
192 .It __DATE__
plunky
1.15
193 Expands to a quoted string literal containing the date in the form
194 .Qq Mmm dd yyyy ,
195 where the names of the months are the same as those generated by the
196 .Xr asctime 3
197 function, and the first character of dd is a space character if
198 the value is less than 10.
ragge
1.1
199 .It __FILE__
plunky
1.15
200 Expands to a quoted string literal containing the presumed name of
201 the current source file.
202 When reading source from standard input, it expands to
reed
1.9
203 .Qq Aq stdin .
ragge
1.1
204 .It __LINE__
plunky
1.15
205 Expands to an integer constant representing the presumed line number
206 of the source line containing the macro.
ragge
1.1
207 .It __STDC__
plunky
1.15
208 Expands to the integer constant
209 .Dq 1 ,
210 meaning that the compiler conforms to
211 .St -isoC .
reed
1.8
212 .It __STDC_VERSION__
plunky
1.15
213 Expands to the integer constant
214 .Dq 199901L ,
215 indicating that
reed
1.9
216 .Nm
plunky
1.15
217 conforms to
218 .St -isoC-99 .
ragge
1.1
219 .It __TIME__
plunky
1.15
220 Expands to a quoted string literal containing the time in the form
221 .Qq hh:mm:ss
222 as generated by the
223 .Xr asctime 3
224 function.
ragge
1.1
225 .El
226 .Pp
227 Also see the
ragge
1.4
228 .Fl t
229 option.
ragge
1.1
230 .Sh EXIT STATUS
231 The
232 .Nm
233 utility exits with one of the following values:
plunky
1.16
234 .Lp
235 .Bl -tag -width Ds -offset indent -compact
ragge
1.1
236 .It 0
237 Successfully finished.
238 .It 1
239 An error occurred.
plunky
1.16
240 .It 2
241 The
242 .Fl E
243 option was given, and warnings were issued.
ragge
1.1
244 .El
245 .Sh SEE ALSO
246 .Xr as 1 ,
247 .Xr ccom 1 ,
plunky
1.15
248 .Xr make 1 ,
249 .Xr pcc 1 ,
250 .Xr asctime 3
ragge
1.1
251 .Sh HISTORY
252 The
253 .Nm
plunky
1.14
254 command comes from the original Portable C Compiler by
255 .An "S. C. Johnson" ,
reed
1.9
256 written in the late 70's.
ragge
1.1
257 The code originates from the V6 preprocessor with some additions
258 from V7 cpp and ansi/c99 support.
259 .Pp
plunky
1.14
260 A lot of the PCC code was rewritten by
261 .An "Anders Magnusson" .
ragge
1.1
262 .Pp
263 This product includes software developed or owned by Caldera
264 International, Inc.
FishEye: Open Source License registered to PCC.
Your maintenance has expired. You can renew your license at http://www.atlassian.com/fisheye/renew
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-08-30 08:12 +0200