# -*- shell-script -*- # # Copyright by The HDF Group. # 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 LICENSE file, which can be found at the root of the source code # distribution tree, or in https://www.hdfgroup.org/licenses. # 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 XL compiler # unless a compiler version is already defined. # # 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" # -qflag=w:w makes the lowest level of reported compile issues to be "warning" # instead of "information". This suppresses a very large number of messages # concerning the portability of __inline__. H5_CFLAGS="-qlanglvl=stdc99 -qflag=w:w $H5_CFLAGS" # Production PROD_CFLAGS= # Debug # NDEBUG is handled explicitly in configure DEBUG_CFLAGS="-qfullpath" # Symbols SYMBOLS_CFLAGS="-g" NO_SYMBOLS_CFLAGS= # Profiling PROFILE_CFLAGS="-pg" # Optimization # -O causes test/dtypes to fail badly. Turn it off for now. HIGH_OPT_CFLAGS= DEBUG_OPT_CFLAGS= NO_OPT_CFLAGS= # 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 # get fortran version info if test X != X$FC; then # Verify this is an IBM XL compiler fc_version="`$FC $FCFLAGS -qversion 2>&1 | grep 'IBM XL Fortran'`" if test X != "X$fc_version"; then fc_vendor="XL" fc_version="`$FC $FCFLAGS -qversion 2>&1 | sed -n 's/Version: \([0-9\.]*\).*/\1/p'`" fc_version_info="IBM XL Fortran $fc_version" echo "compiler '$FC' is IBM $fc_vendor-$fc_version" fi fi # get c++ version info if test X != X$CXX; then # Verify this is an IBM XL compiler cxx_version="`$CXX $CXXFLAGS -qversion 2>&1 | grep 'IBM XL C/C++'`" if test X != "X$cxx_version"; then cxx_vendor="XL" cxx_version="`$CXX $CXXFLAGS -qversion 2>&1 | sed -n 's/Version: \([0-9\.]*\).*/\1/p'`" cxx_version_info="IBM XL C/C++ $cxx_version" echo "compiler '$CXX' is IBM $cxx_vendor-$cxx_version" fi fi