#							-*- 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 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


# Use default Fortran 90 compiler according to what C compiler is used.
if test "X-" = "X-$F9X"; then
    case $CC_BASENAME in
        gcc*)
            F9X=g95
            F9X_BASENAME=g95
            ;;
        pgcc*)
            F9X=pgf90
            F9X_BASENAME=pgf90
            ;;
        icc*)
            F9X=ifort
            F9X_BASENAME=ifort
            ;;
        mpicc*)
            F9X=mpif90
            F9X_BASENAME=mpif90
            ;;
    esac
fi

# Figure out the F9X_BASENAME
    case $F9X in
        # The PGI and Intel compilers are automatically detected below
        ifc*|ifort*|pgf90*)
            ;;
	g95|*/g95)
	    F9X_BASENAME=g95
	    ;;
	*mpif90)
            # Probably an MPICH compiler script.  Find out what fortran
            # compiler it uses. version flags used by known complers,
	    # G95: g95 -v
	    # Absoft: f95 -v
	    # Intel: ifort -V
	    # PGI: pgf90 -V
	    # Try both options.
            tmpfile=/tmp/cmpver.$$
            ( $F9X -v; $F9X -V) >$tmpfile 2>&1
	    if grep 'g95' $tmpfile > /dev/null; then
		F9X_BASENAME=g95
		CFLAGS="$CFLAGS -DH5_G95" 
	    elif grep 'Absoft' $tmpfile > /dev/null; then
		F9X_BASENAME=f95
	    elif grep 'Portland Group' $tmpfile > /dev/null; then
		    F9X_BASENAME=pgf90
	    elif grep 'Intel(R)' $tmpfile > /dev/null; then
		F9X_BASENAME=ifort
	    fi
            rm -f $tmpfile
            ;;
        *)
            # Figure out which compiler we are using: pgf90 or Absoft f95
            RM='rm -f'
            tmpfile=/tmp/cmpver.$$
            $F9X -V >$tmpfile
            if test -s "$tmpfile"; then 
                if( grep -s 'Absoft' $tmpfile > /dev/null) then
                    F9X_BASENAME=f95
                fi 
                if( grep -s 'pgf90' $tmpfile > /dev/null) then
                    F9X_BASENAME=pgf90
                fi 
            fi
            $RM $tmpfile
            ;;
    esac

#
# 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 $F9X_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)
        FFLAGS="$FFLAGS -YEXT_NAMES=UCS"
        FSEARCH_DIRS=""
        DEBUG_FFLAGS="-g"
        PROD_FFLAGS="-O"
        PROFILE_FFLAGS="-g"
        f9x_flags_set=yes
        ;;
    g95)
        # Set required flag for compiling C stubs
        CFLAGS="$CFLAGS -DH5_G95" 
	;;
esac  
