blob: 7f0010201286269ad22933d29ebcb9c2d15ed46f [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 Sysoev9a864bd2004-04-04 20:32:09 +00005 # gcc 2.7.2.3, 2.95.4, 3.3.2, 3.4
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 Sysoev205dc142004-04-01 06:21:13 +000027 # STUB for batch builds
28 if [ $CC = gcc27 ]; then CPU_OPT=; fi
29
Igor Sysoev32769a72004-03-25 20:03:02 +000030 CFLAGS="$CFLAGS $PIPE $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +000031
Igor Sysoeva893eab2004-03-11 21:34:52 +000032 if [ ".$PCRE_OPT" = "." ]; then
33 PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
34 else
35 PCRE_OPT="$PCRE_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000036 fi
37
Igor Sysoeva893eab2004-03-11 21:34:52 +000038 if [ ".$MD5_OPT" = "." ]; then
39 MD5_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
40 else
41 MD5_OPT="$MD5_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000042 fi
43
Igor Sysoeva893eab2004-03-11 21:34:52 +000044 if [ ".$ZLIB_OPT" = "." ]; then
45 ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
46 else
47 ZLIB_OPT="$ZLIB_OPT $PIPE"
Igor Sysoev7b908342004-03-10 20:56:39 +000048 fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000049
50 # warnings
51 CFLAGS="$CFLAGS -O -W"
52 CFLAGS="$CFLAGS -Wall -Wpointer-arith"
53 #CFLAGS="$CFLAGS -Wconversion"
54 #CFLAGS="$CFLAGS -Winline"
55
56 # we have a lot of the unused function arguments
57 CFLAGS="$CFLAGS -Wno-unused"
58
59 # stop on warning
60 CFLAGS="$CFLAGS -Werror"
61
62 # ANSI C warnings
63 #CFLAGS="$CFLAGS -pedantic"
64
65 # debug
66 CFLAGS="$CFLAGS -g"
67
Igor Sysoev6881bfb2004-03-30 06:27:36 +000068 # DragonFly's gcc3 generates DWARF
69 #CFLAGS="$CFLAGS -g -gstabs"
Igor Sysoev11dbe972004-03-29 17:43:58 +000070
Igor Sysoev8ae18a12004-02-18 15:45:21 +000071 have=HAVE_GCC_VARIADIC_MACROS . auto/have
Igor Sysoev865c1502003-11-30 20:03:18 +000072
Igor Sysoeva893eab2004-03-11 21:34:52 +000073 if [ ".$CPP" = "." ]; then
74 CPP="$CC -E"
75 fi
76
Igor Sysoevfc5a10a2004-03-09 19:47:07 +000077 LINK="\$(CC)"
78
Igor Sysoev11dbe972004-03-29 17:43:58 +000079 INCOPT="-I "
80 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000081 OBJOUT="-o "
82 BINOUT="-o "
Igor Sysoev11dbe972004-03-29 17:43:58 +000083 OBJEXT="o"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000084
85 CC_STRONG="$CC -Wall -Werror"
86 ;;
87
88
89 *icc)
90 # Intel C++ compiler 7.1
91
92 # optimization
93 CFLAGS="$CFLAGS -O"
Igor Sysoev7b908342004-03-10 20:56:39 +000094 # inline functions declared with __inline
Igor Sysoev3646a162004-03-14 20:46:25 +000095 #CFLAGS="$CFLAGS -Ob1"
Igor Sysoev7b908342004-03-10 20:56:39 +000096 # inline any function, at the compiler's discretion
Igor Sysoev3646a162004-03-14 20:46:25 +000097 CFLAGS="$CFLAGS -Ob2"
98
99 # single-file IP optimizations
100 #IPO="-ip"
101 # multi-file IP optimizations
102 IPO="-ipo -ipo_obj"
103 CFLAGS="$CFLAGS $IPO"
104 CORE_LINK="$CORE_LINK $IPO"
105 CORE_LINK="$CORE_LINK -opt_report_file=$OBJS/opt_report_file"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000106
Igor Sysoev7b908342004-03-10 20:56:39 +0000107 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +0000108 pentium)
109 # optimize for Pentium and Athlon
110 CPU_OPT="-march=pentium"
111 ;;
112
Igor Sysoev24b56c92004-03-10 17:55:19 +0000113 pentiumpro)
114 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +0000115 CPU_OPT="-mcpu=pentiumpro -march=pentiumpro"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000116 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +0000117
Igor Sysoev24b56c92004-03-10 17:55:19 +0000118 pentium4)
119 # optimize for Pentium 4, default
Igor Sysoev7b908342004-03-10 20:56:39 +0000120 CPU_OPT="-march=pentium4"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000121 ;;
122 esac
123
Igor Sysoev7b908342004-03-10 20:56:39 +0000124 CFLAGS="$CFLAGS $CPU_OPT"
125
Igor Sysoeva893eab2004-03-11 21:34:52 +0000126 if [ ".$PCRE_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000127 PCRE_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000128 fi
129
Igor Sysoeva893eab2004-03-11 21:34:52 +0000130 if [ ".$MD5_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000131 MD5_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000132 fi
133
Igor Sysoeva893eab2004-03-11 21:34:52 +0000134 if [ ".$ZLIB_OPT" = "." ]; then
Igor Sysoev3646a162004-03-14 20:46:25 +0000135 ZLIB_OPT="-O $IPO $CPU_OPT"
Igor Sysoev7b908342004-03-10 20:56:39 +0000136 fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000137
138 # warnings
139 CFLAGS="$CFLAGS -w1"
Igor Sysoev10a543a2004-03-16 07:10:12 +0000140 #CFLAGS="$CFLAGS -w2"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000141
142 # stop on warning
143 CFLAGS="$CFLAGS -Werror"
144
Igor Sysoev3646a162004-03-14 20:46:25 +0000145 # debug
146 CFLAGS="$CFLAGS -g"
147
Igor Sysoev8ae18a12004-02-18 15:45:21 +0000148 have=HAVE_C99_VARIADIC_MACROS . auto/have
Igor Sysoev865c1502003-11-30 20:03:18 +0000149
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000150 LINK="\$(CC)"
151
Igor Sysoev11dbe972004-03-29 17:43:58 +0000152 INCOPT="-I "
153 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000154 OBJOUT="-o "
155 BINOUT="-o "
Igor Sysoev11dbe972004-03-29 17:43:58 +0000156 OBJEXT="o"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000157
158 CC_STRONG="$CC -w1 -Werror"
159 ;;
160
161
162 cl)
163 # MSVC 6.0 SP2
164
165 # optimization
166
167 # maximize speed
168 CFLAGS="$CFLAGS -O2"
169 # enable global optimization
170 CFLAGS="$CFLAGS -Og"
171 # enable intrinsic functions
172 CFLAGS="$CFLAGS -Oi"
173 # inline expansion
174 CFLAGS="$CFLAGS -Ob1"
175 # enable frame pointer omission
176 CFLAGS="$CFLAGS -Oy"
177 # disable stack checking calls
178 CFLAGS="$CFLAGS -Gs"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000179
Igor Sysoev7b908342004-03-10 20:56:39 +0000180 case $CPU in
Igor Sysoev11dbe972004-03-29 17:43:58 +0000181 pentium)
Igor Sysoev67f88e92004-03-12 16:57:08 +0000182 # optimize for Pentium and Athlon
183 CPU_OPT="-G5"
184 ;;
185
186 pentiumpro)
Igor Sysoev24b56c92004-03-10 17:55:19 +0000187 # optimize for Pentium Pro, Pentium II and Pentium III
Igor Sysoev7b908342004-03-10 20:56:39 +0000188 CPU_OPT="-G6"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000189 ;;
Igor Sysoev67f88e92004-03-12 16:57:08 +0000190
Igor Sysoev24b56c92004-03-10 17:55:19 +0000191 pentium4)
192 # optimize for Pentium 4
Igor Sysoev7b908342004-03-10 20:56:39 +0000193 #CPU_OPT="-G7"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000194 ;;
195 esac
196
Igor Sysoev7b908342004-03-10 20:56:39 +0000197 CFLAGS="$CFLAGS $CPU_OPT"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000198
199 # warnings
Igor Sysoev10a543a2004-03-16 07:10:12 +0000200 #CFLAGS="$CFLAGS -W3"
201 CFLAGS="$CFLAGS -W4"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000202
203 # stop on warning
204 CFLAGS="$CFLAGS -WX"
205
Igor Sysoeva893eab2004-03-11 21:34:52 +0000206 # link with libcmt.lib, multithreaded
207 #LIBC="-MT"
208 # link with msvcrt.dll
209 LIBC="-MD"
210
211 CFLAGS="$CFLAGS $LIBC"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000212
213 # disable logo
214 CFLAGS="$CFLAGS -nologo"
215
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000216 LINK="\$(CC)"
217
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000218 # link flags
Igor Sysoeva893eab2004-03-11 21:34:52 +0000219 CORE_LINK="$CORE_LINK -link -verbose:lib"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000220
221 # debug
222 CFLAGS="$CFLAGS -Yd"
223 CORE_LINK="$CORE_LINK -debug -debugtype:coff"
224
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000225 # precompiled headers
226 CORE_DEPS="$CORE_DEPS ngx_config.pch"
227 PCH="ngx_config.pch"
228 BUILDPCH="-Ycngx_config.h"
229 USEPCH="-Yungx_config.h"
230
Igor Sysoev11dbe972004-03-29 17:43:58 +0000231 INCOPT="-I "
232 COMPOPT="-c"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000233 OBJOUT="-Fo"
234 BINOUT="-Fe"
Igor Sysoev11dbe972004-03-29 17:43:58 +0000235 OBJEXT="obj"
236 BINEXT=".exe"
237 #DIRSEP='\\'
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000238 ;;
239
Igor Sysoev6a930452004-03-04 16:34:23 +0000240
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000241 wcl386)
Igor Sysoev6a930452004-03-04 16:34:23 +0000242 # Open Watcom 1.0
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000243
244 # optimization
245
246 # maximize speed
247 CFLAGS="$CFLAGS -ot"
248 # reorder instructions for best pipeline usage
249 CFLAGS="$CFLAGS -op"
250 # inline intrinsic functions
251 CFLAGS="$CFLAGS -oi"
252 # inline expansion
253 CFLAGS="$CFLAGS -oe"
254 # disable stack checking calls
255 CFLAGS="$CFLAGS -s"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000256
Igor Sysoev7b908342004-03-10 20:56:39 +0000257 case $CPU in
Igor Sysoev67f88e92004-03-12 16:57:08 +0000258 pentium)
259 # optimize for Pentium and Athlon
260 # register-based arguments passing conventions
261 CPU_OPT="-5r"
262 # stack-based arguments passing conventions
263 #CPU_OPT="-5s"
264 ;;
265
Igor Sysoev24b56c92004-03-10 17:55:19 +0000266 pentiumpro)
267 # optimize for Pentium Pro, Pentium II and Pentium III
268 # register-based arguments passing conventions
Igor Sysoev7b908342004-03-10 20:56:39 +0000269 CPU_OPT="-6r"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000270 # stack-based arguments passing conventions
Igor Sysoev7b908342004-03-10 20:56:39 +0000271 #CPU_OPT="-6s"
Igor Sysoev24b56c92004-03-10 17:55:19 +0000272 ;;
273 esac
274
Igor Sysoev7b908342004-03-10 20:56:39 +0000275 CFLAGS="$CFLAGS $CPU_OPT"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000276
277 # warnings
278 #CFLAGS="$CFLAGS -w3"
279 CFLAGS="$CFLAGS -wx"
280
281 # stop on warning
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000282 CFLAGS="$CFLAGS -we"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000283
284 # built target is NT
285 CFLAGS="$CFLAGS -bt=nt"
286
287 # multithreaded
288 CFLAGS="$CFLAGS -bm"
289
290 # debug
291 CFLAGS="$CFLAGS -d2"
292
293 # quiet
294 CFLAGS="$CFLAGS -zq"
295
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000296 # precompiled headers
297 CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.pch"
298 PCH="$OBJS\\ngx_config.pch"
299 BUILDPCH="-fhq=$OBJS\\ngx_config.pch"
300 USEPCH="-fh=$OBJS\\ngx_config.pch"
301
302 LINK="\$(CC)"
303
304 # link flags
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000305 CORE_LINK="$CORE_LINK -l=nt"
306
Igor Sysoev11dbe972004-03-29 17:43:58 +0000307 INCOPT="-i="
308 COMPOPT="-c"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000309 OBJOUT="-fo"
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000310 BINOUT="-fe="
Igor Sysoev11dbe972004-03-29 17:43:58 +0000311 OBJEXT="obj"
312 BINEXT=".exe"
313 DIRSEP='\\'
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000314
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000315 MAKE_SL=YES
Igor Sysoev6a930452004-03-04 16:34:23 +0000316 ;;
317
Igor Sysoev11dbe972004-03-29 17:43:58 +0000318
319 bcc32)
320 # Borland C++ 5.5
321
322 # optimization
323
324 # maximize speed
325 CFLAGS="$CFLAGS -O2"
326
327 case $CPU in
328 pentium)
329 # optimize for Pentium and Athlon
330 CPU_OPT="-5"
331 ;;
332
333 pentiumpro)
334 # optimize for Pentium Pro, Pentium II and Pentium III
335 CPU_OPT="-6"
336 ;;
337 esac
338
339 CFLAGS="$CFLAGS $CPU_OPT"
340
341 # multithreaded
342 CFLAGS="$CFLAGS -tWM"
343
344 # stop on warning
345 CFLAGS="$CFLAGS -w!"
346
347 # disable logo
348 CFLAGS="$CFLAGS -q"
349
350 # precompiled headers
351 CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.csm"
352 PCH="$OBJS\\ngx_config.csm"
353 BUILDPCH="-H=$OBJS\\ngx_config.csm"
354 USEPCH="-Hu -H=$OBJS\\ngx_config.csm"
355
356 LINK="\$(CC)"
357
358 INCOPT="-I"
359 COMPOPT="-c"
360 OBJOUT="-o"
361 BINOUT="-e"
362 OBJEXT="obj"
363 BINEXT=".exe"
364 DIRSEP='\\'
365 ;;
366
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000367esac