]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/ppc/configure.ac
sim:
[thirdparty/binutils-gdb.git] / sim / ppc / configure.ac
CommitLineData
c906108c
SS
1dnl Process this file with autoconf to produce a configure script.
2sinclude(../common/aclocal.m4)
b7026657 3AC_PREREQ(2.59)dnl
c906108c
SS
4AC_INIT(Makefile.in)
5
6AC_PROG_INSTALL
7AC_PROG_CC
8
9# Put a plausible default for CC_FOR_BUILD in Makefile.
10if test "x$cross_compiling" = "xno"; then
11 CC_FOR_BUILD='$(CC)'
12else
13 CC_FOR_BUILD=gcc
14fi
4b164edf 15CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
c906108c
SS
16
17dnl We don't use gettext, but bfd does. So we do the appropriate checks
18dnl to see if there are intl libraries we should link against.
19ALL_LINGUAS=
29035cbe 20ZW_GNU_GETTEXT_SISTER_DIR(../../intl)
c906108c
SS
21
22
23AC_ARG_ENABLE(sim-alignment,
24[ --enable-sim-alignment=align Specify strict or nonstrict alignment.],
25[case "${enableval}" in
26 yes | strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";;
27 no | nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";;
28 0 | default | DEFAULT) sim_alignment="-DWITH_ALIGNMENT=0";;
29 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-alignment"); sim_alignment="";;
30esac
31if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then
32 echo "Setting alignment flags = $sim_alignment" 6>&1
33fi],[sim_alignment=""])dnl
34
35
36AC_ARG_ENABLE(sim-assert,
37[ --enable-sim-assert Specify whether to perform random assertions.],
38[case "${enableval}" in
39 yes) sim_assert="-DWITH_ASSERT=1";;
40 no) sim_assert="-DWITH_ASSERT=0";;
41 *) AC_MSG_ERROR("--enable-sim-assert does not take a value"); sim_assert="";;
42esac
43if test x"$silent" != x"yes" && test x"$sim_assert" != x""; then
44 echo "Setting assert flags = $sim_assert" 6>&1
45fi],[sim_assert=""])dnl
46
47
48AC_ARG_ENABLE(sim-bitsize,
49[ --enable-sim-bitsize=n Specify target bitsize (32 or 64).],
50[case "${enableval}" in
51 32|64) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=$enableval";;
52 *) AC_MSG_ERROR("--enable-sim-bitsize was given $enableval. Expected 32 or 64"); sim_bitsize="";;
53esac
54if test x"$silent" != x"yes" && test x"$sim_bitsize" != x""; then
55 echo "Setting bitsize flags = $sim_bitsize" 6>&1
56fi],[sim_bitsize=""])dnl
57
58
59AC_ARG_ENABLE(sim-bswap,
60[ --enable-sim-bswap Use the BSWAP instruction on Intel 486s and Pentiums.],
61[case "${enableval}" in
62 yes) sim_bswap="-DWITH_BSWAP=1";;
63 no) sim_bswap="-DWITH_BSWAP=0";;
64 *) AC_MSG_ERROR("--enable-sim-bswap does not take a value"); sim_bswap="";;
65esac
66if test x"$silent" != x"yes" && test x"$sim_bswap" != x""; then
67 echo "Setting bswap flags = $sim_bswap" 6>&1
68fi],[sim_bswap=""])dnl
69
70
71AC_ARG_ENABLE(sim-cflags,
72[ --enable-sim-cflags=opts Extra CFLAGS for use in building simulator],
73[case "${enableval}" in
74 yes) sim_cflags="-O2 -fomit-frame-pointer";;
75 no) sim_cflags="";;
76 *) sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;;
77esac
78if test x"$silent" != x"yes" && test x"$sim_cflags" != x""; then
79 echo "Setting sim cflags = $sim_cflags" 6>&1
80fi],[sim_cflags=""])dnl
81
82
83AC_ARG_ENABLE(sim-config,
84[ --enable-sim-config=file Override default config file],
85[case "${enableval}" in
86 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-config=file");;
87 *) if test -f "${srcdir}/${enableval}"; then
88 sim_config="${enableval}";
89 elif test -f "${srcdir}/${enableval}-config.h"; then
90 sim_config="${enableval}-config.h"
91 else
92 AC_MSG_ERROR("Config file $enableval was not found");
93 sim_config=std-config.h
94 fi;;
95esac
96if test x"$silent" != x"yes" && test x"$sim_config" != x""; then
97 echo "Setting config flags = $sim_config" 6>&1
98fi],[sim_config="std-config.h"
99if test x"$silent" != x"yes"; then
100 echo "Setting config flags = $sim_config" 6>&1
101fi])dnl
102
103
104AC_ARG_ENABLE(sim-decode-mechanism,
105[ --enable-sim-decode-mechanism=which Specify the instruction decode mechanism.],
106[case "${enableval}" in
107 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-decode-mechanism=file");;
108 array|switch|padded-switch|goto-switch) sim_decode_mechanism="-T ${enableval}";;
109 *) AC_MSG_ERROR("File $enableval is not an opcode rules file");
110 sim_decode_mechanism="switch";;
111esac
112if test x"$silent" != x"yes" && test x"$sim_decode_mechanism" != x""; then
113 echo "Setting decode mechanism flags = $sim_decode_mechanism" 6>&1
114fi],[sim_decode_mechanism=""
115if test x"$silent" != x"yes"; then
116 echo "Setting decode mechanism flags = $sim_decode_mechanism"
117fi])dnl
118
119
120AC_ARG_ENABLE(sim-default-model,
121[ --enable-sim-default-model=which Specify default PowerPC to model.],
122[case "${enableval}" in
123 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-default-model=model");;
124 *) sim_default_model="-DWITH_DEFAULT_MODEL=${enableval}";;
125esac
126if test x"$silent" != x"yes" && test x"$sim_default_model" != x""; then
127 echo "Setting default-model flags = $sim_default_model" 6>&1
128fi],[sim_default_model=""])dnl
129
130
131AC_ARG_ENABLE(sim-duplicate,
132[ --enable-sim-duplicate Expand (duplicate) semantic functions.],
133[case "${enableval}" in
134 yes) sim_dup="-E";;
135 no) sim_dup="";;
136 *) AC_MSG_ERROR("--enable-sim-duplicate does not take a value"); sim_dup="";;
137esac
138if test x"$silent" != x"yes" && test x"$sim_dup" != x""; then
139 echo "Setting duplicate flags = $sim_dup" 6>&1
140fi],[sim_dup="-E"
141if test x"$silent" != x"yes"; then
142 echo "Setting duplicate flags = $sim_dup" 6>&1
143fi])dnl
144
145
146AC_ARG_ENABLE(sim-endian,
147[ --enable-sim-endian=endian Specify target byte endian orientation.],
148[case "${enableval}" in
149 yes) case "$target" in
150 *powerpc-*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
151 *powerpcle-*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
152 *) echo "Unknown target $target" 1>&6; sim_endian="-DWITH_TARGET_BYTE_ORDER=0";;
153 esac;;
154 no) sim_endian="-DWITH_TARGET_BYTE_ORDER=0";;
155 b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
156 l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
157 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-endian"); sim_endian="";;
158esac
159if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then
160 echo "Setting endian flags = $sim_endian" 6>&1
161fi],[sim_endian=""])dnl
162
163
164AC_ARG_ENABLE(sim-env,
165[ --enable-sim-env=env Specify target environment (operating, virtual, user).],
166[case "${enableval}" in
167 operating | os | oea) sim_env="-DWITH_ENVIRONMENT=OPERATING_ENVIRONMENT";;
168 virtual | vea) sim_env="-DWITH_ENVIRONMENT=VIRTUAL_ENVIRONMENT";;
169 user | uea) sim_env="-DWITH_ENVIRONMENT=USER_ENVIRONMENT";;
170 no) sim_env="-DWITH_ENVIRONMENT=0";;
171 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-env"); sim_env="";;
172esac
173if test x"$silent" != x"yes" && test x"$sim_env" != x""; then
174 echo "Setting env flags = $sim_env" 6>&1
175fi],[sim_env=""])dnl
176
177
178AC_ARG_ENABLE(sim-filter,
179[ --enable-sim-filter=rule Specify filter rules.],
180[case "${enableval}" in
181 yes) AC_MSG_ERROR("--enable-sim-filter must be specified with a rule to filter or no"); sim_filter="";;
182 no) sim_filter="";;
183 *) sim_filter="-F $enableval";;
184esac
185if test x"$silent" != x"yes" && test x"$sim_filter" != x""; then
186 echo "Setting filter flags = $sim_filter" 6>&1
187fi],[sim_filter="-F 32,f,o"
188if test x"$silent" != x"yes"; then
189 echo "Setting filter flags = $sim_filter" 6>&1
190fi])dnl
191
192
193AC_ARG_ENABLE(sim-float,
345d88d9 194[ --enable-sim-float Specify whether the target has hard, soft, altivec or e500 floating point.],
c906108c
SS
195[case "${enableval}" in
196 yes | hard) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT";;
197 no | soft) sim_float="-DWITH_FLOATING_POINT=SOFT_FLOATING_POINT";;
345d88d9
AC
198 altivec) sim_float="-DWITH_ALTIVEC" ; sim_filter="${sim_filter},av" ;;
199 *spe*|*simd*) sim_float="-DWITH_E500" ; sim_filter="${sim_filter},e500" ;;
c906108c
SS
200 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-float"); sim_float="";;
201esac
202if test x"$silent" != x"yes" && test x"$sim_float" != x""; then
203 echo "Setting float flags = $sim_float" 6>&1
345d88d9
AC
204fi],[
205case "${target}" in
206 *altivec*) sim_float="-DWITH_ALTIVEC" ; sim_filter="${sim_filter},av" ;;
207 *spe*|*simd*) sim_float="-DWITH_E500" ; sim_filter="${sim_filter},e500" ;;
208 *) sim_float=""
209esac
210])dnl
c906108c
SS
211
212
213AC_ARG_ENABLE(sim-hardware,
214[ --enable-sim-hardware=list Specify the hardware to be included in the build.],
215[hardware="cpu,memory,nvram,iobus,htab,disk,trace,register,vm,init,core,pal,com,eeprom,opic,glue,phb,ide"
216case "${enableval}" in
217 yes) ;;
218 no) AC_MSG_ERROR("List of hardware must be specified for --enable-sim-hardware"); hardware="";;
219 ,*) hardware="${hardware}${enableval}";;
220 *,) hardware="${enableval}${hardware}";;
221 *) hardware="${enableval}"'';;
222esac
223sim_hw_src=`echo $hardware | sed -e 's/,/.c hw_/g' -e 's/^/hw_/' -e s'/$/.c/'`
224sim_hw_obj=`echo $sim_hw_src | sed -e 's/\.c/.o/g'`
225if test x"$silent" != x"yes" && test x"$hardware" != x""; then
226 echo "Setting hardware to $sim_hw_src, $sim_hw_obj"
227fi],[hardware="cpu,memory,nvram,iobus,htab,disk,trace,register,vm,init,core,pal,com,eeprom,opic,glue,phb,ide"
228sim_hw_src=`echo $hardware | sed -e 's/,/.c hw_/g' -e 's/^/hw_/' -e s'/$/.c/'`
229sim_hw_obj=`echo $sim_hw_src | sed -e 's/\.c/.o/g'`
230if test x"$silent" != x"yes"; then
231 echo "Setting hardware to $sim_hw_src, $sim_hw_obj"
232fi])dnl
233
234
235AC_ARG_ENABLE(sim-hostbitsize,
236[ --enable-sim-hostbitsize=32|64 Specify host bitsize (32 or 64).],
237[case "${enableval}" in
238 32|64) sim_hostbitsize="-DWITH_HOST_WORD_BITSIZE=$enableval";;
239 *) AC_MSG_ERROR("--enable-sim-hostbitsize was given $enableval. Expected 32 or 64"); sim_hostbitsize="";;
240esac
241if test x"$silent" != x"yes" && test x"$sim_hostbitsize" != x""; then
242 echo "Setting hostbitsize flags = $sim_hostbitsize" 6>&1
243fi],[sim_hostbitsize=""])dnl
244
245
246AC_ARG_ENABLE(sim-hostendian,
247[ --enable-sim-hostendian=end Specify host byte endian orientation.],
248[case "${enableval}" in
249 no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";;
250 b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";;
251 l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";;
252 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-hostendian"); sim_hostendian="";;
253esac
254if test x"$silent" != x"yes" && test x"$sim_hostendian" != x""; then
255 echo "Setting hostendian flags = $sim_hostendian" 6>&1
256fi],[
257if test "x$cross_compiling" = "xno"; then
258 AC_C_BIGENDIAN
259 if test $ac_cv_c_bigendian = yes; then
260 sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN"
261 else
262 sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN"
263 fi
264else
265 sim_hostendian="-DWITH_HOST_BYTE_ORDER=0"
266fi])dnl
267
268
269AC_ARG_ENABLE(sim-icache,
270[ --enable-sim-icache=size Specify instruction-decode cache size and type.],
271[icache="-R"
272 case "${enableval}" in
273 yes) icache="1024"; sim_icache="-I $icache";;
274 no) sim_icache="-R";;
275 *) icache=1024
276 sim_icache="-"
277 for x in `echo "${enableval}" | sed -e "s/,/ /g"`; do
278 case "$x" in
279 define) sim_icache="${sim_icache}R";;
280 semantic) sim_icache="${sim_icache}C";;
281 insn) sim_icache="${sim_icache}S";;
282 0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) icache=$x;;
283 *) AC_MSG_ERROR("Unknown value $x for --enable-sim-icache"); sim_icache="";;
284 esac
285 done
286 sim_icache="${sim_icache}I $icache";;
287esac
288if test x"$silent" != x"yes" && test x"$icache" != x""; then
289 echo "Setting instruction cache size to $icache ($sim_icache)"
290fi],[sim_icache="-CSRI 1024"
291if test x"$silent" != x"yes"; then
292 echo "Setting instruction cache size to 1024 ($sim_icache)"
293fi])dnl
294
295
296AC_ARG_ENABLE(sim-inline,
297[ --enable-sim-inline=inlines Specify which functions should be inlined.],
298[sim_inline=""
299case "$enableval" in
300 no) sim_inline="-DDEFAULT_INLINE=0";;
301 0) sim_inline="-DDEFAULT_INLINE=0";;
302 yes | 2) sim_inline="-DDEFAULT_INLINE=ALL_INLINE";;
d29d5195 303 1) sim_inline="-DDEFAULT_INLINE=PSIM_INLINE_LOCALS";;
c906108c
SS
304 *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
305 new_flag=""
306 case "$x" in
307 *_INLINE=*) new_flag="-D$x";;
308 *=*) new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
309 *_INLINE) new_flag="-D$x=ALL_INLINE";;
310 *) new_flag="-D$x""_INLINE=ALL_INLINE";;
311 esac
312 if test x"$sim_inline" = x""; then
313 sim_inline="$new_flag"
314 else
315 sim_inline="$sim_inline $new_flag"
316 fi
317 done;;
318esac
319if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
320 echo "Setting inline flags = $sim_inline" 6>&1
321fi],[if test x"$GCC" != ""; then
d29d5195 322 sim_inline="-DDEFAULT_INLINE=PSIM_INLINE_LOCALS"
c906108c
SS
323 if test x"$silent" != x"yes"; then
324 echo "Setting inline flags = $sim_inline" 6>&1
325 fi
326else
327 sim_inline=""
328fi])dnl
329
330
331AC_ARG_ENABLE(sim-jump,
332[ --enable-sim-jump Jump between semantic code (instead of call/return).],
333[case "${enableval}" in
334 yes) sim_jump="-J";;
335 no) sim_jump="";;
336 *) AC_MSG_ERROR("--enable-sim-jump does not take a value"); sim_jump="";;
337esac
338if test x"$silent" != x"yes" && test x"$sim_jump" != x""; then
339 echo "Setting jump flag = $sim_jump" 6>&1
340fi],[sim_jump=""
341if test x"$silent" != x"yes"; then
342 echo "Setting jump flag = $sim_jump" 6>&1
343fi])dnl
344
345
346AC_ARG_ENABLE(sim-line-nr,
347[ --enable-sim-line-nr=opts Generate extra CPP code that references source rather than generated code],
348[case "${enableval}" in
349 yes) sim_line_nr="";;
350 no) sim_line_nr="-L";;
351 *) AC_MSG_ERROR("--enable-sim-line-nr does not take a value"); sim_line_nr="";;
352esac
353if test x"$silent" != x"yes" && test x"$sim_line_nr" != x""; then
354 echo "Setting warning flags = $sim_line_nr" 6>&1
355fi],[sim_line_nr=""])dnl
356
357
358AC_ARG_ENABLE(sim-model,
359[ --enable-sim-model=which Specify PowerPC to model.],
360[case "${enableval}" in
361 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-model=model");;
362 *) sim_model="-DWITH_MODEL=${enableval}";;
363esac
364if test x"$silent" != x"yes" && test x"$sim_model" != x""; then
365 echo "Setting model flags = $sim_model" 6>&1
366fi],[sim_model=""])dnl
367
368
369AC_ARG_ENABLE(sim-model-issue,
370[ --enable-sim-model-issue Specify whether to simulate model specific actions],
371[case "${enableval}" in
372 yes) sim_model_issue="-DWITH_MODEL_ISSUE=MODEL_ISSUE_PROCESS";;
373 no) sim_model_issue="-DWITH_MODEL_ISSUE=MODEL_ISSUE_IGNORE";;
374 *) AC_MSG_ERROR("--enable-sim-model-issue does not take a value"); sim_model_issue="";;
375esac
376if test x"$silent" != x"yes"; then
377 echo "Setting model-issue flags = $sim_model_issue" 6>&1
378fi],[sim_model_issue=""])dnl
379
380
381AC_ARG_ENABLE(sim-monitor,
382[ --enable-sim-monitor=mon Specify whether to enable monitoring events.],
383[case "${enableval}" in
384 yes) sim_monitor="-DWITH_MON='MONITOR_INSTRUCTION_ISSUE | MONITOR_LOAD_STORE_UNIT'";;
385 no) sim_monitor="-DWITH_MON=0";;
386 instruction) sim_monitor="-DWITH_MON=MONITOR_INSTRUCTION_ISSUE";;
387 memory) sim_monitor="-DWITH_MON=MONITOR_LOAD_STORE_UNIT";;
388 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-mon"); sim_env="";;
389esac
390if test x"$silent" != x"yes" && test x"$sim_monitor" != x""; then
391 echo "Setting monitor flags = $sim_monitor" 6>&1
392fi],[sim_monitor=""])dnl
393
394
395AC_ARG_ENABLE(sim-opcode,
396[ --enable-sim-opcode=which Override default opcode lookup.],
397[case "${enableval}" in
398 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-opcode=file");;
399 *) if test -f "${srcdir}/${enableval}"; then
400 sim_opcode="${enableval}"
401 elif test -f "${srcdir}/dc-${enableval}"; then
402 sim_opcode="dc-${enableval}"
403 else
404 AC_MSG_ERROR("File $enableval is not an opcode rules file");
405 sim_opcode="dc-complex"
406 fi;;
407esac
408if test x"$silent" != x"yes" && test x"$sim_opcode" != x""; then
409 echo "Setting opcode flags = $sim_opcode" 6>&1
410fi],[sim_opcode="dc-complex"
411if test x"$silent" != x"yes"; then
412 echo "Setting opcode flags = $sim_opcode"
413fi])dnl
414
415
416AC_ARG_ENABLE(sim-packages,
417[ --enable-sim-packages=list Specify the packages to be included in the build.],
418[packages=disklabel
419case "${enableval}" in
420 yes) ;;
421 no) AC_MSG_ERROR("List of packages must be specified for --enable-sim-packages"); packages="";;
422 ,*) packages="${packages}${enableval}";;
423 *,) packages="${enableval}${packages}";;
424 *) packages="${enableval}"'';;
425esac
426sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'`
427sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'`
428if test x"$silent" != x"yes" && test x"$packages" != x""; then
429 echo "Setting packages to $sim_pk_src, $sim_pk_obj"
430fi],[packages=disklabel
431sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'`
432sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'`
433if test x"$silent" != x"yes"; then
434 echo "Setting packages to $sim_pk_src, $sim_pk_obj"
435fi])dnl
436
437
438AC_ARG_ENABLE(sim-regparm,
439[ --enable-sim-regparm=nr-parm Pass parameters in registers instead of on the stack - x86/GCC specific.],
440[case "${enableval}" in
441 0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) sim_regparm="-DWITH_REGPARM=${enableval}";;
442 no) sim_regparm="" ;;
443 yes) sim_regparm="-DWITH_REGPARM=3";;
444 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-regparm"); sim_regparm="";;
445esac
446if test x"$silent" != x"yes" && test x"$sim_regparm" != x""; then
447 echo "Setting regparm flags = $sim_regparm" 6>&1
448fi],[sim_regparm=""])dnl
449
450
451AC_ARG_ENABLE(sim-reserved-bits,
452[ --enable-sim-reserved-bits Specify whether to check reserved bits in instruction.],
453[case "${enableval}" in
454 yes) sim_reserved="-DWITH_RESERVED_BITS=1";;
455 no) sim_reserved="-DWITH_RESERVED_BITS=0";;
456 *) AC_MSG_ERROR("--enable-sim-reserved-bits does not take a value"); sim_reserved="";;
457esac
458if test x"$silent" != x"yes" && test x"$sim_reserved" != x""; then
459 echo "Setting reserved flags = $sim_reserved" 6>&1
460fi],[sim_reserved=""])dnl
461
462
463AC_ARG_ENABLE(sim-smp,
464[ --enable-sim-smp=n Specify number of processors to configure for.],
465[case "${enableval}" in
466 yes) sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5";;
467 no) sim_smp="-DWITH_SMP=0" ; sim_igen_smp="-N 0";;
468 *) sim_smp="-DWITH_SMP=$enableval" ; sim_igen_smp="-N $enableval";;
469esac
470if test x"$silent" != x"yes" && test x"$sim_smp" != x""; then
471 echo "Setting smp flags = $sim_smp" 6>&1
472fi],[sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5"
473if test x"$silent" != x"yes"; then
474 echo "Setting smp flags = $sim_smp" 6>&1
475fi])dnl
476
477
478AC_ARG_ENABLE(sim-stdcall,
479[ --enable-sim-stdcall=type Use an alternative function call/return mechanism - x86/GCC specific.],
480[case "${enableval}" in
481 no) sim_stdcall="" ;;
482 std*) sim_stdcall="-DWITH_STDCALL=1";;
483 yes) sim_stdcall="-DWITH_STDCALL=1";;
484 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-stdcall"); sim_stdcall="";;
485esac
486if test x"$silent" != x"yes" && test x"$sim_stdcall" != x""; then
487 echo "Setting function call flags = $sim_stdcall" 6>&1
488fi],[sim_stdcall=""])dnl
489
490
491AC_ARG_ENABLE(sim-stdio,
492[ --enable-sim-stdio Specify whether to use stdio for console input/output.],
493[case "${enableval}" in
494 yes) sim_stdio="-DWITH_STDIO=DO_USE_STDIO";;
495 no) sim_stdio="-DWITH_STDIO=DONT_USE_STDIO";;
496 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-stdio"); sim_stdio="";;
497esac
498if test x"$silent" != x"yes" && test x"$sim_stdio" != x""; then
499 echo "Setting stdio flags = $sim_stdio" 6>&1
500fi],[sim_stdio=""])dnl
501
502
503AC_ARG_ENABLE(sim-switch,
504[ --enable-sim-switch Use a switch instead of a table for instruction call.],
505[case "${enableval}" in
506 yes) sim_switch="-s";;
507 no) sim_switch="";;
508 *) AC_MSG_ERROR("--enable-sim-switch does not take a value"); sim_switch="";;
509esac
510if test x"$silent" != x"yes" && test x"$sim_switch" != x""; then
511 echo "Setting switch flags = $sim_switch" 6>&1
512fi],[sim_switch="";
513if test x"$silent" != x"yes"; then
514 echo "Setting switch flags = $sim_switch" 6>&1
515fi])dnl
516
517
518AC_ARG_ENABLE(sim-timebase,
519[ --enable-sim-timebase Specify whether the PPC timebase is supported.],
520[case "${enableval}" in
521 yes) sim_timebase="-DWITH_TIME_BASE=1";;
522 no) sim_timebase="-DWITH_TIME_BASE=0";;
523 *) AC_MSG_ERROR("--enable-sim-timebase does not take a value"); sim_timebase="";;
524esac
525if test x"$silent" != x"yes" && test x"$sim_timebase" != x""; then
526 echo "Setting timebase flags = $sim_timebase" 6>&1
527fi],[sim_timebase=""])dnl
528
529
530AC_ARG_ENABLE(sim-trace,
531[ --enable-sim-trace Specify whether tracing is supported.],
532[case "${enableval}" in
533 yes) sim_trace="-DWITH_TRACE=1";;
534 no) sim_trace="-DWITH_TRACE=0";;
535 *) AC_MSG_ERROR("--enable-sim-trace does not take a value"); sim_trace="";;
536esac
537if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then
538 echo "Setting trace flags = $sim_trace" 6>&1
539fi],[sim_trace=""])dnl
540
541
542AC_ARG_ENABLE(sim-warnings,
543[ --enable-sim-warnings=opts Extra CFLAGS for turning on compiler warnings except for idecode.o, semantics.o and psim.o],
544[case "${enableval}" in
545 yes) sim_warnings="-Werror -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations ";;
546 no) sim_warnings="-w";;
547 *) sim_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
548esac
549if test x"$silent" != x"yes" && test x"$sim_warnings" != x""; then
550 echo "Setting warning flags = $sim_warnings" 6>&1
551fi],[sim_warnings=""])dnl
552
553
554AC_ARG_ENABLE(sim-xor-endian,
555[ --enable-sim-xor-endian=n Specify number bytes involved in PowerPC XOR bi-endian mode (default 8).],
556[case "${enableval}" in
557 yes) sim_xor_endian="-DWITH_XOR_ENDIAN=8";;
558 no) sim_xor_endian="-DWITH_XOR_ENDIAN=0";;
559 *) sim_xor_endian="-DWITH_XOR_ENDIAN=$enableval";;
560esac
561if test x"$silent" != x"yes" && test x"$sim_xor_endian" != x""; then
562 echo "Setting xor-endian flag = $sim_xor_endian" 6>&1
563fi],[sim_xor_endian=""])dnl
564
565
6efef468
JM
566ACX_PKGVERSION([GDB])
567ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
568AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
569AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
570
c906108c
SS
571AC_CANONICAL_SYSTEM
572AC_ARG_PROGRAM
573
574. ${srcdir}/../../bfd/configure.host
575
058ad269
MM
576case ${host} in
577 *mingw32*)
578 AC_DEFINE(USE_WIN32API, 1,
579 [Define if we should use the Windows API, instead of the
580 POSIX API. On Windows, we use the Windows API when
581 building for MinGW, but the POSIX API when building
582 for Cygwin.])
583 ;;
584esac
585
c906108c
SS
586AC_CONFIG_HEADER(config.h:config.in)
587
588AC_STRUCT_ST_BLKSIZE
589AC_STRUCT_ST_BLOCKS
590AC_STRUCT_ST_RDEV
591AC_STRUCT_TIMEZONE
592
593AC_TYPE_GETGROUPS
594AC_TYPE_MODE_T
595AC_TYPE_OFF_T
596AC_TYPE_PID_T
597AC_TYPE_SIGNAL
598AC_TYPE_SIZE_T
599AC_TYPE_UID_T
600
601AC_CHECK_FUNCS(access cfgetispeed cfgetospeed cfsetispeed cfsetospeed chdir chmod chown dup dup2 fchmod fchown fcntl fstat fstatfs getdirentries getegid geteuid getgid getpid getppid getrusage gettimeofday getuid ioctl kill link lseek lstat mkdir pipe readlink rmdir setreuid setregid stat sigprocmask stat symlink tcgetattr tcsetattr tcsendbreak tcdrain tcflush tcflow tcgetpgrp tcsetpgrp time umask unlink)
602
1f362c96 603AC_CHECK_HEADERS(fcntl.h stdlib.h string.h strings.h sys/ioctl.h sys/mount.h sys/param.h sys/resource.h sys/stat.h sys/termio.h sys/termios.h sys/time.h sys/times.h sys/types.h time.h unistd.h sys/vfs.h sys/statfs.h)
c906108c
SS
604AC_HEADER_DIRENT
605
606dnl Figure out what type of termio/termios support there is
607sim_termio=""
608AC_MSG_CHECKING(for struct termios)
609AC_CACHE_VAL(ac_cv_termios_struct,
610[AC_TRY_COMPILE([#include <sys/types.h>
611#include <sys/termios.h>],
612[static struct termios x;
613 x.c_iflag = 0;
614 x.c_oflag = 0;
615 x.c_cflag = 0;
616 x.c_lflag = 0;
617 x.c_cc[NCCS] = 0;],
618ac_cv_termios_struct=yes, ac_cv_termios_struct=no)])
619AC_MSG_RESULT($ac_cv_termios_struct)
620if test $ac_cv_termios_struct = yes; then
621 sim_termio="$sim_termio -DHAVE_TERMIOS_STRUCTURE"
622fi
623
624if test "$ac_cv_termios_struct" = "yes"; then
625 AC_MSG_CHECKING(for c_line field in struct termios)
626 AC_CACHE_VAL(ac_cv_termios_cline,
627 [AC_TRY_COMPILE([#include <sys/types.h>
628#include <sys/termios.h>],
629[static struct termios x; x.c_line = 0;],
630 ac_cv_termios_cline=yes, ac_cv_termios_cline=no)])
631
632 AC_MSG_RESULT($ac_cv_termios_cline)
633 if test $ac_cv_termios_cline = yes; then
634 sim_termio="$sim_termio -DHAVE_TERMIOS_CLINE"
635 fi
636else
637 ac_cv_termios_cline=no
638fi
639
640if test "$ac_cv_termios_struct" != "yes"; then
641 AC_MSG_CHECKING(for struct termio)
642 AC_CACHE_VAL(ac_cv_termio_struct,
643 [AC_TRY_COMPILE([#include <sys/types.h>
644#include <sys/termio.h>],
645[static struct termio x;
646 x.c_iflag = 0;
647 x.c_oflag = 0;
648 x.c_cflag = 0;
649 x.c_lflag = 0;
650 x.c_cc[NCC] = 0;],
651ac_cv_termio_struct=yes, ac_cv_termio_struct=no)])
652 AC_MSG_RESULT($ac_cv_termio_struct)
653 if test $ac_cv_termio_struct = yes; then
654 sim_termio="$sim_termio -DHAVE_TERMIO_STRUCTURE"
655 fi
656else
657 ac_cv_termio_struct=no
658fi
659
660if test "$ac_cv_termio_struct" = "yes"; then
661 AC_MSG_CHECKING(for c_line field in struct termio)
662 AC_CACHE_VAL(ac_cv_termio_cline,
663 [AC_TRY_COMPILE([#include <sys/types.h>
664#include <sys/termio.h>],
665[static struct termio x; x.c_line = 0;],
666 ac_cv_termio_cline=yes, ac_cv_termio_cline=no)])
667
668 AC_MSG_RESULT($ac_cv_termio_cline)
669 if test $ac_cv_termio_cline = yes; then
670 sim_termio="$sim_termio -DHAVE_TERMIO_CLINE"
671 fi
672else
673 ac_cv_termio_cline=no
674fi
675
1f362c96
AC
676dnl Check for struct statfs
677AC_MSG_CHECKING(for struct statfs)
678AC_CACHE_VAL(ac_cv_struct_statfs,
679[AC_TRY_COMPILE([#include <sys/types.h>
680#ifdef HAVE_SYS_PARAM_H
681#include <sys/param.h>
682#endif
683#ifdef HAVE_SYS_MOUNT_H
684#include <sys/mount.h>
685#endif
686#ifdef HAVE_SYS_VFS_H
687#include <sys/vfs.h>
688#endif
689#ifdef HAVE_SYS_STATFS_H
690#include <sys/statfs.h>
691#endif],
692[static struct statfs s;],
693ac_cv_struct_statfs=yes, ac_cv_struct_statfs=no)])
694AC_MSG_RESULT($ac_cv_struct_statfs)
695if test $ac_cv_struct_statfs = yes; then
696 AC_DEFINE(HAVE_STRUCT_STATFS, 1,
697 [Define if struct statfs is defined in <sys/mount.h>])
698fi
699
30e66173
MI
700AC_CHECK_TYPES(long long)
701
c906108c
SS
702dnl Figure out if /dev/zero exists or not
703sim_devzero=""
704AC_MSG_CHECKING(for /dev/zero)
705AC_CACHE_VAL(ac_cv_devzero,
706[AC_TRY_RUN([#include <fcntl.h>
707main () {
708 char buf[2048];
709 int i;
710 int fd = open ("/dev/zero", O_RDONLY);
711 if (fd < 0)
712 return 1;
713 for (i = 0; i < sizeof (buf); i++)
714 buf[i] = 1;
715 if (read (fd, buf, sizeof (buf)) != sizeof (buf))
716 return 1;
717 for (i = 0; i < sizeof (buf); i++)
718 if (buf[i])
719 return 1;
720 return 0;
721}],[ac_cv_devzero=yes],[ac_cv_devzero=no],[ac_cv_devzero=no])])
722AC_MSG_RESULT($ac_cv_devzero)
723if test $ac_cv_devzero = yes; then
724 sim_devzero="-DHAVE_DEVZERO"
725else
726 sim_devzero=""
727fi
728
729dnl Figure out if we are in the new Cygnus tree with a common directory or not
730AC_MSG_CHECKING(for common simulator directory)
731if test -f "${srcdir}/../common/callback.c"; then
732 AC_MSG_RESULT(yes)
733 sim_callback="callback.o targ-map.o"
734 sim_targ_vals="targ-vals.h targ-map.c targ-vals.def"
735else
736 AC_MSG_RESULT(no)
737 sim_callback=""
738 sim_targ_vals=""
739fi
740
d29d5195
MG
741AC_MSG_CHECKING(for common simulator directory fpu implementation)
742if test -f "${srcdir}/../common/sim-fpu.c"; then
743 AC_MSG_RESULT(yes)
3e5e53f9 744 sim_fpu_cflags="-DHAVE_COMMON_FPU -I../common -I${srcdir}/../common"
3a11ea24 745 sim_fpu="sim-fpu.o"
d29d5195
MG
746else
747 AC_MSG_RESULT(no)
748 sim_fpu_cflags=
749 sim_fpu=
750fi
751
c906108c 752dnl Check for exe extension
cd0fc7c3 753AC_EXEEXT
c906108c
SS
754
755AC_SUBST(CC_FOR_BUILD)
4b164edf 756AC_SUBST(CFLAGS_FOR_BUILD)
c906108c
SS
757AC_SUBST(CFLAGS)
758AC_SUBST(HDEFINES)
759AR=${AR-ar}
760AC_SUBST(AR)
761AC_PROG_RANLIB
762AC_SUBST(sim_cflags)
763AC_SUBST(sim_warnings)
764AC_SUBST(sim_line_nr)
765AC_SUBST(sim_config)
766AC_SUBST(sim_opcode)
767AC_SUBST(sim_switch)
768AC_SUBST(sim_dup)
769AC_SUBST(sim_decode_mechanism)
770AC_SUBST(sim_jump)
771AC_SUBST(sim_filter)
772AC_SUBST(sim_icache)
773AC_SUBST(sim_hw_src)
774AC_SUBST(sim_hw_obj)
775AC_SUBST(sim_pk_src)
776AC_SUBST(sim_pk_obj)
777AC_SUBST(sim_inline)
778AC_SUBST(sim_bswap)
779AC_SUBST(sim_endian)
780AC_SUBST(sim_regparm)
781AC_SUBST(sim_stdcall)
782AC_SUBST(sim_xor_endian)
783AC_SUBST(sim_hostendian)
784AC_SUBST(sim_smp)
785AC_SUBST(sim_igen_smp)
786AC_SUBST(sim_bitsize)
787AC_SUBST(sim_hostbitsize)
788AC_SUBST(sim_env)
789AC_SUBST(sim_timebase)
790AC_SUBST(sim_alignment)
791AC_SUBST(sim_float)
792AC_SUBST(sim_trace)
793AC_SUBST(sim_assert)
794AC_SUBST(sim_reserved)
795AC_SUBST(sim_monitor)
796AC_SUBST(sim_model)
797AC_SUBST(sim_default_model)
798AC_SUBST(sim_model_issue)
799AC_SUBST(sim_stdio)
800AC_SUBST(sim_termio)
801AC_SUBST(sim_devzero)
802AC_SUBST(sim_callback)
803AC_SUBST(sim_targ_vals)
d29d5195
MG
804AC_SUBST(sim_fpu_cflags)
805AC_SUBST(sim_fpu)
c906108c
SS
806
807AC_OUTPUT(Makefile,
808[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac])