blob: 9cee8c1619313ecb9f6bb73c021d62c8796e5624 [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 Sysoev3d540612004-04-13 15:08:48 +00007 # gcc 2.7.2.3, 2.8.1, 2.95.4, 3.3.2, 3.3.3, 3.4
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00008
9 # optimization
10 #CFLAGS="$CFLAGS -O2 -fomit-frame-pointer"
Igor Sysoev24b56c92004-03-10 17:55:19 +000011
Igor Sysoev7b908342004-03-10 20:56:39 +000012 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +000013 pentium)
14 # optimize for Pentium and Athlon
15 CPU_OPT="-march=pentium"
16 ;;
17
Igor Sysoev24b56c92004-03-10 17:55:19 +000018 pentiumpro)
19 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +000020 CPU_OPT="-march=pentiumpro"
Igor Sysoev24b56c92004-03-10 17:55:19 +000021 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +000022
Igor Sysoev24b56c92004-03-10 17:55:19 +000023 pentium4)
24 # optimize for Pentium 4, gcc 3.x
Igor Sysoev7b908342004-03-10 20:56:39 +000025 CPU_OPT="-march=pentium4"
Igor Sysoev24b56c92004-03-10 17:55:19 +000026 ;;
27 esac
28
Igor Sysoev205dc142004-04-01 06:21:13 +000029 # STUB for batch builds
30 if [ $CC = gcc27 ]; then CPU_OPT=; fi
31
Igor Sysoev32769a72004-03-25 20:03:02 +000032 CFLAGS="$CFLAGS $PIPE $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +000033
Igor Sysoeva893eab2004-03-11 21:34:52 +000034 if [ ".$PCRE_OPT" = "." ]; then
35 PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
36 else
37 PCRE_OPT="$PCRE_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000038 fi
39
Igor Sysoeva893eab2004-03-11 21:34:52 +000040 if [ ".$MD5_OPT" = "." ]; then
41 MD5_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
42 else
43 MD5_OPT="$MD5_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000044 fi
45
Igor Sysoeva893eab2004-03-11 21:34:52 +000046 if [ ".$ZLIB_OPT" = "." ]; then
47 ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
48 else
49 ZLIB_OPT="$ZLIB_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000050 fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000051
52 # warnings
53 CFLAGS="$CFLAGS -O -W"
54 CFLAGS="$CFLAGS -Wall -Wpointer-arith"
55 #CFLAGS="$CFLAGS -Wconversion"
56 #CFLAGS="$CFLAGS -Winline"
57
58 # we have a lot of the unused function arguments
59 CFLAGS="$CFLAGS -Wno-unused"
60
61 # stop on warning
62 CFLAGS="$CFLAGS -Werror"
63
64 # ANSI C warnings
65 #CFLAGS="$CFLAGS -pedantic"
66
67 # debug
68 CFLAGS="$CFLAGS -g"
69
Igor Sysoev6881bfb2004-03-30 06:27:36 +000070 # DragonFly's gcc3 generates DWARF
71 #CFLAGS="$CFLAGS -g -gstabs"
Igor Sysoev11dbe972004-03-29 17:43:58 +000072
Igor Sysoev8ae18a12004-02-18 15:45:21 +000073 have=HAVE_GCC_VARIADIC_MACROS . auto/have
Igor Sysoev865c1502003-11-30 20:03:18 +000074
Igor Sysoeva893eab2004-03-11 21:34:52 +000075 if [ ".$CPP" = "." ]; then
76 CPP="$CC -E"
77 fi
78
Igor Sysoevfc5a10a2004-03-09 19:47:07 +000079 LINK="\$(CC)"
80
Igor Sysoev11dbe972004-03-29 17:43:58 +000081 INCOPT="-I "
82 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000083 OBJOUT="-o "
84 BINOUT="-o "
Igor Sysoev11dbe972004-03-29 17:43:58 +000085 OBJEXT="o"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000086
87 CC_STRONG="$CC -Wall -Werror"
88 ;;
89
90
91 *icc)
92 # Intel C++ compiler 7.1
93
94 # optimization
95 CFLAGS="$CFLAGS -O"
Igor Sysoev7b908342004-03-10 20:56:39 +000096 # inline functions declared with __inline
Igor Sysoev3646a162004-03-14 20:46:25 +000097 #CFLAGS="$CFLAGS -Ob1"
Igor Sysoev7b908342004-03-10 20:56:39 +000098 # inline any function, at the compiler's discretion
Igor Sysoev3646a162004-03-14 20:46:25 +000099 CFLAGS="$CFLAGS -Ob2"
100
101 # single-file IP optimizations
102 #IPO="-ip"
103 # multi-file IP optimizations
104 IPO="-ipo -ipo_obj"
105 CFLAGS="$CFLAGS $IPO"
106 CORE_LINK="$CORE_LINK $IPO"
107 CORE_LINK="$CORE_LINK -opt_report_file=$OBJS/opt_report_file"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000108
Igor Sysoev7b908342004-03-10 20:56:39 +0000109 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +0000110 pentium)
111 # optimize for Pentium and Athlon
112 CPU_OPT="-march=pentium"
113 ;;
114
Igor Sysoev24b56c92004-03-10 17:55:19 +0000115 pentiumpro)
116 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +0000117 CPU_OPT="-mcpu=pentiumpro -march=pentiumpro"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000118 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +0000119
Igor Sysoev24b56c92004-03-10 17:55:19 +0000120 pentium4)
121 # optimize for Pentium 4, default
Igor Sysoev7b908342004-03-10 20:56:39 +0000122 CPU_OPT="-march=pentium4"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000123 ;;
124 esac
125
Igor Sysoev7b908342004-03-10 20:56:39 +0000126 CFLAGS="$CFLAGS $CPU_OPT"
127
Igor Sysoeva893eab2004-03-11 21:34:52 +0000128 if [ ".$PCRE_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000129 PCRE_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000130 fi
131
Igor Sysoeva893eab2004-03-11 21:34:52 +0000132 if [ ".$MD5_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000133 MD5_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000134 fi
135
Igor Sysoeva893eab2004-03-11 21:34:52 +0000136 if [ ".$ZLIB_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000137 ZLIB_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000138 fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000139
140 # warnings
141 CFLAGS="$CFLAGS -w1"
Igor Sysoev10a543a2004-03-16 07:10:12 +0000142 #CFLAGS="$CFLAGS -w2"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000143
144 # stop on warning
145 CFLAGS="$CFLAGS -Werror"
146
Igor Sysoev3646a162004-03-14 20:46:25 +0000147 # debug
148 CFLAGS="$CFLAGS -g"
149
Igor Sysoev8ae18a12004-02-18 15:45:21 +0000150 have=HAVE_C99_VARIADIC_MACROS . auto/have
Igor Sysoev865c1502003-11-30 20:03:18 +0000151
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000152 LINK="\$(CC)"
153
Igor Sysoev11dbe972004-03-29 17:43:58 +0000154 INCOPT="-I "
155 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000156 OBJOUT="-o "
157 BINOUT="-o "
Igor Sysoev11dbe972004-03-29 17:43:58 +0000158 OBJEXT="o"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000159
160 CC_STRONG="$CC -w1 -Werror"
161 ;;
162
163
164 cl)
165 # MSVC 6.0 SP2
166
167 # optimization
168
169 # maximize speed
170 CFLAGS="$CFLAGS -O2"
171 # enable global optimization
172 CFLAGS="$CFLAGS -Og"
173 # enable intrinsic functions
174 CFLAGS="$CFLAGS -Oi"
175 # inline expansion
176 CFLAGS="$CFLAGS -Ob1"
177 # enable frame pointer omission
178 CFLAGS="$CFLAGS -Oy"
179 # disable stack checking calls
180 CFLAGS="$CFLAGS -Gs"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000181
Igor Sysoev7b908342004-03-10 20:56:39 +0000182 case $CPU in
Igor Sysoev11dbe972004-03-29 17:43:58 +0000183 pentium)
Igor Sysoev67f88e92004-03-12 16:57:08 +0000184 # optimize for Pentium and Athlon
185 CPU_OPT="-G5"
186 ;;
187
188 pentiumpro)
Igor Sysoev24b56c92004-03-10 17:55:19 +0000189 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +0000190 CPU_OPT="-G6"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000191 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +0000192
Igor Sysoev24b56c92004-03-10 17:55:19 +0000193 pentium4)
194 # optimize for Pentium 4
Igor Sysoev7b908342004-03-10 20:56:39 +0000195 #CPU_OPT="-G7"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000196 ;;
197 esac
198
Igor Sysoev7b908342004-03-10 20:56:39 +0000199 CFLAGS="$CFLAGS $CPU_OPT"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000200
201 # warnings
Igor Sysoev10a543a2004-03-16 07:10:12 +0000202 #CFLAGS="$CFLAGS -W3"
203 CFLAGS="$CFLAGS -W4"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000204
205 # stop on warning
206 CFLAGS="$CFLAGS -WX"
207
Igor Sysoeva893eab2004-03-11 21:34:52 +0000208 # link with libcmt.lib, multithreaded
209 #LIBC="-MT"
210 # link with msvcrt.dll
211 LIBC="-MD"
212
213 CFLAGS="$CFLAGS $LIBC"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000214
215 # disable logo
216 CFLAGS="$CFLAGS -nologo"
217
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000218 LINK="\$(CC)"
219
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000220 # link flags
Igor Sysoeva893eab2004-03-11 21:34:52 +0000221 CORE_LINK="$CORE_LINK -link -verbose:lib"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000222
223 # debug
224 CFLAGS="$CFLAGS -Yd"
225 CORE_LINK="$CORE_LINK -debug -debugtype:coff"
226
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000227 # precompiled headers
228 CORE_DEPS="$CORE_DEPS ngx_config.pch"
229 PCH="ngx_config.pch"
230 BUILDPCH="-Ycngx_config.h"
231 USEPCH="-Yungx_config.h"
232
Igor Sysoev11dbe972004-03-29 17:43:58 +0000233 INCOPT="-I "
234 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000235 OBJOUT="-Fo"
236 BINOUT="-Fe"
Igor Sysoev11dbe972004-03-29 17:43:58 +0000237 OBJEXT="obj"
238 BINEXT=".exe"
239 #DIRSEP='\\'
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000240 ;;
241
Igor Sysoev6a930452004-03-04 16:34:23 +0000242
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000243 wcl386)
Igor Sysoev11688f82004-05-10 19:53:35 +0000244 # Open Watcom C 1.0
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000245
246 # optimization
247
248 # maximize speed
249 CFLAGS="$CFLAGS -ot"
250 # reorder instructions for best pipeline usage
251 CFLAGS="$CFLAGS -op"
252 # inline intrinsic functions
253 CFLAGS="$CFLAGS -oi"
254 # inline expansion
255 CFLAGS="$CFLAGS -oe"
256 # disable stack checking calls
257 CFLAGS="$CFLAGS -s"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000258
Igor Sysoev7b908342004-03-10 20:56:39 +0000259 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +0000260 pentium)
261 # optimize for Pentium and Athlon
262 # register-based arguments passing conventions
263 CPU_OPT="-5r"
264 # stack-based arguments passing conventions
265 #CPU_OPT="-5s"
266 ;;
267
Igor Sysoev24b56c92004-03-10 17:55:19 +0000268 pentiumpro)
269 # optimize for Pentium Pro, Pentium II and Pentium III
270 # register-based arguments passing conventions
Igor Sysoev7b908342004-03-10 20:56:39 +0000271 CPU_OPT="-6r"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000272 # stack-based arguments passing conventions
Igor Sysoev7b908342004-03-10 20:56:39 +0000273 #CPU_OPT="-6s"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000274 ;;
275 esac
276
Igor Sysoev7b908342004-03-10 20:56:39 +0000277 CFLAGS="$CFLAGS $CPU_OPT"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000278
279 # warnings
280 #CFLAGS="$CFLAGS -w3"
281 CFLAGS="$CFLAGS -wx"
282
283 # stop on warning
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000284 CFLAGS="$CFLAGS -we"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000285
286 # built target is NT
287 CFLAGS="$CFLAGS -bt=nt"
288
289 # multithreaded
290 CFLAGS="$CFLAGS -bm"
291
292 # debug
293 CFLAGS="$CFLAGS -d2"
294
295 # quiet
296 CFLAGS="$CFLAGS -zq"
297
Igor Sysoev11688f82004-05-10 19:53:35 +0000298 # Open Watcom C 1.2
Igor Sysoev369145c2004-05-28 15:49:23 +0000299 #have=HAVE_C99_VARIADIC_MACROS . auto/have
Igor Sysoev11688f82004-05-10 19:53:35 +0000300
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000301 # precompiled headers
302 CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.pch"
303 PCH="$OBJS\\ngx_config.pch"
304 BUILDPCH="-fhq=$OBJS\\ngx_config.pch"
305 USEPCH="-fh=$OBJS\\ngx_config.pch"
306
307 LINK="\$(CC)"
308
309 # link flags
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000310 CORE_LINK="$CORE_LINK -l=nt"
311
Igor Sysoev11dbe972004-03-29 17:43:58 +0000312 INCOPT="-i="
313 COMPOPT="-c"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000314 OBJOUT="-fo"
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000315 BINOUT="-fe="
Igor Sysoev11dbe972004-03-29 17:43:58 +0000316 OBJEXT="obj"
317 BINEXT=".exe"
318 DIRSEP='\\'
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000319
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000320 MAKE_SL=YES
Igor Sysoev6a930452004-03-04 16:34:23 +0000321 ;;
322
Igor Sysoev11dbe972004-03-29 17:43:58 +0000323
324 bcc32)
325 # Borland C++ 5.5
326
327 # optimization
328
329 # maximize speed
330 CFLAGS="$CFLAGS -O2"
331
332 case $CPU in
333 pentium)
334 # optimize for Pentium and Athlon
335 CPU_OPT="-5"
336 ;;
337
338 pentiumpro)
339 # optimize for Pentium Pro, Pentium II and Pentium III
340 CPU_OPT="-6"
341 ;;
342 esac
343
344 CFLAGS="$CFLAGS $CPU_OPT"
345
346 # multithreaded
347 CFLAGS="$CFLAGS -tWM"
348
349 # stop on warning
350 CFLAGS="$CFLAGS -w!"
351
352 # disable logo
353 CFLAGS="$CFLAGS -q"
354
355 # precompiled headers
356 CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.csm"
357 PCH="$OBJS\\ngx_config.csm"
358 BUILDPCH="-H=$OBJS\\ngx_config.csm"
359 USEPCH="-Hu -H=$OBJS\\ngx_config.csm"
360
361 LINK="\$(CC)"
362
363 INCOPT="-I"
364 COMPOPT="-c"
365 OBJOUT="-o"
366 BINOUT="-e"
367 OBJEXT="obj"
368 BINEXT=".exe"
369 DIRSEP='\\'
370 ;;
371
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000372esac