Quick Search:

View

Revision:
Expand:  
Changeset: MAIN:reed:20080219163239

Diff

Diff from 1.9 to:

Annotations

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

Annotated File View

reed
1.9
1 .\"     $Id: cpp.1,v 1.9 2008/02/19 16:32:39 reed Exp $
ragge
1.4
2 .\"     $NetBSD$
3 .\"     $OpenBSD$
4 ."\
ragge
1.1
5 .\" Copyright (c) 2007 Jeremy C. Reed <reed@reedmedia.net>
reed
1.9
6 .\"
7 .\" Permission to use, copy, modify, and/or distribute this software for any
8 .\" purpose with or without fee is hereby granted, provided that the above
ragge
1.1
9 .\" copyright notice and this permission notice appear in all copies.
reed
1.9
10 .\"
11 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR AND CONTRIBUTORS DISCLAIM
12 .\" ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
13 .\" WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL AUTHOR AND
14 .\" CONTRIBUTORS BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
15 .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
16 .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
17 .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
ragge
1.1
18 .\" THIS SOFTWARE.
19 .\"
20 .Dd September 17, 2007
reed
1.9
21 .Dt CPP 1
ragge
1.1
22 .Os
23 .Sh NAME
24 .Nm cpp
25 .Nd C preprocessor
26 .Sh SYNOPSIS
27 .Nm
28 .\" TODO also document -Dvar and below without spaces?
reed
1.7
29 .Op Fl CdMtVv
reed
1.6
30 .Op Fl D Ar macro[=value]
ragge
1.1
31 .Op Fl I Ar path
reed
1.6
32 .Op Fl i Ar file
ragge
1.1
33 .Op Fl S Ar path
reed
1.6
34 .Op Fl U Ar macro
ragge
1.1
35 .Op Ar infile | -
36 .Op Ar outfile
37 .Sh DESCRIPTION
38 The
39 .Nm
40 utility is a macro preprocessor used by the
41 .Xr pcc 1
42 compiler.
ragge
1.4
43 It is used to include header files,
ragge
1.1
44 expand macro definitions,
45 and perform conditional compilation.
46 .Pp
reed
1.9
47 The
ragge
1.1
48 .Ar infile
49 input file is optional.
50 If not provided or the file name is
51 .Qq -
52 (dash),
53 .Nm
54 reads its initial file from standard input.
55 The
56 .Ar outfile
57 output file is also optional.
58 It writes by default to standard output.
59 .Pp
60 .\" TODO: document MAXARG  250 args to a macro, limited by char value
61 .\" TODO: Include order:
62 .\" For "..." files, first search "current" dir, then as <...> files.
63 .\" For <...> files, first search -I directories, then system directories.
64 .\"
65 The options are as follows:
66 .Bl -tag -width Ds
reed
1.9
67 .It Fl ?
68 Show command line usage for
69 .Nm .
ragge
1.1
70 .It Fl C
71 Do not discard comments.
reed
1.6
72 .It Fl D Ar macro[=value]
73 Fake a definition at the beginning by using
74 .Do #define
75 .Ar macro=value Dc .
76 If
77 .Ar value
reed
1.9
78 is not set on command-line, then define it as 1.
reed
1.6
79 .\" TODO: show example
ragge
1.1
80 .It Fl dM
ragge
1.4
81 Print list of
82 .Dq #define
83 statements to standard output for all defined macros other than
84 builtin macros (see below).
reed
1.9
85 The normal results of preprocessing are not output.
ragge
1.1
86 .\" TODO this doesn't show predefined macros
87 .\" other -d options are ignored
reed
1.6
88 .It Fl I Ar path
ragge
1.1
89 Add
reed
1.6
90 .Ar path
reed
1.5
91 to the list of directories containing needed header files.
ragge
1.4
92 This may be used to override system include directories
93 (see
94 .Fl S
95 option).
ragge
1.1
96 .Fl I
97 may be specified multiple times.
reed
1.6
98 .It Fl i Ar file
99 Include a file at the beginning by using
100 .Do #include
101 .Ar file Dc .
102 .\" Note: I did not use the .In macro above
ragge
1.1
103 .It Fl M
104 Generate dependencies for
105 .Xr make 1 .
106 .\" TODO: explain and show example?
reed
1.6
107 .It Fl S Ar path
ragge
1.1
108 Add
reed
1.6
109 .Ar path
ragge
1.2
110 to the list of system directories containing needed header files.
reed
1.9
111 The
ragge
1.1
112 .Fl S
reed
1.9
113 option may be specified multiple times.
ragge
1.4
114 Note:
115 .Nm
116 does not have a default include directory defined.
ragge
1.1
117 .\" TODO: explain difference between -I and -S
ragge
1.2
118 .\" The directories listed by -I are searched first?
ragge
1.1
119 .It Fl t
120 Traditional cpp syntax.
121 Do not define the
122 .Dv __TIME__ ,
ragge
1.4
123 .Dv __DATE__ ,
reed
1.8
124 .Dv __STDC__ ,
ragge
1.1
125 and
reed
1.9
126 .Dv __STDC_VERSION__
ragge
1.1
127 macros.
128 .\"
129 .It Fl U Ar macro
130 Undefine a macro at the beginning by using
131 .Do #undef
132 .Ar macro Dc .
reed
1.5
133 .It Fl V
ragge
1.1
134 Verbose debugging output.
reed
1.5
135 .Fl V
ragge
1.1
136 can be repeated for further details.
reed
1.5
137 .\" -V only available if cpp source built with CPP_DEBUG, which is the default.
reed
1.9
138 .It Fl v
139 Display version.
ragge
1.1
140 .El
reed
1.9
141 .Ss Builtin Macros
ragge
1.4
142 A few macros are interpreted inside the
143 .Nm cpp
144 program:
ragge
1.1
145 .Bl -diag
146 .It __DATE__
147 Expands to the date in abbreviated month, day, and year format from
148 .Xr ctime 3
149 in quotes.
150 .\" TODO: is that ctime(3) format output change according to locale?
151 .It __FILE__
152 Expands to the name of the current input file in quotes.
ragge
1.4
153 When read from standard input, it expands to
reed
1.9
154 .Qq Aq stdin .
ragge
1.1
155 .It __LINE__
156 Expands to the line number of the current line containing the macro.
157 .It __STDC__
158 Expands to the constant 1.
reed
1.9
159 This means the compiler conforms to
160 .St -isoC
reed
1.8
161 .Po also known as
162 .Do C90 Dc Pc .
163 .It __STDC_VERSION__
164 Expands to
165 .Dq 199901L
reed
1.9
166 which indicates that
167 .Nm
168 supports
169 .St -isoC-99
reed
1.8
170 .Po commonly referred to as
171 .Do C99 Dc Pc .
ragge
1.1
172 .It __TIME__
173 Expands to the time in hour, minutes, and seconds from
174 .Xr ctime 3
175 in quotes.
176 .El
177 .Pp
178 Also see the
ragge
1.4
179 .Fl t
180 option.
ragge
1.1
181 .Sh EXIT STATUS
182 The
183 .Nm
184 utility exits with one of the following values:
185 .Bl -tag -width Ds
186 .It 0
187 Successfully finished.
188 .It 1
189 An error occurred.
190 .El
191 .Sh SEE ALSO
192 .Xr as 1 ,
193 .Xr ccom 1 ,
194 .Xr pcc 1
195 .\"
196 .Sh HISTORY
197 The
198 .Nm
reed
1.9
199 command comes from the original Portable C Compiler by S. C. Johnson,
200 written in the late 70's.
ragge
1.1
201 The code originates from the V6 preprocessor with some additions
202 from V7 cpp and ansi/c99 support.
203 .Pp
204 A lot of the PCC code was rewritten by Anders Magnusson.
205 .Pp
206 This product includes software developed or owned by Caldera
207 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-09-02 08:51 +0200