1 dnl Process this file with autoconf to produce a configure script.
5 AC_ARG_ENABLE(sim-cflags,
6 [ --enable-sim-cflags=opts Extra CFLAGS for use in building simulator],
7 [case "${enableval}" in
8 yes) sim_cflags="-O2 -fomit-frame-pointer";;
10 *) sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;;
11 esac],[sim_cflags=""])dnl
13 AC_ARG_ENABLE(sim-config,
14 [ --enable-sim-config=file Override default config file],
15 [case "${enableval}" in
16 yes) sim_config="std-config.h";;
17 no) sim_config="std-config.h";;
18 *) sim_config="${enableval}";;
19 esac],[sim_config="std-config.h]")dnl
21 AC_ARG_ENABLE(sim-opcode,
22 [ --enable-sim-opcode=which Override default opcode lookup.],
23 [case "${enableval}" in
24 yes) sim_opcode="ppc-opcode-simple";;
25 no) sim_opcode="ppc-opcode-simple";;
26 *) sim_opcode="ppc-opcode-${enableval}";;
27 esac],[sim_opcode="ppc-opcode-simple"])dnl
29 AC_ARG_ENABLE(sim-switch,
30 [ --enable-sim-switch Use a switch instead of a table for instruction call.],
31 [case "${enableval}" in
32 yes) sim_switch="-s";;
34 esac],[sim_switch=""])dnl
36 AC_ARG_ENABLE(sim-duplicate,
37 [ --enable-sim-duplicate Expand (duplicate) semantic functions.],
38 [case "${enableval}" in
41 esac],[sim_dup=""])dnl
43 AC_ARG_ENABLE(sim-filter,
44 [ --enable-sim-filter=rule Specify filter rules.],
45 [case "${enableval}" in
47 *) sim_filter="-f $enableval";;
48 esac],[sim_filter="-f 64"])dnl
50 AC_ARG_ENABLE(sim-icache,
51 [ --enable-sim-icache=size Specify instruction cache size.],
52 [case "${enableval}" in
53 yes) sim_icache="-r 1024";;
55 esac],[sim_icache=""])dnl
57 AC_ARG_ENABLE(sim-inline,
58 [ --enable-sim-inline=inlines Specify which functions should be inlined.],
62 0) sim_inline="-DDEFAULT_INLINE=0";;
63 yes | 2) sim_inline="-DDEFAULT_INLINE=2";;
64 1) sim_inline="-DDEFAULT_INLINE=1";;
65 *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
68 *_INLINE=*) new_flag="-D$x";;
69 *_INLINE) new_flag="-D$x=2";;
70 *=*) new_flag=`sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
71 *) new_flag="-D$x""_INLINE=2";;
73 if x"$sim_inline" = x""; then
74 sim_inline="$new_flag"
76 sim_inline="$flags $new_flag"
79 esac],[sim_inline=""])dnl
81 AC_ARG_ENABLE(sim-bswap,
82 [ --enable-sim-bswap Use the BSWAP instruction on Intel 486s and Pentiums.],
83 [case "${enableval}" in
84 yes) sim_bswap="-DWITH_BSWAP=1";;
85 no) sim_bswap="-DWITH_BSWAP=0";;
87 esac],[sim_bswap=""])dnl
89 AC_ARG_ENABLE(sim-endian,
90 [ --enable-sim-endian=endian Specify target byte endian orientation.],
91 [case "${enableval}" in
92 yes) case "$target" in
93 *powerpc-*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
94 *powerpcle-*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
95 *) echo "Unknown target $target" 1>&6; sim_endian="-DWITH_TARGET_BYTE_ORDER=0";;
97 no) sim_endian="-DWITH_TARGET_BYTE_ORDER=0";;
98 b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
99 l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
101 esac],[sim_endian=""])dnl
103 AC_ARG_ENABLE(sim-hostendian,
104 [ --enable-sim-hostendain=end Specify host byte endian orientation.],
105 [case "${enableval}" in
106 no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";;
107 b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";;
108 l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";;
109 *) sim_hostendian="";;
110 esac],[sim_hostendian=""])dnl
112 AC_ARG_ENABLE(sim-smp,
113 [ --enable-sim-smp=n Specify number of processors to configure for.],
114 [case "${enableval}" in
115 yes) sim_smp="-DWITH_SMP=2";;
116 no) sim_smp="-DWITH_SMP=0";;
117 *) sim_smp="-DWITH_SMP=$enableval";;
118 esac],[sim_smp=""])dnl
120 AC_ARG_ENABLE(sim-bitsize,
121 [ --enable-sim-bitsize=n Specify target bitsize (32 or 64).],
122 [case "${enableval}" in
123 yes) sim_bitsize="";;
125 *) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=$enableval";;
126 esac],[sim_bitsize=""])dnl
128 AC_ARG_ENABLE(sim-hostbitsize,
129 [ --enable-sim-hostbitsize=n Specify host bitsize (32 or 64).],
130 [case "${enableval}" in
131 yes) sim_hostbitsize="";;
132 no) sim_hostbitsize="";;
133 *) sim_hostbitsize="-DWITH_HOST_WORD_BITSIZE=$enableval";;
134 esac],[sim_hostbitsize=""])dnl
136 AC_ARG_ENABLE(sim-env,
137 [ --enable-sim-env=env Specify target environment (operating, virtual, user).],
138 [case "${enableval}" in
139 operating | os | oea) sim_env="-DWITH_ENVIRONMENT=OPERATING_ENVIRONMENT";;
140 virtual | vea) sim_env="-DWITH_ENVIRONMENT=VIRTUAL_ENVIRONMENT";;
141 user | uea) sim_env="-DWITH_ENVIRONMENT=USER_ENVIRONMENT";;
143 esac],[sim_env=""])dnl
145 AC_ARG_ENABLE(sim-timebase,
146 [ --enable-sim-timebase Specify whether the PPC timebase is supported.],
147 [case "${enableval}" in
148 yes) sim_timebase="-DWITH_TIME_BASE=1";;
149 no) sim_timebase="-DWITH_TIME_BASE=0";;
151 esac],[sim_timebase=""])dnl
153 AC_ARG_ENABLE(sim-alignment,
154 [ --enable-sim-alignment=align Specify strict or nonstrict alignment.]
155 [case "${enableval}" in
156 yes | strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";;
157 no | nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NOSTRICT_ALIGNMENT";;
158 *) sim_alignment="-DWITH_ALIGNMENT=$enableval";;
159 esac],[sim_alignment=""])dnl
161 AC_ARG_ENABLE(sim-trace,
162 [ --enable-sim-trace Specify whether tracing is supported.],
163 [case "${enableval}" in
164 yes) sim_trace="-DWITH_TRACE=1";;
165 no) sim_trace="-DWITH_TRACE=0";;
167 esac],[sim_trace=""])dnl
169 AC_ARG_ENABLE(sim-assert,
170 [ --enable-sim-assert Specify whether to perform random assertions.],
171 [case "${enableval}" in
172 yes) sim_assert="-DWITH_ASSERT=1";;
173 no) sim_assert="-DWITH_ASSERT=0";;
175 esac],[sim_assert=""])dnl
177 AC_ARG_ENABLE(sim-float,
178 [ --enable-sim-float Specify whether to use host floating point or simulate.],
179 [case "${enableval}" in
180 yes | hard) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT";;
181 no | soft) sim_float="-DWITH_FLOATING_POINT=SOFT_FLOATING_POINT";;
183 esac],[sim_float=""])dnl
185 AC_ARG_ENABLE(sim-monitor,
186 [ --enable-sim-monitor=mon Specify whether to enable monitoring events.],
187 [case "${enableval}" in
188 yes) sim_mon="-DWITH_MON='MONITOR_INSTRUCTION_ISSUE | MONITOR_LOAD_STORE_UNIT'";;
189 no) sim_mon="-DWITH_MON=0";;
190 instruction) sim_mon="-DWITH_MON=MONITOR_INSTRUCTION_ISSUE";;
191 memory) sim_mon="-DWITH_MON=MONITOR_LOAD_STORE_UNIT";;
192 *) sim_mon="-DWITH_MON='$enableval'";;
193 esac],[sim_float=""])dnl
195 AC_CONFIG_HEADER(config.h:config.in)
197 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../..)
201 . ${srcdir}/../../bfd/configure.host
219 AC_SUBST(sim_hostendian)
221 AC_SUBST(sim_bitsize)
222 AC_SUBST(sim_hostbitsize)
224 AC_SUBST(sim_timebase)
225 AC_SUBST(sim_alignment)
229 AC_SUBST(sim_monitor)
231 AC_CHECK_FUNCS(getrusage)
233 # Put a plausible default for CC_FOR_BUILD in Makefile.
235 if test "x$cross_compiling" = "xno"; then
240 AC_SUBST(CC_FOR_BUILD)
242 AC_CHECK_HEADERS(string.h strings.h stdlib.h time.h sys/times.h unistd.h sys/resource.h)
245 [case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac])