# configure.host
#
# This shell script handles all host based configuration for libgfortran.
# It sets various shell variables based on the the host triplet.
# You can modify this shell script without rerunning autoconf/aclocal/etc.
# This file is "sourced", not executed.
#
#
# It uses the following shell variables as set by config.guess:
#   host                The configuration host (full CPU-vendor-OS triplet)
#   host_cpu            The configuration host CPU
#   host_os             The configuration host OS
#
#
# It sets the following shell variables:
#
#   fpu_host            FPU-specific code file, defaults to fpu-generic.


# DEFAULTS
fpu_host='fpu-generic'

if test "x${have_feenableexcept}" = "xyes"; then
  fpu_host='fpu-glibc'
fi

# x86 asm should be used instead of glibc, since glibc doesn't support
# the x86 denormal exception.
case "${host_cpu}" in
  i?86 | x86_64)
    fpu_host='fpu-387' ;;
esac

if test "x${have_fpsetmask}" = "xyes"; then
  fpu_host='fpu-sysv'
fi

if test "x${have_fp_enable}" = "xyes" && test "x${have_fp_trap}" = "xyes"; then
  fpu_host='fpu-aix'
fi

# Some targets require additional compiler options for NaN/Inf.
ieee_flags=
case "${host_cpu}" in
  sh*)
    ieee_flags="-mieee" ;;
esac
