Initial version.
This commit is contained in:
209
auto/cc/test
Normal file
209
auto/cc/test
Normal file
@@ -0,0 +1,209 @@
|
||||
|
||||
# Copyright (C) Igor Sysoev
|
||||
# Copyright (C) NGINX, Inc.
|
||||
|
||||
|
||||
$echo checking for C compiler: $CC
|
||||
cat << END >> $NXT_AUTOCONF_ERR
|
||||
----------------------------------------
|
||||
checking for C compiler: $CC
|
||||
END
|
||||
|
||||
|
||||
# Allow error exit status.
|
||||
set +e
|
||||
|
||||
if [ -z `which $CC` ]; then
|
||||
$echo
|
||||
$echo $0: error: $CC not found.
|
||||
$echo
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
|
||||
if `/bin/sh -c "($CC -v)" 2>&1 | grep "gcc version" >> $NXT_AUTOCONF_ERR 2>&1`
|
||||
then
|
||||
NXT_CC_NAME=gcc
|
||||
$echo " + using GNU C compiler"
|
||||
NXT_CC_VERSION=`/bin/sh -c "($CC -v)" 2>&1 | grep "gcc version" 2>&1`
|
||||
$echo " + $NXT_CC_VERSION"
|
||||
|
||||
else
|
||||
if `/bin/sh -c "($CC -v)" 2>&1 | grep "clang version" >> $NXT_AUTOCONF_ERR 2>&1`
|
||||
then
|
||||
NXT_CC_NAME=clang
|
||||
$echo " + using Clang C compiler"
|
||||
NXT_CC_VERSION=`/bin/sh -c "($CC -v)" 2>&1 | grep "clang version" 2>&1`
|
||||
$echo " + $NXT_CC_VERSION"
|
||||
|
||||
else
|
||||
if `/bin/sh -c "($CC -v)" 2>&1 \
|
||||
| grep "Apple LLVM version" >> $NXT_AUTOCONF_ERR 2>&1`
|
||||
then
|
||||
NXT_CC_NAME=clang
|
||||
$echo " + using Clang C compiler"
|
||||
NXT_CC_VERSION=`/bin/sh -c "($CC -v)" 2>&1 | grep "Apple LLVM version" 2>&1`
|
||||
$echo " + $NXT_CC_VERSION"
|
||||
|
||||
else
|
||||
if `/bin/sh -c "($CC -V)" 2>&1 | grep "Sun C" >> $NXT_AUTOCONF_ERR 2>&1`
|
||||
then
|
||||
NXT_CC_NAME=SunC
|
||||
$echo " + using Sun C compiler"
|
||||
NXT_CC_VERSION=`/bin/sh -c "($CC -V)" 2>&1 | grep "Sun C" 2>&1`
|
||||
$echo " + $NXT_CC_VERSION"
|
||||
|
||||
else
|
||||
if `/bin/sh -c "($CC -qversion)" 2>&1 \
|
||||
| grep "^IBM XL" >> $NXT_AUTOCONF_ERR 2>&1`
|
||||
then
|
||||
NXT_CC_NAME=xlC
|
||||
$echo " + using AIX xlC compiler"
|
||||
NXT_CC_VERSION=`/bin/sh -c "($CC -qversion)" 2>&1 | grep "IBM XL" 2>&1`
|
||||
$echo " + $NXT_CC_VERSION"
|
||||
|
||||
else
|
||||
if `/bin/sh -c "($CC -V)" 2>&1 | grep "Intel(R) C" >> $NXT_AUTOCONF_ERR 2>&1`
|
||||
then
|
||||
NXT_CC_NAME=ICC
|
||||
$echo " + using Intel C++ compiler"
|
||||
NXT_CC_VERSION=ICC
|
||||
|
||||
else
|
||||
if `/bin/sh -c "($CC -v)" 2>&1 \
|
||||
| grep "Microsoft (R) 32-bit C/C" >> $NXT_AUTOCONF_ERR 2>&1`
|
||||
then
|
||||
NXT_CC_NAME=MSVC
|
||||
$echo " + using MS Visual C++ compiler"
|
||||
NXT_CC_VERSION=MSVC
|
||||
|
||||
else
|
||||
NXT_CC_NAME=cc
|
||||
NXT_CC_VERSION=cc
|
||||
|
||||
fi # MSVC
|
||||
fi # ICC
|
||||
fi # xlC
|
||||
fi # SunC
|
||||
fi # Apple LLVM clang
|
||||
fi # clang
|
||||
fi # gcc
|
||||
|
||||
|
||||
case $NXT_CC_NAME in
|
||||
|
||||
gcc)
|
||||
nxt_have=NXT_GCC . auto/have
|
||||
|
||||
NXT_CFLAGS="$NXT_CFLAGS -pipe"
|
||||
NXT_CFLAGS="$NXT_CFLAGS -fPIC"
|
||||
|
||||
# Do not export symbols except explicitly marked with NXT_EXPORT.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -fvisibility=hidden"
|
||||
|
||||
# c99/gnu99 conflict with Solaris XOPEN.
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -std=gnu99"
|
||||
|
||||
NXT_CFLAGS="$NXT_CFLAGS -O"
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -O0"
|
||||
NXT_CFLAGS="$NXT_CFLAGS -W -Wall -Wextra"
|
||||
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -Wunused-result"
|
||||
NXT_CFLAGS="$NXT_CFLAGS -Wno-unused-parameter"
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -Wshorten-64-to-32"
|
||||
NXT_CFLAGS="$NXT_CFLAGS -Wwrite-strings"
|
||||
|
||||
# -O2 enables -fstrict-aliasing and -fstrict-overflow.
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -O2"
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -Wno-strict-aliasing"
|
||||
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -fomit-frame-pointer"
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -momit-leaf-frame-pointer"
|
||||
|
||||
# -Wstrict-overflow is supported by GCC 4.2+.
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -Wstrict-overflow=5"
|
||||
|
||||
NXT_CFLAGS="$NXT_CFLAGS -Wmissing-prototypes"
|
||||
|
||||
# Stop on warning.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -Werror"
|
||||
|
||||
# Debug.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -g"
|
||||
;;
|
||||
|
||||
clang)
|
||||
nxt_have=NXT_CLANG . auto/have
|
||||
|
||||
NXT_CFLAGS="$NXT_CFLAGS -pipe"
|
||||
NXT_CFLAGS="$NXT_CFLAGS -fPIC"
|
||||
|
||||
# Do not export symbols except explicitly marked with NXT_EXPORT.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -fvisibility=hidden"
|
||||
|
||||
NXT_CFLAGS="$NXT_CFLAGS -O"
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -O0"
|
||||
NXT_CFLAGS="$NXT_CFLAGS -W -Wall -Wextra"
|
||||
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -Wunused-result"
|
||||
NXT_CFLAGS="$NXT_CFLAGS -Wno-unused-parameter"
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -Wshorten-64-to-32"
|
||||
NXT_CFLAGS="$NXT_CFLAGS -Wwrite-strings"
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -O2"
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -fomit-frame-pointer"
|
||||
NXT_CFLAGS="$NXT_CFLAGS -fstrict-aliasing"
|
||||
NXT_CFLAGS="$NXT_CFLAGS -Wstrict-overflow=5"
|
||||
|
||||
NXT_CFLAGS="$NXT_CFLAGS -Wmissing-prototypes"
|
||||
|
||||
# Stop on warning.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -Werror"
|
||||
|
||||
# Debug.
|
||||
|
||||
if [ "$NXT_SYSTEM_PLATFORM" != "powerpc" ]; then
|
||||
# "-g" flag causes the "unknown pseudo-op: `.cfi_sections'"
|
||||
# error on PowerPC Clang.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -g"
|
||||
fi
|
||||
;;
|
||||
|
||||
SunC)
|
||||
nxt_have=NXT_SUNC . auto/have
|
||||
|
||||
NXT_CFLAGS="$NXT_CFLAGS -fPIC"
|
||||
# Optimization.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -O -fast"
|
||||
# Stop on warning.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -errwarn=%all"
|
||||
# Debug.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -g"
|
||||
;;
|
||||
|
||||
xlC)
|
||||
nxt_have=NXT_XLC . auto/have
|
||||
|
||||
#NXT_CFLAGS="$NXT_CFLAGS -qalloca"
|
||||
# alloca support.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -qlanglvl=extc99"
|
||||
# __thread support.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -qtls"
|
||||
# Suppress warning
|
||||
# 1506-159 (E) Bit field type specified for XXX is not valid.
|
||||
# Type unsigned assumed.
|
||||
NXT_CFLAGS="$NXT_CFLAGS -qsuppress=1506-159"
|
||||
;;
|
||||
|
||||
ICC)
|
||||
;;
|
||||
|
||||
MSVC)
|
||||
;;
|
||||
|
||||
*)
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# Stop on error exit status again.
|
||||
set -e
|
||||
Reference in New Issue
Block a user