#! /bin/sh

# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.4 
# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.

# Defaults:
ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
ac_default_prefix=/usr/local/mercury-0.6
ac_help="$ac_help
  --enable-all-grades     install all the different versions of the library"

# Initialize some variables set by options.
# The variables have the same names as the options, with
# dashes changed to underlines.
build=NONE
cache_file=./config.cache
exec_prefix=NONE
host=NONE
no_create=
nonopt=NONE
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
target=NONE
verbose=
x_includes=NONE
x_libraries=NONE

# Initialize some other variables.
subdirs=

ac_prev=
for ac_option
do

  # If the previous option needs an argument, assign it.
  if test -n "$ac_prev"; then
    eval "$ac_prev=\$ac_option"
    ac_prev=
    continue
  fi

  case "$ac_option" in
  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
  *) ac_optarg= ;;
  esac

  # Accept the important Cygnus configure options, so we can diagnose typos.

  case "$ac_option" in

  -build | --build | --buil | --bui | --bu | --b)
    ac_prev=build ;;
  -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
    build="$ac_optarg" ;;

  -cache-file | --cache-file | --cache-fil | --cache-fi \
  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
    ac_prev=cache_file ;;
  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
    cache_file="$ac_optarg" ;;

  -disable-* | --disable-*)
    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
    # Reject names that are not valid shell variable names.
    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
    fi
    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
    eval "enable_${ac_feature}=no" ;;

  -enable-* | --enable-*)
    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
    # Reject names that are not valid shell variable names.
    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
    fi
    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
    case "$ac_option" in
      *=*) ;;
      *) ac_optarg=yes ;;
    esac
    eval "enable_${ac_feature}='$ac_optarg'" ;;

  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
  | --exec | --exe | --ex)
    ac_prev=exec_prefix ;;
  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
  | --exec=* | --exe=* | --ex=*)
    exec_prefix="$ac_optarg" ;;

  -gas | --gas | --ga | --g)
    # Obsolete; use --with-gas.
    with_gas=yes ;;

  -help | --help | --hel | --he)
    # Omit some internal or obsolete options to make the list less imposing.
    # This message is too long to be a string in the A/UX 3.1 sh.
    cat << EOF
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
  --cache-file=FILE       cache test results in FILE
  --help                  print this message
  --no-create             do not create output files
  --quiet, --silent       do not print \`checking...' messages
  --version               print the version of autoconf that created configure
Directory and file names:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [$ac_default_prefix]
  --exec-prefix=PREFIX    install architecture-dependent files in PREFIX
                          [same as prefix]
  --srcdir=DIR            find the sources in DIR [configure dir or ..]
  --program-prefix=PREFIX prepend PREFIX to installed program names
  --program-suffix=SUFFIX append SUFFIX to installed program names
  --program-transform-name=PROGRAM run sed PROGRAM on installed program names
Host type:
  --build=BUILD           configure for building on BUILD [BUILD=HOST]
  --host=HOST             configure for HOST [guessed]
  --target=TARGET         configure for TARGET [TARGET=HOST]
Features and packages:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --x-includes=DIR        X include files are in DIR
  --x-libraries=DIR       X library files are in DIR
--enable and --with options recognized:$ac_help
EOF
    exit 0 ;;

  -host | --host | --hos | --ho)
    ac_prev=host ;;
  -host=* | --host=* | --hos=* | --ho=*)
    host="$ac_optarg" ;;

  -nfp | --nfp | --nf)
    # Obsolete; use --without-fp.
    with_fp=no ;;

  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
  | --no-cr | --no-c)
    no_create=yes ;;

  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
    no_recursion=yes ;;

  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
    ac_prev=prefix ;;
  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
    prefix="$ac_optarg" ;;

  -program-prefix | --program-prefix | --program-prefi | --program-pref \
  | --program-pre | --program-pr | --program-p)
    ac_prev=program_prefix ;;
  -program-prefix=* | --program-prefix=* | --program-prefi=* \
  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
    program_prefix="$ac_optarg" ;;

  -program-suffix | --program-suffix | --program-suffi | --program-suff \
  | --program-suf | --program-su | --program-s)
    ac_prev=program_suffix ;;
  -program-suffix=* | --program-suffix=* | --program-suffi=* \
  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
    program_suffix="$ac_optarg" ;;

  -program-transform-name | --program-transform-name \
  | --program-transform-nam | --program-transform-na \
  | --program-transform-n | --program-transform- \
  | --program-transform | --program-transfor \
  | --program-transfo | --program-transf \
  | --program-trans | --program-tran \
  | --progr-tra | --program-tr | --program-t)
    ac_prev=program_transform_name ;;
  -program-transform-name=* | --program-transform-name=* \
  | --program-transform-nam=* | --program-transform-na=* \
  | --program-transform-n=* | --program-transform-=* \
  | --program-transform=* | --program-transfor=* \
  | --program-transfo=* | --program-transf=* \
  | --program-trans=* | --program-tran=* \
  | --progr-tra=* | --program-tr=* | --program-t=*)
    program_transform_name="$ac_optarg" ;;

  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  | -silent | --silent | --silen | --sile | --sil)
    silent=yes ;;

  -site | --site | --sit)
    ac_prev=site ;;
  -site=* | --site=* | --sit=*)
    site="$ac_optarg" ;;

  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
    ac_prev=srcdir ;;
  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
    srcdir="$ac_optarg" ;;

  -target | --target | --targe | --targ | --tar | --ta | --t)
    ac_prev=target ;;
  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
    target="$ac_optarg" ;;

  -v | -verbose | --verbose | --verbos | --verbo | --verb)
    verbose=yes ;;

  -version | --version | --versio | --versi | --vers)
    echo "configure generated by autoconf version 2.4"
    exit 0 ;;

  -with-* | --with-*)
    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
    # Reject names that are not valid shell variable names.
    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
    fi
    ac_package=`echo $ac_package| sed 's/-/_/g'`
    case "$ac_option" in
      *=*) ;;
      *) ac_optarg=yes ;;
    esac
    eval "with_${ac_package}='$ac_optarg'" ;;

  -without-* | --without-*)
    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
    # Reject names that are not valid shell variable names.
    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
    fi
    ac_package=`echo $ac_package| sed 's/-/_/g'`
    eval "with_${ac_package}=no" ;;

  --x)
    # Obsolete; use --with-x.
    with_x=yes ;;

  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
  | --x-incl | --x-inc | --x-in | --x-i)
    ac_prev=x_includes ;;
  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
    x_includes="$ac_optarg" ;;

  -x-libraries | --x-libraries | --x-librarie | --x-librari \
  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
    ac_prev=x_libraries ;;
  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
    x_libraries="$ac_optarg" ;;

  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
    ;;

  *) 
    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
      echo "configure: warning: $ac_option: invalid host type" 1>&2
    fi
    if test "x$nonopt" != xNONE; then
      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
    fi
    nonopt="$ac_option"
    ;;

  esac
done

if test -n "$ac_prev"; then
  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
fi

trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15

# File descriptor usage:
# 0 standard input
# 1 file creation
# 2 errors and warnings
# 3 some systems may open it to /dev/tty
# 4 used on the Kubota Titan
# 6 checking for... messages and results
# 5 compiler messages saved in config.log
if test "$silent" = yes; then
  exec 6>/dev/null
else
  exec 6>&1
fi
exec 5>./config.log

echo "\
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
" 1>&5

# Strip out --no-create and --no-recursion so they do not pile up.
# Also quote any args containing shell metacharacters.
ac_configure_args=
for ac_arg
do
  case "$ac_arg" in
  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
  | --no-cr | --no-c) ;;
  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
  esac
done

# NLS nuisances.
# Only set LANG and LC_ALL to C if already set.
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi

# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -rf conftest* confdefs.h
# AIX cpp loses on an empty file, so make sure it contains at least a newline.
echo > confdefs.h

# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
ac_unique_file=runtime/wrapper.mod

# Find the source files, if location was not specified.
if test -z "$srcdir"; then
  ac_srcdir_defaulted=yes
  # Try the directory containing this script, then its parent.
  ac_prog=$0
  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
  srcdir=$ac_confdir
  if test ! -r $srcdir/$ac_unique_file; then
    srcdir=..
  fi
else
  ac_srcdir_defaulted=no
fi
if test ! -r $srcdir/$ac_unique_file; then
  if test "$ac_srcdir_defaulted" = yes; then
    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
  else
    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
  fi
fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`

# Prefer explicitly selected file to automatically selected ones.
if test -z "$CONFIG_SITE"; then
  if test "x$prefix" != xNONE; then
    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
  else
    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
  fi
fi
for ac_site_file in $CONFIG_SITE; do
  if test -r "$ac_site_file"; then
    echo "loading site script $ac_site_file"
    . "$ac_site_file"
  fi
done

if test -r "$cache_file"; then
  echo "loading cache $cache_file"
  . $cache_file
else
  echo "creating cache $cache_file"
  > $cache_file
