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