| |
| # 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" |