summaryrefslogtreecommitdiffhomepage
path: root/auto/cc
diff options
context:
space:
mode:
Diffstat (limited to 'auto/cc')
-rw-r--r--auto/cc/test209
1 files changed, 209 insertions, 0 deletions
diff --git a/auto/cc/test b/auto/cc/test
new file mode 100644
index 00000000..9c9602db
--- /dev/null
+++ b/auto/cc/test
@@ -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