Quick Search:

View

Revision:
Expand:  
Changeset: MAIN:plunky:20130226192738

Diff

Diff from 1.17 to:

Annotations

Annotate by Age | Author | Mixed | None
/fisheye/browse/pcc/pcc/cc/cpp/cpp.1

Annotated File View

plunky
1.17
1 .\"     $Id: cpp.1,v 1.17 2013/02/26 19:27:38 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.17
18 .Dd February 26, 2013
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.17
26 .Op Fl ACEMPtVv
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
plunky
1.17
65 .It Fl A
66 For assembler-with-cpp input: treat non-directive lines starting
67 with a # as comments.
ragge
1.1
68 .It Fl C
69 Do not discard comments.
plunky
1.15
70 .It Fl D Ar macro Ns Oo = Ns Ar value Oc
71 Create a macro definition before processing any input, as if a
72 .Lp
73 .Dl #define Ar macro Ar value
74 .Lp
75 directive had appeared in the source.
reed
1.6
76 If
77 .Ar value
plunky
1.15
78 is not set on the command-line, then a value of 1 is used.
79 .It Fl d Ar flags
80 Modify output according to
81 .Ar flags ,
82 which can be a list of character flags.
83 The following flags are currently supported:
84 .Bl -tag -width ".Sy M"
85 .It Sy M
86 Do not process any input, but output a list of
ragge
1.4
87 .Dq #define
plunky
1.15
88 statements for all defined macros other than builtin macros
89 .Pq see below .
90 .El
91 .Lp
92 any unknown flags are ignored.
plunky
1.16
93 .It Fl E
94 Modify the exit code, if there were any warnings.
reed
1.6
95 .It Fl I Ar path
ragge
1.1
96 Add
reed
1.6
97 .Ar path
plunky
1.15
98 to the list of directories searched by the
99 .Dq #include
100 directive.
ragge
1.4
101 This may be used to override system include directories
plunky
1.15
102 .Pq see Fl S No option .
ragge
1.1
103 .Fl I
plunky
1.15
104 may be specified multiple times and is cumulative.
reed
1.6
105 .It Fl i Ar file
plunky
1.15
106 Include a file before processing any input, as if a
107 .Lp
108 .Dl #include Qo Ar file Qc
109 .Lp
110 directive had appeared in the source.
111 .Fl i
112 may be specified multiple times to include several files.
ragge
1.1
113 .It Fl M
plunky
1.15
114 Instead of producing a processed C code file, output a list
115 of dependencies for
116 .Xr make 1 ,
117 detailing the files that need to be processed when compiling
118 the input.
gmcgarry
1.10
119 .It Fl P
120 Inhibit generation of line markers.  This is sometimes useful when
121 running the preprocessor on something other than C code.
reed
1.6
122 .It Fl S Ar path
ragge
1.1
123 Add
reed
1.6
124 .Ar path
plunky
1.15
125 to the list of system directories searched by the
126 .Dq #include
127 directive.
reed
1.9
128 The
ragge
1.1
129 .Fl S
plunky
1.15
130 option may be specified multiple times and is cumulative.
ragge
1.1
131 .It Fl t
132 Traditional cpp syntax.
133 Do not define the
134 .Dv __TIME__ ,
ragge
1.4
135 .Dv __DATE__ ,
reed
1.8
136 .Dv __STDC__ ,
ragge
1.1
137 and
reed
1.9
138 .Dv __STDC_VERSION__
ragge
1.1
139 macros.
140 .It Fl U Ar macro
plunky
1.15
141 Undefine a macro before processing any input, as if a
142 .Lp
143 .Dl #undef Ar macro
144 .Lp
145 directive had appeared in the source.
reed
1.5
146 .It Fl V
ragge
1.1
147 Verbose debugging output.
reed
1.5
148 .Fl V
plunky
1.15
149 can be repeated for greater detail.
150 .Po
151 This is only available if the
152 .Nm
153 program was built with
154 .Dv PCC_DEBUG
155 defined, which is the default
156 .Pc .
reed
1.9
157 .It Fl v
158 Display version.
ragge
1.1
159 .El
plunky
1.15
160 .Pp
161 The
162 .Fl D ,
163 .Fl i
164 and
165 .Fl U
166 options are processed in the order that they appear on the command
167 line, before any input is read but after the command line options
168 have been scanned.
169 .Pp
170 Files referenced by the
171 .Dq #include
172 directive as
173 .Qq ... ,
174 are first looked for in the current directory, then as per
175 .Aq ...
176 files, which are first looked for in the list of
177 directories provided by any
178 .Fl I
179 options, then in the list of system directories provided by any
180 .Fl S
181 options.
182 Note that
183 .Nm
184 does not define any include directories by default; if no
185 .Fl I
186 or
187 .Fl S
188 options are given, then only the current directory will be
189 searched and no system files will be found.
reed
1.9
190 .Ss Builtin Macros
ragge
1.4
191 A few macros are interpreted inside the
192 .Nm cpp
193 program:
ragge
1.1
194 .Bl -diag
195 .It __DATE__
plunky
1.15
196 Expands to a quoted string literal containing the date in the form
197 .Qq Mmm dd yyyy ,
198 where the names of the months are the same as those generated by the
199 .Xr asctime 3
200 function, and the first character of dd is a space character if
201 the value is less than 10.
ragge
1.1
202 .It __FILE__
plunky
1.15
203 Expands to a quoted string literal containing the presumed name of
204 the current source file.
205 When reading source from standard input, it expands to
reed
1.9
206 .Qq Aq stdin .
ragge
1.1
207 .It __LINE__
plunky
1.15
208 Expands to an integer constant representing the presumed line number
209 of the source line containing the macro.
ragge
1.1
210 .It __STDC__
plunky
1.15
211 Expands to the integer constant
212 .Dq 1 ,
213 meaning that the compiler conforms to
214 .St -isoC .
reed
1.8
215 .It __STDC_VERSION__
plunky
1.15
216 Expands to the integer constant
217 .Dq 199901L ,
218 indicating that
reed
1.9
219 .Nm
plunky
1.15
220 conforms to
221 .St -isoC-99 .
ragge
1.1
222 .It __TIME__
plunky
1.15
223 Expands to a quoted string literal containing the time in the form
224 .Qq hh:mm:ss
225 as generated by the
226 .Xr asctime 3
227 function.
ragge
1.1
228 .El
229 .Pp
230 Also see the
ragge
1.4
231 .Fl t
232 option.
ragge
1.1
233 .Sh EXIT STATUS
234 The
235 .Nm
236 utility exits with one of the following values:
plunky
1.16
237 .Lp
238 .Bl -tag -width Ds -offset indent -compact
ragge
1.1
239 .It 0
240 Successfully finished.
241 .It 1
242 An error occurred.
plunky
1.16
243 .It 2
244 The
245 .Fl E
246 option was given, and warnings were issued.
ragge
1.1
247 .El
248 .Sh SEE ALSO
249 .Xr as 1 ,
250 .Xr ccom 1 ,
plunky
1.15
251 .Xr make 1 ,
252 .Xr pcc 1 ,
253 .Xr asctime 3
ragge
1.1
254 .Sh HISTORY
255 The
256 .Nm
plunky
1.14
257 command comes from the original Portable C Compiler by
258 .An "S. C. Johnson" ,
reed
1.9
259 written in the late 70's.
ragge
1.1
260 The code originates from the V6 preprocessor with some additions
261 from V7 cpp and ansi/c99 support.
262 .Pp
plunky
1.14
263 A lot of the PCC code was rewritten by
264 .An "Anders Magnusson" .
ragge
1.1
265 .Pp
266 This product includes software developed or owned by Caldera
267 International, Inc.
FishEye: Open Source License registered to PCC.
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-12-21 16:09 +0100