Annotation of embedaddon/nginx/auto/cc/sunc, revision 1.1.1.1

1.1       misho       1: 
                      2: # Copyright (C) Igor Sysoev
                      3: # Copyright (C) Nginx, Inc.
                      4: 
                      5: 
                      6: # Sun C 5.7 Patch 117837-04 2005/05/11    Sun Studio 10
                      7: # Sun C 5.8 2005/10/13                    Sun Studio 11
                      8: # Sun C 5.9 SunOS_i386 2007/05/03         Sun Studio 12
                      9: # Sun C 5.9 SunOS_sparc 2007/05/03
                     10: # Sun C 5.10 SunOS_i386 2009/06/03        Sun Studio 12.1
                     11: # Sun C 5.11 SunOS_i386 2010/08/13        Sun Studio 12.2
                     12: 
                     13: NGX_SUNC_VER=`$CC -V 2>&1 | grep 'Sun C' 2>&1 \
                     14:                           | sed -e 's/^.* Sun C \(.*\)/\1/'`
                     15: 
                     16: echo " + Sun C version: $NGX_SUNC_VER"
                     17: 
                     18: have=NGX_COMPILER value="\"Sun C $NGX_SUNC_VER\"" . auto/define
                     19: 
                     20: 
                     21: cat << END > $NGX_AUTOTEST.c
                     22: 
                     23: int main() { printf("%d", __SUNPRO_C); }
                     24: 
                     25: END
                     26: 
                     27: eval "$CC -o $NGX_AUTOTEST $NGX_AUTOTEST.c >> $NGX_ERR 2>&1"
                     28: 
                     29: if [ -x $NGX_AUTOTEST ]; then
                     30:     ngx_sunc_ver=`$NGX_AUTOTEST`
                     31: fi
                     32: 
                     33: rm $NGX_AUTOTEST*
                     34: 
                     35: # 1424 == 0x590, Sun Studio 12
                     36: 
                     37: if [ "$ngx_sunc_ver" -ge 1424 ]; then
                     38:     ngx_sparc32="-m32"
                     39:     ngx_sparc64="-m64"
                     40:     ngx_amd64="-m64"
                     41: 
                     42: else
                     43:     ngx_sparc32="-xarch=v8plus"
                     44:     ngx_sparc64="-xarch=v9"
                     45:     ngx_amd64="-xarch=amd64"
                     46: fi
                     47: 
                     48: case "$NGX_MACHINE" in
                     49: 
                     50:     i86pc)
                     51:         NGX_AUX=" src/os/unix/ngx_sunpro_x86.il"
                     52:     ;;
                     53: 
                     54:     sun4u | sun4v)
                     55:         NGX_AUX=" src/os/unix/ngx_sunpro_sparc64.il"
                     56:     ;;
                     57: 
                     58: esac
                     59: 
                     60: 
                     61: # optimizations
                     62: 
                     63: # 20736 == 0x5100, Sun Studio 12.1
                     64: 
                     65: if [ "$ngx_sunc_ver" -ge 20736 ]; then
                     66:     ngx_fast="-fast"
                     67: 
                     68: else
                     69:     # older versions had problems with bit-fields
                     70:     ngx_fast="-fast -xalias_level=any"
                     71: fi
                     72: 
                     73: IPO=-xipo
                     74: CFLAGS="$CFLAGS $ngx_fast $IPO"
                     75: CORE_LINK="$CORE_LINK $ngx_fast $IPO"
                     76: 
                     77: 
                     78: case $CPU in
                     79:     pentium)
                     80:         # optimize for Pentium and Athlon
                     81:         CPU_OPT="-xchip=pentium"
                     82:     ;;
                     83: 
                     84:     pentiumpro)
                     85:         # optimize for Pentium Pro, Pentium II
                     86:         CPU_OPT="-xchip=pentium_pro"
                     87:     ;;
                     88: 
                     89:     pentium3)
                     90:         # optimize for Pentium III
                     91:         CPU_OPT="-xchip=pentium3"
                     92:         #CPU_OPT="$CPU_OPT -xarch=sse"
                     93:         CPU_OPT="$CPU_OPT -xcache=16/32/4:256/32/4"
                     94:     ;;
                     95: 
                     96:     pentium4)
                     97:         # optimize for Pentium 4
                     98:         CPU_OPT="-xchip=pentium4"
                     99:         #CPU_OPT="$CPU_OPT -xarch=sse2"
                    100:         CPU_OPT="$CPU_OPT -xcache=8/64/4:256/128/8"
                    101:     ;;
                    102: 
                    103:     opteron)
                    104:         # optimize for Opteron
                    105:         CPU_OPT="-xchip=opteron"
                    106:         #CPU_OPT="$CPU_OPT -xarch=sse2"
                    107:         CPU_OPT="$CPU_OPT -xcache=64/64/2:1024/64/16"
                    108:     ;;
                    109: 
                    110:     sparc32)
                    111:         # build 32-bit UltraSparc binary
                    112:         CPU_OPT="$ngx_sparc32"
                    113:         CORE_LINK="$CORE_LINK $ngx_sparc32"
                    114:         CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_sparc32"
                    115:         NGX_CPU_CACHE_LINE=64
                    116:     ;;
                    117: 
                    118:     sparc64)
                    119:         # build 64-bit UltraSparc binary
                    120:         CPU_OPT="$ngx_sparc64"
                    121:         CORE_LINK="$CORE_LINK $ngx_sparc64"
                    122:         CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_sparc64"
                    123:         NGX_CPU_CACHE_LINE=64
                    124:     ;;
                    125: 
                    126:     amd64)
                    127:         # build 64-bit amd64 binary
                    128:         CPU_OPT="$ngx_amd64"
                    129:         CORE_LINK="$CORE_LINK $ngx_amd64"
                    130:         CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_amd64"
                    131:         NGX_AUX=" src/os/unix/ngx_sunpro_amd64.il"
                    132:         NGX_CPU_CACHE_LINE=64
                    133:     ;;
                    134: 
                    135: esac
                    136: 
                    137: 
                    138: CFLAGS="$CFLAGS $CPU_OPT"
                    139: 
                    140: 
                    141: if [ ".$PCRE_OPT" = "." ]; then
                    142:     PCRE_OPT="$ngx_fast $IPO $CPU_OPT"
                    143: fi
                    144: 
                    145: if [ ".$MD5_OPT" = "." ]; then
                    146:     MD5_OPT="$ngx_fast $IPO $CPU_OPT"
                    147: fi
                    148: 
                    149: if [ ".$ZLIB_OPT" = "." ]; then
                    150:     ZLIB_OPT="$ngx_fast $IPO $CPU_OPT"
                    151: fi
                    152: 
                    153: 
                    154: # stop on warning
                    155: CFLAGS="$CFLAGS -errwarn=%all"
                    156: 
                    157: # debug
                    158: CFLAGS="$CFLAGS -g"

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>