fi

ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5'
# echo the command into the log file before executing it
ac_compile="echo $ac_compile; $ac_compile"
ac_link="echo $ac_link; $ac_link"

if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
    ac_n= ac_c='
' ac_t='	'
  else
    ac_n=-n ac_c= ac_t=
  fi
else
  ac_n= ac_c='\c' ac_t=
fi


#-----------------------------------------------------------------------------#
#
# Ensure that all messages are saved to a file `configure.log' by
# invoking ourself recursively without output piped into `tee configure.log'.
# The environment variable `SUPPRESS_LOG_FILE_RECURSION' is used to prevent
# infinite recursion.
#
if test "$SUPPRESS_LOG_FILE_RECURSION" != "yes"; then
	SUPPRESS_LOG_FILE_RECURSION=yes
	export SUPPRESS_LOG_FILE_RECURSION
	trap 0 1 2 3 13 15
	case $# in
		0) exec ${CONFIG_SHELL-/bin/sh} "$0"      ;;
		*) exec ${CONFIG_SHELL-/bin/sh} "$0" "$@" ;;
	esac | exec tee configure.log
	exit
fi
#-----------------------------------------------------------------------------#


ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
  if test -f $ac_dir/install-sh; then
    ac_aux_dir=$ac_dir
    ac_install_sh="$ac_aux_dir/install-sh -c"
    break
  elif test -f $ac_dir/install.sh; then
    ac_aux_dir=$ac_dir
    ac_install_sh="$ac_aux_dir/install.sh -c"
    break
  fi
done
if test -z "$ac_aux_dir"; then
  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
fi
ac_config_guess=$ac_aux_dir/config.guess
ac_config_sub=$ac_aux_dir/config.sub
ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.


# Make sure we can run config.sub.
if $ac_config_sub sun4 >/dev/null 2>&1; then :
else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi

echo $ac_n "checking host system type""... $ac_c" 1>&6

host_alias=$host
case "$host_alias" in
NONE)
  case $nonopt in
  NONE)
    if host_alias=`$ac_config_guess`; then :
    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
    fi ;;
  *) host_alias=$nonopt ;;
  esac ;;
esac

host=`$ac_config_sub $host_alias`
host_cpu=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
host_vendor=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
host_os=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6

FULLARCH="$host"

if test "$prefix" = "NONE"; then
	PREFIX="$ac_default_prefix"
else
	PREFIX="$prefix"
fi
LIBDIR="$PREFIX/lib/mercury"
NONSHARED_LIB_DIR=${MERCURY_NONSHARED_LIB_DIR=$PREFIX/lib/nonshared}



#-----------------------------------------------------------------------------#
case "$host" in
	mips-sgi-irix5.*)
		echo "configure: warning: *** Read README.IRIX-5 before proceeding!" 1>&2
		;;
	*-*-bsdi*)
		echo "configure: warning: *** Read README.BSDI before proceeding!" 1>&2
		;;
