diff options
Diffstat (limited to 'config/ibm-flags')
-rw-r--r-- | config/ibm-flags | 77 |
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 |