Print this page
6282 ONBLD man pages not pbchk clean
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Josef Sipek <jeffpc@josefsipek.net>
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/tools/cw/cw.1onbld
+++ new/usr/src/tools/cw/cw.1onbld
1 1 .\"
2 2 .\" CDDL HEADER START
3 3 .\"
4 4 .\" The contents of this file are subject to the terms of the
5 5 .\" Common Development and Distribution License (the "License").
6 6 .\" You may not use this file except in compliance with the License.
7 7 .\"
8 8 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 .\" or http://www.opensolaris.org/os/licensing.
10 10 .\" See the License for the specific language governing permissions
11 11 .\" and limitations under the License.
12 12 .\"
13 13 .\" When distributing Covered Code, include this CDDL HEADER in each
↓ open down ↓ |
13 lines elided |
↑ open up ↑ |
14 14 .\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 .\" If applicable, add the following below this CDDL HEADER, with the
16 16 .\" fields enclosed by brackets "[]" replaced with your own identifying
17 17 .\" information: Portions Copyright [yyyy] [name of copyright owner]
18 18 .\"
19 19 .\" CDDL HEADER END
20 20 .\"
21 21 .\" Copyright 2010 Sun Microsystems, Inc. All rights reserved.
22 22 .\" Use is subject to license terms.
23 23 .\"
24 -.TH cw 1ONBLD "22 March 2010"
24 +.TH CW 1ONBLD "Mar 22, 2010"
25 25 .SH NAME
26 26 .I cw
27 27 \- invoke one or more compilers with argument translation
28 28 .SH SYNOPSIS
29 29 \fBcw {-_cc|-_gcc|-_CC|-_g++} [options] [compiler args...]\fP
30 -.LP
31 30 .SH DESCRIPTION
32 -.IX "OS-Net build tools" "cw" "" "\fBcw\fP"
33 31 .LP
34 32 .I cw
35 33 is a facility for invoking one or more compilers, providing
36 34 translation from Sun Studio arguments as appropriate. This allows
37 35 the use of arbitrary compilers without the need to alter large
38 36 numbers of makefiles. A mode called shadow compilation, the default,
39 37 invokes two different compilers so that warnings and errors may be
40 38 obtained from both. See SHADOW COMPILATION for details. This version
41 39 of cw supports Sun Studio 10 and 11 and gcc 3.4.3 as shipped in
42 40 Solaris.
43 -.LP
44 41 .SH ARGUMENTS
45 42 .LP
46 43 Exactly one of the following arguments is required, and must appear
47 44 immediately following \fBcw\fP in the argument list:
48 45 .TP 4
49 46 .B \-_cc
50 47 Select Sun Studio C (cc) as the primary compiler.
51 48 .TP 4
52 49 .B \-_gcc
53 50 Select GNU C (gcc) as the primary compiler.
54 51 .TP 4
55 52 .B \-_CC
56 53 Select Sun Studio C++ (CC) as the primary compiler.
57 54 .TP 4
58 55 .B \-_g++
59 56 Select GNU C++ (g++) as the primary compiler.
60 -.LP
61 57 .SH OPTIONS
62 58 .LP
63 59 The following options are supported:
64 60 .TP 4
65 61 .B \-_compiler
66 62 Do not invoke any compiler; instead, write to standard output the
67 63 full path to the primary compiler that would be invoked. If this
68 64 option is given, it must appear immediately following the compiler
69 65 selection argument, and all other options will be disregarded.
70 -.LP
71 66 .TP 4
72 67 .B \-_versions
73 68 Print the cw version, followed in turn by the path to and versions
74 69 of each compiler which would be invoked. If this option is given,
75 70 it must appear immediately following the compiler selection argument,
76 71 and all other options will be disregarded.
77 -.LP
78 72 .TP 4
79 73 .B \-_noecho
80 74 Normally, cw writes to standard error the actual compiler commands
81 75 invoked, each prefixed with '+'. This option suppresses these
82 76 messages.
83 -.LP
84 77 .TP 4
85 78 .B \-_cc=,\-_gcc=,\-_CC=,\-g++=
86 79 Pass compiler-dependent options. See ARGUMENT TRANSLATION.
87 -.LP
88 80 .SH SHADOW COMPILATION
89 81 .LP
90 82 Unless otherwise directed by environment variables (see ENVIRONMENT),
91 83 \fBcw\fP will invoke both the compiler specified by its first argument
92 84 (primary) and a designated alternate compiler (shadow). The primary
93 85 compiler will be invoked with the arguments given to cw, translated
94 86 as described in ARGUMENT TRANSLATION. The secondary compiler will be
95 87 invoked in parallel with the primary (but see ENVIRONMENT); its
96 88 arguments will likewise be translated. However, the shadow compiler's
97 89 arguments will also be modified as follows:
98 -.LP
99 90 .TP 4
100 91 .B 1.
101 92 If none of \fI-c\fP, \fI-E\fP, \fI-P\fP, or \fI-S\fP appears in the
102 93 argument list (that is, linking is attempted), the shadow compiler
103 94 will not be invoked. This is because the objects built with that
104 95 compiler which would be linked have been previously discarded.
105 -.LP
106 96 .TP 4
107 97 .B 2.
108 98 If an option of the form \fI-ofilename\fP was provided, it will be
109 99 replaced by two options of the form \fI-o\fP \fItempfile\fP.
110 -.LP
111 100 .TP 4
112 101 .B 3.
113 102 If the option \fI-o\fP was provided, its following argument will be
114 103 replaced by \fItempfile\fP.
115 -.LP
116 104 .TP 4
117 105 .B 4.
118 106 If neither of the above options was provided, two options of the
119 107 form \fI-o\fP \fItempfile\fP will be added to the end of the argument
120 108 list used to invoke the shadow compiler.
121 109 .LP
122 110 In all three cases, \fItempfile\fP is the name of a temporary file
123 111 which will be removed by \fBcw\fP before it terminates.
124 112 .LP
125 113 When shadow compilation is in effect, \fBcw\fP writes to standard error
126 114 each compiler's standard error output following its argument list.
127 115 Messages from the two compilers will not be interleaved. If \fBcw\fP
128 116 is used to invoke the preprocessor and no output location is specified,
129 117 \fBcw\fP will write to standard output the primary compiler's
↓ open down ↓ |
4 lines elided |
↑ open up ↑ |
130 118 standard output, and the secondary compiler's standard output will
131 119 be discarded.
132 120 .LP
133 121 Because the Studio compilers write intermediate objects to fixed
134 122 filenames in the current directory when instructed to compile and
135 123 link multiple source files via a single command line, it would be
136 124 unsafe to invoke more than one compiler in this fashion. Therefore
137 125 \fBcw\fP does not accept multiple source files unless the
138 126 preprocessor is to be invoked. An attempt to invoke \fBcw\fP in
139 127 this manner will result in an error.
140 -.LP
141 128 .SH ARGUMENT TRANSLATION
142 129 .LP
143 130 The arguments provided to \fBcw\fP will be passed through to each
144 131 compiler invoked, altered as follows:
145 -.LP
146 132 .TP 4
147 133 .B 1.
148 134 Options intended for \fBcw\fP itself are removed.
149 -.LP
150 135 .TP 4
151 136 .B 2.
152 137 The shadow compiler's arguments are modified as described in
153 138 SHADOW COMPILATION so that its output is discarded.
154 -.LP
155 139 .TP 4
156 140 .B 3.
157 141 If the compiler to be invoked is a GNU C or C++ compiler, a set of
158 142 default flags is added to the beginning of the argument list, and the
159 143 remaining arguments are translated to their closest appropriate
160 144 semantic equivalents and passed in the same order as their
161 145 counterparts given to \fBcw\fP. Arguments which begin with
162 146 \fI-_gcc=\fP or \fI-_g++=\fP will be passed in place with the
163 147 leading portion removed. Arguments which begin with \fI-_cc=\fP or
164 148 \fI-_CC=\fP will be discarded. See the comments at the head of
165 149 \fIusr/src/tools/cw/cw.c\fP for a detailed list of translations.
166 -.LP
167 150 .TP 4
168 151 .B 4.
169 152 If the compiler to be invoked is a Studio C or C++ compiler, the
170 153 remaining arguments are passed unmodified and in the same order as
171 154 given to \fBcw\fP. Arguments which begin with \fI-_cc=\fP or
172 155 \fI-_CC=\fP will be passed in place with the leading portion removed.
173 156 Arguments which begin with \fI-_gcc=\fP or \fI-_g++=\fP will be
174 157 discarded.
175 -.LP
176 158 .SH ENVIRONMENT
177 -.LP
178 159 .TP 4
179 160 .B CW_NO_SHADOW
180 161 If this variable is set in the environment, invoke only the
181 162 primary compiler.
182 -.LP
183 163 .TP 4
184 164 .B CW_SHADOW_SERIAL
185 165 If this variable is set in the environment, invoke the primary compiler,
186 166 wait for it to complete, then invoke the shadow compiler. Normally
187 167 the two compilers are invoked in parallel. If CW_NO_SHADOW is set,
188 168 this has no effect.
189 -.LP
190 169 .TP 4
191 170 .B CW_NO_EXEC
192 171 If this variable is set in the environment, write the usual output to
193 172 standard error but do not actually invoke any compiler. This is
194 173 useful for debugging the translation engine.
195 -.LP
196 174 .TP 4
197 175 .B CW_CC, CW_CPLUSPLUS
198 176 If these variables are set in the environment, they specify the full
199 177 pathname for the Studio C and C++ compilers, respectively.
200 -.LP
201 178 .TP 4
202 179 .B CW_CC_DIR, CW_CPLUSPLUS_DIR, SPRO_VROOT, SPRO_ROOT, BUILD_TOOLS
203 180 If CW_CC or CW_CPLUSPLUS are not set,
204 181 these variables define the search path for Studio compilers as
205 182 follows:
206 183 .B
207 184 If CW_CC_DIR is set, the Studio C compiler in \fI$CW_CC_DIR\fP
208 185 will be used. Likewise, if CW_CPLUSPLUS_DIR is set, the Studio C++
209 186 compiler in \fI$CW_CPLUSPLUS_DIR\fP will be used.
210 187 Otherwise, if SPRO_VROOT is set, the Studio C and C++ compilers
211 188 in \fI$SPRO_VROOT/bin\fP will be used.
212 189 Otherwise, if SPRO_ROOT is set, the Studio C and C++ compilers
213 190 in \fI$SPRO_ROOT/SS12/bin\fP will be used.
214 191 Otherwise, if BUILD_TOOLS is set, the Studio C and C++ compilers
215 192 in \fI$BUILD_TOOLS/SUNWspro/SS12/bin\fP will be used.
216 193 Otherwise, the Studio compilers in a predefined default location
217 194 will be used.
218 -.LP
219 195 .TP 4
220 196 .B CW_GCC, CW_GPLUSPLUS
221 197 If these variables are set in the environment, they specify the full
222 198 pathname for the GNU C and C++ compilers, respectively.
223 -.LP
224 199 .TP 4
225 200 .B CW_GCC_DIR, CW_GPLUSPLUS_DIR, GNU_ROOT
226 201 If CW_GCC or CW_GPLUSPLUS are not set,
227 202 these variables alter the search path for GNU compilers in a manner
228 203 similar to that described above for the Studio compilers. Specifically:
229 204 .B
230 205 If CW_GCC_DIR is set, the GNU C compiler in \fI$CW_GCC_DIR\fP
231 206 will be used. Likewise, if CW_GPLUSPLUS_DIR is set, the GNU C++
232 207 compiler in \fI$CW_GPLUSPLUS_DIR\fP will be used.
233 208 Otherwise, if GNU_ROOT is set, the GNU C and C++ compilers
234 209 in \fI$GCC_ROOT/bin\fP will be used.
235 210 Otherwise, the GNU compilers in a predefined default location
236 211 will be used.
237 -.LP
238 212 .SH EXIT STATUS
239 213 .LP
240 214 The following exit status values are returned:
241 215 .IP "\fB0\fR" 4
242 -.IX Item "0"
243 216 The primary compiler, and shadow compiler if invoked, both completed
244 217 successfully.
245 218 .IP "\fB>0\fR" 4
246 -.IX Item ">0"
247 219 A usage error occurred, or one or more compilers returned a nonzero
248 220 exit status.
249 -.LP
250 221 .SH BUGS
251 222 .LP
252 223 The translations provided for gcc are not always exact and in some
253 224 cases reflect local ON policy rather than actual equivalence.
254 225 .LP
255 226 Additional compiler types should be supported.
256 227 .LP
257 228 The translation engine is hacky.
258 -.LP
259 229 .SH SEE ALSO
260 230 .LP
261 231 cc(1), CC(1), gcc(1)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX