blob: 34e4379eabab9ed7257c5edc4b66c5889cda1cab (
plain) (
tree)
|
|
# 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
NXT_CC_NAME=cc
NXT_CC_VERSION=cc
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"
NXT_CFLAGS="$NXT_CFLAGS -fno-strict-overflow"
NXT_CFLAGS="$NXT_CFLAGS -std=gnu11"
NXT_CFLAGS="$NXT_CFLAGS -O"
NXT_CFLAGS="$NXT_CFLAGS -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 -fno-strict-aliasing"
#NXT_CFLAGS="$NXT_CFLAGS -fomit-frame-pointer"
#NXT_CFLAGS="$NXT_CFLAGS -momit-leaf-frame-pointer"
# While -Wstrict-overflow is supported by GCC 4.2+,
# at level 3 and above it is prone to give false
# positives.
#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 -fno-strict-overflow"
NXT_CFLAGS="$NXT_CFLAGS -std=gnu11"
NXT_CFLAGS="$NXT_CFLAGS -O"
NXT_CFLAGS="$NXT_CFLAGS -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"
# strict-aliasing is always enabled by default in clang
NXT_CFLAGS="$NXT_CFLAGS -fno-strict-aliasing"
#NXT_CFLAGS="$NXT_CFLAGS -fomit-frame-pointer"
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
;;
*)
;;
esac
# Stop on error exit status again.
set -e
|