#							-*- 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 a DEC
# compiler.  It is careful not to do anything if the compiler is not
# DEC; otherwise `cc_flags_set' is set to `yes'
#

# Get the compiler version unless it's already known.
#
#   cc_vendor:    The compiler vendor: DEC
#   cc_version:   Version number, like: V5.2-038
#
if test X = "X$cc_flags_set"; then
    cc_vendor=DEC
    cc_version="`$CC $CFLAGS $H5_CFLAGS -V 2>&1 |head -1`"
    case "$cc_version" in
	DEC*)
	    cc_version="`echo $cc_version |\
			sed 's/.*DEC C \(V[0-9][-\.0-9]*\).*/\1/'`"
	;;
	Compaq*)
	    cc_version="`echo $cc_version |\
			sed 's/.*Compaq C \(V[0-9][-\.0-9]*\).*/\1/'`"
	;;
    esac

    if test X != "$gcc_version"; then
	echo "compiler '$CC' is $cc_vendor-$cc_version"
    else
        cc_vendor=
    fi
fi

# Warn about old compilers that don't work right.
case "$cc_vendor-$cc_version" in
    DEC-V5.2-038)
        cat <<EOF
    **
    ** This compiler may generate incorrect code when optimizations are
    ** enabled. Please upgrade to a newer version (we're not sure which
    ** version actually works) before reporting bugs to the HDF5 team.
    **
EOF
	sleep 5
	;;
esac

# Compiler flags
case "$cc_vendor-$cc_version" in
    DEC-V5.*)
	# Production
	PROD_CFLAGS="-std -verbose -warnprotos -ieee -misalign -O4  -ansi_args -fp_reorder -readonly_strings -inline speed"
	PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS"

	# Debug
	DEBUG_CFLAGS="-g -std -verbose -warnprotos -ieee -misalign"
	DEBUG_CPPFLAGS=

	# Profile
	PROFILE_CFLAGS="-pg -std -verbose -warnprotos -ieee -misalign"
	PROFILE_CPPFLAGS=

	# Flags are set
	cc_flags_set=yes
	;;

    DEC-V6.*)
	# Production
	PROD_CFLAGS="-c99 -verbose -warnprotos -ieee -misalign -O4 -fp_reorder -readonly_strings -inline speed"
	PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS"

	# Debug
	DEBUG_CFLAGS="-g -c99 -verbose -warnprotos -ieee -misalign"
	DEBUG_CPPFLAGS=

	# Profile
	PROFILE_CFLAGS="-pg -c99 -verbose -warnprotos -ieee -misalign"
	PROFILE_CPPFLAGS=

	# Flags are set
	cc_flags_set=yes
	;;
esac

# If no flags were set then clear the compiler vendor and version info.
if test X = "X$cc_flags_set"; then
    cc_vendor=
    cc_version=
fi

# The default Fortran 90 compiler

if test "X-" = "X-$FC"; then
  FC=f90
fi

if test "X-" = "X-$f9x_flags_set"; then
  F9XSUFFIXFLAG=""
  FSEARCH_DIRS=""
  H5_FCFLAGS="$H5_FCFLAGS -Olimit 2048 -std1"
  DEBUG_FCFLAGS="-Olimit 2048 -std1"
  PROD_FCFLAGS="-Olimit 2048 -std1"
  PROFILE_FCFLAGS="-Olimit 2048 -std1"
  f9x_flags_set=yes
fi

# The default C++ compiler

if test -z "$CXX"; then
    CXX=cxx
    CXX_BASENAME=cxx
fi


case $CXX_BASENAME in
    g++)
	H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions
	DEBUG_CXXFLAGS="-g -fverbose-asm"
	DEBUG_CPPFLAGS=
	PROD_CXXFLAGS="-O3 -fomit-frame-pointer"
	PROD_CPPFLAGS=
	PROFILE_CXXFLAGS="-pg"
	PROFILE_CPPFLAGS=
	;;

    *)
	H5_CXXFLAGS="$H5_CXXFLAGS -tlocal -D__USE_STD_IOSTREAM"
	DEBUG_CXXFLAGS="-g"
	DEBUG_CPPFLAGS=
	PROD_CXXFLAGS="-O"
	PROD_CPPFLAGS=
	PROFILE_CXXFLAGS="-pg"
	PROFILE_CPPFLAGS=
	;;
esac