esac
#-----------------------------------------------------------------------------#
echo "looking for an already installed Mercury compiler to bootstrap with..." 1>&6
# Extract the first word of "mc", so it can be a program name with args.
set dummy mc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_path_BOOTSTRAP_MC'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  case "$BOOTSTRAP_MC" in
  /*)
  ac_cv_path_BOOTSTRAP_MC="$BOOTSTRAP_MC" # Let the user override the test with a path.
  ;;
  *)
  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  for ac_dir in $PATH; do
    test -z "$ac_dir" && ac_dir=.
    if test -f $ac_dir/$ac_word; then
      ac_cv_path_BOOTSTRAP_MC="$ac_dir/$ac_word"
      break
    fi
  done
  IFS="$ac_save_ifs"
  ;;
esac
fi
BOOTSTRAP_MC="$ac_cv_path_BOOTSTRAP_MC"
if test -n "$BOOTSTRAP_MC"; then
  echo "$ac_t""$BOOTSTRAP_MC" 1>&6
else
  echo "$ac_t""no" 1>&6
fi

if test "$BOOTSTRAP_MC" != ""; then
	echo $ac_n "checking whether $BOOTSTRAP_MC works and is sufficiently recent""... $ac_c" 1>&6
	cat > conftest.m << EOF
		% this module contains features which didn't work in
		% previous versions of the Mercury compiler
		:- module conftest.
		:- interface.
		:- import_module io.
		:- pred main(io__state::unique->clobbered, io__state::uo)
			is det.
		:- implementation.
		:- pragma(c_code, "").
		:- type type_containing_pred(T) ---> foo(pred(T)).
		main --> io__write_string("Hello, world\n").
EOF
	if
	 	 echo $BOOTSTRAP_MC conftest >&5 2>&1 &&
	 	 $BOOTSTRAP_MC conftest </dev/null >&5 2>&1 &&
		 test "`./conftest 2>&1`" = "Hello, world"
	then
		echo "$ac_t""yes" 1>&6
	else
		BOOTSTRAP_MC=
		echo "$ac_t""no" 1>&6
	fi
	rm -f conftest*
fi
#-----------------------------------------------------------------------------#
echo "looking for GNU Make..." 1>&6
for ac_prog in gmake make
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_prog_GNU_MAKE'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test -n "$GNU_MAKE"; then
  ac_cv_prog_GNU_MAKE="$GNU_MAKE" # Let the user override the test.
else
  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  for ac_dir in $PATH; do
    test -z "$ac_dir" && ac_dir=.
    if test -f $ac_dir/$ac_word; then
      ac_cv_prog_GNU_MAKE="$ac_prog"
      break
    fi
  done
  IFS="$ac_save_ifs"
fi
fi
GNU_MAKE="$ac_cv_prog_GNU_MAKE"
if test -n "$GNU_MAKE"; then
  echo "$ac_t""$GNU_MAKE" 1>&6
else
  echo "$ac_t""no" 1>&6
fi

test -n "$GNU_MAKE" && break
done

if test "$GNU_MAKE" != ""; then
	case "`$GNU_MAKE -v bogus </dev/null 2>&1`" in
		"GNU Make"*)
			;;
		*)
			GNU_MAKE=
	esac
fi
if test "$GNU_MAKE" = ""; then
	{ echo "configure: error: cannot find GNU Make" 1>&2; exit 1; }
	exit 1
else
	echo "found GNU Make: $GNU_MAKE" 1>&6
fi

#-----------------------------------------------------------------------------#
INSTALL_SICSTUS=
SICSTUS=
echo "looking for SICStus Prolog..." 1>&6
for ac_prog in sp sicstus prolog
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_prog_SP'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test -n "$SP"; then
  ac_cv_prog_SP="$SP" # Let the user override the test.
else
  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  for ac_dir in $PATH; do
    test -z "$ac_dir" && ac_dir=.
    if test -f $ac_dir/$ac_word; then
      ac_cv_prog_SP="$ac_prog"
      break
    fi
  done
  IFS="$ac_save_ifs"
fi
fi
SP="$ac_cv_prog_SP"
if test -n "$SP"; then
  echo "$ac_t""$SP" 1>&6
else
  echo "$ac_t""no" 1>&6
fi

test -n "$SP" && break
done

if test "$SP" != ""; then
	case "`echo 'prolog_flag(version, V, V), write(V), nl, halt.' |
			$SP 2>&1`" in
		SICStus*)
			INSTALL_SICSTUS=install_sicstus
			SICSTUS=sicstus
			;;
	esac
fi
if test "$INSTALL_SICSTUS" = ""; then
	echo "configure: warning: SICStus Prolog not found" 1>&2
else
	echo "found SICStus Prolog: $SP" 1>&6
fi


#-----------------------------------------------------------------------------#
INSTALL_NUPROLOG=
NUPROLOG=
echo "looking for NU-Prolog..." 1>&6
for ac_prog in np
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_prog_NP'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test -n "$NP"; then
  ac_cv_prog_NP="$NP" # Let the user override the test.
else
  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  for ac_dir in $PATH; do
    test -z "$ac_dir" && ac_dir=.
    if test -f $ac_dir/$ac_word; then
      ac_cv_prog_NP="$ac_prog"
      break
    fi
  done
  IFS="$ac_save_ifs"
fi
fi
NP="$ac_cv_prog_NP"
if test -n "$NP"; then
  echo "$ac_t""$NP" 1>&6
else
  echo "$ac_t""no" 1>&6
fi

test -n "$NP" && break
done

if test "$NP" != ""; then
	case "`$NP < /dev/null 2>&1`" in
		NU-Prolog*)
			INSTALL_NUPROLOG=install_nuprolog
			NUPROLOG=nuprolog
			;;
	esac
fi
if test "$INSTALL_NUPROLOG" = ""; then
	echo "configure: warning: NU-Prolog not found" 1>&2
else
	echo "found NU-Prolog: $NP" 1>&6
fi


#-----------------------------------------------------------------------------#
echo "looking for a way to create named pipes..." 1>&6

save_PATH="$PATH"
PATH="$PATH:/etc:/usr/etc:/sbin"

# Extract the first word of "mkfifo", so it can be a program name with args.
set dummy mkfifo; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_path_MKFIFO'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  case "$MKFIFO" in
  /*)
  ac_cv_path_MKFIFO="$MKFIFO" # Let the user override the test with a path.
  ;;
  *)
  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  for ac_dir in $PATH; do
    test -z "$ac_dir" && ac_dir=.
    if test -f $ac_dir/$ac_word; then
      ac_cv_path_MKFIFO="$ac_dir/$ac_word"
      break
    fi
  done
  IFS="$ac_save_ifs"
  ;;
esac
fi
MKFIFO="$ac_cv_path_MKFIFO"
if test -n "$MKFIFO"; then
  echo "$ac_t""$MKFIFO" 1>&6
else
  echo "$ac_t""no" 1>&6
fi

if test "$MKFIFO" != ""; then
	# check that it really works
	tmp=/tmp/fifo$$
	trap "rm -f $tmp" 1 2 3 13 15
	if $MKFIFO $tmp && test -p $tmp; then
		true
	else
		MKFIFO=""
	fi
	rm -f $tmp
fi
if test "$MKFIFO" = ""; then
	# Extract the first word of "mknod", so it can be a program name with args.
set dummy mknod; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_path_MKNOD'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  case "$MKNOD" in
  /*)
  ac_cv_path_MKNOD="$MKNOD" # Let the user override the test with a path.
  ;;
  *)
  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  for ac_dir in $PATH; do
    test -z "$ac_dir" && ac_dir=.
    if test -f $ac_dir/$ac_word; then
      ac_cv_path_MKNOD="$ac_dir/$ac_word"
      break
    fi
  done
  IFS="$ac_save_ifs"
  ;;
esac
fi
MKNOD="$ac_cv_path_MKNOD"
if test -n "$MKNOD"; then
  echo "$ac_t""$MKNOD" 1>&6
else
  echo "$ac_t""no" 1>&6
fi

	if test "$MKNOD" != ""; then
		# check that it really works
		tmp=/tmp/fifo$$
		trap "rm -f $tmp" 1 2 3 13 15
		if $MKNOD $tmp p && test -p $tmp; then
			MKFIFO=mkfifo_using_mknod
		else
			MKNOD=
		fi
	fi
fi
if test "$MKFIFO" = ""; then
	echo "configure: warning: cannot find a working mkfifo or mknod" 1>&2
	MKFIFO=none
fi

test "$MKNOD" = "" && MKNOD=mknod


PATH="$save_PATH"
#-----------------------------------------------------------------------------#
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test -n "$CC"; then
  ac_cv_prog_CC="$CC" # Let the user override the test.
else
  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  for ac_dir in $PATH; do
    test -z "$ac_dir" && ac_dir=.
    if test -f $ac_dir/$ac_word; then
      ac_cv_prog_CC="gcc"
      break
    fi
  done
  IFS="$ac_save_ifs"
  test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc"
fi
fi
CC="$ac_cv_prog_CC"
if test -n "$CC"; then
  echo "$ac_t""$CC" 1>&6
else
  echo "$ac_t""no" 1>&6
fi


echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.c <<EOF
#ifdef __GNUC__
  yes;
#endif
EOF
if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
  ac_cv_prog_gcc=yes
else
  ac_cv_prog_gcc=no
fi
fi
echo "$ac_t""$ac_cv_prog_gcc" 1>&6
if test $ac_cv_prog_gcc = yes; then
  GCC=yes
  if test "${CFLAGS+set}" != set; then
    echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_prog_gcc_g'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  echo 'void f(){}' > conftest.c
if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
  ac_cv_prog_gcc_g=yes
else
  ac_cv_prog_gcc_g=no
fi
rm -f conftest*

fi
    echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6
    if test $ac_cv_prog_gcc_g = yes; then
      CFLAGS="-g -O"
    else
      CFLAGS="-O"
    fi
  fi
else
  GCC=
  test "${CFLAGS+set}" = set || CFLAGS="-g"
fi



# We need to ensure that CFLAGS does not contain `-g', because
# on some (broken) distributions of Linux (specifically Debian 0.93R6),
# the `-lc' and `-lg' libraries have different contents; specifically,
# only the latter contains memalign().  We need to make sure that the
# test for memalign() doesn't use `-g', since `ml' doesn't use `-g'.
CFLAGS="-O"

# we also need to add the appropriate `-I' options so that the test programs
# can do #include "memory.h"
CFLAGS="-I runtime -I runtime/machdeps $CFLAGS"
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
  CPP=
fi
if test -z "$CPP"; then
if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
    # This must be in double quotes, not single quotes, because CPP may get
  # substituted into the Makefile and "${CC-cc}" will confuse make.
  CPP="${CC-cc} -E"
  # On the NeXT, cc -E runs the code through the compiler's parser,
  # not just through cpp.
  cat > conftest.$ac_ext <<EOF
#line 904 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
  :
else
  echo "$ac_err" >&5
  rm -rf conftest*
  CPP="${CC-cc} -E -traditional-cpp"
  cat > conftest.$ac_ext <<EOF
#line 918 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
  :
else
  echo "$ac_err" >&5
  rm -rf conftest*
  CPP=/lib/cpp
fi
rm -f conftest*
fi
rm -f conftest*
  ac_cv_prog_CPP="$CPP"
fi
  CPP="$ac_cv_prog_CPP"
else
  ac_cv_prog_CPP="$CPP"
fi
echo "$ac_t""$CPP" 1>&6

# If we cannot run a trivial program, we must be cross compiling.
echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_c_cross'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  ac_cv_c_cross=yes
else
cat > conftest.$ac_ext <<EOF
#line 952 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  ac_cv_c_cross=no
else
  ac_cv_c_cross=yes
fi
fi
rm -fr conftest*
fi
cross_compiling=$ac_cv_c_cross
echo "$ac_t""$ac_cv_c_cross" 1>&6

# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test -n "$RANLIB"; then
  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  for ac_dir in $PATH; do
    test -z "$ac_dir" && ac_dir=.
    if test -f $ac_dir/$ac_word; then
      ac_cv_prog_RANLIB="ranlib"
      break
    fi
  done
  IFS="$ac_save_ifs"
  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
fi
fi
RANLIB="$ac_cv_prog_RANLIB"
if test -n "$RANLIB"; then
  echo "$ac_t""$RANLIB" 1>&6
else
  echo "$ac_t""no" 1>&6
fi

echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 1001 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
#ifdef signal
#undef signal
#endif
#ifdef __cplusplus
extern "C"
#endif
void (*signal ()) ();
int main() { return 0; }
int t() {
int i;
; return 0; }
EOF
if eval $ac_compile; then
  rm -rf conftest*
  ac_cv_type_signal=void
else
  rm -rf conftest*
  ac_cv_type_signal=int
fi
rm -f conftest*

fi
echo "$ac_t""$ac_cv_type_signal" 1>&6
cat >> confdefs.h <<EOF
#define RETSIGTYPE $ac_cv_type_signal
EOF


for ac_func in sysconf getpagesize memalign mprotect sigaction setitimer strerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 1040 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char $ac_func(); below.  */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error.  */
char $ac_func(); 

int main() { return 0; }
int t() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
$ac_func();
#endif

; return 0; }
EOF
if eval $ac_link; then
  rm -rf conftest*
  eval "ac_cv_func_$ac_func=yes"
else
  rm -rf conftest*
  eval "ac_cv_func_$ac_func=no"
fi
rm -f conftest*

fi
if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
  echo "$ac_t""yes" 1>&6
    ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'`
  cat >> confdefs.h <<EOF
#define $ac_tr_func 1
EOF
 
else
  echo "$ac_t""no" 1>&6
fi
done

#-----------------------------------------------------------------------------#
# We need to ensure that runtime/conf.h exists, since some of the
# programs we attempt to compile below indirectly include it.
test -f runtime/conf.h || touch runtime/conf.h
#-----------------------------------------------------------------------------#
ac_safe=`echo "sys/siginfo.h" | tr './\055' '___'`
echo $ac_n "checking for sys/siginfo.h""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 1095 "configure"
#include "confdefs.h"
#include <sys/siginfo.h>
EOF
eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=yes"
else
  echo "$ac_err" >&5
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  HAVE_SIGINFO_H=1
else
  echo "$ac_t""no" 1>&6
fi

if test "$HAVE_SIGINFO_H" = 1; then
	cat >> confdefs.h <<\EOF
#define HAVE_SIGINFO 1
EOF

fi
#-----------------------------------------------------------------------------#
ac_safe=`echo "ucontext.h" | tr './\055' '___'`
echo $ac_n "checking for ucontext.h""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 1131 "configure"
#include "confdefs.h"
#include <ucontext.h>
EOF
eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=yes"
else
  echo "$ac_err" >&5
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  HAVE_UCONTEXT_H=1
else
  echo "$ac_t""no" 1>&6
fi

if test "$HAVE_UCONTEXT_H" = 1; then
	cat >> confdefs.h <<\EOF
#define HAVE_UCONTEXT 1
EOF

	CFLAGS="$CFLAGS -DHAVE_UCONTEXT"
