summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorkmu <kmu@hdfgroup.org>2019-11-14 15:28:03 (GMT)
committerkmu <kmu@hdfgroup.org>2019-11-14 15:28:03 (GMT)
commit3613ec7296a782c86ea5f0706a5a0cb51602abc9 (patch)
tree9be4fa9e5b48e88f993723daf1b13ebd03219f66 /config
parentd06474c4e1ba8628f896e57e619d4b142e6ba8b0 (diff)
downloadhdf5-3613ec7296a782c86ea5f0706a5a0cb51602abc9.zip
hdf5-3613ec7296a782c86ea5f0706a5a0cb51602abc9.tar.gz
hdf5-3613ec7296a782c86ea5f0706a5a0cb51602abc9.tar.bz2
let hdf5 pick up the right compiler in Intel environment
Diffstat (limited to 'config')
-rw-r--r--config/gnu-cxxflags21
-rw-r--r--config/gnu-flags5
-rw-r--r--config/intel-cxxflags102
-rw-r--r--config/linux-gnulibc13
4 files changed, 121 insertions, 10 deletions
diff --git a/config/gnu-cxxflags b/config/gnu-cxxflags
index e0f2999..744f56d 100644
--- a/config/gnu-cxxflags
+++ b/config/gnu-cxxflags
@@ -28,29 +28,32 @@ if test X = "X$cxx_flags_set"; then
# filter it out.
# icc beginning with version 12 includes a "gcc version compatiblilty"
# string, causing the gcc H5_CFLAGS to be erroneously added. The line
- # "grep -v 'icc version'" causes the discarding of any output
- # containing 'icc version'. The cc_version for icc is correctly determined
- # and flags added in the intel-flags script.
+ # "grep -v 'icpc version'" causes the discarding of any output
+ # containing 'icpc version'. The line "grep -v 'icpc.orig version'"
+ # causes the discarding of any output containing 'icpc.orig version'.
+ # The cxx_version for icc is correctly determined
+ # and flags added in the intel-cxxflags script.
cxx_version="`$CXX $CXXFLAGS $H5_CXXFLAGS -v 2>&1 | grep -v 'PathScale' |\
grep -v 'icc version' |\
+ grep -v 'icpc version' |\
+ grep -v 'icpc.orig version' |\
grep 'gcc version' | sed 's/.*gcc version \([-a-z0-9\.]*\).*/\1/'`"
cxx_vendor=`echo $cxx_version |sed 's/\([a-z]*\).*/\1/'`
cxx_version=`echo $cxx_version |sed 's/[-a-z]//g'`
if test X = "X$cxx_vendor" -a X != "X$cxx_version"; then
- cxx_vendor=g++
+ cxx_vendor=g++
fi
if test "-" != "$cxx_vendor-$cxx_version"; then
- echo "compiler '$CXX' is GNU $cxx_vendor-$cxx_version"
+ echo "compiler '$CXX' is GNU $cxx_vendor-$cxx_version"
fi
# Some version numbers
cxx_vers_major=`echo $cxx_version | cut -f1 -d.`
cxx_vers_minor=`echo $cxx_version | cut -f2 -d.`
cxx_vers_patch=`echo $cxx_version | cut -f3 -d.`
- test -n "$cc_vers_major" || cxx_vers_major=0
- test -n "$cc_vers_minor" || cxx_vers_minor=0
- test -n "$cc_vers_patch" || cxx_vers_patch=0
- cxx_vers_all=`expr $cxx_vers_major '*' 1000000 + $cxx_vers_minor '*' 1000 + $cxx_vers_patch`
+ test -n "$cxx_vers_major" || cxx_vers_major=0
+ test -n "$cxx_vers_minor" || cxx_vers_minor=0
+ test -n "$cxx_vers_patch" || cxx_vers_patch=0
fi
# Common g++ flags for various situations
diff --git a/config/gnu-flags b/config/gnu-flags
index 6355ccf..7a6686e 100644
--- a/config/gnu-flags
+++ b/config/gnu-flags
@@ -29,10 +29,13 @@ if test "X-" = "X-$cc_flags_set"; then
# icc beginning with version 12 includes a "gcc version compatiblilty"
# string, causing the gcc H5_CFLAGS to be erroneously added. The line
# "grep -v 'icc version'" causes the discarding of any output
- # containing 'icc version'. The cc_version for icc is correctly determined
+ # containing 'icc version'. The line "grep -v 'icc.orig version'" causes
+ # the discarding of any output containing 'icc.orig version'.
+ # The cc_version for icc is correctly determined
# and flags added in the intel-flags script.
cc_version="`$CC $CFLAGS $H5_CFLAGS -v 2>&1 | grep -v 'PathScale' |\
grep -v 'icc version' |\
+ grep -v 'icc.orig version' |\
grep 'gcc version' | sed 's/.*gcc version \([-a-z0-9\.]*\).*/\1/'`"
cc_vendor=`echo $cc_version |sed 's/\([a-z]*\).*/\1/'`
cc_version=`echo $cc_version |sed 's/[-a-z]//g'`
diff --git a/config/intel-cxxflags b/config/intel-cxxflags
new file mode 100644
index 0000000..97fe021
--- /dev/null
+++ b/config/intel-cxxflags
@@ -0,0 +1,102 @@
+# -*- shell-script -*-
+#
+# Copyright by The HDF Group.
+# Copyright by the Board of Trustees of the University of Illinois.
+# All rights reserved.
+#
+# This file is part of HDF5. The full HDF5 copyright notice, including
+# terms governing use, modification, and redistribution, is contained in
+# the COPYING file, which can be found at the root of the source code
+# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
+# If you do not have access to either file, you may request a copy from
+# help@hdfgroup.org.
+
+
+# This file should be sourced into configure if the compiler is the
+# Intel icc compiler or a derivative. It is careful not to do anything
+# if the compiler is not Intel; otherwise `cxx_flags_set' is set to `yes'
+#
+
+# Get the compiler version in a way that works for icpc
+# icpc unless a compiler version is already known
+#
+# cxx_vendor: The compiler name: icpc
+# cxx_version: Version number: 18.0.1
+#
+if test X = "X$cxx_flags_set"; then
+ cxx_version="`$CXX $CXXFLAGS $H5_CXXFLAGS -V 2>&1 |grep 'Version'`"
+ if test X != "X$cxx_version"; then
+ cxx_vendor=icpc
+ cxx_version=`echo $cxx_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'`
+ echo "compiler '$CXX' is Intel $cxx_vendor-$cxx_version"
+
+ # Some version numbers
+ # Intel version numbers are of the form: "major.minor"
+ cxx_vers_major=`echo $cxx_version | cut -f1 -d.`
+ cxx_vers_minor=`echo $cxx_version | cut -f2 -d.`
+ cxx_vers_patch=`echo $cxx_version | cut -f3 -d.`
+ test -n "$cxx_vers_major" || cxx_vers_major=0
+ test -n "$cxx_vers_minor" || cxx_vers_minor=0
+ test -n "$cxx_vers_patch" || cxx_vers_patch=0
+ fi
+fi
+
+# Common Intel flags for various situations
+if test "X-icpc" = "X-$cxx_vendor"; then
+ # Insert section about version specific problems from compiler flags here,
+ # if necessary.
+
+ arch=
+ # Architecture-specific flags
+ # Nothing currently. (Uncomment code below and modify to add any)
+ #case "$host_os-$host_cpu" in
+ # *-i686)
+ # arch="-march=i686"
+ # ;;
+ #esac
+
+ # Host-specific flags
+ # Nothing currently. (Uncomment code below and modify to add any)
+ #case "`hostname`" in
+ # sleipnir.ncsa.uiuc.edu)
+ # arch="$arch -pipe"
+ # ;;
+ #esac
+
+ # General
+ # Default to C99 standard.
+ H5_CFLAGS="$H5_CFLAGS $arch -std=c99 -Wcheck -Wall"
+
+ # Production
+ PROD_CFLAGS=
+
+ # Debug
+ # NDEBUG is handled explicitly in configure
+ DEBUG_CFLAGS=
+
+ # Symbols
+ SYMBOLS_CFLAGS="-g"
+ NO_SYMBOLS_CFLAGS="-Wl,-s"
+
+ # Profiling
+ # Use this for profiling with gprof
+ PROFILE_CFLAGS="-p"
+
+ # Optimization
+ HIGH_OPT_CFLAGS="-O3"
+ DEBUG_OPT_CFLAGS="-O0"
+ NO_OPT_CFLAGS="-O0"
+
+ # Flags are set
+ cxx_flags_set=yes
+
+fi
+
+# Version specific ICC flags
+# TODO
+
+# Clear cxx info if no flags set
+if test "X-$cxx_flags_set" = "X-"; then
+ cxx_vendor=
+ cxx_version=
+fi
diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1
index 39225e7..bf5915a 100644
--- a/config/linux-gnulibc1
+++ b/config/linux-gnulibc1
@@ -194,6 +194,9 @@ fi
# Figure out GNU CXX compiler flags
. $srcdir/config/gnu-cxxflags
+# Figure out Intel CXX compiler flags
+. $srcdir/config/intel-cxxflags
+
# compiler version strings
# check if the compiler_version_info is already set