blob: 68159b5055cd04d632f392729ad5089600587f1e [file] [log] [blame]
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00001
Igor Sysoevb3968b32004-04-14 17:44:28 +00002CFLAGS="$CFLAGS $CC_OPT"
3
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00004case $CC in
5
Igor Sysoev32769a72004-03-25 20:03:02 +00006 *gcc*)
Igor Sysoev6e1bbd72004-06-04 14:57:33 +00007 # gcc 2.7.2.3, 2.8.1, 2.95.4,
Igor Sysoev0ab91b92004-06-06 19:49:18 +00008 # 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00009
Igor Sysoevb14169a2004-06-21 19:22:53 +000010 # optimizations
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000011 #CFLAGS="$CFLAGS -O2 -fomit-frame-pointer"
Igor Sysoev24b56c92004-03-10 17:55:19 +000012
Igor Sysoev7b908342004-03-10 20:56:39 +000013 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +000014 pentium)
15 # optimize for Pentium and Athlon
16 CPU_OPT="-march=pentium"
17 ;;
18
Igor Sysoev24b56c92004-03-10 17:55:19 +000019 pentiumpro)
20 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +000021 CPU_OPT="-march=pentiumpro"
Igor Sysoev24b56c92004-03-10 17:55:19 +000022 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +000023
Igor Sysoev24b56c92004-03-10 17:55:19 +000024 pentium4)
25 # optimize for Pentium 4, gcc 3.x
Igor Sysoev7b908342004-03-10 20:56:39 +000026 CPU_OPT="-march=pentium4"
Igor Sysoev24b56c92004-03-10 17:55:19 +000027 ;;
28 esac
29
Igor Sysoev205dc142004-04-01 06:21:13 +000030 # STUB for batch builds
31 if [ $CC = gcc27 ]; then CPU_OPT=; fi
32
Igor Sysoev32769a72004-03-25 20:03:02 +000033 CFLAGS="$CFLAGS $PIPE $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +000034
Igor Sysoeva893eab2004-03-11 21:34:52 +000035 if [ ".$PCRE_OPT" = "." ]; then
36 PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
37 else
38 PCRE_OPT="$PCRE_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000039 fi
40
Igor Sysoeva893eab2004-03-11 21:34:52 +000041 if [ ".$MD5_OPT" = "." ]; then
42 MD5_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
43 else
44 MD5_OPT="$MD5_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000045 fi
46
Igor Sysoeva893eab2004-03-11 21:34:52 +000047 if [ ".$ZLIB_OPT" = "." ]; then
48 ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
49 else
50 ZLIB_OPT="$ZLIB_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000051 fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000052
53 # warnings
54 CFLAGS="$CFLAGS -O -W"
55 CFLAGS="$CFLAGS -Wall -Wpointer-arith"
56 #CFLAGS="$CFLAGS -Wconversion"
57 #CFLAGS="$CFLAGS -Winline"
58
59 # we have a lot of the unused function arguments
60 CFLAGS="$CFLAGS -Wno-unused"
61
62 # stop on warning
63 CFLAGS="$CFLAGS -Werror"
64
65 # ANSI C warnings
66 #CFLAGS="$CFLAGS -pedantic"
67
68 # debug
69 CFLAGS="$CFLAGS -g"
70
Igor Sysoev6881bfb2004-03-30 06:27:36 +000071 # DragonFly's gcc3 generates DWARF
72 #CFLAGS="$CFLAGS -g -gstabs"
Igor Sysoev11dbe972004-03-29 17:43:58 +000073
Igor Sysoev8ae18a12004-02-18 15:45:21 +000074 have=HAVE_GCC_VARIADIC_MACROS . auto/have
Igor Sysoev865c1502003-11-30 20:03:18 +000075
Igor Sysoeva893eab2004-03-11 21:34:52 +000076 if [ ".$CPP" = "." ]; then
77 CPP="$CC -E"
78 fi
79
Igor Sysoevfc5a10a2004-03-09 19:47:07 +000080 LINK="\$(CC)"
81
Igor Sysoev11dbe972004-03-29 17:43:58 +000082 INCOPT="-I "
83 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000084 OBJOUT="-o "
85 BINOUT="-o "
Igor Sysoev11dbe972004-03-29 17:43:58 +000086 OBJEXT="o"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000087
88 CC_STRONG="$CC -Wall -Werror"
89 ;;
90
91
92 *icc)
Igor Sysoev6e1bbd72004-06-04 14:57:33 +000093 # Intel C++ compiler 7.1, 8.0
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000094
Igor Sysoevb14169a2004-06-21 19:22:53 +000095 # optimizations
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000096 CFLAGS="$CFLAGS -O"
Igor Sysoev7b908342004-03-10 20:56:39 +000097 # inline functions declared with __inline
Igor Sysoev3646a162004-03-14 20:46:25 +000098 #CFLAGS="$CFLAGS -Ob1"
Igor Sysoev7b908342004-03-10 20:56:39 +000099 # inline any function, at the compiler's discretion
Igor Sysoev3646a162004-03-14 20:46:25 +0000100 CFLAGS="$CFLAGS -Ob2"
101
102 # single-file IP optimizations
103 #IPO="-ip"
104 # multi-file IP optimizations
105 IPO="-ipo -ipo_obj"
106 CFLAGS="$CFLAGS $IPO"
107 CORE_LINK="$CORE_LINK $IPO"
108 CORE_LINK="$CORE_LINK -opt_report_file=$OBJS/opt_report_file"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000109
Igor Sysoev7b908342004-03-10 20:56:39 +0000110 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +0000111 pentium)
112 # optimize for Pentium and Athlon
113 CPU_OPT="-march=pentium"
114 ;;
115
Igor Sysoev24b56c92004-03-10 17:55:19 +0000116 pentiumpro)
117 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +0000118 CPU_OPT="-mcpu=pentiumpro -march=pentiumpro"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000119 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +0000120
Igor Sysoev24b56c92004-03-10 17:55:19 +0000121 pentium4)
122 # optimize for Pentium 4, default
Igor Sysoev7b908342004-03-10 20:56:39 +0000123 CPU_OPT="-march=pentium4"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000124 ;;
125 esac
126
Igor Sysoev7b908342004-03-10 20:56:39 +0000127 CFLAGS="$CFLAGS $CPU_OPT"
128
Igor Sysoeva893eab2004-03-11 21:34:52 +0000129 if [ ".$PCRE_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000130 PCRE_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000131 fi
132
Igor Sysoeva893eab2004-03-11 21:34:52 +0000133 if [ ".$MD5_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000134 MD5_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000135 fi
136
Igor Sysoeva893eab2004-03-11 21:34:52 +0000137 if [ ".$ZLIB_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000138 ZLIB_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000139 fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000140
141 # warnings
142 CFLAGS="$CFLAGS -w1"
Igor Sysoev10a543a2004-03-16 07:10:12 +0000143 #CFLAGS="$CFLAGS -w2"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000144
145 # stop on warning
146 CFLAGS="$CFLAGS -Werror"
147
Igor Sysoev3646a162004-03-14 20:46:25 +0000148 # debug
149 CFLAGS="$CFLAGS -g"
150
Igor Sysoev8ae18a12004-02-18 15:45:21 +0000151 have=HAVE_C99_VARIADIC_MACROS . auto/have
Igor Sysoev865c1502003-11-30 20:03:18 +0000152
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000153 LINK="\$(CC)"
154
Igor Sysoev11dbe972004-03-29 17:43:58 +0000155 INCOPT="-I "
156 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000157 OBJOUT="-o "
158 BINOUT="-o "
Igor Sysoev11dbe972004-03-29 17:43:58 +0000159 OBJEXT="o"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000160
161 CC_STRONG="$CC -w1 -Werror"
162 ;;
163
164
165 cl)
166 # MSVC 6.0 SP2
167
Igor Sysoevb14169a2004-06-21 19:22:53 +0000168 # optimizations
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000169
170 # maximize speed
171 CFLAGS="$CFLAGS -O2"
172 # enable global optimization
173 CFLAGS="$CFLAGS -Og"
174 # enable intrinsic functions
175 CFLAGS="$CFLAGS -Oi"
176 # inline expansion
177 CFLAGS="$CFLAGS -Ob1"
178 # enable frame pointer omission
179 CFLAGS="$CFLAGS -Oy"
180 # disable stack checking calls
181 CFLAGS="$CFLAGS -Gs"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000182
Igor Sysoev7b908342004-03-10 20:56:39 +0000183 case $CPU in
Igor Sysoev11dbe972004-03-29 17:43:58 +0000184 pentium)
Igor Sysoev67f88e92004-03-12 16:57:08 +0000185 # optimize for Pentium and Athlon
186 CPU_OPT="-G5"
187 ;;
188
189 pentiumpro)
Igor Sysoev24b56c92004-03-10 17:55:19 +0000190 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +0000191 CPU_OPT="-G6"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000192 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +0000193
Igor Sysoev24b56c92004-03-10 17:55:19 +0000194 pentium4)
195 # optimize for Pentium 4
Igor Sysoev7b908342004-03-10 20:56:39 +0000196 #CPU_OPT="-G7"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000197 ;;
198 esac
199
Igor Sysoev7b908342004-03-10 20:56:39 +0000200 CFLAGS="$CFLAGS $CPU_OPT"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000201
202 # warnings
Igor Sysoev10a543a2004-03-16 07:10:12 +0000203 #CFLAGS="$CFLAGS -W3"
204 CFLAGS="$CFLAGS -W4"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000205
206 # stop on warning
207 CFLAGS="$CFLAGS -WX"
208
Igor Sysoeva893eab2004-03-11 21:34:52 +0000209 # link with libcmt.lib, multithreaded
210 #LIBC="-MT"
211 # link with msvcrt.dll
212 LIBC="-MD"
213
214 CFLAGS="$CFLAGS $LIBC"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000215
216 # disable logo
217 CFLAGS="$CFLAGS -nologo"
218
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000219 LINK="\$(CC)"
220
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000221 # link flags
Igor Sysoeva893eab2004-03-11 21:34:52 +0000222 CORE_LINK="$CORE_LINK -link -verbose:lib"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000223
224 # debug
225 CFLAGS="$CFLAGS -Yd"
226 CORE_LINK="$CORE_LINK -debug -debugtype:coff"
227
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000228 # precompiled headers
229 CORE_DEPS="$CORE_DEPS ngx_config.pch"
230 PCH="ngx_config.pch"
231 BUILDPCH="-Ycngx_config.h"
232 USEPCH="-Yungx_config.h"
233
Igor Sysoev11dbe972004-03-29 17:43:58 +0000234 INCOPT="-I "
235 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000236 OBJOUT="-Fo"
237 BINOUT="-Fe"
Igor Sysoev11dbe972004-03-29 17:43:58 +0000238 OBJEXT="obj"
239 BINEXT=".exe"
240 #DIRSEP='\\'
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000241 ;;
242
Igor Sysoev6a930452004-03-04 16:34:23 +0000243
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000244 wcl386)
Igor Sysoev6e1bbd72004-06-04 14:57:33 +0000245 # Open Watcom C 1.0, 1.2
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000246
Igor Sysoevb14169a2004-06-21 19:22:53 +0000247 # optimizations
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000248
249 # maximize speed
250 CFLAGS="$CFLAGS -ot"
251 # reorder instructions for best pipeline usage
252 CFLAGS="$CFLAGS -op"
253 # inline intrinsic functions
254 CFLAGS="$CFLAGS -oi"
255 # inline expansion
256 CFLAGS="$CFLAGS -oe"
257 # disable stack checking calls
258 CFLAGS="$CFLAGS -s"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000259
Igor Sysoev7b908342004-03-10 20:56:39 +0000260 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +0000261 pentium)
262 # optimize for Pentium and Athlon
263 # register-based arguments passing conventions
264 CPU_OPT="-5r"
265 # stack-based arguments passing conventions
266 #CPU_OPT="-5s"
267 ;;
268
Igor Sysoev24b56c92004-03-10 17:55:19 +0000269 pentiumpro)
270 # optimize for Pentium Pro, Pentium II and Pentium III
271 # register-based arguments passing conventions
Igor Sysoev7b908342004-03-10 20:56:39 +0000272 CPU_OPT="-6r"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000273 # stack-based arguments passing conventions
Igor Sysoev7b908342004-03-10 20:56:39 +0000274 #CPU_OPT="-6s"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000275 ;;
276 esac
277
Igor Sysoev7b908342004-03-10 20:56:39 +0000278 CFLAGS="$CFLAGS $CPU_OPT"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000279
280 # warnings
281 #CFLAGS="$CFLAGS -w3"
282 CFLAGS="$CFLAGS -wx"
283
284 # stop on warning
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000285 CFLAGS="$CFLAGS -we"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000286
287 # built target is NT
288 CFLAGS="$CFLAGS -bt=nt"
289
290 # multithreaded
291 CFLAGS="$CFLAGS -bm"
292
293 # debug
294 CFLAGS="$CFLAGS -d2"
295
296 # quiet
297 CFLAGS="$CFLAGS -zq"
298
Igor Sysoev11688f82004-05-10 19:53:35 +0000299 # Open Watcom C 1.2
Igor Sysoev369145c2004-05-28 15:49:23 +0000300 #have=HAVE_C99_VARIADIC_MACROS . auto/have
Igor Sysoev11688f82004-05-10 19:53:35 +0000301
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000302 # precompiled headers
303 CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.pch"
304 PCH="$OBJS\\ngx_config.pch"
305 BUILDPCH="-fhq=$OBJS\\ngx_config.pch"
306 USEPCH="-fh=$OBJS\\ngx_config.pch"
307
308 LINK="\$(CC)"
309
310 # link flags
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000311 CORE_LINK="$CORE_LINK -l=nt"
312
Igor Sysoev11dbe972004-03-29 17:43:58 +0000313 INCOPT="-i="
314 COMPOPT="-c"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000315 OBJOUT="-fo"
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000316 BINOUT="-fe="
Igor Sysoev11dbe972004-03-29 17:43:58 +0000317 OBJEXT="obj"
318 BINEXT=".exe"
319 DIRSEP='\\'
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000320
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000321 MAKE_SL=YES
Igor Sysoev6a930452004-03-04 16:34:23 +0000322 ;;
323
Igor Sysoev11dbe972004-03-29 17:43:58 +0000324
325 bcc32)
326 # Borland C++ 5.5
327
Igor Sysoevb14169a2004-06-21 19:22:53 +0000328 # optimizations
Igor Sysoev11dbe972004-03-29 17:43:58 +0000329
330 # maximize speed
331 CFLAGS="$CFLAGS -O2"
332
333 case $CPU in
334 pentium)
335 # optimize for Pentium and Athlon
336 CPU_OPT="-5"
337 ;;
338
339 pentiumpro)
340 # optimize for Pentium Pro, Pentium II and Pentium III
341 CPU_OPT="-6"
342 ;;
343 esac
344
345 CFLAGS="$CFLAGS $CPU_OPT"
346
347 # multithreaded
348 CFLAGS="$CFLAGS -tWM"
349
350 # stop on warning
351 CFLAGS="$CFLAGS -w!"
352
353 # disable logo
354 CFLAGS="$CFLAGS -q"
355
356 # precompiled headers
357 CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.csm"
358 PCH="$OBJS\\ngx_config.csm"
359 BUILDPCH="-H=$OBJS\\ngx_config.csm"
360 USEPCH="-Hu -H=$OBJS\\ngx_config.csm"
361
362 LINK="\$(CC)"
363
364 INCOPT="-I"
365 COMPOPT="-c"
366 OBJOUT="-o"
367 BINOUT="-e"
368 OBJEXT="obj"
369 BINEXT=".exe"
370 DIRSEP='\\'
371 ;;
372
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000373esac