mirror of https://github.com/nginx/nginx
An official read-only mirror of http://hg.nginx.org/nginx/ which is updated hourly. Pull requests on GitHub cannot be accepted and will be automatically closed. The proper way to submit changes to nginx is via the nginx development mailing list, see http:
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
3.5 KiB
179 lines
3.5 KiB
|
|
# Copyright (C) Igor Sysoev
|
|
# Copyright (C) Nginx, Inc.
|
|
|
|
|
|
# gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2
|
|
# 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2
|
|
# 4.0.0, 4.0.1, 4.1.0
|
|
|
|
|
|
NGX_GCC_VER=`$CC -v 2>&1 | grep 'gcc version' 2>&1 \
|
|
| sed -e 's/^.* version \(.*\)/\1/'`
|
|
|
|
echo " + gcc version: $NGX_GCC_VER"
|
|
|
|
have=NGX_COMPILER value="\"gcc $NGX_GCC_VER\"" . auto/define
|
|
|
|
|
|
# Solaris 7's /usr/ccs/bin/as does not support "-pipe"
|
|
|
|
CC_TEST_FLAGS="-pipe"
|
|
|
|
ngx_feature="gcc -pipe switch"
|
|
ngx_feature_name=
|
|
ngx_feature_run=no
|
|
ngx_feature_incs=
|
|
ngx_feature_path=
|
|
ngx_feature_libs=
|
|
ngx_feature_test=
|
|
. auto/feature
|
|
|
|
CC_TEST_FLAGS=
|
|
|
|
if [ $ngx_found = yes ]; then
|
|
PIPE="-pipe"
|
|
fi
|
|
|
|
|
|
case "$NGX_MACHINE" in
|
|
|
|
sun4u | sun4v | sparc | sparc64 )
|
|
# "-mcpu=v9" enables the "casa" assembler instruction
|
|
CFLAGS="$CFLAGS -mcpu=v9"
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
# optimizations
|
|
|
|
#NGX_GCC_OPT="-O2"
|
|
#NGX_GCC_OPT="-Os"
|
|
NGX_GCC_OPT="-O"
|
|
|
|
#CFLAGS="$CFLAGS -fomit-frame-pointer"
|
|
|
|
case $CPU in
|
|
pentium)
|
|
# optimize for Pentium and Athlon
|
|
CPU_OPT="-march=pentium"
|
|
NGX_CPU_CACHE_LINE=32
|
|
;;
|
|
|
|
pentiumpro | pentium3)
|
|
# optimize for Pentium Pro, Pentium II and Pentium III
|
|
CPU_OPT="-march=pentiumpro"
|
|
NGX_CPU_CACHE_LINE=32
|
|
;;
|
|
|
|
pentium4)
|
|
# optimize for Pentium 4, gcc 3.x
|
|
CPU_OPT="-march=pentium4"
|
|
NGX_CPU_CACHE_LINE=128
|
|
;;
|
|
|
|
athlon)
|
|
# optimize for Athlon, gcc 3.x
|
|
CPU_OPT="-march=athlon"
|
|
NGX_CPU_CACHE_LINE=64
|
|
;;
|
|
|
|
opteron)
|
|
# optimize for Opteron, gcc 3.x
|
|
CPU_OPT="-march=opteron"
|
|
NGX_CPU_CACHE_LINE=64
|
|
;;
|
|
|
|
sparc32)
|
|
# build 32-bit UltraSparc binary
|
|
CPU_OPT="-m32"
|
|
CORE_LINK="$CORE_LINK -m32"
|
|
NGX_CPU_CACHE_LINE=64
|
|
;;
|
|
|
|
sparc64)
|
|
# build 64-bit UltraSparc binary
|
|
CPU_OPT="-m64"
|
|
CORE_LINK="$CORE_LINK -m64"
|
|
NGX_CPU_CACHE_LINE=64
|
|
;;
|
|
|
|
ppc64)
|
|
# build 64-bit PowerPC binary
|
|
CPU_OPT="-m64"
|
|
CPU_OPT="$CPU_OPT -falign-functions=32 -falign-labels=32"
|
|
CPU_OPT="$CPU_OPT -falign-loops=32 -falign-jumps=32"
|
|
CORE_LINK="$CORE_LINK -m64"
|
|
NGX_CPU_CACHE_LINE=128
|
|
;;
|
|
|
|
esac
|
|
|
|
CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT"
|
|
|
|
case "$NGX_GCC_VER" in
|
|
2.7*)
|
|
# batch build
|
|
CPU_OPT=
|
|
;;
|
|
esac
|
|
|
|
|
|
CFLAGS="$CFLAGS $PIPE $CPU_OPT"
|
|
|
|
if [ ".$PCRE_OPT" = "." ]; then
|
|
PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
|
|
else
|
|
PCRE_OPT="$PCRE_OPT $PIPE"
|
|
fi
|
|
|
|
if [ ".$ZLIB_OPT" = "." ]; then
|
|
ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
|
|
else
|
|
ZLIB_OPT="$ZLIB_OPT $PIPE"
|
|
fi
|
|
|
|
|
|
# warnings
|
|
|
|
# -W requires at least -O
|
|
CFLAGS="$CFLAGS ${NGX_GCC_OPT:--O} -W"
|
|
|
|
CFLAGS="$CFLAGS -Wall -Wpointer-arith"
|
|
#CFLAGS="$CFLAGS -Wconversion"
|
|
#CFLAGS="$CFLAGS -Winline"
|
|
#CFLAGS="$CFLAGS -Wmissing-prototypes"
|
|
|
|
case "$NGX_GCC_VER" in
|
|
2.*)
|
|
# we have a lot of the unused function arguments
|
|
CFLAGS="$CFLAGS -Wno-unused"
|
|
;;
|
|
|
|
*)
|
|
# we have a lot of the unused function arguments
|
|
CFLAGS="$CFLAGS -Wno-unused-parameter"
|
|
# 4.2.1 shows the warning in wrong places
|
|
#CFLAGS="$CFLAGS -Wunreachable-code"
|
|
|
|
# deprecated system OpenSSL library on OS X
|
|
if [ "$NGX_SYSTEM" = "Darwin" ]; then
|
|
CFLAGS="$CFLAGS -Wno-deprecated-declarations"
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
|
|
# stop on warning
|
|
CFLAGS="$CFLAGS -Werror"
|
|
|
|
# debug
|
|
CFLAGS="$CFLAGS -g"
|
|
|
|
# DragonFly's gcc3 generates DWARF
|
|
#CFLAGS="$CFLAGS -g -gstabs"
|
|
|
|
if [ ".$CPP" = "." ]; then
|
|
CPP="$CC -E"
|
|
fi
|
|
|