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