yes) sim_cflags="-O2 -fomit-frame-pointer";;
no) sim_cflags="";;
*) sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;;
-esac],[sim_cflags=""])dnl
+esac
+if test x"$silent" != x"yes" && test x"$sim_cflags" != x""; then
+ echo "Setting sim cflags = $sim_cflags" 6>&1
+fi],[sim_cflags=""])dnl
AC_ARG_ENABLE(sim-warnings,
-[ --enable-sim-warnings=opts Extra CFLAGS for turning on compiler warnings except for idecode.o and semantics.o],
+[ --enable-sim-warnings=opts Extra CFLAGS for turning on compiler warnings except for idecode.o, semantics.o and psim.o],
[case "${enableval}" in
- yes) sim_warnings="-Wall";;
+ yes) sim_warnings="-Werror -Wall -Wpointer-arith -Wmissing-prototypes";;
no) sim_warnings="-w";;
*) sim_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
-esac],[sim_warnings=""])dnl
+esac
+if test x"$silent" != x"yes" && test x"$sim_warnings" != x""; then
+ echo "Setting warning flags = $sim_warnings" 6>&1
+fi],[sim_warnings=""])dnl
AC_ARG_ENABLE(sim-config,
[ --enable-sim-config=file Override default config file],
[case "${enableval}" in
- yes) sim_config="std-config.h";;
- no) sim_config="std-config.h";;
- *) sim_config="${enableval}";;
-esac],[sim_config="std-config.h]")dnl
+ yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-config=file");;
+ *) if test -f "${srcdir}/${enableval}"; then
+ sim_config="${enableval}";
+ elif test -f "${srcdir}/${enableval}-config.h"; then
+ sim_config="${enableval}-config.h"
+ else
+ AC_MSG_ERROR("Config file $enableval was not found");
+ sim_config=std-config.h
+ fi;;
+esac
+if test x"$silent" != x"yes" && test x"$sim_config" != x""; then
+ echo "Setting config flags = $sim_config" 6>&1
+fi],[sim_config="std-config.h"
+if test x"$silent" != x"yes"; then
+ echo "Setting config flags = $sim_config" 6>&1
+fi])dnl
AC_ARG_ENABLE(sim-opcode,
[ --enable-sim-opcode=which Override default opcode lookup.],
[case "${enableval}" in
- yes) sim_opcode="ppc-opcode-simple";;
- no) sim_opcode="ppc-opcode-simple";;
- *) sim_opcode="ppc-opcode-${enableval}";;
-esac],[sim_opcode="ppc-opcode-simple"])dnl
+ yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-opcode=file");;
+ *) if test -f "${srcdir}/${enableval}"; then
+ sim_opcode="${enableval}"
+ elif test -f "${srcdir}/ppc-opcode-${enableval}"; then
+ sim_opcode="ppc-opcode-${enableval}"
+ else
+ AC_MSG_ERROR("File $enableval is not an opcode rules file");
+ sim_opcode="ppc-opcode-complex"
+ fi;;
+esac
+if test x"$silent" != x"yes" && test x"$sim_opcode" != x""; then
+ echo "Setting opcode flags = $sim_opcode" 6>&1
+fi],[sim_opcode="ppc-opcode-complex"
+if test x"$silent" != x"yes"; then
+ echo "Setting opcode flags = $sim_opcode"
+fi])dnl
AC_ARG_ENABLE(sim-switch,
[ --enable-sim-switch Use a switch instead of a table for instruction call.],
[case "${enableval}" in
yes) sim_switch="-s";;
- *) sim_switch="";;
-esac],[sim_switch=""])dnl
+ no) sim_switch="";;
+ *) AC_MSG_ERROR("--enable-sim-switch does not take a value"); sim_switch="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_switch" != x""; then
+ echo "Setting switch flags = $sim_switch" 6>&1
+fi],[sim_switch="-s";
+if test x"$silent" != x"yes"; then
+ echo "Setting switch flags = $sim_switch" 6>&1
+fi])dnl
AC_ARG_ENABLE(sim-duplicate,
[ --enable-sim-duplicate Expand (duplicate) semantic functions.],
[case "${enableval}" in
- yes) sim_dup="-e";;
- *) sim_dup="";;
-esac],[sim_dup=""])dnl
+ yes) sim_dup="-e";;
+ no) sim_dup="";;
+ *) AC_MSG_ERROR("--enable-sim-duplicate does not take a value"); sim_dup="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_dup" != x""; then
+ echo "Setting duplicate flags = $sim_dup" 6>&1
+fi],[sim_dup="-e"
+if test x"$silent" != x"yes"; then
+ echo "Setting duplicate flags = $sim_dup" 6>&1
+fi])dnl
AC_ARG_ENABLE(sim-filter,
[ --enable-sim-filter=rule Specify filter rules.],
[case "${enableval}" in
- yes) sim_filter="";;
- *) sim_filter="-f $enableval";;
-esac],[sim_filter="-f 64"])dnl
+ yes) AC_MSG_ERROR("--enable-sim-filter must be specified with a rule to filter or no"); sim_filter="";;
+ no) sim_filter="";;
+ *) sim_filter="-f $enableval";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_filter" != x""; then
+ echo "Setting filter flags = $sim_filter" 6>&1
+fi],[sim_filter="-f 64"
+if test x"$silent" != x"yes"; then
+ echo "Setting filter flags = $sim_filter" 6>&1
+fi])dnl
AC_ARG_ENABLE(sim-icache,
[ --enable-sim-icache=size Specify instruction cache size.],
+icache=""
[case "${enableval}" in
- yes) sim_icache="-r 1024";;
- *) sim_icache="";;
-esac],[sim_icache=""])dnl
+ yes) sim_icache="-r 1024"; icache="1024";;
+ define) sim_icache="-r 1024 -R"; icache="1024";;
+ no) sim_icache="";;
+ *) sim_icache="-r ${enableval}"; icache="${enableval}";;
+esac
+if test x"$silent" != x"yes" && test x"$icache" != x""; then
+ echo "Setting instruction cache size to $icache"
+fi],[sim_icache="-r 1024"
+if test x"$silent" != x"yes"; then
+ echo "Setting instruction cache size to 1024"
+fi])dnl
AC_ARG_ENABLE(sim-inline,
[ --enable-sim-inline=inlines Specify which functions should be inlined.],
[sim_inline=""
case "$enableval" in
- no) sim_inline="";;
+ no) sim_inline="-DDEFAULT_INLINE=0 -DINLINE=";;
0) sim_inline="-DDEFAULT_INLINE=0";;
yes | 2) sim_inline="-DDEFAULT_INLINE=2";;
1) sim_inline="-DDEFAULT_INLINE=1";;
case "$x" in
*_INLINE=*) new_flag="-D$x";;
*_INLINE) new_flag="-D$x=2";;
- *=*) new_flag=`sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
+ *=*) new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
*) new_flag="-D$x""_INLINE=2";;
esac
- if x"$sim_inline" = x""; then
+ if test x"$sim_inline" = x""; then
sim_inline="$new_flag"
else
- sim_inline="$flags $new_flag"
+ sim_inline="$sim_inline $new_flag"
fi
done;;
-esac],[sim_inline=""])dnl
+esac
+if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
+ echo "Setting inline flags = $sim_inline" 6>&1
+fi],[if test x"$GCC" != ""; then
+ sim_inline="-DDEFAULT_INLINE=1"
+ if test x"$silent" != x"yes"; then
+ echo "Setting inline flags = $sim_inline" 6>&1
+ fi
+else
+ sim_inline=""
+fi])dnl
AC_ARG_ENABLE(sim-bswap,
[ --enable-sim-bswap Use the BSWAP instruction on Intel 486s and Pentiums.],
[case "${enableval}" in
yes) sim_bswap="-DWITH_BSWAP=1";;
no) sim_bswap="-DWITH_BSWAP=0";;
- *) sim_bswap="";;
-esac],[sim_bswap=""])dnl
+ *) AC_MSG_ERROR("--enable-sim-bswap does not take a value"); sim_bswap="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_bswap" != x""; then
+ echo "Setting bswap flags = $sim_bswap" 6>&1
+fi],[sim_bswap=""])dnl
AC_ARG_ENABLE(sim-endian,
[ --enable-sim-endian=endian Specify target byte endian orientation.],
no) sim_endian="-DWITH_TARGET_BYTE_ORDER=0";;
b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
- *) sim_endian="";;
-esac],[sim_endian=""])dnl
+ *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-endian"); sim_endian="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then
+ echo "Setting endian flags = $sim_endian" 6>&1
+fi],[sim_endian=""])dnl
AC_ARG_ENABLE(sim-hostendian,
[ --enable-sim-hostendain=end Specify host byte endian orientation.],
no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";;
b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";;
l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";;
- *) sim_hostendian="";;
-esac],[sim_hostendian=""])dnl
+ *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-hostendian"); sim_hostendian="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_hostendian" != x""; then
+ echo "Setting hostendian flags = $sim_hostendian" 6>&1
+fi],[sim_hostendian=""])dnl
AC_ARG_ENABLE(sim-smp,
[ --enable-sim-smp=n Specify number of processors to configure for.],
[case "${enableval}" in
- yes) sim_smp="-DWITH_SMP=2";;
+ yes) sim_smp="-DWITH_SMP=5";;
no) sim_smp="-DWITH_SMP=0";;
*) sim_smp="-DWITH_SMP=$enableval";;
-esac],[sim_smp=""])dnl
+esac
+if test x"$silent" != x"yes" && test x"$sim_smp" != x""; then
+ echo "Setting smp flags = $sim_smp" 6>&1
+fi],[sim_smp="-DWITH_SMP=0"
+if test x"$silent" != x"yes"; then
+ echo "Setting smp flags = $sim_smp" 6>&1
+fi])dnl
+
+AC_ARG_ENABLE(sim-xor-endian,
+[ --enable-sim-xor-endian=n Specify number bytes involved in PowerPC XOR bi-endian mode (default 8).],
+[case "${enableval}" in
+ yes) sim_xor_endian="-DWITH_XOR_ENDIAN=8";;
+ no) sim_xor_endian="-DWITH_XOR_ENDIAN=0";;
+ *) sim_xor_endian="-DWITH_XOR_ENDIAN=$enableval";;
+esac],[sim_xor_endian=""])dnl
AC_ARG_ENABLE(sim-bitsize,
[ --enable-sim-bitsize=n Specify target bitsize (32 or 64).],
[case "${enableval}" in
- yes) sim_bitsize="";;
- no) sim_bitsize="";;
- *) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=$enableval";;
-esac],[sim_bitsize=""])dnl
+ 32|64) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=$enableval";;
+ *) AC_MSG_ERROR("--enable-sim-bitsize was given $enableval, expected 32 or 64"); sim_bitsize="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_bitsize" != x""; then
+ echo "Setting bitsize flags = $sim_bitsize" 6>&1
+fi],[sim_bitsize=""])dnl
AC_ARG_ENABLE(sim-hostbitsize,
-[ --enable-sim-hostbitsize=n Specify host bitsize (32 or 64).],
+[ --enable-sim-hostbitsize=32|64 Specify host bitsize (32 or 64).],
[case "${enableval}" in
- yes) sim_hostbitsize="";;
- no) sim_hostbitsize="";;
- *) sim_hostbitsize="-DWITH_HOST_WORD_BITSIZE=$enableval";;
-esac],[sim_hostbitsize=""])dnl
+ 32|64) sim_hostbitsize="-DWITH_HOST_WORD_BITSIZE=$enableval";;
+ *) AC_MSG_ERROR("--enable-sim-hostbitsize was given $enableval, expected 32 or 64"); sim_hostbitsize="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_hostbitsize" != x""; then
+ echo "Setting hostbitsize flags = $sim_hostbitsize" 6>&1
+fi],[sim_hostbitsize=""])dnl
AC_ARG_ENABLE(sim-env,
[ --enable-sim-env=env Specify target environment (operating, virtual, user).],
operating | os | oea) sim_env="-DWITH_ENVIRONMENT=OPERATING_ENVIRONMENT";;
virtual | vea) sim_env="-DWITH_ENVIRONMENT=VIRTUAL_ENVIRONMENT";;
user | uea) sim_env="-DWITH_ENVIRONMENT=USER_ENVIRONMENT";;
- *) sim_env="";;
-esac],[sim_env=""])dnl
+ no) sim_env="-DWITH_ENVIRONMENT=0";;
+ *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-env"); sim_env="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_env" != x""; then
+ echo "Setting env flags = $sim_env" 6>&1
+fi],[sim_env=""])dnl
AC_ARG_ENABLE(sim-timebase,
[ --enable-sim-timebase Specify whether the PPC timebase is supported.],
[case "${enableval}" in
yes) sim_timebase="-DWITH_TIME_BASE=1";;
no) sim_timebase="-DWITH_TIME_BASE=0";;
- *) sim_timebase="";;
-esac],[sim_timebase=""])dnl
+ *) AC_MSG_ERROR("--enable-sim-timebase does not take a value"); sim_timebase="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_timebase" != x""; then
+ echo "Setting timebase flags = $sim_timebase" 6>&1
+fi],[sim_timebase=""])dnl
AC_ARG_ENABLE(sim-alignment,
[ --enable-sim-alignment=align Specify strict or nonstrict alignment.],
[case "${enableval}" in
yes | strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";;
- no | nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NOSTRICT_ALIGNMENT";;
- *) sim_alignment="-DWITH_ALIGNMENT=$enableval";;
-esac],[sim_alignment=""])dnl
+ no | nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";;
+ *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-alignment"); sim_alignment="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then
+ echo "Setting alignment flags = $sim_alignment" 6>&1
+fi],[sim_alignment=""])dnl
AC_ARG_ENABLE(sim-trace,
[ --enable-sim-trace Specify whether tracing is supported.],
[case "${enableval}" in
yes) sim_trace="-DWITH_TRACE=1";;
no) sim_trace="-DWITH_TRACE=0";;
- *) sim_trace="";;
-esac],[sim_trace=""])dnl
+ *) AC_MSG_ERROR("--enable-sim-trace does not take a value"); sim_trace="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then
+ echo "Setting trace flags = $sim_trace" 6>&1
+fi],[sim_trace=""])dnl
AC_ARG_ENABLE(sim-assert,
[ --enable-sim-assert Specify whether to perform random assertions.],
[case "${enableval}" in
yes) sim_assert="-DWITH_ASSERT=1";;
no) sim_assert="-DWITH_ASSERT=0";;
- *) sim_assert="";;
-esac],[sim_assert=""])dnl
+ *) AC_MSG_ERROR("--enable-sim-assert does not take a value"); sim_assert="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_assert" != x""; then
+ echo "Setting assert flags = $sim_assert" 6>&1
+fi],[sim_assert=""])dnl
+
+AC_ARG_ENABLE(sim-reserved-bits,
+[ --enable-sim-reserved-bits Specify whether to check reserved bits in instruction.],
+[case "${enableval}" in
+ yes) sim_reserved="-DWITH_RESERVED_BITS=1";;
+ no) sim_reserved="-DWITH_RESERVED_BITS=0";;
+ *) AC_MSG_ERROR("--enable-sim-reserved-bits does not take a value"); sim_reserved="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_reserved" != x""; then
+ echo "Setting reserved flags = $sim_reserved" 6>&1
+fi],[sim_reserved=""])dnl
AC_ARG_ENABLE(sim-float,
[ --enable-sim-float Specify whether to use host floating point or simulate.],
[case "${enableval}" in
yes | hard) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT";;
no | soft) sim_float="-DWITH_FLOATING_POINT=SOFT_FLOATING_POINT";;
- *) sim_float="";;
-esac],[sim_float=""])dnl
+ *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-float"); sim_float="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_float" != x""; then
+ echo "Setting float flags = $sim_float" 6>&1
+fi],[sim_float=""])dnl
AC_ARG_ENABLE(sim-monitor,
[ --enable-sim-monitor=mon Specify whether to enable monitoring events.],
no) sim_mon="-DWITH_MON=0";;
instruction) sim_mon="-DWITH_MON=MONITOR_INSTRUCTION_ISSUE";;
memory) sim_mon="-DWITH_MON=MONITOR_LOAD_STORE_UNIT";;
- *) sim_mon="-DWITH_MON='$enableval'";;
-esac],[sim_float=""])dnl
-
-AC_ARG_ENABLE(sim-function-unit,
-[ --enable-sim-function-unit Specify whether detailed functional unit support is built.],
-[case "${enableval}" in
- yes) sim_func="-DWITH_FUNCTION_UNIT=1";;
- no) sim_func="-DWITH_FUNCTION_UNIT=0";;
- *) sim_func="";;
-esac],[sim_func=""])dnl
+ *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-mon"); sim_env="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_mon" != x""; then
+ echo "Setting monitor flags = $sim_mon" 6>&1
+fi],[sim_mon=""])dnl
AC_ARG_ENABLE(sim-model,
[ --enable-sim-model=which Specify PowerPC to model.],
[case "${enableval}" in
- yes) sim_model="";;
- no) sim_model="";;
- *) sim_model="-DWITH_PPC_MODEL=${enableval}";;
-esac],[sim_model=""])dnl
+ yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-model=model");;
+ *) sim_model="-DWITH_MODEL=${enableval}";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_model" != x""; then
+ echo "Setting model flags = $sim_model" 6>&1
+fi],[sim_model=""])dnl
AC_ARG_ENABLE(sim-default-model,
[ --enable-sim-default-model=which Specify default PowerPC to model.],
[case "${enableval}" in
- yes) sim_default_model="";;
- no) sim_default_model="";;
- *) sim_default_model="-DWITH_DEFAULT_PPC_MODEL=${enableval}";;
-esac],[sim_model=""])dnl
-
-AC_CONFIG_HEADER(config.h:config.in)
+ yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-default-model=model");;
+ *) sim_default_model="-DWITH_DEFAULT_MODEL=${enableval}";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_default_model" != x""; then
+ echo "Setting default-model flags = $sim_default_model" 6>&1
+fi],[sim_model=""])dnl
+
+AC_ARG_ENABLE(sim-model-issue,
+[ --enable-sim-model-issue Specify whether to simulate model specific actions],
+[case "${enableval}" in
+ yes) sim_model_issue="-DWITH_MODEL_ISSUE=MODEL_ISSUE_PROCESS";;
+ no) sim_model_issue="-DWITH_MODEL_ISSUE=MODEL_ISSUE_IGNORE";;
+ *) AC_MSG_ERROR("--enable-sim-model-issue does not take a value"); sim_model_issue="";;
+esac
+if test x"$silent" != x"yes"; then
+ echo "Setting model-issue flags = $sim_model_issue" 6>&1
+fi],[sim_model_issue=""])dnl
AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../..)
AC_CANONICAL_SYSTEM
. ${srcdir}/../../bfd/configure.host
+AC_CONFIG_HEADER(config.h:config.in)
+
AC_PROG_CC
AC_SUBST(CFLAGS)
AC_SUBST(HDEFINES)
AC_SUBST(sim_inline)
AC_SUBST(sim_bswap)
AC_SUBST(sim_endian)
+AC_SUBST(sim_xor_endian)
AC_SUBST(sim_hostendian)
AC_SUBST(sim_smp)
AC_SUBST(sim_bitsize)
AC_SUBST(sim_float)
AC_SUBST(sim_trace)
AC_SUBST(sim_assert)
+AC_SUBST(sim_reserved)
AC_SUBST(sim_monitor)
-AC_SUBST(sim_func)
AC_SUBST(sim_model)
AC_SUBST(sim_default_model)
+AC_SUBST(sim_model_issue)
AC_CHECK_FUNCS(getrusage)
fi
AC_SUBST(CC_FOR_BUILD)
-AC_CHECK_HEADERS(string.h strings.h stdlib.h time.h sys/times.h unistd.h sys/resource.h)
+AC_CHECK_HEADERS(string.h strings.h stdlib.h time.h sys/types.h sys/time.h sys/times.h unistd.h sys/resource.h)
AC_OUTPUT(Makefile,
[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac])