|  |  | 
|  | # Copyright (C) Igor Sysoev | 
|  |  | 
|  |  | 
|  | # Intel C++ compiler 7.1, 8.0, 8.1, 9.0 | 
|  |  | 
|  | NGX_ICC_VER=`$CC -V 2>&1 | grep 'Version' 2>&1 \ | 
|  | | sed -e 's/^.* Version \([^ ]*\) *Build.*$/\1/'` | 
|  |  | 
|  | echo " + icc version: $NGX_ICC_VER" | 
|  |  | 
|  | have=NGX_COMPILER value="\"Intel C Compiler $NGX_ICC_VER\"" . auto/define | 
|  |  | 
|  |  | 
|  | # optimizations | 
|  |  | 
|  | CFLAGS="$CFLAGS -O" | 
|  | # inline the functions declared with __inline | 
|  | #CFLAGS="$CFLAGS -Ob1" | 
|  | # inline any function, at the compiler's discretion | 
|  | CFLAGS="$CFLAGS -Ob2" | 
|  |  | 
|  | # multi-file IP optimizations | 
|  | case "$NGX_ICC_VER" in | 
|  | 9.*) | 
|  | IPO="-ipo" | 
|  | ;; | 
|  |  | 
|  | # 8.1.38 under FreeBSD can not link -ipo | 
|  | 8.1) | 
|  | IPO="-ip" | 
|  | ;; | 
|  |  | 
|  | *) | 
|  | IPO="-ipo -ipo_obj" | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | # single-file IP optimizations | 
|  | #IPO="-ip" | 
|  |  | 
|  | CFLAGS="$CFLAGS $IPO" | 
|  | CORE_LINK="$CORE_LINK $IPO" | 
|  | CORE_LINK="$CORE_LINK -opt_report_file=$NGX_OBJS/opt_report_file" | 
|  |  | 
|  |  | 
|  | case $CPU in | 
|  | pentium) | 
|  | # optimize for Pentium and Athlon | 
|  | CPU_OPT="-march=pentium" | 
|  | ;; | 
|  |  | 
|  | pentiumpro) | 
|  | # optimize for Pentium Pro, Pentium II and Pentium III | 
|  | CPU_OPT="-mcpu=pentiumpro -march=pentiumpro" | 
|  | ;; | 
|  |  | 
|  | pentium4) | 
|  | # optimize for Pentium 4, default | 
|  | CPU_OPT="-march=pentium4" | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | CFLAGS="$CFLAGS $CPU_OPT" | 
|  |  | 
|  | if [ ".$PCRE_OPT" = "." ]; then | 
|  | PCRE_OPT="-O $IPO $CPU_OPT" | 
|  | fi | 
|  |  | 
|  | if [ ".$MD5_OPT" = "." ]; then | 
|  | MD5_OPT="-O $IPO $CPU_OPT" | 
|  | fi | 
|  |  | 
|  | if [ ".$ZLIB_OPT" = "." ]; then | 
|  | ZLIB_OPT="-O $IPO $CPU_OPT" | 
|  | fi | 
|  |  | 
|  |  | 
|  | # warnings | 
|  |  | 
|  | CFLAGS="$CFLAGS -w2" | 
|  |  | 
|  | # disable some warnings | 
|  |  | 
|  | # invalid type conversion: "int" to "char *" | 
|  | CFLAGS="$CFLAGS -wd171" | 
|  | # argument is incompatible with corresponding format string conversion | 
|  | CFLAGS="$CFLAGS -wd181" | 
|  | # zero used for undefined preprocessing identifier | 
|  | CFLAGS="$CFLAGS -wd193" | 
|  | # the format string ends before this argument | 
|  | CFLAGS="$CFLAGS -wd268" | 
|  | # invalid format string conversion | 
|  | CFLAGS="$CFLAGS -wd269" | 
|  | # conversion from "long long" to "size_t" may lose significant bits | 
|  | CFLAGS="$CFLAGS -wd810" | 
|  | # parameter was never referenced | 
|  | CFLAGS="$CFLAGS -wd869" | 
|  | # attribute "unused" is only allowed in a function definition, warning on pTHX_ | 
|  | CFLAGS="$CFLAGS -wd1301" | 
|  |  | 
|  | # STUB | 
|  | # enumerated type mixed with another type | 
|  | CFLAGS="$CFLAGS -wd188" | 
|  | # controlling expression is constant | 
|  | CFLAGS="$CFLAGS -wd279" | 
|  | # operands are evaluated in unspecified order | 
|  | CFLAGS="$CFLAGS -wd981" | 
|  | # external definition with no prior declaration | 
|  | CFLAGS="$CFLAGS -wd1418" | 
|  | # external declaration in primary source file | 
|  | CFLAGS="$CFLAGS -wd1419" | 
|  |  | 
|  | case "$NGX_ICC_VER" in | 
|  | 9.*) | 
|  | # "cc" clobber ignored, warnings for Liunx's htonl()/htons() | 
|  | CFLAGS="$CFLAGS -wd1469" | 
|  | # explicit conversion of a 64-bit integral type to a smaller | 
|  | # integral type | 
|  | CFLAGS="$CFLAGS -wd1683" | 
|  | # conversion from pointer to same-sized integral type, | 
|  | # warning on offsetof() | 
|  | CFLAGS="$CFLAGS -wd1684" | 
|  | # floating-point equality and inequality comparisons are unreliable, | 
|  | # warning on SvTRUE() | 
|  | CFLAGS="$CFLAGS -wd1572" | 
|  | ;; | 
|  |  | 
|  | 8.*) | 
|  | # "cc" clobber ignored, warnings for Liunx's htonl()/htons() | 
|  | CFLAGS="$CFLAGS -wd1469" | 
|  | # floating-point equality and inequality comparisons are unreliable, | 
|  | # warning on SvTRUE() | 
|  | CFLAGS="$CFLAGS -wd1572" | 
|  | ;; | 
|  |  | 
|  | *) | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | # stop on warning | 
|  | CFLAGS="$CFLAGS -Werror" | 
|  |  | 
|  | # debug | 
|  | CFLAGS="$CFLAGS -g" |