is_intel_icc2="`($CXX -help 2>&1) | grep 'Intel(R) C++ Compiler'`"
is_intel_icc="$is_intel_icc1$is_intel_icc2"
if test "x$is_intel_icc" != "x" ; then
- AC_MSG_RESULT(C++ compiler is Intel ICC)
- GXX_VERSION=intel_icc
+ version5="`echo $is_intel_icc | grep 'Version 5'`"
+ version6="`echo $is_intel_icc | grep 'Version 6'`"
+ version7="`echo $is_intel_icc | grep 'Version 7'`"
+ if test "x$version5" != "x" ; then
+ AC_MSG_RESULT(C++ compiler is Intel ICC 5)
+ GXX_VERSION=intel_icc5
+ else if test "x$version6" != "x" ; then
+ AC_MSG_RESULT(C++ compiler is Intel ICC 6)
+ GXX_VERSION=intel_icc6
+ else if test "x$version7" != "x" ; then
+ AC_MSG_RESULT(C++ compiler is Intel ICC 7)
+ GXX_VERSION=intel_icc7
+ else
+ AC_MSG_RESULT(C++ compiler is Intel ICC)
+ GXX_VERSION=intel_icc
+ fi fi fi
else
dnl Intel's ECC C++ compiler for the Itanium?
LDFLAGSPIC="-KPIC"
;;
- intel_icc)
+ intel_icc*)
dnl Disable some compiler warnings, as they often are wrong on
dnl our code:
dnl #175: `subscript out of range' (doesn't take into account that
dnl #525: `type "DataOutBase::DataOutBase" is an inaccessible type
dnl (allowed for compatibility)' (I don't understand what the
dnl compiler means)
- dnl
- dnl Note: we would really like to use -ansi -Xc, since that
- dnl is _very_ picky about standard C++, and is thus very efficient
- dnl in detecting slight standard violations, but these flags are
- dnl also very efficient in crashing the compiler (it generates a
- dnl segfault)
CXXFLAGSG="$CXXFLAGS -Kc++eh -Krtti -w1 -wd175 -wd525 -wd327 -wd424 -DDEBUG -inline_debug_info"
- CXXFLAGSO="$CXXFLAGS -Kc++eh -Krtti -O2 -tpp6 -axiMK -ip -unroll -w0 -wd424"
+ CXXFLAGSO="$CXXFLAGS -Kc++eh -Krtti -O2 -tpp6 -axiMK -ip -unroll -w0 -wd424 -opt_report_levelmin"
CXXFLAGSPIC="-KPIC"
LDFLAGSPIC="-KPIC -shared"
+
+
+ dnl We would really like to use -ansi -Xc, since that
+ dnl is _very_ picky about standard C++, and is thus very efficient
+ dnl in detecting slight standard violations, but these flags are
+ dnl also very efficient in crashing the compiler (it generates a
+ dnl segfault), at least with versions prior to 7.0. So only
+ dnl use these flags with versions we know are safe
+ dnl
+ dnl Second thing: icc7 allows using alias information for
+ dnl optimization. Use this.
+ if test "x$GXX_VERSION" != "xintel_icc5" -a \
+ "x$GXX_VERSION" != "xintel_icc6" ; then
+ CXXFLAGSG="$CXXFLAGSG -Xc -ansi"
+ CXXFLAGSO="$CXXFLAGSO -ansi_alias"
+ fi
;;
intel_ecc)
CXXFLAGSO="$CXXFLAGSO -pthread"
;;
- intel_icc)
+ intel_icc*)
CXXFLAGSG="$CXXFLAGSG"
CXXFLAGSO="$CXXFLAGSO -parallel"
;;
is_intel_icc2="`($CXX -help 2>&1) | grep 'Intel(R) C++ Compiler'`"
is_intel_icc="$is_intel_icc1$is_intel_icc2"
if test "x$is_intel_icc" != "x" ; then
- echo "$as_me:$LINENO: result: C++ compiler is Intel ICC" >&5
+ version5="`echo $is_intel_icc | grep 'Version 5'`"
+ version6="`echo $is_intel_icc | grep 'Version 6'`"
+ version7="`echo $is_intel_icc | grep 'Version 7'`"
+ if test "x$version5" != "x" ; then
+ echo "$as_me:$LINENO: result: C++ compiler is Intel ICC 5" >&5
+echo "${ECHO_T}C++ compiler is Intel ICC 5" >&6
+ GXX_VERSION=intel_icc5
+ else if test "x$version6" != "x" ; then
+ echo "$as_me:$LINENO: result: C++ compiler is Intel ICC 6" >&5
+echo "${ECHO_T}C++ compiler is Intel ICC 6" >&6
+ GXX_VERSION=intel_icc6
+ else if test "x$version7" != "x" ; then
+ echo "$as_me:$LINENO: result: C++ compiler is Intel ICC 7" >&5
+echo "${ECHO_T}C++ compiler is Intel ICC 7" >&6
+ GXX_VERSION=intel_icc7
+ else
+ echo "$as_me:$LINENO: result: C++ compiler is Intel ICC" >&5
echo "${ECHO_T}C++ compiler is Intel ICC" >&6
- GXX_VERSION=intel_icc
+ GXX_VERSION=intel_icc
+ fi fi fi
else
is_intel_ecc="`($CXX -V 2>&1) | grep 'Intel(R) C++ Itanium(TM) Compiler'`"
LDFLAGSPIC="-KPIC"
;;
- intel_icc)
- CXXFLAGSG="$CXXFLAGS -Kc++eh -Krtti -w1 -wd175 -wd525 -wd327 -wd424 -DDEBUG -inline_debug_info"
- CXXFLAGSO="$CXXFLAGS -Kc++eh -Krtti -O2 -tpp6 -axiMK -ip -unroll -w0 -wd424"
+ intel_icc*)
+ CXXFLAGSG="$CXXFLAGS -Kc++eh -Krtti -w1 -wd175 -wd525 -wd327 -wd424 -DDEBUG -inline_debug_info"
+ CXXFLAGSO="$CXXFLAGS -Kc++eh -Krtti -O2 -tpp6 -axiMK -ip -unroll -w0 -wd424 -opt_report_levelmin"
CXXFLAGSPIC="-KPIC"
LDFLAGSPIC="-KPIC -shared"
+
+
+ if test "x$GXX_VERSION" != "xintel_icc5" -a \
+ "x$GXX_VERSION" != "xintel_icc6" ; then
+ CXXFLAGSG="$CXXFLAGSG -Xc -ansi"
+ CXXFLAGSO="$CXXFLAGSO -ansi_alias"
+ fi
;;
intel_ecc)
CXXFLAGSO="$CXXFLAGSO -pthread"
;;
- intel_icc)
+ intel_icc*)
CXXFLAGSG="$CXXFLAGSG"
CXXFLAGSO="$CXXFLAGSO -parallel"
;;
<code>gcc2.97</code>, <code>gcc3.0</code>,
<code>ibm_xlc</code>, <code>MIPSpro</code>,
<code>sun_workshop</code>, <code>sun_forte</code>,
- <code>intel_icc</code>, <code>compaq_cxx</code>. Not all of
+ <code>intel_icc5</code>, <code>intel_icc6</code>,
+ <code>intel_icc7</code>, <code>compaq_cxx</code>. Not all of
these compilers are actually supported (see the
<a href="../readme.html" target="body">ReadMe file</a> for a
list of supported compilers and platforms), it is only a list of
<h3>General</h3>
<ol>
+ <li> <p>
+ New: <acronym>deal.II</acronym> can be compiled with version 7.0 of
+ Intel's icc compiler, which was recently released. Since this compiler
+ finally supports the very restrictive flags <code>-Xc -ansi</code> that
+ check for close conformance with the C++ standard, we use them (previous
+ versions of icc would crash when these two flags are given). This
+ requires that we distinguish between these compiler versions, and the
+ corresponding Makefile variable <code>GXX-VERSION</code> now no longer
+ holds the non-versioned string <code>intel_icc</code> when icc is
+ detected, but rather either <code>intel_icc5</code>,
+ <code>intel_icc6</code>, or <code>intel_icc7</code>, depending on what
+ version of the compiler was detected.
+ <br>
+ (WB 2002/12/05)
+ </p>
+
<li> <p>
Changed: Previously, we just set the preprocessor variable
<code>DEAL_II_USE_MT</code>, when <code>--with-multithreading</code> was
<dl>
+ <dt>
+ <strong>2002/12/05: Intel ICC 7.0 compiler supported</strong>
+ </dt>
+ <dd>
+ deal.II now also supports compilation by the recently released
+ Intel's icc 7.0 compiler.
+ </dd>
+
<dt>
<strong>2002/11/27: Modified Incomplete Cholesky decomposition</strong>
</dt>