1 2# Copyright (C) Igor Sysoev 3# Copyright (C) NGINX, Inc. 4 5 6$echo checking for C compiler: $CC 7cat << END >> $NXT_AUTOCONF_ERR 8---------------------------------------- 9checking for C compiler: $CC 10END 11 12 13# Allow error exit status. 14set +e 15 16if [ -z `which $CC` ]; then 17 $echo 18 $echo $0: error: $CC not found. 19 $echo 20 exit 1; 21fi 22 23 24if `/bin/sh -c "($CC -v)" 2>&1 | grep "gcc version" >> $NXT_AUTOCONF_ERR 2>&1` 25then 26 NXT_CC_NAME=gcc 27 $echo " + using GNU C compiler" 28 NXT_CC_VERSION=`/bin/sh -c "($CC -v)" 2>&1 | grep "gcc version" 2>&1` 29 $echo " + $NXT_CC_VERSION" 30 31else 32if `/bin/sh -c "($CC -v)" 2>&1 | grep "clang version" >> $NXT_AUTOCONF_ERR 2>&1` 33then 34 NXT_CC_NAME=clang 35 $echo " + using Clang C compiler" 36 NXT_CC_VERSION=`/bin/sh -c "($CC -v)" 2>&1 | grep "clang version" 2>&1` 37 $echo " + $NXT_CC_VERSION" 38 39else 40if `/bin/sh -c "($CC -v)" 2>&1 \ 41 | grep "Apple LLVM version" >> $NXT_AUTOCONF_ERR 2>&1` 42then 43 NXT_CC_NAME=clang 44 $echo " + using Clang C compiler" 45 NXT_CC_VERSION=`/bin/sh -c "($CC -v)" 2>&1 | grep "Apple LLVM version" 2>&1` 46 $echo " + $NXT_CC_VERSION" 47 48else 49if `/bin/sh -c "($CC -V)" 2>&1 | grep "Sun C" >> $NXT_AUTOCONF_ERR 2>&1` 50then 51 NXT_CC_NAME=SunC 52 $echo " + using Sun C compiler" 53 NXT_CC_VERSION=`/bin/sh -c "($CC -V)" 2>&1 | grep "Sun C" 2>&1` 54 $echo " + $NXT_CC_VERSION" 55 56else 57if `/bin/sh -c "($CC -qversion)" 2>&1 \ 58 | grep "^IBM XL" >> $NXT_AUTOCONF_ERR 2>&1` 59then 60 NXT_CC_NAME=xlC 61 $echo " + using AIX xlC compiler" 62 NXT_CC_VERSION=`/bin/sh -c "($CC -qversion)" 2>&1 | grep "IBM XL" 2>&1` 63 $echo " + $NXT_CC_VERSION" 64 65else 66if `/bin/sh -c "($CC -V)" 2>&1 | grep "Intel(R) C" >> $NXT_AUTOCONF_ERR 2>&1` 67then 68 NXT_CC_NAME=ICC 69 $echo " + using Intel C++ compiler" 70 NXT_CC_VERSION=ICC 71 72else 73if `/bin/sh -c "($CC -v)" 2>&1 \ 74 | grep "Microsoft (R) 32-bit C/C" >> $NXT_AUTOCONF_ERR 2>&1` 75then 76 NXT_CC_NAME=MSVC 77 $echo " + using MS Visual C++ compiler" 78 NXT_CC_VERSION=MSVC 79 80else 81 NXT_CC_NAME=cc 82 NXT_CC_VERSION=cc 83 84fi # MSVC 85fi # ICC 86fi # xlC 87fi # SunC 88fi # Apple LLVM clang 89fi # clang 90fi # gcc 91 92 93case $NXT_CC_NAME in 94 95 gcc) 96 nxt_have=NXT_GCC . auto/have 97 98 NXT_CFLAGS="$NXT_CFLAGS -pipe" 99 NXT_CFLAGS="$NXT_CFLAGS -fPIC" 100 101 # Do not export symbols except explicitly marked with NXT_EXPORT. 102 NXT_CFLAGS="$NXT_CFLAGS -fvisibility=hidden" 103 104 # c99/gnu99 conflict with Solaris XOPEN. 105 #NXT_CFLAGS="$NXT_CFLAGS -std=gnu99" 106 107 NXT_CFLAGS="$NXT_CFLAGS -O" 108 #NXT_CFLAGS="$NXT_CFLAGS -O0" 109 NXT_CFLAGS="$NXT_CFLAGS -W -Wall -Wextra" 110 111 #NXT_CFLAGS="$NXT_CFLAGS -Wunused-result" 112 NXT_CFLAGS="$NXT_CFLAGS -Wno-unused-parameter" 113 #NXT_CFLAGS="$NXT_CFLAGS -Wshorten-64-to-32" 114 NXT_CFLAGS="$NXT_CFLAGS -Wwrite-strings" 115 116 # -O2 enables -fstrict-aliasing and -fstrict-overflow. 117 #NXT_CFLAGS="$NXT_CFLAGS -O2" 118 #NXT_CFLAGS="$NXT_CFLAGS -Wno-strict-aliasing" 119 120 #NXT_CFLAGS="$NXT_CFLAGS -fomit-frame-pointer" 121 #NXT_CFLAGS="$NXT_CFLAGS -momit-leaf-frame-pointer" 122 123 # -Wstrict-overflow is supported by GCC 4.2+. 124 #NXT_CFLAGS="$NXT_CFLAGS -Wstrict-overflow=5" 125 126 NXT_CFLAGS="$NXT_CFLAGS -Wmissing-prototypes" 127 128 # Stop on warning. 129 NXT_CFLAGS="$NXT_CFLAGS -Werror" 130 131 # Debug. 132 NXT_CFLAGS="$NXT_CFLAGS -g" 133 ;; 134 135 clang) 136 nxt_have=NXT_CLANG . auto/have 137 138 NXT_CFLAGS="$NXT_CFLAGS -pipe" 139 NXT_CFLAGS="$NXT_CFLAGS -fPIC" 140 141 # Do not export symbols except explicitly marked with NXT_EXPORT. 142 NXT_CFLAGS="$NXT_CFLAGS -fvisibility=hidden" 143 144 NXT_CFLAGS="$NXT_CFLAGS -O" 145 #NXT_CFLAGS="$NXT_CFLAGS -O0" 146 NXT_CFLAGS="$NXT_CFLAGS -W -Wall -Wextra" 147 148 #NXT_CFLAGS="$NXT_CFLAGS -Wunused-result" 149 NXT_CFLAGS="$NXT_CFLAGS -Wno-unused-parameter" 150 #NXT_CFLAGS="$NXT_CFLAGS -Wshorten-64-to-32" 151 NXT_CFLAGS="$NXT_CFLAGS -Wwrite-strings" 152 #NXT_CFLAGS="$NXT_CFLAGS -O2" 153 #NXT_CFLAGS="$NXT_CFLAGS -fomit-frame-pointer" 154 NXT_CFLAGS="$NXT_CFLAGS -fstrict-aliasing" 155 NXT_CFLAGS="$NXT_CFLAGS -Wstrict-overflow=5" 156 157 NXT_CFLAGS="$NXT_CFLAGS -Wmissing-prototypes" 158 159 # Stop on warning. 160 NXT_CFLAGS="$NXT_CFLAGS -Werror" 161 162 # Debug. 163 164 if [ "$NXT_SYSTEM_PLATFORM" != "powerpc" ]; then 165 # "-g" flag causes the "unknown pseudo-op: `.cfi_sections'" 166 # error on PowerPC Clang. 167 NXT_CFLAGS="$NXT_CFLAGS -g" 168 fi 169 ;; 170 171 SunC) 172 nxt_have=NXT_SUNC . auto/have 173 174 NXT_CFLAGS="$NXT_CFLAGS -fPIC" 175 # Optimization. 176 NXT_CFLAGS="$NXT_CFLAGS -O -fast" 177 # Stop on warning. 178 NXT_CFLAGS="$NXT_CFLAGS -errwarn=%all" 179 # Debug. 180 NXT_CFLAGS="$NXT_CFLAGS -g" 181 ;; 182 183 xlC) 184 nxt_have=NXT_XLC . auto/have 185 186 #NXT_CFLAGS="$NXT_CFLAGS -qalloca" 187 # alloca support. 188 NXT_CFLAGS="$NXT_CFLAGS -qlanglvl=extc99" 189 # __thread support. 190 NXT_CFLAGS="$NXT_CFLAGS -qtls" 191 # Suppress warning 192 # 1506-159 (E) Bit field type specified for XXX is not valid. 193 # Type unsigned assumed. 194 NXT_CFLAGS="$NXT_CFLAGS -qsuppress=1506-159" 195 ;; 196 197 ICC) 198 ;; 199 200 MSVC) 201 ;; 202 203 *) 204 ;; 205 206esac 207 208# Stop on error exit status again. 209set -e 210