dnl Process this file with autoconf to produce a configure script.
sinclude(../common/aclocal.m4)
AC_PREREQ(2.5)dnl
AC_INIT(Makefile.in)

SIM_AC_COMMON

dnl Find a versionn of m4 to use as a preprocessor
AC_PATH_PROGS(M4, gm4 gnum4 m4, m4)

dnl Options available in this module
SIM_AC_OPTION_INLINE(0)
SIM_AC_OPTION_ENDIAN(BIG_ENDIAN)
SIM_AC_OPTION_ALIGNMENT(STRICT_ALIGNMENT)
SIM_AC_OPTION_HOSTENDIAN
SIM_AC_OPTION_WARNINGS
SIM_AC_OPTION_RESERVED_BITS(1)

AC_SUBST(M4)

#
# Enable making unknown traps dump out registers
#
AC_ARG_ENABLE(sim-trapdump,
[  --enable-sim-trapdump		Make unknown traps dump the registers],
[case "${enableval}" in
  yes) sim_trapdump="-DTRAPDUMP=1";;
  no)  sim_trapdump="-DTRAPDUMP=0";;
  *)   AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-trapdump"); sim_trapdump="";;
esac
if test x"$silent" != x"yes" && test x"$sim_trapdump" != x""; then
  echo "Setting sim_trapdump = $sim_trapdump" 6>&1
fi],[sim_trapdump=""])dnl
AC_SUBST(sim_trapdump)

dnl For UNIX emulation
AC_CHECK_HEADERS(stdlib.h unistd.h string.h strings.h)


SIM_AC_OUTPUT