else
	ac_safe=`echo "sys/ucontext.h" | tr './\055' '___'`
echo $ac_n "checking for sys/ucontext.h""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 1167 "configure"
#include "confdefs.h"
#include <sys/ucontext.h>
EOF
eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=yes"
else
  echo "$ac_err" >&5
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  HAVE_SYS_UCONTEXT_H=1
else
  echo "$ac_t""no" 1>&6
fi

	if test "$HAVE_SYS_UCONTEXT_H" = 1; then
		cat >> confdefs.h <<\EOF
#define HAVE_SYS_UCONTEXT 1
EOF

	fi
fi
#-----------------------------------------------------------------------------#
ac_safe=`echo "sys/param.h" | tr './\055' '___'`
echo $ac_n "checking for sys/param.h""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 1204 "configure"
#include "confdefs.h"
#include <sys/param.h>
EOF
eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=yes"
else
  echo "$ac_err" >&5
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  HAVE_SYS_PARAM_H=1
else
  echo "$ac_t""no" 1>&6
fi

if test "$HAVE_SYS_PARAM_H" = 1; then
	cat >> confdefs.h <<\EOF
#define HAVE_SYS_PARAM 1
EOF

fi
#-----------------------------------------------------------------------------#
ac_safe=`echo "sys/time.h" | tr './\055' '___'`
echo $ac_n "checking for sys/time.h""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  cat > conftest.$ac_ext <<EOF
#line 1240 "configure"
#include "confdefs.h"
#include <sys/time.h>
EOF
eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=yes"
else
  echo "$ac_err" >&5
  rm -rf conftest*
  eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
  echo "$ac_t""yes" 1>&6
  HAVE_SYS_TIME_H=1
else
  echo "$ac_t""no" 1>&6
fi

if test "$HAVE_SYS_TIME_H" = 1; then
	cat >> confdefs.h <<\EOF
#define HAVE_SYS_TIME 1
EOF

fi
#-----------------------------------------------------------------------------#
if test "$ac_cv_func_sigaction" = yes; then
	echo $ac_n "checking for sigaction field name""... $ac_c" 1>&6
	if eval "test \"`echo '$''{'mercury_cv_sigaction_field'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  mercury_cv_sigaction_field=sa_handler
else
cat > conftest.$ac_ext <<EOF
#line 1279 "configure"
#include "confdefs.h"

	#include <signal.h>
	#include <stdlib.h>
	extern void handler(int signum, siginfo_t *info, void *context);
	main() {
		struct sigaction act;
		act.sa_flags = SA_SIGINFO | SA_RESTART;
		act.sa_sigaction = handler;
		if (sigemptyset(&act.sa_mask) != 0)
			exit(1);
		if (sigaction(SIGSEGV, &act, NULL) != 0)
			exit(1);
		exit(0);
	}
	void handler(int signum, siginfo_t *info, void *context) {
		return;
	}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_sigaction_field=sa_sigaction
else
  mercury_cv_sigaction_field=sa_handler
fi
fi
rm -fr conftest*
fi

	echo "$ac_t""$mercury_cv_sigaction_field" 1>&6
	cat >> confdefs.h <<EOF
#define SIGACTION_FIELD $mercury_cv_sigaction_field
EOF

#-----------------------------------------------------------------------------#
	if test "$HAVE_SIGINFO_H" = 1 &&
	   (test "$HAVE_UCONTEXT_H" = 1 || test "$HAVE_SYS_UCONTEXT_H" = 1)
	then
		echo $ac_n "checking for pc access at signals""... $ac_c" 1>&6
		if eval "test \"`echo '$''{'mercury_cv_pc_access'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  mercury_cv_pc_access=no
		if test "$cross_compiling" = yes; then
  true
else
cat > conftest.$ac_ext <<EOF
#line 1327 "configure"
#include "confdefs.h"

		#include <stdio.h>
		#include <signal.h>
		#include <sys/siginfo.h>
		#ifdef HAVE_UCONTEXT
		#include <ucontext.h>
		#else
		#include <sys/ucontext.h>
		#endif
		int save_signum = 0;
		int save_cause;
		int save_pc;
		extern void handler(int signum, siginfo_t *info, void *context);
		main() {
			struct sigaction act;
			act.sa_flags = SA_SIGINFO | SA_RESTART;
			act.$mercury_cv_sigaction_field = handler;
			if (sigemptyset(&act.sa_mask) != 0)
				exit(1);
			if (sigaction(SIGSEGV, &act, NULL) != 0)
				exit(1);
			if (kill(getpid(), SIGSEGV) != 0)
				exit(1);
			if (save_signum == 0)
				exit(1);
			exit(0);
		}
		void handler(int signum, siginfo_t *info, void *context) {
			save_signum = signum;
			switch (info->si_code) {
			case SEGV_MAPERR:	save_cause = info->si_code;
						break;
			case SEGV_ACCERR:	save_cause = info->si_code;
						break;
			}
			switch (info->si_code) {
			case BUS_ADRALN:	save_cause = info->si_code;
						break;
			case BUS_ADRERR:	save_cause = info->si_code;
						break;
			case BUS_OBJERR:	save_cause = info->si_code;
						break;
			}
			save_cause = info->si_code;
			/* Don't use array indexing - the square brackets
			   are autoconf quote characters */
			save_pc = *(((ucontext_t *) context)->uc_mcontext.gregs
					+ REG_PC);
		}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_pc_access=REG_PC;mercury_cv_pc_access_greg=yes
else
  true
fi
fi
rm -fr conftest*
		if test "$cross_compiling" = yes; then
  true
else
cat > conftest.$ac_ext <<EOF
#line 1391 "configure"
#include "confdefs.h"

		#include <stdio.h>
		#include <signal.h>
		#include <sys/siginfo.h>
		#ifdef HAVE_UCONTEXT
		#include <ucontext.h>
		#else
		#include <sys/ucontext.h>
		#endif
		int save_signum = 0;
		int save_cause;
		int save_pc;
		extern void handler(int signum, siginfo_t *info, void *context);
		main() {
			struct sigaction act;
			act.sa_flags = SA_SIGINFO | SA_RESTART;
			act.$mercury_cv_sigaction_field = handler;
			if (sigemptyset(&act.sa_mask) != 0)
				exit(1);
			if (sigaction(SIGSEGV, &act, NULL) != 0)
				exit(1);
			if (kill(getpid(), SIGSEGV) != 0)
				exit(1);
			if (save_signum == 0)
				exit(1);
			exit(0);
		}
		void handler(int signum, siginfo_t *info, void *context) {
			save_signum = signum;
			switch (info->si_code) {
			case SEGV_MAPERR:	save_cause = info->si_code;
						break;
			case SEGV_ACCERR:	save_cause = info->si_code;
						break;
			}
			switch (info->si_code) {
			case BUS_ADRALN:	save_cause = info->si_code;
						break;
			case BUS_ADRERR:	save_cause = info->si_code;
						break;
			case BUS_OBJERR:	save_cause = info->si_code;
						break;
			}
			save_cause = info->si_code;
			save_pc = *(((ucontext_t *) context)->uc_mcontext.gregs
					+ CTX_EPC);
		}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_pc_access=CTX_EPC;mercury_cv_pc_access_greg=yes
else
  true
fi
fi
rm -fr conftest*
		if test "$cross_compiling" = yes; then
  true
else
cat > conftest.$ac_ext <<EOF
#line 1453 "configure"
#include "confdefs.h"

		#include <stdio.h>
		#include <signal.h>
		#include <sys/siginfo.h>
		#ifdef HAVE_UCONTEXT
		#include <ucontext.h>
		#else
		#include <sys/ucontext.h>
		#endif
		int save_signum = 0;
		int save_cause;
		int save_pc;
		extern void handler(int signum, siginfo_t *info, void *context);
		main() {
			struct sigaction act;
			act.sa_flags = SA_SIGINFO | SA_RESTART;
			act.$mercury_cv_sigaction_field = handler;
			if (sigemptyset(&act.sa_mask) != 0)
				exit(1);
			if (sigaction(SIGSEGV, &act, NULL) != 0)
				exit(1);
			if (kill(getpid(), SIGSEGV) != 0)
				exit(1);
			if (save_signum == 0)
				exit(1);
			exit(0);
		}
		void handler(int signum, siginfo_t *info, void *context) {
			save_signum = signum;
			switch (info->si_code) {
			case SEGV_MAPERR:	save_cause = info->si_code;
						break;
			case SEGV_ACCERR:	save_cause = info->si_code;
						break;
			}
			switch (info->si_code) {
			case BUS_ADRALN:	save_cause = info->si_code;
						break;
			case BUS_ADRERR:	save_cause = info->si_code;
						break;
			case BUS_OBJERR:	save_cause = info->si_code;
						break;
			}
			save_cause = info->si_code;
			save_pc = ((ucontext_t *) context)->uc_mcontext.sc_pc;
		}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_pc_access=sc_pc;mercury_cv_pc_access_greg=no
else
  true
fi
fi
rm -fr conftest*
		
