blob: 16684b0c86cbb0d59558b451648748071a611d65 [file] [log] [blame]
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00001
2case $CC in
3
Igor Sysoev32769a72004-03-25 20:03:02 +00004 *gcc*)
Igor Sysoevab9d5fd2004-03-05 08:34:24 +00005 # gcc 2.95.4, 3.3.2
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00006
7 # optimization
8 #CFLAGS="$CFLAGS -O2 -fomit-frame-pointer"
Igor Sysoev24b56c92004-03-10 17:55:19 +00009
Igor Sysoev7b908342004-03-10 20:56:39 +000010 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +000011 pentium)
12 # optimize for Pentium and Athlon
13 CPU_OPT="-march=pentium"
14 ;;
15
Igor Sysoev24b56c92004-03-10 17:55:19 +000016 pentiumpro)
17 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +000018 CPU_OPT="-march=pentiumpro"
Igor Sysoev24b56c92004-03-10 17:55:19 +000019 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +000020
Igor Sysoev24b56c92004-03-10 17:55:19 +000021 pentium4)
22 # optimize for Pentium 4, gcc 3.x
Igor Sysoev7b908342004-03-10 20:56:39 +000023 CPU_OPT="-march=pentium4"
Igor Sysoev24b56c92004-03-10 17:55:19 +000024 ;;
25 esac
26
Igor Sysoev32769a72004-03-25 20:03:02 +000027 CFLAGS="$CFLAGS $PIPE $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +000028
Igor Sysoeva893eab2004-03-11 21:34:52 +000029 if [ ".$PCRE_OPT" = "." ]; then
30 PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
31 else
32 PCRE_OPT="$PCRE_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000033 fi
34
Igor Sysoeva893eab2004-03-11 21:34:52 +000035 if [ ".$MD5_OPT" = "." ]; then
36 MD5_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
37 else
38 MD5_OPT="$MD5_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000039 fi
40
Igor Sysoeva893eab2004-03-11 21:34:52 +000041 if [ ".$ZLIB_OPT" = "." ]; then
42 ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
43 else
44 ZLIB_OPT="$ZLIB_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000045 fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000046
47 # warnings
48 CFLAGS="$CFLAGS -O -W"
49 CFLAGS="$CFLAGS -Wall -Wpointer-arith"
50 #CFLAGS="$CFLAGS -Wconversion"
51 #CFLAGS="$CFLAGS -Winline"
52
53 # we have a lot of the unused function arguments
54 CFLAGS="$CFLAGS -Wno-unused"
55
56 # stop on warning
57 CFLAGS="$CFLAGS -Werror"
58
59 # ANSI C warnings
60 #CFLAGS="$CFLAGS -pedantic"
61
62 # debug
63 CFLAGS="$CFLAGS -g"
64
Igor Sysoev6881bfb2004-03-30 06:27:36 +000065 # DragonFly's gcc3 generates DWARF
66 #CFLAGS="$CFLAGS -g -gstabs"
Igor Sysoev11dbe972004-03-29 17:43:58 +000067
Igor Sysoev8ae18a12004-02-18 15:45:21 +000068 have=HAVE_GCC_VARIADIC_MACROS . auto/have
Igor Sysoev865c1502003-11-30 20:03:18 +000069
Igor Sysoeva893eab2004-03-11 21:34:52 +000070 if [ ".$CPP" = "." ]; then
71 CPP="$CC -E"
72 fi
73
Igor Sysoevfc5a10a2004-03-09 19:47:07 +000074 LINK="\$(CC)"
75
Igor Sysoev11dbe972004-03-29 17:43:58 +000076 INCOPT="-I "
77 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000078 OBJOUT="-o "
79 BINOUT="-o "
Igor Sysoev11dbe972004-03-29 17:43:58 +000080 OBJEXT="o"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000081
82 CC_STRONG="$CC -Wall -Werror"
83 ;;
84
85
86 *icc)
87 # Intel C++ compiler 7.1
88
89 # optimization
90 CFLAGS="$CFLAGS -O"
Igor Sysoev7b908342004-03-10 20:56:39 +000091 # inline functions declared with __inline
Igor Sysoev3646a162004-03-14 20:46:25 +000092 #CFLAGS="$CFLAGS -Ob1"
Igor Sysoev7b908342004-03-10 20:56:39 +000093 # inline any function, at the compiler's discretion
Igor Sysoev3646a162004-03-14 20:46:25 +000094 CFLAGS="$CFLAGS -Ob2"
95
96 # single-file IP optimizations
97 #IPO="-ip"
98 # multi-file IP optimizations
99 IPO="-ipo -ipo_obj"
100 CFLAGS="$CFLAGS $IPO"
101 CORE_LINK="$CORE_LINK $IPO"
102 CORE_LINK="$CORE_LINK -opt_report_file=$OBJS/opt_report_file"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000103
Igor Sysoev7b908342004-03-10 20:56:39 +0000104 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +0000105 pentium)
106 # optimize for Pentium and Athlon
107 CPU_OPT="-march=pentium"
108 ;;
109
Igor Sysoev24b56c92004-03-10 17:55:19 +0000110 pentiumpro)
111 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +0000112 CPU_OPT="-mcpu=pentiumpro -march=pentiumpro"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000113 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +0000114
Igor Sysoev24b56c92004-03-10 17:55:19 +0000115 pentium4)
116 # optimize for Pentium 4, default
Igor Sysoev7b908342004-03-10 20:56:39 +0000117 CPU_OPT="-march=pentium4"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000118 ;;
119 esac
120
Igor Sysoev7b908342004-03-10 20:56:39 +0000121 CFLAGS="$CFLAGS $CPU_OPT"
122
Igor Sysoeva893eab2004-03-11 21:34:52 +0000123 if [ ".$PCRE_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000124 PCRE_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000125 fi
126
Igor Sysoeva893eab2004-03-11 21:34:52 +0000127 if [ ".$MD5_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000128 MD5_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000129 fi
130
Igor Sysoeva893eab2004-03-11 21:34:52 +0000131 if [ ".$ZLIB_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000132 ZLIB_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000133 fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000134
135 # warnings
136 CFLAGS="$CFLAGS -w1"
Igor Sysoev10a543a2004-03-16 07:10:12 +0000137 #CFLAGS="$CFLAGS -w2"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000138
139 # stop on warning
140 CFLAGS="$CFLAGS -Werror"
141
Igor Sysoev3646a162004-03-14 20:46:25 +0000142 # debug
143 CFLAGS="$CFLAGS -g"
144
Igor Sysoev8ae18a12004-02-18 15:45:21 +0000145 have=HAVE_C99_VARIADIC_MACROS . auto/have
Igor Sysoev865c1502003-11-30 20:03:18 +0000146
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000147 LINK="\$(CC)"
148
Igor Sysoev11dbe972004-03-29 17:43:58 +0000149 INCOPT="-I "
150 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000151 OBJOUT="-o "
152 BINOUT="-o "
Igor Sysoev11dbe972004-03-29 17:43:58 +0000153 OBJEXT="o"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000154
155 CC_STRONG="$CC -w1 -Werror"
156 ;;
157
158
159 cl)
160 # MSVC 6.0 SP2
161
162 # optimization
163
164 # maximize speed
165 CFLAGS="$CFLAGS -O2"
166 # enable global optimization
167 CFLAGS="$CFLAGS -Og"
168 # enable intrinsic functions
169 CFLAGS="$CFLAGS -Oi"
170 # inline expansion
171 CFLAGS="$CFLAGS -Ob1"
172 # enable frame pointer omission
173 CFLAGS="$CFLAGS -Oy"
174 # disable stack checking calls
175 CFLAGS="$CFLAGS -Gs"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000176
Igor Sysoev7b908342004-03-10 20:56:39 +0000177 case $CPU in
Igor Sysoev11dbe972004-03-29 17:43:58 +0000178 pentium)
Igor Sysoev67f88e92004-03-12 16:57:08 +0000179 # optimize for Pentium and Athlon
180 CPU_OPT="-G5"
181 ;;
182
183 pentiumpro)
Igor Sysoev24b56c92004-03-10 17:55:19 +0000184 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +0000185 CPU_OPT="-G6"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000186 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +0000187
Igor Sysoev24b56c92004-03-10 17:55:19 +0000188 pentium4)
189 # optimize for Pentium 4
Igor Sysoev7b908342004-03-10 20:56:39 +0000190 #CPU_OPT="-G7"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000191 ;;
192 esac
193
Igor Sysoev7b908342004-03-10 20:56:39 +0000194 CFLAGS="$CFLAGS $CPU_OPT"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000195
196 # warnings
Igor Sysoev10a543a2004-03-16 07:10:12 +0000197 #CFLAGS="$CFLAGS -W3"
198 CFLAGS="$CFLAGS -W4"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000199
200 # stop on warning
201 CFLAGS="$CFLAGS -WX"
202
Igor Sysoeva893eab2004-03-11 21:34:52 +0000203 # link with libcmt.lib, multithreaded
204 #LIBC="-MT"
205 # link with msvcrt.dll
206 LIBC="-MD"
207
208 CFLAGS="$CFLAGS $LIBC"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000209
210 # disable logo
211 CFLAGS="$CFLAGS -nologo"
212
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000213 LINK="\$(CC)"
214
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000215 # link flags
Igor Sysoeva893eab2004-03-11 21:34:52 +0000216 CORE_LINK="$CORE_LINK -link -verbose:lib"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000217
218 # debug
219 CFLAGS="$CFLAGS -Yd"
220 CORE_LINK="$CORE_LINK -debug -debugtype:coff"
221
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000222 # precompiled headers
223 CORE_DEPS="$CORE_DEPS ngx_config.pch"
224 PCH="ngx_config.pch"
225 BUILDPCH="-Ycngx_config.h"
226 USEPCH="-Yungx_config.h"
227
Igor Sysoev11dbe972004-03-29 17:43:58 +0000228 INCOPT="-I "
229 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000230 OBJOUT="-Fo"
231 BINOUT="-Fe"
Igor Sysoev11dbe972004-03-29 17:43:58 +0000232 OBJEXT="obj"
233 BINEXT=".exe"
234 #DIRSEP='\\'
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000235 ;;
236
Igor Sysoev6a930452004-03-04 16:34:23 +0000237
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000238 wcl386)
Igor Sysoev6a930452004-03-04 16:34:23 +0000239 # Open Watcom 1.0
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000240
241 # optimization
242
243 # maximize speed
244 CFLAGS="$CFLAGS -ot"
245 # reorder instructions for best pipeline usage
246 CFLAGS="$CFLAGS -op"
247 # inline intrinsic functions
248 CFLAGS="$CFLAGS -oi"
249 # inline expansion
250 CFLAGS="$CFLAGS -oe"
251 # disable stack checking calls
252 CFLAGS="$CFLAGS -s"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000253
Igor Sysoev7b908342004-03-10 20:56:39 +0000254 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +0000255 pentium)
256 # optimize for Pentium and Athlon
257 # register-based arguments passing conventions
258 CPU_OPT="-5r"
259 # stack-based arguments passing conventions
260 #CPU_OPT="-5s"
261 ;;
262
Igor Sysoev24b56c92004-03-10 17:55:19 +0000263 pentiumpro)
264 # optimize for Pentium Pro, Pentium II and Pentium III
265 # register-based arguments passing conventions
Igor Sysoev7b908342004-03-10 20:56:39 +0000266 CPU_OPT="-6r"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000267 # stack-based arguments passing conventions
Igor Sysoev7b908342004-03-10 20:56:39 +0000268 #CPU_OPT="-6s"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000269 ;;
270 esac
271
Igor Sysoev7b908342004-03-10 20:56:39 +0000272 CFLAGS="$CFLAGS $CPU_OPT"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000273
274 # warnings
275 #CFLAGS="$CFLAGS -w3"
276 CFLAGS="$CFLAGS -wx"
277
278 # stop on warning
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000279 CFLAGS="$CFLAGS -we"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000280
281 # built target is NT
282 CFLAGS="$CFLAGS -bt=nt"
283
284 # multithreaded
285 CFLAGS="$CFLAGS -bm"
286
287 # debug
288 CFLAGS="$CFLAGS -d2"
289
290 # quiet
291 CFLAGS="$CFLAGS -zq"
292
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000293 # precompiled headers
294 CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.pch"
295 PCH="$OBJS\\ngx_config.pch"
296 BUILDPCH="-fhq=$OBJS\\ngx_config.pch"
297 USEPCH="-fh=$OBJS\\ngx_config.pch"
298
299 LINK="\$(CC)"
300
301 # link flags
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000302 CORE_LINK="$CORE_LINK -l=nt"
303
Igor Sysoev11dbe972004-03-29 17:43:58 +0000304 INCOPT="-i="
305 COMPOPT="-c"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000306 OBJOUT="-fo"
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000307 BINOUT="-fe="
Igor Sysoev11dbe972004-03-29 17:43:58 +0000308 OBJEXT="obj"
309 BINEXT=".exe"
310 DIRSEP='\\'
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000311
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000312 MAKE_SL=YES
Igor Sysoev6a930452004-03-04 16:34:23 +0000313 ;;
314
Igor Sysoev11dbe972004-03-29 17:43:58 +0000315
316 bcc32)
317 # Borland C++ 5.5
318
319 # optimization
320
321 # maximize speed
322 CFLAGS="$CFLAGS -O2"
323
324 case $CPU in
325 pentium)
326 # optimize for Pentium and Athlon
327 CPU_OPT="-5"
328 ;;
329
330 pentiumpro)
331 # optimize for Pentium Pro, Pentium II and Pentium III
332 CPU_OPT="-6"
333 ;;
334 esac
335
336 CFLAGS="$CFLAGS $CPU_OPT"
337
338 # multithreaded
339 CFLAGS="$CFLAGS -tWM"
340
341 # stop on warning
342 CFLAGS="$CFLAGS -w!"
343
344 # disable logo
345 CFLAGS="$CFLAGS -q"
346
347 # precompiled headers
348 CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.csm"
349 PCH="$OBJS\\ngx_config.csm"
350 BUILDPCH="-H=$OBJS\\ngx_config.csm"
351 USEPCH="-Hu -H=$OBJS\\ngx_config.csm"
352
353 LINK="\$(CC)"
354
355 INCOPT="-I"
356 COMPOPT="-c"
357 OBJOUT="-o"
358 BINOUT="-e"
359 OBJEXT="obj"
360 BINEXT=".exe"
361 DIRSEP='\\'
362 ;;
363
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000364esac