#							-*- shell-script -*-
#
# 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 -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="-std1 -verbose -warnprotos -ieee -misalign -O4 -fp_reorder -readonly_strings -inline speed"
	PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS"

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

	# Profile
	PROFILE_CFLAGS="-pg -std1 -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

#
# 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 Digital UNIX architechture)
#
R_LARGE=18
R_INTEGER=9
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_LARGE)'
OBJECT_NAMELEN_DEFAULT_F=-1

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

if test "X-" = "X-$f9x_flags_set"; then
  F9XSUFFIXFLAG=""
  FSEARCH_DIRS=""
  FFLAGS="$FFLAGS -Olimit 2048 -std1"
  DEBUG_FFLAGS="-Olimit 2048 -std1"
  PROD_FFLAGS="-Olimit 2048 -std1"
  PROFILE_FFLAGS="-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++)
	CXXFLAGS="$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=
	;;

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