summaryrefslogtreecommitdiff
path: root/auto/cc/sunc
blob: 9edc0d09820ecc8f9a469f72c6bffdc29f42a140 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

# Copyright (C) Igor Sysoev


# Sun C 5.7 Patch 117837-04 2005/05/11
# Sun C 5.8 2005/10/13

NGX_SUNC_VER=`$CC -V 2>&1 | grep 'Sun C' 2>&1 \
                          | sed -e 's/^.* Sun C \(.*\)/\1/'`

echo " + Sun C version: $NGX_SUNC_VER"

have=NGX_COMPILER value="\"Sun C $NGX_SUNC_VER\"" . auto/define


case "$NGX_MACHINE" in

    i86pc)
        ngx_feature="PAUSE hardware capability bug"
        ngx_feature_name=
        ngx_feature_run=bug
        ngx_feature_incs=
        ngx_feature_path=
        ngx_feature_libs=
        ngx_feature_test='__asm ("pause")'

        . auto/feature

        if [ $ngx_found = yes ]; then
            # disable [ PAUSE ] hwcap for Sun Studio 11
            CORE_LINK="$CORE_LINK -Msrc/os/unix/ngx_sunpro_x86.map"
        fi

        NGX_AUX=" src/os/unix/ngx_sunpro_x86.il"
    ;;

    sun4u | sun4v)
        # "-xarch=v9" enables the "casa" assembler instruction
        CFLAGS="$CFLAGS -xarch=v9"
        CORE_LINK="$CORE_LINK -xarch=v9"
        NGX_AUX=" src/os/unix/ngx_sunpro_sparc64.il"
    ;;

esac


# optimizations

CFLAGS="$CFLAGS -fast"


case $CPU in
    pentium)
        # optimize for Pentium and Athlon
        CPU_OPT="-xchip=pentium"
    ;;

    pentiumpro)
        # optimize for Pentium Pro, Pentium II
        CPU_OPT="-xchip=pentium_pro"
    ;;

    pentium3)
        # optimize for Pentium III
        CPU_OPT="-xchip=pentium3"
        #CPU_OPT="$CPU_OPT -xarch=sse"
        CPU_OPT="$CPU_OPT -xcache=16/32/4:256/32/4"
    ;;

    pentium4)
        # optimize for Pentium 4
        CPU_OPT="-xchip=pentium4"
        #CPU_OPT="$CPU_OPT -xarch=sse2"
        CPU_OPT="$CPU_OPT -xcache=8/64/4:256/128/8"
    ;;

    opteron)
        # optimize for Opteron
        CPU_OPT="-xchip=opteron"
        #CPU_OPT="$CPU_OPT -xarch=sse2"
        CPU_OPT="$CPU_OPT -xcache=64/64/2:1024/64/16"
    ;;

    amd64)
        # build 64-bit amd64 binary
        CPU_OPT="-xarch=amd64"
        CORE_LINK="$CORE_LINK -xarch=amd64"
        NGX_AUX=" src/os/unix/ngx_sunpro_amd64.il"
    ;;

esac


CFLAGS="$CFLAGS $CPU_OPT"


if [ ".$PCRE_OPT" = "." ]; then
    PCRE_OPT="-fast $CPU_OPT"
fi

if [ ".$MD5_OPT" = "." ]; then
    MD5_OPT="-fast $CPU_OPT"
fi

if [ ".$ZLIB_OPT" = "." ]; then
    ZLIB_OPT="-fast $CPU_OPT"
fi


# stop on warning
CFLAGS="$CFLAGS -errwarn=%all"