| # Copyright (C) Igor Sysoev | |
| # Copyright (C) Nginx, Inc. | |
| # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2 | |
| # 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2 | |
| # 4.0.0, 4.0.1, 4.1.0 | |
| NGX_GCC_VER=`$CC -v 2>&1 | grep 'gcc version' 2>&1 \ | |
| | sed -e 's/^.* version \(.*\)/\1/'` | |
| echo " + gcc version: $NGX_GCC_VER" | |
| have=NGX_COMPILER value="\"gcc $NGX_GCC_VER\"" . auto/define | |
| # Solaris 7's /usr/ccs/bin/as does not support "-pipe" | |
| CC_TEST_FLAGS="-pipe" | |
| ngx_feature="gcc -pipe switch" | |
| ngx_feature_name= | |
| ngx_feature_run=no | |
| ngx_feature_incs= | |
| ngx_feature_path= | |
| ngx_feature_libs= | |
| ngx_feature_test= | |
| . auto/feature | |
| CC_TEST_FLAGS= | |
| if [ $ngx_found = yes ]; then | |
| PIPE="-pipe" | |
| fi | |
| case "$NGX_MACHINE" in | |
| sun4u | sun4v | sparc | sparc64 ) | |
| # "-mcpu=v9" enables the "casa" assembler instruction | |
| CFLAGS="$CFLAGS -mcpu=v9" | |
| ;; | |
| esac | |
| # optimizations | |
| #NGX_GCC_OPT="-O2" | |
| #NGX_GCC_OPT="-Os" | |
| NGX_GCC_OPT="-O" | |
| #CFLAGS="$CFLAGS -fomit-frame-pointer" | |
| case $CPU in | |
| pentium) | |
| # optimize for Pentium and Athlon | |
| CPU_OPT="-march=pentium" | |
| NGX_CPU_CACHE_LINE=32 | |
| ;; | |
| pentiumpro | pentium3) | |
| # optimize for Pentium Pro, Pentium II and Pentium III | |
| CPU_OPT="-march=pentiumpro" | |
| NGX_CPU_CACHE_LINE=32 | |
| ;; | |
| pentium4) | |
| # optimize for Pentium 4, gcc 3.x | |
| CPU_OPT="-march=pentium4" | |
| NGX_CPU_CACHE_LINE=128 | |
| ;; | |
| athlon) | |
| # optimize for Athlon, gcc 3.x | |
| CPU_OPT="-march=athlon" | |
| NGX_CPU_CACHE_LINE=64 | |
| ;; | |
| opteron) | |
| # optimize for Opteron, gcc 3.x | |
| CPU_OPT="-march=opteron" | |
| NGX_CPU_CACHE_LINE=64 | |
| ;; | |
| sparc32) | |
| # build 32-bit UltraSparc binary | |
| CPU_OPT="-m32" | |
| CORE_LINK="$CORE_LINK -m32" | |
| NGX_CPU_CACHE_LINE=64 | |
| ;; | |
| sparc64) | |
| # build 64-bit UltraSparc binary | |
| CPU_OPT="-m64" | |
| CORE_LINK="$CORE_LINK -m64" | |
| NGX_CPU_CACHE_LINE=64 | |
| ;; | |
| ppc64) | |
| # build 64-bit PowerPC binary | |
| CPU_OPT="-m64" | |
| CPU_OPT="$CPU_OPT -falign-functions=32 -falign-labels=32" | |
| CPU_OPT="$CPU_OPT -falign-loops=32 -falign-jumps=32" | |
| CORE_LINK="$CORE_LINK -m64" | |
| NGX_CPU_CACHE_LINE=128 | |
| ;; | |
| esac | |
| CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT" | |
| case "$NGX_GCC_VER" in | |
| 2.7*) | |
| # batch build | |
| CPU_OPT= | |
| ;; | |
| esac | |
| 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 [ ".$ZLIB_OPT" = "." ]; then | |
| ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT" | |
| else | |
| ZLIB_OPT="$ZLIB_OPT $PIPE" | |
| fi | |
| # warnings | |
| # -W requires at least -O | |
| CFLAGS="$CFLAGS ${NGX_GCC_OPT:--O} -W" | |
| CFLAGS="$CFLAGS -Wall -Wpointer-arith" | |
| #CFLAGS="$CFLAGS -Wconversion" | |
| #CFLAGS="$CFLAGS -Winline" | |
| #CFLAGS="$CFLAGS -Wmissing-prototypes" | |
| case "$NGX_GCC_VER" in | |
| 2.*) | |
| # we have a lot of the unused function arguments | |
| CFLAGS="$CFLAGS -Wno-unused" | |
| ;; | |
| *) | |
| # we have a lot of the unused function arguments | |
| CFLAGS="$CFLAGS -Wno-unused-parameter" | |
| # 4.2.1 shows the warning in wrong places | |
| #CFLAGS="$CFLAGS -Wunreachable-code" | |
| # deprecated system OpenSSL library on OS X | |
| if [ "$NGX_SYSTEM" = "Darwin" ]; then | |
| CFLAGS="$CFLAGS -Wno-deprecated-declarations" | |
| fi | |
| ;; | |
| esac | |
| # stop on warning | |
| CFLAGS="$CFLAGS -Werror" | |
| # debug | |
| CFLAGS="$CFLAGS -g" | |
| # DragonFly's gcc3 generates DWARF | |
| #CFLAGS="$CFLAGS -g -gstabs" | |
| if [ ".$CPP" = "." ]; then | |
| CPP="$CC -E" | |
| fi |