fi

		echo "$ac_t""$mercury_cv_pc_access" 1>&6
		if test $mercury_cv_pc_access != no; then
			cat >> confdefs.h <<EOF
#define PC_ACCESS $mercury_cv_pc_access
EOF

			if test $mercury_cv_pc_access_greg != no; then
				cat >> confdefs.h <<\EOF
#define PC_ACCESS_GREG 1
EOF

			fi
		fi
	fi
fi
#-----------------------------------------------------------------------------#
echo $ac_n "checking for an integer type with the same size as a pointer""... $ac_c" 1>&6
if eval "test \"`echo '$''{'mercury_cv_word_type'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  mercury_cv_word_type=unknown
else
cat > conftest.$ac_ext <<EOF
#line 1537 "configure"
#include "confdefs.h"

	#include <stdio.h>
	main() {
		FILE *fp;

		fp = fopen("conftest.tags", "w");
		if (fp == NULL)
			exit(1);

		if (sizeof(int) == sizeof(void *))
		{
			fprintf(fp, "int\n");
			exit(0);
		}

		if (sizeof(long) == sizeof(void *))
		{
			fprintf(fp, "long\n");
			exit(0);
		}

		fprintf(fp, "unknown\n");
		exit(1);
	}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_word_type=`cat conftest.tags`
else
  mercury_cv_word_type=unknown
fi
fi
rm -fr conftest*

fi

if test "$mercury_cv_word_type" = unknown; then
	if test "$cross_compiling" = yes; then
  mercury_cv_word_type=unknown
else
cat > conftest.$ac_ext <<EOF
#line 1580 "configure"
#include "confdefs.h"

	#include <stdio.h>
	main() {
		FILE *fp;

		fp = fopen("conftest.tags", "w");
		if (fp == NULL)
			exit(1);

		if (sizeof(long long) == sizeof(void *))
		{
			fprintf(fp, "long long\n");
			exit(0);
		}

		fprintf(fp, "unknown\n");
		exit(1);
	}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_word_type=`cat conftest.tags`
else
  mercury_cv_word_type=unknown
fi
fi
rm -fr conftest*
fi
echo "$ac_t""$mercury_cv_word_type" 1>&6
cat >> confdefs.h <<EOF
#define WORD_TYPE $mercury_cv_word_type
EOF

WORD_TYPE=$mercury_cv_word_type

#-----------------------------------------------------------------------------#
echo $ac_n "checking for the number of low tag bits""... $ac_c" 1>&6
if eval "test \"`echo '$''{'mercury_cv_low_tag_bits'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  mercury_cv_low_tag_bits=0
else
cat > conftest.$ac_ext <<EOF
#line 1626 "configure"
#include "confdefs.h"

	#include <stdio.h>
	#include <stdlib.h>
	int main() {
		FILE *fp;

		fp = fopen("conftest.tags", "w");
		if (fp == NULL)
			exit(1);

		if (sizeof(void *) == 4)
		{
			fprintf(fp, "2\n");
			exit(0);
		}
		if (sizeof(void *) == 8)
		{
			fprintf(fp, "3\n");
			exit(0);
		}
		if (sizeof(void *) == 16)
		{
			fprintf(fp, "4\n");
			exit(0);
		}
		fprintf(fp, "0\n");
		exit(1);
	}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_low_tag_bits=`cat conftest.tags`
else
  mercury_cv_low_tag_bits=0
fi
fi
rm -fr conftest*

fi

