summaryrefslogtreecommitdiffstats
path: root/config/ibm-flags
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>2010-06-01 07:03:03 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>2010-06-01 07:03:03 (GMT)
commitf16711cc5eae92d3e2277358ea73ddbb3e30b40d (patch)
tree376e76b8c49719631b949cf737eaf348aea637c9 /config/ibm-flags
parent7eb4441658717332e475e317570b58eb2cbd6f9f (diff)
downloadhdf5-f16711cc5eae92d3e2277358ea73ddbb3e30b40d.zip
hdf5-f16711cc5eae92d3e2277358ea73ddbb3e30b40d.tar.gz
hdf5-f16711cc5eae92d3e2277358ea73ddbb3e30b40d.tar.bz2
[svn-r18929] New feature:
Added ibm-flags to display the IBM XL compilers version information so that configure can report them in the configure summary and the libhdf5.settings file. For now, only the C compiler (xlc) versions are displayed. Also moved the C compiler options setting from ibm-aix to ibm-flags. Tested: NCSA Blue-print, both 32 and 64 bit modes.
Diffstat (limited to 'config/ibm-flags')
-rw-r--r--config/ibm-flags77
1 files changed, 77 insertions, 0 deletions
diff --git a/config/ibm-flags b/config/ibm-flags
new file mode 100644
index 0000000..9e63f79
--- /dev/null
+++ b/config/ibm-flags
@@ -0,0 +1,77 @@
+# -*- 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 files COPYING and Copyright.html. COPYING can be found at the root
+# of the source code distribution tree; Copyright.html can be found at the
+# root level of an installed copy of the electronic HDF5 document set and
+# is linked from the top-level documents page. It can also be found at
+# http://hdfgroup.org/HDF5/doc/Copyright.html. 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
+# IBM XL compiler or a derivative. It is careful not to do anything
+# if the compiler is not IBM; otherwise `cc_flags_set' is set to `yes'
+#
+
+# Get the compiler version in a way that works for pgcc
+# pgcc unless a compiler version is already known
+#
+# cc_vendor: The compiler product name: XL
+# cc_version: Version number: 10.1
+# cc_version_info: More descriptive version information
+#
+if test X = "X$cc_flags_set"; then
+ # Verify this is an IBM XL compiler
+ cc_version="`$CC $CFLAGS -qversion 2>&1 | grep '^IBM XL C/C++'`"
+ if test X != "X$cc_version"; then
+ cc_vendor="XL"
+ cc_version="`$CC $CFLAGS -qversion 2>&1 | sed -n 's/Version: \([0-9\.]*\).*/\1/p'`"
+ cc_version_info="IBM XL C/C++ $cc_version"
+ echo "compiler '$CC' is IBM $cc_vendor-$cc_version"
+
+ # Some more version numbers.
+ # XL version numbers are of the form: "major.minor.X.Y"
+ # (Need to find out the official meaning of the 4 components.)
+ cc_vers_major=`echo $cc_version | cut -f1 -d.`
+ cc_vers_minor=`echo $cc_version | cut -f2 -d.`
+ cc_vers_patch=`echo $cc_version | cut -f3 -d.`
+ test -n "$cc_vers_major" || cc_vers_major=0
+ test -n "$cc_vers_minor" || cc_vers_minor=0
+ test -n "$cc_vers_patch" || cc_vers_patch=0
+ cc_vers_all=`expr \( \( $cc_vers_major \* 100 + $cc_vers_minor \) \* 100 \) + $cc_vers_patch`
+ fi
+fi
+
+# Common XL flags for various situations
+if test "XL" = "$cc_vendor"; then
+ # Insert section about version specific problems from gnu-flags here, if
+ # necessary.
+
+ # Turn off shared lib option. It causes some test suite to fail.
+ enable_shared="${enable_shared:-no}"
+ # Make sure this is applied to other API compile options such as C++.
+ AM_CFLAGS="$AM_CFLAGS"
+ H5_CFLAGS="-qlanglvl=stdc99 $H5_CFLAGS"
+ DEBUG_CFLAGS="-g -qfullpath"
+ DEBUG_CPPFLAGS=
+ # -O causes test/dtypes to fail badly. Turn it off for now.
+ PROD_CFLAGS=""
+ PROD_CPPFLAGS=
+ PROFILE_CFLAGS="-g -qfullpath -pg"
+ PROFILE_CPPFLAGS=
+ # Flags are set
+ cc_flags_set=yes
+fi
+
+# Clear cc info if no flags set
+if test "X-$cc_flags_set" = "X-"; then
+ cc_vendor=
+ cc_version=
+ cc_version_info=
+fi