Update and clean Tomato RAF files
[tomato.git] / release / src / router / nginx / auto / cc / gcc
blob727ae1e6edfdf341093165365f6df082cf7e4e11
2 # Copyright (C) Igor Sysoev
3 # Copyright (C) Nginx, Inc.
6 # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2
7 #     3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2
8 #     4.0.0, 4.0.1, 4.1.0
11 NGX_GCC_VER=`$CC -v 2>&1 | grep 'gcc version' 2>&1 \
12                          | sed -e 's/^.* version \(.*\)/\1/'`
14 echo " + gcc version: $NGX_GCC_VER"
16 have=NGX_COMPILER value="\"gcc $NGX_GCC_VER\"" . auto/define
19 # Solaris 7's /usr/ccs/bin/as does not support "-pipe"
21 CC_TEST_FLAGS="-pipe"
23 ngx_feature="gcc -pipe switch"
24 ngx_feature_name=
25 ngx_feature_run=no
26 ngx_feature_incs=
27 ngx_feature_path=
28 ngx_feature_libs=
29 ngx_feature_test=
30 . auto/feature
32 CC_TEST_FLAGS=
34 if [ $ngx_found = yes ]; then
35     PIPE="-pipe"
39 case "$NGX_MACHINE" in
41     sun4u | sun4v | sparc | sparc64 )
42         # "-mcpu=v9" enables the "casa" assembler instruction
43         CFLAGS="$CFLAGS -mcpu=v9"
44     ;;
46 esac
49 # optimizations
51 #NGX_GCC_OPT="-O2"
52 #NGX_GCC_OPT="-Os"
53 NGX_GCC_OPT="-O"
55 #CFLAGS="$CFLAGS -fomit-frame-pointer"
57 case $CPU in
58     pentium)
59         # optimize for Pentium and Athlon
60         CPU_OPT="-march=pentium"
61         NGX_CPU_CACHE_LINE=32
62     ;;
64     pentiumpro | pentium3)
65         # optimize for Pentium Pro, Pentium II and Pentium III
66         CPU_OPT="-march=pentiumpro"
67         NGX_CPU_CACHE_LINE=32
68     ;;
70     pentium4)
71         # optimize for Pentium 4, gcc 3.x
72         CPU_OPT="-march=pentium4"
73         NGX_CPU_CACHE_LINE=128
74     ;;
76     athlon)
77         # optimize for Athlon, gcc 3.x
78         CPU_OPT="-march=athlon"
79         NGX_CPU_CACHE_LINE=64
80     ;;
82     opteron)
83         # optimize for Opteron, gcc 3.x
84         CPU_OPT="-march=opteron"
85         NGX_CPU_CACHE_LINE=64
86     ;;
88     sparc32)
89         # build 32-bit UltraSparc binary
90         CPU_OPT="-m32"
91         CORE_LINK="$CORE_LINK -m32"
92         NGX_CPU_CACHE_LINE=64
93     ;;
95     sparc64)
96         # build 64-bit UltraSparc binary
97         CPU_OPT="-m64"
98         CORE_LINK="$CORE_LINK -m64"
99         NGX_CPU_CACHE_LINE=64
100     ;;
102     ppc64)
103         # build 64-bit PowerPC binary
104         CPU_OPT="-m64"
105         CPU_OPT="$CPU_OPT -falign-functions=32 -falign-labels=32"
106         CPU_OPT="$CPU_OPT -falign-loops=32 -falign-jumps=32"
107         CORE_LINK="$CORE_LINK -m64"
108         NGX_CPU_CACHE_LINE=128
109     ;;
111 esac
113 CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT"
115 case "$NGX_GCC_VER" in
116     2.7*)
117         # batch build
118         CPU_OPT=
119     ;;
120 esac
123 CFLAGS="$CFLAGS $PIPE $CPU_OPT"
125 if [ ".$PCRE_OPT" = "." ]; then
126     PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
127 else
128     PCRE_OPT="$PCRE_OPT $PIPE"
131 if [ ".$MD5_OPT" = "." ]; then
132     MD5_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
133 else
134     MD5_OPT="$MD5_OPT $PIPE"
137 if [ ".$ZLIB_OPT" = "." ]; then
138     ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
139 else
140     ZLIB_OPT="$ZLIB_OPT $PIPE"
144 # warnings
146 # -W requires at least -O
147 CFLAGS="$CFLAGS ${NGX_GCC_OPT:--O} -W"
149 CFLAGS="$CFLAGS -Wall -Wpointer-arith"
150 #CFLAGS="$CFLAGS -Wconversion"
151 #CFLAGS="$CFLAGS -Winline"
152 #CFLAGS="$CFLAGS -Wmissing-prototypes"
155 case "$NGX_GCC_VER" in
156     3.* | 4.* )
157         # we have a lot of the unused function arguments
158         CFLAGS="$CFLAGS -Wno-unused-parameter"
159         # 4.2.1 shows the warning in wrong places
160         #CFLAGS="$CFLAGS -Wunreachable-code"
161     ;;
163     *)
164         # we have a lot of the unused function arguments
165         CFLAGS="$CFLAGS -Wno-unused"
166     ;;
167 esac
170 # stop on warning
171 CFLAGS="$CFLAGS"
173 # debug
174 CFLAGS="$CFLAGS -g"
176 # DragonFly's gcc3 generates DWARF
177 #CFLAGS="$CFLAGS -g -gstabs"
179 if [ ".$CPP" = "." ]; then
180     CPP="$CC -E"