echo "$ac_t""$mercury_cv_low_tag_bits" 1>&6
if test "$mercury_cv_low_tag_bits" -lt 2; then
	if test "$BOOTSTRAP_MC" = ""; then
		{ echo "configure: error: "cannot bootstrap: low tag bits less than 2"" 1>&2; exit 1; }
		exit 1
	else
		echo "rebuilding with fewer tag bits" 1>&6
		echo "installation may take longer than usual" 1>&6
		rm -f library/*.c compiler/*.c profiler/*.c
	fi
fi
if test "$mercury_cv_low_tag_bits" -gt 2; then
	if test "$BOOTSTRAP_MC" = ""; then
		echo "configure: warning: "bootstrapping using only 2 low tag bits"" 1>&2
		mercury_cv_low_tag_bits=2
	else
		echo "rebuilding with extra tag bits" 1>&6
		echo "installation may take longer than usual" 1>&6
		rm -f library/*.c compiler/*.c profiler/*.c
	fi
fi
cat >> confdefs.h <<EOF
#define LOW_TAG_BITS $mercury_cv_low_tag_bits
EOF

LOW_TAG_BITS=$mercury_cv_low_tag_bits

#-----------------------------------------------------------------------------#
echo $ac_n "checking the number of bytes per word""... $ac_c" 1>&6
if eval "test \"`echo '$''{'mercury_cv_bytes_per_word'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  mercury_cv_bytes_per_word=0
else
cat > conftest.$ac_ext <<EOF
#line 1704 "configure"
#include "confdefs.h"

	#include <stdio.h>
	#include <stdlib.h>
	int main() {
		FILE *fp;

		fp = fopen("conftest.wordbytes", "w");
		if (fp == NULL)
			exit(1);
		fprintf(fp, "%d\n", sizeof(void *));

		exit(0);
	}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_bytes_per_word=`cat conftest.wordbytes`
else
  mercury_cv_bytes_per_word=0
fi
fi
rm -fr conftest*

fi

echo "$ac_t""$mercury_cv_bytes_per_word" 1>&6
cat >> confdefs.h <<EOF
#define BYTES_PER_WORD $mercury_cv_bytes_per_word
EOF

BYTES_PER_WORD=$mercury_cv_bytes_per_word

#-----------------------------------------------------------------------------#
echo $ac_n "checking the number of bits per word""... $ac_c" 1>&6
if eval "test \"`echo '$''{'mercury_cv_bits_per_word'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  mercury_cv_bits_per_word=0
else
cat > conftest.$ac_ext <<EOF
#line 1747 "configure"
#include "confdefs.h"

	#include <stdio.h>
	#include <stdlib.h>
	#include <limits.h>
	int main() {
		FILE *fp;

		fp = fopen("conftest.wordbits", "w");
		if (fp == NULL)
			exit(1);
		fprintf(fp, "%d\n", CHAR_BIT * sizeof(void *));

		exit(0);
	}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_bits_per_word=`cat conftest.wordbits`
else
  mercury_cv_bits_per_word=0
fi
fi
rm -fr conftest*

fi

echo "$ac_t""$mercury_cv_bits_per_word" 1>&6
cat >> confdefs.h <<EOF
#define BITS_PER_WORD $mercury_cv_bits_per_word
EOF

BITS_PER_WORD=$mercury_cv_bits_per_word

#-----------------------------------------------------------------------------#
echo $ac_n "checking whether we can use unboxed floats""... $ac_c" 1>&6
if eval "test \"`echo '$''{'mercury_cv_unboxed_floats'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  mercury_cv_unboxed_floats=no
else
cat > conftest.$ac_ext <<EOF
#line 1791 "configure"
#include "confdefs.h"

	int main() {
		if (sizeof(double) == sizeof(void *))
			exit(0);
		else
			exit(1);
	}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_unboxed_floats=yes
else
  mercury_cv_unboxed_floats=no
fi
fi
rm -fr conftest*

fi

echo "$ac_t""$mercury_cv_unboxed_floats" 1>&6
if test "$mercury_cv_unboxed_floats" = yes; then
	if test "$BOOTSTRAP_MC" = ""; then
		echo "configure: warning: Mercury compiler not yet installed -" \
				"cannot use unboxed floats" 1>&2
		echo "configure: warning: bootstrapping using boxed floats" 1>&2
		echo "configure: warning: *** after installation is complete you" \
				"may want to reinstall from scratch" 1>&2
		echo "configure: warning: *** so you can use unboxed floats" 1>&2
		mercury_cv_unboxed_floats=no
	else
		echo "rebuilding with unboxed floats" 1>&6
		echo "installation may take longer than usual" 1>&6
		rm -f library/*.c compiler/*.c profiler/*.c
	fi
fi
if test "$mercury_cv_unboxed_floats" = yes; then
	HAVE_BOXED_FLOATS="--unboxed-float"
else
	cat >> confdefs.h <<\EOF
#define BOXED_FLOAT 1
EOF

	HAVE_BOXED_FLOATS="--no-unboxed-float"
fi

#-----------------------------------------------------------------------------#
#
# For Irix 5, gcc labels don't work with shared libraries,
# so if we're using gcc labels, we need to use non-shared libraries,
# which means passing -non_shared and -mno-abicalls and also setting
# LIBRARY_PATH.
# For x86, gcc global registers only work with -fno-builtin
# and -fno-omit-frame-pointer.
#
# NB. Any changes here may also require changes to scripts/mgnuc.in.
#
save_CC="$CC"
save_LIBRARY_PATH="$LIBRARY_PATH"
CFLAGS_FOR_REGS=
CFLAGS_FOR_GOTOS=-fno-defer-pop
case "$host" in
	mips-sgi-irix5.*)
		CC="$CC -non_shared -mno-abicalls"
		CFLAGS_FOR_GOTOS="-fno-defer-pop -non_shared -mno-abicalls"
LIBRARY_PATH="$NONSHARED_LIB_DIR:/usr/lib/nonshared:$LIBRARY_PATH"
		export LIBRARY_PATH
		;;
	i?86-*)
		CC="$CC -fno-builtin -fno-omit-frame-pointer"
		CFLAGS_FOR_REGS="-fno-builtin -fno-omit-frame-pointer"
		;;
	# We need a special-case hack here, because the auto-config 
	# gets it wrong on the Alpha: the little example program
	# works fine in fast.gc mode, but big programs don't,
	# due to problems with the `gp' register.  Ideally we
	# ought to write a big enough example program to trigger
	# the problem, but that would be too much work.
	alpha-dec-*)
		echo "asm labels work on the Alpha" 1>&6
		echo "but plain gcc labels do not" 1>&6
		mercury_cv_asm_labels=yes
		mercury_cv_gcc_labels=no
		;;
	# Similarly for rs6000
	rs6000-*)
		echo "gcc labels do not work on the RS/6000" 1>&6
		mercury_cv_asm_labels=no
		mercury_cv_gcc_labels=no
		;;
esac


#-----------------------------------------------------------------------------#
echo $ac_n "checking whether we can use gcc labels""... $ac_c" 1>&6
if eval "test \"`echo '$''{'mercury_cv_gcc_labels'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  mercury_cv_gcc_labels=no
else
cat > conftest.$ac_ext <<EOF
#line 1894 "configure"
#include "confdefs.h"

	void *entry_foo_1;
	void *entry_bar_1;
	void *succip;
	int global;
	foo() {
		entry_foo_1 = && foo_1;
		return;
	foo_1:
		if (global != 42) exit(1);
		goto *entry_bar_1;
	}
	bar() {
		entry_bar_1 = && bar_1;
		return;
	bar_1:
		if (global != 42) exit(1);
		goto *succip;
	}
	main() {
		global = 42;
		foo();
		bar();
		succip = &&last;
		goto *entry_foo_1;
		exit(1);
	last:
		if (global != 42) exit(1);
		exit(0);
	}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_gcc_labels=yes
else
  mercury_cv_gcc_labels=no
fi
fi
rm -fr conftest*

fi

echo "$ac_t""$mercury_cv_gcc_labels" 1>&6
if test "$mercury_cv_gcc_labels" = yes; then
	cat >> confdefs.h <<\EOF
#define HAVE_GCC_LABELS 1
EOF

fi
#-----------------------------------------------------------------------------#
if test $mercury_cv_gcc_labels = yes; then
	echo $ac_n "checking whether we can use asm labels""... $ac_c" 1>&6
	if eval "test \"`echo '$''{'mercury_cv_asm_labels'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  mercury_cv_asm_labels=no
else
cat > conftest.$ac_ext <<EOF
#line 1955 "configure"
#include "confdefs.h"

	void *volatile volatile_global_pointer;
	extern void mercury__label1 (void) __asm__("entry_" "mercury__label1" );
	main() {
		void *addr;

		volatile_global_pointer = &&mercury__label1;
		addr = &mercury__label1;
		goto *addr;
		exit(1);

	mercury__label1:
		__asm__(".globl entry_" "mercury__label1" "\n" "entry_"
			"mercury__label1" ":");
		exit(0);
	}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_asm_labels=yes
else
  mercury_cv_asm_labels=no
fi
fi
rm -fr conftest*
	
fi

	echo "$ac_t""$mercury_cv_asm_labels" 1>&6
else
	mercury_cv_asm_labels=${mercury_cv_asm_labels-no}
fi
HAVE_ASM_LABELS=$mercury_cv_asm_labels

if test $HAVE_ASM_LABELS = 1; then
	cat >> confdefs.h <<\EOF
#define HAVE_ASM_LABELS 1
EOF

fi
#-----------------------------------------------------------------------------#
if test $mercury_cv_gcc_labels = yes || test $mercury_cv_asm_labels = yes; then
	echo $ac_n "checking whether we can use gcc labels and global registers""... $ac_c" 1>&6
	if eval "test \"`echo '$''{'mercury_cv_gcc_model_fast'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  mercury_cv_gcc_model_fast=no
else
cat > conftest.$ac_ext <<EOF
#line 2007 "configure"
#include "confdefs.h"

	#define	reg	register
	typedef	unsigned int Word;
	#define USE_GCC_NONLOCAL_GOTOS
	#define USE_GCC_GLOBAL_REGISTERS
	#include "memory.h"
	 
	Word fake_reg[MAX_FAKE_REG];
	 
	main() {
		mr0 = 20;
		mr7 = 22;
		if (mr0 + mr7 != 42)
			exit(1);
		exit(0);
	}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_gcc_model_fast=yes
else
  mercury_cv_gcc_model_fast=no
fi
fi
rm -fr conftest*
	
fi

	echo "$ac_t""$mercury_cv_gcc_model_fast" 1>&6
else
	mercury_cv_gcc_model_fast=no
fi
#-----------------------------------------------------------------------------#
#
# Restore env vars modified by Irix 5 hack above
#
CC="$save_CC"
LIBRARY_PATH="$save_LIBRARY_PATH"
#-----------------------------------------------------------------------------#

echo $ac_n "checking whether we can use global registers without gcc labels""... $ac_c" 1>&6
if eval "test \"`echo '$''{'mercury_cv_gcc_model_reg'+set}'`\" = set"; then
  echo $ac_n "(cached) $ac_c" 1>&6
else
  if test "$cross_compiling" = yes; then
  mercury_cv_gcc_model_reg=no
else
cat > conftest.$ac_ext <<EOF
#line 2057 "configure"
#include "confdefs.h"

#define	reg	register
typedef	unsigned int Word;
#define USE_GCC_GLOBAL_REGISTERS
#include "regs.h"
#include "memory.h"
 
Word fake_reg[MAX_FAKE_REG];
 
main() {
	mr0 = 20;
	mr7 = 22;
	if (mr0 + mr7 != 42)
		exit(1);
	exit(0);
}
EOF
eval $ac_link
if test -s conftest && (./conftest; exit) 2>/dev/null; then
  mercury_cv_gcc_model_reg=yes
else
  mercury_cv_gcc_model_reg=no
fi
fi
rm -fr conftest*

fi

echo "$ac_t""$mercury_cv_gcc_model_reg" 1>&6
#-----------------------------------------------------------------------------#

if test $mercury_cv_asm_labels = yes; then
	if test $mercury_cv_gcc_model_fast = yes; then
		BEST_GRADE=asm_fast
	else
		BEST_GRADE=asm_jump
	fi
elif test $mercury_cv_gcc_labels = yes; then
	if test $mercury_cv_gcc_model_fast = yes; then
		BEST_GRADE=fast
	else
		BEST_GRADE=jump
	fi
else
	if test $mercury_cv_gcc_model_reg = yes; then
		BEST_GRADE=reg
	else
		BEST_GRADE=none
	fi
fi

# We can't use grade jump.gc or fast.gc unless we have a working Mercury
# compiler to bootstrap with, since the C code generated for the other
# grades won't work in grade jump.gc or fast.gc.

DESIRED_GRADE=$BEST_GRADE.gc
GRADE=$DESIRED_GRADE
if test "$GRADE" = jump.gc || test "$GRADE" = fast.gc; then
	if test "$BOOTSTRAP_MC" = ""; then
		if test "$DESIRED_GRADE" = jump.gc; then
			GRADE=none.gc
		else
			GRADE=reg.gc
		fi
		echo "configure: warning: Mercury compiler not yet installed -" \
				"cannot use grade \`$DESIRED_GRADE'" 1>&2
		echo "configure: warning: using \`GRADE=$GRADE' to compile the compiler" 1>&2
		echo "configure: warning: *** after installation is complete you" \
				"should reinstall from scratch" 1>&2
		echo "configure: warning: *** so you can use the more efficient" \
				"grade \`$DESIRED_GRADE'" 1>&2
	else
		echo "using \`GRADE=$GRADE' to compile the compiler" 1>&6
		echo "compiler and library will be rebuilt with new grade" 1>&6
		echo "installation may take a long time" 1>&6
		rm -f library/*.c compiler/*.c profiler/*.c
	fi
else
	echo "using \`GRADE=$GRADE' to compile the compiler" 1>&6
fi



if test "$DEFAULT_GRADE" = ""; then
	DEFAULT_GRADE=$GRADE
	# For Irix 5.x, shared libraries are incompatible
	# with gcc non-local gotos.
	# We prefer to use shared libraries by default
	case "$host" in
		mips-sgi-irix5.*)
			DEFAULT_GRADE=reg.gc
			;;
	esac
fi
echo "using \`DEFAULT_GRADE=$DEFAULT_GRADE' as the default grade for applications" 1>&6


ALL_LIBGRADES="none"
if test $mercury_cv_gcc_model_reg = yes; then
	ALL_LIBGRADES="$ALL_LIBGRADES reg"
fi
if test $mercury_cv_gcc_labels = yes; then
	ALL_LIBGRADES="$ALL_LIBGRADES jump"
	if test $mercury_cv_gcc_model_fast = yes; then
		ALL_LIBGRADES="$ALL_LIBGRADES fast"
	fi
fi
if test $mercury_cv_asm_labels = yes; then
	if test $mercury_cv_gcc_labels = yes; then
		ALL_LIBGRADES="$ALL_LIBGRADES asm_jump"
	fi
	if test $mercury_cv_gcc_model_fast = yes; then
		ALL_LIBGRADES="$ALL_LIBGRADES asm_fast"
	fi
fi

# Check whether --enable-all-grades or --disable-all-grades was given.
enableval="$enable_all_grades"
if test -n "$enableval"; then
  enable_all_grades=yes
else
  enable_all_grades=no
fi


if test $enable_all_grades = yes; then
	LIBGRADES="$ALL_LIBGRADES"
else
	LIBGRADES="$BEST_GRADE"
fi

for grade in $LIBGRADES; do
	LIBGRADES="$LIBGRADES $grade.gc"
done
LIBGRADES="$LIBGRADES $DEFAULT_GRADE.prof \
`echo $DEFAULT_GRADE|sed 's/\.gc$//'`.prof"
if test $GRADE != $DEFAULT_GRADE; then
	LIBGRADES="$LIBGRADES $GRADE.prof `echo $GRADE|sed 's/\.gc$//'`.prof"
fi
#
# on the alpha, the grades that use non-local gotos are a bit
# flakey, due to problems with register $15 (fp) being clobbered,
# so always install reg.gc and reg.gc.prof
#
case "$host" in
	alpha-dec-*)
		if test $enable_all_grades != yes; then
			LIBGRADES="$LIBGRADES reg.gc reg.gc.prof"
		fi
		;;
esac
# remove GRADE from LIBGRADES
LIBGRADES=` echo " $LIBGRADES " | sed "s/ $GRADE / /" `
echo "using \`LIBGRADES=$LIBGRADES' as the set of library grades to install" 1>&6

#-----------------------------------------------------------------------------#

# Determine how many of the r registers (r1, r2, ...) are real registers.
# Determine how many temporaries may be allocated real registers.
# Find out whether branch instructions have a delay slot.

case "$host" in
	i?86-*)
		# NUM_REAL_REGS=3
		# but succip and sp are real regs, so subtract 2
		NUM_REAL_R_REGS=1
		NUM_REAL_R_TEMPS=0
		HAVE_DELAY_SLOT=
		;;
	alpha-*)
		# NUM_REAL_REGS=6
		# but succip, sp, and hp are real regs, so subtract 3
		NUM_REAL_R_REGS=3
		NUM_REAL_R_TEMPS=6
		HAVE_DELAY_SLOT=
		;;
	mips-*)
		# NUM_REAL_REGS=8
		# but succip, sp, and hp are real regs, so subtract 3
		NUM_REAL_R_REGS=5
		NUM_REAL_R_TEMPS=6
		HAVE_DELAY_SLOT=--have-delay-slot
		;;
	rs6000-*)
		# NUM_REAL_REGS=10
		# but succip, sp, hp, maxfr, and curfr are real regs,
		# so subtract 5
		NUM_REAL_R_REGS=5
		NUM_REAL_R_TEMPS=6
		HAVE_DELAY_SLOT=
		;;
	sparc-*)
		# NUM_REAL_REGS=10
		# but succip, sp, hp, maxfr, and curfr are real regs,
		# so subtract 5
		NUM_REAL_R_REGS=5
		NUM_REAL_R_TEMPS=6
		HAVE_DELAY_SLOT=--have-delay-slot
		;;
	hppa-*)
		# NUM_REAL_REGS=8
		# but succip, sp, and hp are real regs, so subtract 3
		NUM_REAL_R_REGS=5
		NUM_REAL_R_TEMPS=6
		HAVE_DELAY_SLOT=
		;;
	*)
		NUM_REAL_R_REGS=0
		NUM_REAL_R_TEMPS=6
		HAVE_DELAY_SLOT=
		;;
esac




#-----------------------------------------------------------------------------#
echo $ac_n "checking whether Mercury supports shared libraries on this system""... $ac_c" 1>&6
# We ought to use $target here rather than $host - but we don't
# support cross-compilation at the moment anyhow.

# set up some default values that should work on most systems
# see Mmake.common.in for documentation on the meaning of these variables
LINK_SHARED_OBJ="$CC -shared"
SHARED_LIBS='`gcc -print-libgcc-file-name` -lm -lc'
CFLAGS_FOR_PIC=-fpic
EXT_FOR_PIC_OBJECTS=pic_o
EXT_FOR_SHARED_LIB=a

case "$host" in
	i386-*-freebsd*)
		# From Cornelis van der Laan <nils@ims.uni-stuttgart.de>
		echo "$ac_t""yes" 1>&6
		LINK_SHARED_OBJ="ld -Bshareable"
		EXT_FOR_SHARED_LIB=so
		;;
	sparc-sun-solaris2.*)
		echo "$ac_t""yes" 1>&6
		SHARED_LIBS="-lm -lc"	# don't link in libgcc.a
		# for some reason, using -fpic doesn't seem to work on
		# Solaris - probably because of problems with the global
		# pointer register
		LINK_SHARED_OBJ="$CC -G"
		CFLAGS_FOR_PIC=
		EXT_FOR_PIC_OBJECTS=o
		EXT_FOR_SHARED_LIB=so
		;;
	alpha-dec-osf*)
		echo "$ac_t""yes" 1>&6
		LINK_SHARED_OBJ="ld -O3 -shared \
			-update_registry ../so_locations"
		EXT_FOR_SHARED_LIB=so
		# -fpic not needed on Alpha/OSF, since it is the default
		CFLAGS_FOR_PIC=
		EXT_FOR_PIC_OBJECTS=o
		;;
	mips-sgi-irix5.*)
		LINK_SHARED_OBJ="ld -shared -update_registry ../so_locations\
			-quickstart_info -rdata_shared -no_unresolved"
		# -fpic not needed on IRIX, since it is the default
		CFLAGS_FOR_PIC=
		EXT_FOR_PIC_OBJECTS=o
		# shared libraries only work for reg.gc or none.gc
		if test "$GRADE" = reg.gc || test "$GRADE" = none.gc; then
			echo "$ac_t""yes" 1>&6
			EXT_FOR_SHARED_LIB=so
		else
			EXT_FOR_SHARED_LIB=a
			echo "$ac_t""no" 1>&6
			echo "$ac_t""Read README.IRIX-5" 1>&6
		fi
		;;
	*)
		echo "$ac_t""no" 1>&6
		;;
esac





#-----------------------------------------------------------------------------#
if test "$BOOTSTRAP_MC" = ""; then
	BOOTSTRAP_MC=mc
fi
BOOTSTRAP_MC="$BOOTSTRAP_MC $HAVE_BOXED_FLOATS --conf-low-tag-bits $LOW_TAG_BITS --bits-per-word $BITS_PER_WORD --bytes-per-word $BYTES_PER_WORD"

#-----------------------------------------------------------------------------#

trap '' 1 2 15
cat > confcache <<\EOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs.  It is not useful on other systems.
# If it contains results you don't want to keep, you may remove or edit it.
#
# By default, configure uses ./config.cache as the cache file,
# creating it if it does not exist already.  You can give configure
# the --cache-file=FILE option to use a different cache file; that is
# what configure does when it calls configure scripts in
# subdirectories, so they share the cache.
# Giving --cache-file=/dev/null disables caching, for debugging configure.
# config.status only pays attention to the cache file if you give it the
# --recheck option to rerun configure.
#
EOF
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(set) 2>&1 |
  sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \
  >> confcache
if cmp -s $cache_file confcache; then
  :
else
  if test -w $cache_file; then
    echo "updating cache $cache_file"
    cat confcache > $cache_file
  else
    echo "not updating unwritable cache $cache_file"
  fi
fi
rm -f confcache

trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15

test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'

# Any assignment to VPATH causes Sun make to only execute
# the first set of double-colon rules, so remove it if not needed.
# If there is a colon in the path, we need to keep it.
if test "x$srcdir" = x.; then
  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
fi

trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15

DEFS=-DHAVE_CONFIG_H

# Without the "./", some shells look in PATH for config.status.
: ${CONFIG_STATUS=./config.status}

echo creating $CONFIG_STATUS
rm -f $CONFIG_STATUS
cat > $CONFIG_STATUS <<EOF
#! /bin/sh
# Generated automatically by configure.
# Run this file to recreate the current configuration.
# This directory was configured as follows,
# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
#
# $0 $ac_configure_args
#
# Compiler output produced by configure, useful for debugging
# configure, is in ./config.log if it exists.

ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
for ac_option
do
  case "\$ac_option" in
  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
    echo "$CONFIG_STATUS generated by autoconf version 2.4"
    exit 0 ;;
  -help | --help | --hel | --he | --h)
    echo "\$ac_cs_usage"; exit 0 ;;
  *) echo "\$ac_cs_usage"; exit 1 ;;
  esac
done

ac_given_srcdir=$srcdir

trap 'rm -fr `echo "Mmake.common scripts/Mmake.vars scripts/mc scripts/mprof
scripts/mercury_update_interface scripts/mgnuc scripts/mint scripts/ml
scripts/mmake scripts/mnc scripts/mnl scripts/mnp scripts/c2init
scripts/msc scripts/msl scripts/msp scripts/sicstus_conv
scripts/mkfifo_using_mknod bindist/bindist.build_vars
 runtime/conf.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15

# Protect against being on the right side of a sed subst in config.status. 
sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; 
 s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
$ac_vpsub
$extrasub
s%@CFLAGS@%$CFLAGS%g
s%@CPPFLAGS@%$CPPFLAGS%g
s%@CXXFLAGS@%$CXXFLAGS%g
s%@DEFS@%$DEFS%g
s%@LDFLAGS@%$LDFLAGS%g
s%@LIBS@%$LIBS%g
s%@exec_prefix@%$exec_prefix%g
s%@prefix@%$prefix%g
s%@program_transform_name@%$program_transform_name%g
s%@host@%$host%g
s%@host_alias@%$host_alias%g
s%@host_cpu@%$host_cpu%g
s%@host_vendor@%$host_vendor%g
s%@host_os@%$host_os%g
s%@FULLARCH@%$FULLARCH%g
s%@PREFIX@%$PREFIX%g
s%@NONSHARED_LIB_DIR@%$NONSHARED_LIB_DIR%g
s%@LIBDIR@%$LIBDIR%g
s%@BOOTSTRAP_MC@%$BOOTSTRAP_MC%g
s%@GNU_MAKE@%$GNU_MAKE%g
s%@SP@%$SP%g
s%@INSTALL_SICSTUS@%$INSTALL_SICSTUS%g
s%@SICSTUS@%$SICSTUS%g
s%@NP@%$NP%g
s%@INSTALL_NUPROLOG@%$INSTALL_NUPROLOG%g
s%@NUPROLOG@%$NUPROLOG%g
s%@MKFIFO@%$MKFIFO%g
s%@MKNOD@%$MKNOD%g
s%@CC@%$CC%g
s%@CPP@%$CPP%g
s%@RANLIB@%$RANLIB%g
s%@WORD_TYPE@%$WORD_TYPE%g
s%@LOW_TAG_BITS@%$LOW_TAG_BITS%g
s%@BYTES_PER_WORD@%$BYTES_PER_WORD%g
s%@BITS_PER_WORD@%$BITS_PER_WORD%g
s%@HAVE_BOXED_FLOATS@%$HAVE_BOXED_FLOATS%g
s%@CFLAGS_FOR_REGS@%$CFLAGS_FOR_REGS%g
s%@CFLAGS_FOR_GOTOS@%$CFLAGS_FOR_GOTOS%g
s%@HAVE_ASM_LABELS@%$HAVE_ASM_LABELS%g
s%@GRADE@%$GRADE%g
s%@DEFAULT_GRADE@%$DEFAULT_GRADE%g
s%@LIBGRADES@%$LIBGRADES%g
s%@NUM_REAL_R_REGS@%$NUM_REAL_R_REGS%g
s%@NUM_REAL_R_TEMPS@%$NUM_REAL_R_TEMPS%g
s%@HAVE_DELAY_SLOT@%$HAVE_DELAY_SLOT%g
s%@LINK_SHARED_OBJ@%$LINK_SHARED_OBJ%g
s%@CFLAGS_FOR_PIC@%$CFLAGS_FOR_PIC%g
s%@EXT_FOR_PIC_OBJECTS@%$EXT_FOR_PIC_OBJECTS%g
s%@EXT_FOR_SHARED_LIB@%$EXT_FOR_SHARED_LIB%g
s%@SHARED_LIBS@%$SHARED_LIBS%g

CEOF
EOF
cat >> $CONFIG_STATUS <<EOF

CONFIG_FILES=\${CONFIG_FILES-"Mmake.common scripts/Mmake.vars scripts/mc scripts/mprof
scripts/mercury_update_interface scripts/mgnuc scripts/mint scripts/ml
scripts/mmake scripts/mnc scripts/mnl scripts/mnp scripts/c2init
scripts/msc scripts/msl scripts/msp scripts/sicstus_conv
scripts/mkfifo_using_mknod bindist/bindist.build_vars
"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
  # Support "outfile[:infile]", defaulting infile="outfile.in".
  case "$ac_file" in
  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
  *) ac_file_in="${ac_file}.in" ;;
  esac

  # Adjust relative srcdir, etc. for subdirectories.

  # Remove last slash and all that follows it.  Not all systems have dirname.
  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
    # The file is in a subdirectory.
    test ! -d "$ac_dir" && mkdir "$ac_dir"
    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
    # A "../" for each directory in $ac_dir_suffix.
    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
  else
    ac_dir_suffix= ac_dots=
  fi

  case "$ac_given_srcdir" in
  .)  srcdir=.
      if test -z "$ac_dots"; then top_srcdir=.
      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
  *) # Relative path.
    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
    top_srcdir="$ac_dots$ac_given_srcdir" ;;
  esac

  echo creating "$ac_file"
  rm -f "$ac_file"
  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
  case "$ac_file" in
  *Makefile*) ac_comsub="1i\\
# $configure_input" ;;
  *) ac_comsub= ;;
  esac
  sed -e "$ac_comsub
s%@configure_input@%$configure_input%g
s%@srcdir@%$srcdir%g
s%@top_srcdir@%$top_srcdir%g
" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
fi; done
rm -f conftest.subs

# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
# NAME is the cpp macro being defined and VALUE is the value it is being given.
#
# ac_d sets the value in "#define NAME VALUE" lines.
ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
ac_dC='\3'
ac_dD='%g'
# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
ac_uB='\([ 	]\)%\1#\2define\3'
ac_uC=' '
ac_uD='\4%g'
# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
ac_eB='$%\1#\2define\3'
ac_eC=' '
ac_eD='%g'

CONFIG_HEADERS=${CONFIG_HEADERS-"runtime/conf.h"}
for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
  # Support "outfile[:infile]", defaulting infile="outfile.in".
  case "$ac_file" in
  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
  *) ac_file_in="${ac_file}.in" ;;
  esac

  echo creating $ac_file

  rm -f conftest.frag conftest.in conftest.out
  cp $ac_given_srcdir/$ac_file_in conftest.in

EOF

# Transform confdefs.h into a sed script conftest.vals that substitutes
# the proper values into config.h.in to produce config.h.  And first:
# Protect against being on the right side of a sed subst in config.status. 
# Protect against being in an unquoted here document in config.status.
rm -f conftest.vals
cat > conftest.hdr <<\EOF
s/[\\&%]/\\&/g
s%[\\$`]%\\&%g
s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
s%ac_d%ac_u%gp
s%ac_u%ac_e%gp
EOF
sed -n -f conftest.hdr confdefs.h > conftest.vals
rm -f conftest.hdr

# This sed command replaces #undef with comments.  This is necessary, for
# example, in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
cat >> conftest.vals <<\EOF
s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
EOF

# Break up conftest.vals because some shells have a limit on
# the size of here documents, and old seds have small limits too.
# Maximum number of lines to put in a single here document.
ac_max_here_lines=12

rm -f conftest.tail
while :
do
  ac_lines=`grep -c . conftest.vals`
  # grep -c gives empty output for an empty file on some AIX systems.
  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
  # Write a limited-size here document to conftest.frag.
  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
  echo 'CEOF
  sed -f conftest.frag conftest.in > conftest.out
  rm -f conftest.in
  mv conftest.out conftest.in
' >> $CONFIG_STATUS
  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
  rm -f conftest.vals
  mv conftest.tail conftest.vals
done
rm -f conftest.vals

cat >> $CONFIG_STATUS <<\EOF
  rm -f conftest.frag conftest.h
  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
  cat conftest.in >> conftest.h
  rm -f conftest.in
  if cmp -s $ac_file conftest.h 2>/dev/null; then
    echo "$ac_file is unchanged"
    rm -f conftest.h
  else
    rm -f $ac_file
    mv conftest.h $ac_file
  fi
fi; done


if test "$CONFIG_HEADERS" = "runtime/conf.h"; then
	touch runtime/conf.h.date
fi
# conftest.junk is used to avoid a warning if there
# are no files in the list passed to chmod
touch conftest.junk
chmod a-w $CONFIG_FILES $CONFIG_HEADERS conftest.junk
chmod +x `echo $CONFIG_FILES | sed -e 's/^ *Mmake.common//' ` conftest.junk
rm -f conftest.junk

exit 0
EOF
chmod +x $CONFIG_STATUS
rm -fr confdefs* $ac_clean_files
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1


#-----------------------------------------------------------------------------#
