mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
1b6406124a
Bug fix Description: A whole chunk of this file somehow got deleted and the heavily reduced file was accidentally checked in. This is the complete version of the file, with the mpiicc fix. Solution: Platforms tested: Misc. update:
132 lines
3.4 KiB
Bash
132 lines
3.4 KiB
Bash
# -*- shell-script -*-
|
|
#
|
|
# This file is part of the HDF5 build script. It is processed shortly
|
|
# after configure starts and defines, among other things, flags for
|
|
# the various compile modes.
|
|
#
|
|
# See BlankForm in this directory for details.
|
|
|
|
# The default compiler is `gcc'.
|
|
if test -z "$CC"; then
|
|
CC=gcc
|
|
CC_BASENAME=gcc
|
|
fi
|
|
|
|
# Figure out GNU C compiler flags
|
|
. $srcdir/config/gnu-flags
|
|
|
|
# Figure out PGI C compiler flags
|
|
. $srcdir/config/pgi-flags
|
|
|
|
# Figure out Intel C compiler flags
|
|
. $srcdir/config/intel-flags
|
|
|
|
# The default Fortran 90 compiler
|
|
if test "X-" = "X-$FC"; then
|
|
case $CC_BASENAME in
|
|
gcc*|pgcc*)
|
|
FC=pgf90
|
|
FC_BASENAME=pgf90
|
|
;;
|
|
icc*)
|
|
FC=ifort
|
|
FC_BASENAME=ifort
|
|
;;
|
|
mpicc*)
|
|
FC=mpif90
|
|
FC_BASENAME=mpif90
|
|
;;
|
|
esac
|
|
else
|
|
case $FC in
|
|
# The PGI and Intel compilers are automatically detected below
|
|
ifc*|ifort*|pgf90*)
|
|
;;
|
|
|
|
*)
|
|
# Figure out which compiler we are using: pgf90 or Absoft f95
|
|
RM='rm -f'
|
|
tmpfile=/tmp/cmpver.$$
|
|
$FC -V >$tmpfile
|
|
if test -s "$tmpfile"; then
|
|
if( grep -s 'Absoft' $tmpfile > /dev/null) then
|
|
FC_BASENAME=f95
|
|
fi
|
|
if( grep -s 'pgf90' $tmpfile > /dev/null) then
|
|
FC_BASENAME=pgf90
|
|
fi
|
|
fi
|
|
$RM $tmpfile
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
#
|
|
# HDF5 integers
|
|
#
|
|
# R_LARGE is the number of digits for the bigest integer supported.
|
|
# R_INTEGER is the number of digits in INTEGER
|
|
#
|
|
# (for the Linux architechture)
|
|
#
|
|
R_LARGE=18
|
|
R_INTEGER=9
|
|
HADDR_T='SELECTED_INT_KIND(R_LARGE)'
|
|
HSIZE_T='SELECTED_INT_KIND(R_LARGE)'
|
|
HSSIZE_T='SELECTED_INT_KIND(R_LARGE)'
|
|
HID_T='SELECTED_INT_KIND(R_INTEGER)'
|
|
SIZE_T='SELECTED_INT_KIND(R_INTEGER)'
|
|
OBJECT_NAMELEN_DEFAULT_F=-1
|
|
|
|
# Figure out PGI F90 compiler flags
|
|
. $srcdir/config/pgi-fflags
|
|
|
|
# Figure out Intel F90 compiler flags
|
|
. $srcdir/config/intel-fflags
|
|
|
|
case $FC_BASENAME in
|
|
#
|
|
# Absoft compiler
|
|
#
|
|
f95)
|
|
# Set required flag for compiling C stubs
|
|
CFLAGS="$CFLAGS -DH5_ABSOFT"
|
|
|
|
F9XSUFFIXFLAG=""
|
|
# We force compiler to use upper case for external names
|
|
# (just in case since this should be a default EIP)
|
|
FCFLAGS="$FCFLAGS -YEXT_NAMES=UCS"
|
|
FSEARCH_DIRS=""
|
|
DEBUG_FCFLAGS="-g"
|
|
PROD_FCFLAGS="-O"
|
|
PROFILE_FCFLAGS="-g -pg"
|
|
f9x_flags_set=yes
|
|
;;
|
|
|
|
esac
|
|
|
|
# The default C++ compiler
|
|
|
|
# The default compiler is `g++'.
|
|
if test -z "$CXX"; then
|
|
CXX=g++
|
|
CXX_BASENAME=g++
|
|
fi
|
|
|
|
# We know that for mpich 1.2.5 and previous version, complicated derived datatype is
|
|
# supported, we need to set the macro to hdf5_mpi_complex_derived_datatype_works to no.
|
|
# Notice that this fix will only work if the compiler name is mpicc and mpi package is
|
|
# mpich 1.x.x.
|
|
|
|
if [ -z "$hdf5_mpi_complex_derived_datatype_works" -a \( $CC_BASENAME = mpicc -o $CC_BASENAME = mpiicc \) ]; then
|
|
ccversion=`$CC -v 2>&1 | sed -e 's/.*for //p'`
|
|
ccversion1=`echo $ccversion | cut -f1 -d.`
|
|
ccversion2=`echo $ccversion | cut -f2 -d.`
|
|
ccversiontemp=`echo $ccversion | cut -f3 -d.`
|
|
ccversion3=`echo $ccversiontemp | cut -c1`
|
|
ccversionval=`expr $ccversion1 \* 100 + $ccversion2 \* 10 + $ccversion3`
|
|
if [ $ccversionval -lt 126 ]; then
|
|
hdf5_mpi_complex_derived_datatype_works='no'
|
|
fi
|
|
fi
|