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

# Disabling Dependency Tracking
# ---------------------
#
# The Cray X1 machines that The HDF Group tests on seem to have trouble doing
# dependency tracking (probably because they use Cray's C++ compiler,
# which autoconf may not recognize).  Until this is fixed by autoconf
# or a user complains, disable dependency tracking on Crays.
enable_dependency_tracking="no"

# Choosing a C Compiler
# ---------------------
#
# The user should be able to specify the compiler by setting the CC
# environment variable to the name of the compiler and any switches it 
# requires for proper operation.  If CC is unset then this script may
# set it.  If CC is unset by time this script completes then configure 
# will try `gcc' and `cc' in that order (perhaps some others too).
#
# Note: Code later in this file may depend on the value of $CC_BASENAME
#       in order to distinguish between different compilers when
#       deciding which compiler command-line switches to use.  This
#       variable is set based on the incoming value of $CC and is only
#       used within this file.

if test "X-" =  "X-$CC"; then
    CC=cc
    CC_BASENAME=cc
fi
# no need to use RANLIB
RANLIB=:

# C Compiler and Preprocessor Flags
# ---------------------------------
#
# Flags that end with `_CFLAGS' are always passed to the compiler.
# Flags that end with `_CPPFLAGS' are passed to the compiler when
# compiling but not when linking.
#
# DEBUG_CFLAGS         Flags to pass to the compiler to create a
# DEBUG_CPPFLAGS       library suitable for use with debugging
#                      tools. Usually this list will exclude
#                      optimization switches (like `-O') and include
#                      switches that turn on symbolic debugging
#                      support (like `-g').
#
# PROD_CFLAGS          Flags to pass to the compiler to create a
# PROFILE_CPPFLAGS     library suitable for performance testing (like 
#                      `-pg').  This may or may not include debugging 
#                      or production flags.
#                      
# H5_CFLAGS		Flags can be added to this variable which
#			might already be partially initialized.  These 
#			flags will always be passed to the compiler
#			and should include switches to turn on full
#			warnings.  HDF5 attempts to be ANSI and Posix
#			compliant and employ good programming
#			practices resulting in few if any
#			warnings.
#
#			Warning flags do not have to be added to H5_CFLAGS
#			variable if the compiler is the GNU gcc
#			compiler or a descendent of gcc such as EGCS or PGCC.
#
# AM_CFLAGS             Flags added directly into this variable will
#                       be propogated to the compiler wrapper scripts (h5cc,
#                       h5c++, et cetera) in addition to being used to compile 
#                       the library.
#
# These flags should be set according to the compiler being used.
# There are two ways to check the compiler.  You can try using `-v' or 
# `--version' to see if the compiler will print a version string.  You 
# can use the value of $CC_BASENAME which is the base name of the
# first word in $CC (note that the value of CC may have changed
# above).

case $CC_BASENAME in
    gcc)
       H5_CFLAGS="$H5_CFLAGS -Wsign-compare" #Only works for some versions
       DEBUG_CFLAGS="-g -fverbose-asm"
       DEBUG_CPPFLAGS=
       PROD_CFLAGS="-O3 -fomit-frame-pointer"
       PROD_CPPFLAGS=
       PROFILE_CFLAGS="-pg"
       PROFILE_CPPFLAGS=
       ;;

    cc)
       H5_CFLAGS="$H5_CFLAGS" 
       DEBUG_CFLAGS="-g"
       DEBUG_CPPFLAGS=
       PROD_CFLAGS=""
       PROD_CPPFLAGS=
       PROFILE_CFLAGS=
       PROFILE_CPPFLAGS=
       ;;

    *)
       H5_CFLAGS="$H5_CFLAGS -ansi"
       DEBUG_CFLAGS="-g"
       DEBUG_CPPFLAGS=
       PROD_CFLAGS="-O"
       PROD_CPPFLAGS=
       PROFILE_CFLAGS="-pg"
       PROFILE_CPPFLAGS=
       ;;
esac



# Overriding Configure Tests
# --------------------------
#
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.

# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}

# Set this to the width required by printf() to print type `long
# long'.  For instance, if the format would be `%lld' then set it to
# `ll' or if the format would be `%qd' set it to `q'.
#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}

# Hard set the flag to indicate that converting denormalized floating-point
# values doesn't work.
hdf5_cv_convert_denormal_float=${hdf5_cv_convert_denormal_float='no'}

# The default Fortran 90 compiler

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

if test "X-" = "X-$f9x_flags_set"; then
    # -Wl passes flags to the linker and -M# will ignore warnings with
    # number#. Warning 405 and 412 were stopping the executable from
    # being built.
    # The -em flag enables .mod files, which is what HDF5 builds.
    F9XSUFFIXFLAG=""
    FSEARCH_DIRS=""
    H5_FCFLAGS="$H5_FCFLAGS -em"
    DEBUG_FCFLAGS="-g"
    PROD_FCFLAGS=""
    PROFILE_FCFLAGS=""
    f9x_flags_set=yes
fi

# The default C++ compiler

if test -z "$CXX"; then
    CXX="CC"
    CXX_BASENAME=CC
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" 
       DEBUG_CXXFLAGS="-g"
       DEBUG_CPPFLAGS=
       PROD_CXXFLAGS=""
       PROD_CPPFLAGS=
       PROFILE_CXXFLAGS=
       PROFILE_CPPFLAGS=
       ;;
esac

