case $CC in *gcc*) # gcc 2.7.2.3, 2.8.1, 2.95.4, 3.3.2, 3.3.3, 3.4 # optimization #CFLAGS="$CFLAGS -O2 -fomit-frame-pointer" case $CPU in pentium) # optimize for Pentium and Athlon CPU_OPT="-march=pentium" ;; pentiumpro) # optimize for Pentium Pro, Pentium II and Pentium III CPU_OPT="-march=pentiumpro" ;; pentium4) # optimize for Pentium 4, gcc 3.x CPU_OPT="-march=pentium4" ;; esac # STUB for batch builds if [ $CC = gcc27 ]; then CPU_OPT=; fi CFLAGS="$CFLAGS $PIPE $CPU_OPT" if [ ".$PCRE_OPT" = "." ]; then PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT" else PCRE_OPT="$PCRE_OPT $PIPE" fi if [ ".$MD5_OPT" = "." ]; then MD5_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT" else MD5_OPT="$MD5_OPT $PIPE" fi if [ ".$ZLIB_OPT" = "." ]; then ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT" else ZLIB_OPT="$ZLIB_OPT $PIPE" fi # warnings CFLAGS="$CFLAGS -O -W" CFLAGS="$CFLAGS -Wall -Wpointer-arith" #CFLAGS="$CFLAGS -Wconversion" #CFLAGS="$CFLAGS -Winline" # we have a lot of the unused function arguments CFLAGS="$CFLAGS -Wno-unused" # stop on warning CFLAGS="$CFLAGS -Werror" # ANSI C warnings #CFLAGS="$CFLAGS -pedantic" # debug CFLAGS="$CFLAGS -g" # DragonFly's gcc3 generates DWARF #CFLAGS="$CFLAGS -g -gstabs" have=HAVE_GCC_VARIADIC_MACROS . auto/have if [ ".$CPP" = "." ]; then CPP="$CC -E" fi LINK="\$(CC)" INCOPT="-I " COMPOPT="-c" OBJOUT="-o " BINOUT="-o " OBJEXT="o" CC_STRONG="$CC -Wall -Werror" ;; *icc) # Intel C++ compiler 7.1 # optimization CFLAGS="$CFLAGS -O" # inline functions declared with __inline #CFLAGS="$CFLAGS -Ob1" # inline any function, at the compiler's discretion CFLAGS="$CFLAGS -Ob2" # single-file IP optimizations #IPO="-ip" # multi-file IP optimizations IPO="-ipo -ipo_obj" CFLAGS="$CFLAGS $IPO" CORE_LINK="$CORE_LINK $IPO" CORE_LINK="$CORE_LINK -opt_report_file=$OBJS/opt_report_file" case $CPU in pentium) # optimize for Pentium and Athlon CPU_OPT="-march=pentium" ;; pentiumpro) # optimize for Pentium Pro, Pentium II and Pentium III CPU_OPT="-mcpu=pentiumpro -march=pentiumpro" ;; pentium4) # optimize for Pentium 4, default CPU_OPT="-march=pentium4" ;; esac CFLAGS="$CFLAGS $CPU_OPT" if [ ".$PCRE_OPT" = "." ]; then PCRE_OPT="-O $IPO $CPU_OPT" fi if [ ".$MD5_OPT" = "." ]; then MD5_OPT="-O $IPO $CPU_OPT" fi if [ ".$ZLIB_OPT" = "." ]; then ZLIB_OPT="-O $IPO $CPU_OPT" fi # warnings CFLAGS="$CFLAGS -w1" #CFLAGS="$CFLAGS -w2" # stop on warning CFLAGS="$CFLAGS -Werror" # debug CFLAGS="$CFLAGS -g" have=HAVE_C99_VARIADIC_MACROS . auto/have LINK="\$(CC)" INCOPT="-I " COMPOPT="-c" OBJOUT="-o " BINOUT="-o " OBJEXT="o" CC_STRONG="$CC -w1 -Werror" ;; cl) # MSVC 6.0 SP2 # optimization # maximize speed CFLAGS="$CFLAGS -O2" # enable global optimization CFLAGS="$CFLAGS -Og" # enable intrinsic functions CFLAGS="$CFLAGS -Oi" # inline expansion CFLAGS="$CFLAGS -Ob1" # enable frame pointer omission CFLAGS="$CFLAGS -Oy" # disable stack checking calls CFLAGS="$CFLAGS -Gs" case $CPU in pentium) # optimize for Pentium and Athlon CPU_OPT="-G5" ;; pentiumpro) # optimize for Pentium Pro, Pentium II and Pentium III CPU_OPT="-G6" ;; pentium4) # optimize for Pentium 4 #CPU_OPT="-G7" ;; esac CFLAGS="$CFLAGS $CPU_OPT" # warnings #CFLAGS="$CFLAGS -W3" CFLAGS="$CFLAGS -W4" # stop on warning CFLAGS="$CFLAGS -WX" # link with libcmt.lib, multithreaded #LIBC="-MT" # link with msvcrt.dll LIBC="-MD" CFLAGS="$CFLAGS $LIBC" # disable logo CFLAGS="$CFLAGS -nologo" LINK="\$(CC)" # link flags CORE_LINK="$CORE_LINK -link -verbose:lib" # debug CFLAGS="$CFLAGS -Yd" CORE_LINK="$CORE_LINK -debug -debugtype:coff" # precompiled headers CORE_DEPS="$CORE_DEPS ngx_config.pch" PCH="ngx_config.pch" BUILDPCH="-Ycngx_config.h" USEPCH="-Yungx_config.h" INCOPT="-I " COMPOPT="-c" OBJOUT="-Fo" BINOUT="-Fe" OBJEXT="obj" BINEXT=".exe" #DIRSEP='\\' ;; wcl386) # Open Watcom 1.0 # optimization # maximize speed CFLAGS="$CFLAGS -ot" # reorder instructions for best pipeline usage CFLAGS="$CFLAGS -op" # inline intrinsic functions CFLAGS="$CFLAGS -oi" # inline expansion CFLAGS="$CFLAGS -oe" # disable stack checking calls CFLAGS="$CFLAGS -s" case $CPU in pentium) # optimize for Pentium and Athlon # register-based arguments passing conventions CPU_OPT="-5r" # stack-based arguments passing conventions #CPU_OPT="-5s" ;; pentiumpro) # optimize for Pentium Pro, Pentium II and Pentium III # register-based arguments passing conventions CPU_OPT="-6r" # stack-based arguments passing conventions #CPU_OPT="-6s" ;; esac CFLAGS="$CFLAGS $CPU_OPT" # warnings #CFLAGS="$CFLAGS -w3" CFLAGS="$CFLAGS -wx" # stop on warning CFLAGS="$CFLAGS -we" # built target is NT CFLAGS="$CFLAGS -bt=nt" # multithreaded CFLAGS="$CFLAGS -bm" # debug CFLAGS="$CFLAGS -d2" # quiet CFLAGS="$CFLAGS -zq" # precompiled headers CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.pch" PCH="$OBJS\\ngx_config.pch" BUILDPCH="-fhq=$OBJS\\ngx_config.pch" USEPCH="-fh=$OBJS\\ngx_config.pch" LINK="\$(CC)" # link flags CORE_LINK="$CORE_LINK -l=nt" INCOPT="-i=" COMPOPT="-c" OBJOUT="-fo" BINOUT="-fe=" OBJEXT="obj" BINEXT=".exe" DIRSEP='\\' MAKE_SL=YES ;; bcc32) # Borland C++ 5.5 # optimization # maximize speed CFLAGS="$CFLAGS -O2" case $CPU in pentium) # optimize for Pentium and Athlon CPU_OPT="-5" ;; pentiumpro) # optimize for Pentium Pro, Pentium II and Pentium III CPU_OPT="-6" ;; esac CFLAGS="$CFLAGS $CPU_OPT" # multithreaded CFLAGS="$CFLAGS -tWM" # stop on warning CFLAGS="$CFLAGS -w!" # disable logo CFLAGS="$CFLAGS -q" # precompiled headers CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.csm" PCH="$OBJS\\ngx_config.csm" BUILDPCH="-H=$OBJS\\ngx_config.csm" USEPCH="-Hu -H=$OBJS\\ngx_config.csm" LINK="\$(CC)" INCOPT="-I" COMPOPT="-c" OBJOUT="-o" BINOUT="-e" OBJEXT="obj" BINEXT=".exe" DIRSEP='\\' ;; esac