xref: /dflybsd-src/usr.bin/c99/c99.1 (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
1*86d7f5d3SJohn Marino.\"
2*86d7f5d3SJohn Marino.\" Copyright (c) 1997 Joerg Wunsch
3*86d7f5d3SJohn Marino.\"
4*86d7f5d3SJohn Marino.\" All rights reserved.
5*86d7f5d3SJohn Marino.\"
6*86d7f5d3SJohn Marino.\" Redistribution and use in source and binary forms, with or without
7*86d7f5d3SJohn Marino.\" modification, are permitted provided that the following conditions
8*86d7f5d3SJohn Marino.\" are met:
9*86d7f5d3SJohn Marino.\" 1. Redistributions of source code must retain the above copyright
10*86d7f5d3SJohn Marino.\"    notice, this list of conditions and the following disclaimer.
11*86d7f5d3SJohn Marino.\" 2. Redistributions in binary form must reproduce the above copyright
12*86d7f5d3SJohn Marino.\"    notice, this list of conditions and the following disclaimer in the
13*86d7f5d3SJohn Marino.\"    documentation and/or other materials provided with the distribution.
14*86d7f5d3SJohn Marino.\"
15*86d7f5d3SJohn Marino.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
16*86d7f5d3SJohn Marino.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17*86d7f5d3SJohn Marino.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18*86d7f5d3SJohn Marino.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
19*86d7f5d3SJohn Marino.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20*86d7f5d3SJohn Marino.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21*86d7f5d3SJohn Marino.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22*86d7f5d3SJohn Marino.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23*86d7f5d3SJohn Marino.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24*86d7f5d3SJohn Marino.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25*86d7f5d3SJohn Marino.\"
26*86d7f5d3SJohn Marino.\" From FreeBSD: src/usr.bin/c89/c89.1,v 1.11 2007/03/10 07:10:01 ru Exp
27*86d7f5d3SJohn Marino.\" $FreeBSD: src/usr.bin/c99/c99.1,v 1.5 2007/03/10 07:11:20 ru Exp $
28*86d7f5d3SJohn Marino.\"
29*86d7f5d3SJohn Marino.Dd October 7, 2002
30*86d7f5d3SJohn Marino.Dt C99 1
31*86d7f5d3SJohn Marino.Os
32*86d7f5d3SJohn Marino.Sh NAME
33*86d7f5d3SJohn Marino.Nm c99
34*86d7f5d3SJohn Marino.Nd standard C language compiler
35*86d7f5d3SJohn Marino.Sh SYNOPSIS
36*86d7f5d3SJohn Marino.Nm
37*86d7f5d3SJohn Marino.Op Fl cEgs
38*86d7f5d3SJohn Marino.Oo Fl D Ar name Ns Oo = Ns Ar value Oc Oc ...
39*86d7f5d3SJohn Marino.Oo Fl I Ar directory Oc ...
40*86d7f5d3SJohn Marino.Oo Fl L Ar directory Oc ...
41*86d7f5d3SJohn Marino.Op Fl o Ar outfile
42*86d7f5d3SJohn Marino.Op Fl O Ar optlevel
43*86d7f5d3SJohn Marino.Oo Fl U Ar name Oc ...
44*86d7f5d3SJohn Marino.Ar operand ...
45*86d7f5d3SJohn Marino.Sh DESCRIPTION
46*86d7f5d3SJohn MarinoThis is the name of the C language compiler as required by the
47*86d7f5d3SJohn Marino.St -p1003.1-2001
48*86d7f5d3SJohn Marinostandard.
49*86d7f5d3SJohn Marino.Pp
50*86d7f5d3SJohn MarinoThe
51*86d7f5d3SJohn Marino.Nm
52*86d7f5d3SJohn Marinocompiler accepts the following options:
53*86d7f5d3SJohn Marino.Bl -tag -width indent
54*86d7f5d3SJohn Marino.It Fl c
55*86d7f5d3SJohn MarinoSuppress the link-edit phase of the compilation, and do not remove any
56*86d7f5d3SJohn Marinoobject files that are produced.
57*86d7f5d3SJohn Marino.It Fl D Ar name Ns Op = Ns Ar value
58*86d7f5d3SJohn MarinoDefine name as if by a C-language
59*86d7f5d3SJohn Marino.Ic #define
60*86d7f5d3SJohn Marinodirective.
61*86d7f5d3SJohn MarinoIf no
62*86d7f5d3SJohn Marino.Dq = Ns Ar value
63*86d7f5d3SJohn Marinois given, a value of 1 will be used.
64*86d7f5d3SJohn MarinoNote that in order to request a
65*86d7f5d3SJohn Marinotranslation as specified by
66*86d7f5d3SJohn Marino.St -p1003.1-2001 ,
67*86d7f5d3SJohn Marinoyou need to define
68*86d7f5d3SJohn Marino.Dv _POSIX_C_SOURCE=200112L
69*86d7f5d3SJohn Marinoeither in the source or using this option.
70*86d7f5d3SJohn MarinoThe
71*86d7f5d3SJohn Marino.Fl D
72*86d7f5d3SJohn Marinooption has lower precedence than the
73*86d7f5d3SJohn Marino.Fl U
74*86d7f5d3SJohn Marinooption.
75*86d7f5d3SJohn MarinoThat is, if
76*86d7f5d3SJohn Marino.Ar name
77*86d7f5d3SJohn Marinois used in both a
78*86d7f5d3SJohn Marino.Fl U
79*86d7f5d3SJohn Marinoand a
80*86d7f5d3SJohn Marino.Fl D
81*86d7f5d3SJohn Marinooption,
82*86d7f5d3SJohn Marino.Ar name
83*86d7f5d3SJohn Marinowill be undefined regardless of the order of the options.
84*86d7f5d3SJohn MarinoThe
85*86d7f5d3SJohn Marino.Fl D
86*86d7f5d3SJohn Marinooption may be specified more than once.
87*86d7f5d3SJohn Marino.It Fl E
88*86d7f5d3SJohn MarinoCopy C-language source files to the standard output, expanding all
89*86d7f5d3SJohn Marinopreprocessor directives; no compilation will be performed.
90*86d7f5d3SJohn Marino.It Fl g
91*86d7f5d3SJohn MarinoProduce symbolic information in the object or executable files.
92*86d7f5d3SJohn Marino.It Fl I Ar directory
93*86d7f5d3SJohn MarinoChange the algorithm for searching for headers whose names are not
94*86d7f5d3SJohn Marinoabsolute pathnames to look in the directory named by the
95*86d7f5d3SJohn Marino.Ar directory
96*86d7f5d3SJohn Marinopathname before looking in the usual places.
97*86d7f5d3SJohn MarinoThus, headers whose
98*86d7f5d3SJohn Marinonames are enclosed in double-quotes
99*86d7f5d3SJohn Marino.Pq Qq
100*86d7f5d3SJohn Marinowill be searched for first
101*86d7f5d3SJohn Marinoin the directory of the file with the
102*86d7f5d3SJohn Marino.Ic #include
103*86d7f5d3SJohn Marinoline, then in
104*86d7f5d3SJohn Marinodirectories named in
105*86d7f5d3SJohn Marino.Fl I
106*86d7f5d3SJohn Marinooptions, and last in the usual places.
107*86d7f5d3SJohn MarinoFor headers whose names are enclosed in angle brackets
108*86d7f5d3SJohn Marino.Pq Aq ,
109*86d7f5d3SJohn Marinothe header
110*86d7f5d3SJohn Marinowill be searched for only in directories named in
111*86d7f5d3SJohn Marino.Fl I
112*86d7f5d3SJohn Marinooptions and then in the usual places.
113*86d7f5d3SJohn MarinoDirectories named in
114*86d7f5d3SJohn Marino.Fl I
115*86d7f5d3SJohn Marinooptions shall be searched in the order specified.
116*86d7f5d3SJohn MarinoThe
117*86d7f5d3SJohn Marino.Fl I
118*86d7f5d3SJohn Marinooption may be specified more than once.
119*86d7f5d3SJohn Marino.It Fl L Ar directory
120*86d7f5d3SJohn MarinoChange the algorithm of searching for the libraries named in the
121*86d7f5d3SJohn Marino.Fl l
122*86d7f5d3SJohn Marinoobjects to look in the directory named by the
123*86d7f5d3SJohn Marino.Ar directory
124*86d7f5d3SJohn Marinopathname before looking in the usual places.
125*86d7f5d3SJohn MarinoDirectories named in
126*86d7f5d3SJohn Marino.Fl L
127*86d7f5d3SJohn Marinooptions will be searched in the order specified.
128*86d7f5d3SJohn MarinoThe
129*86d7f5d3SJohn Marino.Fl L
130*86d7f5d3SJohn Marinooption may be specified more than once.
131*86d7f5d3SJohn Marino.It Fl o Ar outfile
132*86d7f5d3SJohn MarinoUse the pathname
133*86d7f5d3SJohn Marino.Ar outfile ,
134*86d7f5d3SJohn Marinoinstead of the default
135*86d7f5d3SJohn Marino.Pa a.out ,
136*86d7f5d3SJohn Marinofor the executable file produced.
137*86d7f5d3SJohn Marino.It Fl O Ar optlevel
138*86d7f5d3SJohn MarinoIf
139*86d7f5d3SJohn Marino.Ar optlevel
140*86d7f5d3SJohn Marinois zero, disable all optimizations.
141*86d7f5d3SJohn MarinoOtherwise, enable optimizations at the specified level.
142*86d7f5d3SJohn Marino.It Fl s
143*86d7f5d3SJohn MarinoProduce object and/or executable files from which symbolic and other
144*86d7f5d3SJohn Marinoinformation not required for proper execution has been removed
145*86d7f5d3SJohn Marino(stripped).
146*86d7f5d3SJohn Marino.It Fl U Ar name
147*86d7f5d3SJohn MarinoRemove any initial definition of
148*86d7f5d3SJohn Marino.Ar name .
149*86d7f5d3SJohn MarinoThe
150*86d7f5d3SJohn Marino.Fl U
151*86d7f5d3SJohn Marinooption may be specified more than once.
152*86d7f5d3SJohn Marino.El
153*86d7f5d3SJohn Marino.Pp
154*86d7f5d3SJohn MarinoAn operand is either in the form of a pathname or the form
155*86d7f5d3SJohn Marino.Fl l
156*86d7f5d3SJohn Marinolibrary.
157*86d7f5d3SJohn MarinoAt least one operand of the pathname form needs to be specified.
158*86d7f5d3SJohn MarinoSupported operands are of the form:
159*86d7f5d3SJohn Marino.Bl -tag -offset indent -width ".Fl l Ar library"
160*86d7f5d3SJohn Marino.It Ar file Ns Pa .c
161*86d7f5d3SJohn MarinoA C-language source file to be compiled and optionally linked.
162*86d7f5d3SJohn MarinoThe operand must be of this form if the
163*86d7f5d3SJohn Marino.Fl c
164*86d7f5d3SJohn Marinooption is used.
165*86d7f5d3SJohn Marino.It Ar file Ns Pa .a
166*86d7f5d3SJohn MarinoA library of object files, as produced by
167*86d7f5d3SJohn Marino.Xr ar 1 ,
168*86d7f5d3SJohn Marinopassed directly to the link editor.
169*86d7f5d3SJohn Marino.It Ar file Ns Pa .o
170*86d7f5d3SJohn MarinoAn object file produced by
171*86d7f5d3SJohn Marino.Nm Fl c ,
172*86d7f5d3SJohn Marinoand passed directly to the link editor.
173*86d7f5d3SJohn Marino.It Fl l Ar library
174*86d7f5d3SJohn MarinoSearch the library named
175*86d7f5d3SJohn Marino.Pa lib Ns Ar library Ns Pa .a .
176*86d7f5d3SJohn MarinoA library will be searched when its name is encountered, so the
177*86d7f5d3SJohn Marinoplacement of a
178*86d7f5d3SJohn Marino.Fl l
179*86d7f5d3SJohn Marinooperand is significant.
180*86d7f5d3SJohn Marino.El
181*86d7f5d3SJohn Marino.Sh SEE ALSO
182*86d7f5d3SJohn Marino.Xr ar 1 ,
183*86d7f5d3SJohn Marino.Xr c89 1 ,
184*86d7f5d3SJohn Marino.Xr cc 1
185*86d7f5d3SJohn Marino.Sh STANDARDS
186*86d7f5d3SJohn MarinoThe
187*86d7f5d3SJohn Marino.Nm
188*86d7f5d3SJohn Marinoutility interface conforms to
189*86d7f5d3SJohn Marino.St -p1003.1-2001 .
190*86d7f5d3SJohn MarinoSince it is a wrapper around
191*86d7f5d3SJohn Marino.Tn GCC ,
192*86d7f5d3SJohn Marinoit is limited to the
193*86d7f5d3SJohn Marino.Tn C99
194*86d7f5d3SJohn Marinofeatures that
195*86d7f5d3SJohn Marino.Tn GCC
196*86d7f5d3SJohn Marinoactually implements.
197*86d7f5d3SJohn MarinoSee
198*86d7f5d3SJohn Marino.Pa http://gcc.gnu.org/gcc-3.4/c99status.html .
199