]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/ppc/configure.ac
2008-11-18 Joel Sherrill <joel.sherrill@oarcorp.com>
[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 211
00a0b122
JS
212AC_CACHE_CHECK([if union semun defined],
213 ac_cv_HAS_UNION_SEMUN,
214 [AC_TRY_COMPILE([
215#include <sys/types.h>
216#include <sys/ipc.h>
217#include <sys/sem.h>],
218[union semun arg ;],
219[ac_cv_has_union_semun="yes"],
220[ac_cv_has_union_semun="no"])
221AC_MSG_RESULT($ac_cv_has_union_semun)
222])
223
224
225if test "$ac_cv_has_union_semun" = "yes"; then
226 AC_CACHE_CHECK(whether System V semaphores are supported,
227 ac_cv_sysv_sem,
228 [
229 AC_TRY_RUN(
230 [
231 #include <sys/types.h>
232 #include <sys/ipc.h>
233 #include <sys/sem.h>
234 int main () {
235 union semun arg ;
236
237 int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400);
238 if (id == -1)
239 exit(1);
240 arg.val = 0; /* avoid implicit type cast to union */
241 if (semctl(id, 0, IPC_RMID, arg) == -1)
242 exit(1);
243 exit(0);
244 }
245 ],
246 ac_cv_sysv_sem="yes", ac_cv_sysv_sem="no", :)
247 ])
248else # semun is not defined
249 AC_CACHE_CHECK(whether System V semaphores are supported,
250 ac_cv_sysv_sem,
251 [
252 AC_TRY_RUN(
253 [
254 #include <sys/types.h>
255 #include <sys/ipc.h>
256 #include <sys/sem.h>
257 union semun {
258 int val;
259 struct semid_ds *buf;
260 ushort *array;
261 };
262 int main () {
263 union semun arg ;
264
265 int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400);
266 if (id == -1)
267 exit(1);
268 arg.val = 0; /* avoid implicit type cast to union */
269 if (semctl(id, 0, IPC_RMID, arg) == -1)
270 exit(1);
271 exit(0);
272 }
273 ],
274 ac_cv_sysv_sem="yes", ac_cv_sysv_sem="no", :)
275 ])
276fi
277
278AC_CACHE_CHECK(whether System V shared memory is supported,
279ac_cv_sysv_shm,
280[
281AC_TRY_RUN([
282#include <sys/types.h>
283#include <sys/ipc.h>
284#include <sys/shm.h>
285int main () {
286 int id=shmget(IPC_PRIVATE,1,IPC_CREAT|0400);
287 if (id == -1)
288 exit(1);
289 if (shmctl(id, IPC_RMID, 0) == -1)
290 exit(1);
291 exit(0);
292}
293],
294ac_cv_sysv_shm="yes", ac_cv_sysv_shm="no", :)
295])
296
297if test x"$ac_cv_sysv_shm" = x"yes" -a x"$ac_cv_sysv_sem" = x"yes" ; then
298 sim_sysv_ipc_hw=",sem,shm";
299else
300 sim_sysv_ipc_hw="";
301fi
302
303if test x"$ac_cv_has_union_semun" = x"yes" -a x"$ac_cv_sysv_sem" = x"yes" ; then
304 sim_hwflags="-DHAS_UNION_SEMUN";
305fi
306
c906108c
SS
307
308AC_ARG_ENABLE(sim-hardware,
309[ --enable-sim-hardware=list Specify the hardware to be included in the build.],
00a0b122 310[hardware="cpu,memory,nvram,iobus,htab,disk,trace,register,vm,init,core,pal,com,eeprom,opic,glue,phb,ide${sim_sysv_ipc_hw}"
c906108c
SS
311case "${enableval}" in
312 yes) ;;
313 no) AC_MSG_ERROR("List of hardware must be specified for --enable-sim-hardware"); hardware="";;
314 ,*) hardware="${hardware}${enableval}";;
315 *,) hardware="${enableval}${hardware}";;
316 *) hardware="${enableval}"'';;
317esac
318sim_hw_src=`echo $hardware | sed -e 's/,/.c hw_/g' -e 's/^/hw_/' -e s'/$/.c/'`
319sim_hw_obj=`echo $sim_hw_src | sed -e 's/\.c/.o/g'`
320if test x"$silent" != x"yes" && test x"$hardware" != x""; then
321 echo "Setting hardware to $sim_hw_src, $sim_hw_obj"
00a0b122 322fi],[hardware="cpu,memory,nvram,iobus,htab,disk,trace,register,vm,init,core,pal,com,eeprom,opic,glue,phb,ide${sim_sysv_ipc_hw}"
c906108c
SS
323sim_hw_src=`echo $hardware | sed -e 's/,/.c hw_/g' -e 's/^/hw_/' -e s'/$/.c/'`
324sim_hw_obj=`echo $sim_hw_src | sed -e 's/\.c/.o/g'`
325if test x"$silent" != x"yes"; then
326 echo "Setting hardware to $sim_hw_src, $sim_hw_obj"
327fi])dnl
328
c906108c
SS
329AC_ARG_ENABLE(sim-hostbitsize,
330[ --enable-sim-hostbitsize=32|64 Specify host bitsize (32 or 64).],
331[case "${enableval}" in
332 32|64) sim_hostbitsize="-DWITH_HOST_WORD_BITSIZE=$enableval";;
333 *) AC_MSG_ERROR("--enable-sim-hostbitsize was given $enableval. Expected 32 or 64"); sim_hostbitsize="";;
334esac
335if test x"$silent" != x"yes" && test x"$sim_hostbitsize" != x""; then
336 echo "Setting hostbitsize flags = $sim_hostbitsize" 6>&1
337fi],[sim_hostbitsize=""])dnl
338
339
340AC_ARG_ENABLE(sim-hostendian,
341[ --enable-sim-hostendian=end Specify host byte endian orientation.],
342[case "${enableval}" in
343 no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";;
344 b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";;
345 l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";;
346 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-hostendian"); sim_hostendian="";;
347esac
348if test x"$silent" != x"yes" && test x"$sim_hostendian" != x""; then
349 echo "Setting hostendian flags = $sim_hostendian" 6>&1
350fi],[
351if test "x$cross_compiling" = "xno"; then
352 AC_C_BIGENDIAN
353 if test $ac_cv_c_bigendian = yes; then
354 sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN"
355 else
356 sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN"
357 fi
358else
359 sim_hostendian="-DWITH_HOST_BYTE_ORDER=0"
360fi])dnl
361
362
363AC_ARG_ENABLE(sim-icache,
364[ --enable-sim-icache=size Specify instruction-decode cache size and type.],
365[icache="-R"
366 case "${enableval}" in
367 yes) icache="1024"; sim_icache="-I $icache";;
368 no) sim_icache="-R";;
369 *) icache=1024
370 sim_icache="-"
371 for x in `echo "${enableval}" | sed -e "s/,/ /g"`; do
372 case "$x" in
373 define) sim_icache="${sim_icache}R";;
374 semantic) sim_icache="${sim_icache}C";;
375 insn) sim_icache="${sim_icache}S";;
376 0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) icache=$x;;
377 *) AC_MSG_ERROR("Unknown value $x for --enable-sim-icache"); sim_icache="";;
378 esac
379 done
380 sim_icache="${sim_icache}I $icache";;
381esac
382if test x"$silent" != x"yes" && test x"$icache" != x""; then
383 echo "Setting instruction cache size to $icache ($sim_icache)"
384fi],[sim_icache="-CSRI 1024"
385if test x"$silent" != x"yes"; then
386 echo "Setting instruction cache size to 1024 ($sim_icache)"
387fi])dnl
388
389
390AC_ARG_ENABLE(sim-inline,
391[ --enable-sim-inline=inlines Specify which functions should be inlined.],
392[sim_inline=""
393case "$enableval" in
394 no) sim_inline="-DDEFAULT_INLINE=0";;
395 0) sim_inline="-DDEFAULT_INLINE=0";;
396 yes | 2) sim_inline="-DDEFAULT_INLINE=ALL_INLINE";;
d29d5195 397 1) sim_inline="-DDEFAULT_INLINE=PSIM_INLINE_LOCALS";;
c906108c
SS
398 *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
399 new_flag=""
400 case "$x" in
401 *_INLINE=*) new_flag="-D$x";;
402 *=*) new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
403 *_INLINE) new_flag="-D$x=ALL_INLINE";;
404 *) new_flag="-D$x""_INLINE=ALL_INLINE";;
405 esac
406 if test x"$sim_inline" = x""; then
407 sim_inline="$new_flag"
408 else
409 sim_inline="$sim_inline $new_flag"
410 fi
411 done;;
412esac
413if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
414 echo "Setting inline flags = $sim_inline" 6>&1
415fi],[if test x"$GCC" != ""; then
d29d5195 416 sim_inline="-DDEFAULT_INLINE=PSIM_INLINE_LOCALS"
c906108c
SS
417 if test x"$silent" != x"yes"; then
418 echo "Setting inline flags = $sim_inline" 6>&1
419 fi
420else
421 sim_inline=""
422fi])dnl
423
424
425AC_ARG_ENABLE(sim-jump,
426[ --enable-sim-jump Jump between semantic code (instead of call/return).],
427[case "${enableval}" in
428 yes) sim_jump="-J";;
429 no) sim_jump="";;
430 *) AC_MSG_ERROR("--enable-sim-jump does not take a value"); sim_jump="";;
431esac
432if test x"$silent" != x"yes" && test x"$sim_jump" != x""; then
433 echo "Setting jump flag = $sim_jump" 6>&1
434fi],[sim_jump=""
435if test x"$silent" != x"yes"; then
436 echo "Setting jump flag = $sim_jump" 6>&1
437fi])dnl
438
439
440AC_ARG_ENABLE(sim-line-nr,
441[ --enable-sim-line-nr=opts Generate extra CPP code that references source rather than generated code],
442[case "${enableval}" in
443 yes) sim_line_nr="";;
444 no) sim_line_nr="-L";;
445 *) AC_MSG_ERROR("--enable-sim-line-nr does not take a value"); sim_line_nr="";;
446esac
447if test x"$silent" != x"yes" && test x"$sim_line_nr" != x""; then
448 echo "Setting warning flags = $sim_line_nr" 6>&1
449fi],[sim_line_nr=""])dnl
450
451
452AC_ARG_ENABLE(sim-model,
453[ --enable-sim-model=which Specify PowerPC to model.],
454[case "${enableval}" in
455 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-model=model");;
456 *) sim_model="-DWITH_MODEL=${enableval}";;
457esac
458if test x"$silent" != x"yes" && test x"$sim_model" != x""; then
459 echo "Setting model flags = $sim_model" 6>&1
460fi],[sim_model=""])dnl
461
462
463AC_ARG_ENABLE(sim-model-issue,
464[ --enable-sim-model-issue Specify whether to simulate model specific actions],
465[case "${enableval}" in
466 yes) sim_model_issue="-DWITH_MODEL_ISSUE=MODEL_ISSUE_PROCESS";;
467 no) sim_model_issue="-DWITH_MODEL_ISSUE=MODEL_ISSUE_IGNORE";;
468 *) AC_MSG_ERROR("--enable-sim-model-issue does not take a value"); sim_model_issue="";;
469esac
470if test x"$silent" != x"yes"; then
471 echo "Setting model-issue flags = $sim_model_issue" 6>&1
472fi],[sim_model_issue=""])dnl
473
474
475AC_ARG_ENABLE(sim-monitor,
476[ --enable-sim-monitor=mon Specify whether to enable monitoring events.],
477[case "${enableval}" in
478 yes) sim_monitor="-DWITH_MON='MONITOR_INSTRUCTION_ISSUE | MONITOR_LOAD_STORE_UNIT'";;
479 no) sim_monitor="-DWITH_MON=0";;
480 instruction) sim_monitor="-DWITH_MON=MONITOR_INSTRUCTION_ISSUE";;
481 memory) sim_monitor="-DWITH_MON=MONITOR_LOAD_STORE_UNIT";;
482 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-mon"); sim_env="";;
483esac
484if test x"$silent" != x"yes" && test x"$sim_monitor" != x""; then
485 echo "Setting monitor flags = $sim_monitor" 6>&1
486fi],[sim_monitor=""])dnl
487
488
489AC_ARG_ENABLE(sim-opcode,
490[ --enable-sim-opcode=which Override default opcode lookup.],
491[case "${enableval}" in
492 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-opcode=file");;
493 *) if test -f "${srcdir}/${enableval}"; then
494 sim_opcode="${enableval}"
495 elif test -f "${srcdir}/dc-${enableval}"; then
496 sim_opcode="dc-${enableval}"
497 else
498 AC_MSG_ERROR("File $enableval is not an opcode rules file");
499 sim_opcode="dc-complex"
500 fi;;
501esac
502if test x"$silent" != x"yes" && test x"$sim_opcode" != x""; then
503 echo "Setting opcode flags = $sim_opcode" 6>&1
504fi],[sim_opcode="dc-complex"
505if test x"$silent" != x"yes"; then
506 echo "Setting opcode flags = $sim_opcode"
507fi])dnl
508
509
510AC_ARG_ENABLE(sim-packages,
511[ --enable-sim-packages=list Specify the packages to be included in the build.],
512[packages=disklabel
513case "${enableval}" in
514 yes) ;;
515 no) AC_MSG_ERROR("List of packages must be specified for --enable-sim-packages"); packages="";;
516 ,*) packages="${packages}${enableval}";;
517 *,) packages="${enableval}${packages}";;
518 *) packages="${enableval}"'';;
519esac
520sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'`
521sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'`
522if test x"$silent" != x"yes" && test x"$packages" != x""; then
523 echo "Setting packages to $sim_pk_src, $sim_pk_obj"
524fi],[packages=disklabel
525sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'`
526sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'`
527if test x"$silent" != x"yes"; then
528 echo "Setting packages to $sim_pk_src, $sim_pk_obj"
529fi])dnl
530
531
532AC_ARG_ENABLE(sim-regparm,
533[ --enable-sim-regparm=nr-parm Pass parameters in registers instead of on the stack - x86/GCC specific.],
534[case "${enableval}" in
535 0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) sim_regparm="-DWITH_REGPARM=${enableval}";;
536 no) sim_regparm="" ;;
537 yes) sim_regparm="-DWITH_REGPARM=3";;
538 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-regparm"); sim_regparm="";;
539esac
540if test x"$silent" != x"yes" && test x"$sim_regparm" != x""; then
541 echo "Setting regparm flags = $sim_regparm" 6>&1
542fi],[sim_regparm=""])dnl
543
544
545AC_ARG_ENABLE(sim-reserved-bits,
546[ --enable-sim-reserved-bits Specify whether to check reserved bits in instruction.],
547[case "${enableval}" in
548 yes) sim_reserved="-DWITH_RESERVED_BITS=1";;
549 no) sim_reserved="-DWITH_RESERVED_BITS=0";;
550 *) AC_MSG_ERROR("--enable-sim-reserved-bits does not take a value"); sim_reserved="";;
551esac
552if test x"$silent" != x"yes" && test x"$sim_reserved" != x""; then
553 echo "Setting reserved flags = $sim_reserved" 6>&1
554fi],[sim_reserved=""])dnl
555
556
557AC_ARG_ENABLE(sim-smp,
558[ --enable-sim-smp=n Specify number of processors to configure for.],
559[case "${enableval}" in
560 yes) sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5";;
561 no) sim_smp="-DWITH_SMP=0" ; sim_igen_smp="-N 0";;
562 *) sim_smp="-DWITH_SMP=$enableval" ; sim_igen_smp="-N $enableval";;
563esac
564if test x"$silent" != x"yes" && test x"$sim_smp" != x""; then
565 echo "Setting smp flags = $sim_smp" 6>&1
566fi],[sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5"
567if test x"$silent" != x"yes"; then
568 echo "Setting smp flags = $sim_smp" 6>&1
569fi])dnl
570
571
572AC_ARG_ENABLE(sim-stdcall,
573[ --enable-sim-stdcall=type Use an alternative function call/return mechanism - x86/GCC specific.],
574[case "${enableval}" in
575 no) sim_stdcall="" ;;
576 std*) sim_stdcall="-DWITH_STDCALL=1";;
577 yes) sim_stdcall="-DWITH_STDCALL=1";;
578 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-stdcall"); sim_stdcall="";;
579esac
580if test x"$silent" != x"yes" && test x"$sim_stdcall" != x""; then
581 echo "Setting function call flags = $sim_stdcall" 6>&1
582fi],[sim_stdcall=""])dnl
583
584
585AC_ARG_ENABLE(sim-stdio,
586[ --enable-sim-stdio Specify whether to use stdio for console input/output.],
587[case "${enableval}" in
588 yes) sim_stdio="-DWITH_STDIO=DO_USE_STDIO";;
589 no) sim_stdio="-DWITH_STDIO=DONT_USE_STDIO";;
590 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-stdio"); sim_stdio="";;
591esac
592if test x"$silent" != x"yes" && test x"$sim_stdio" != x""; then
593 echo "Setting stdio flags = $sim_stdio" 6>&1
594fi],[sim_stdio=""])dnl
595
596
597AC_ARG_ENABLE(sim-switch,
598[ --enable-sim-switch Use a switch instead of a table for instruction call.],
599[case "${enableval}" in
600 yes) sim_switch="-s";;
601 no) sim_switch="";;
602 *) AC_MSG_ERROR("--enable-sim-switch does not take a value"); sim_switch="";;
603esac
604if test x"$silent" != x"yes" && test x"$sim_switch" != x""; then
605 echo "Setting switch flags = $sim_switch" 6>&1
606fi],[sim_switch="";
607if test x"$silent" != x"yes"; then
608 echo "Setting switch flags = $sim_switch" 6>&1
609fi])dnl
610
611
612AC_ARG_ENABLE(sim-timebase,
613[ --enable-sim-timebase Specify whether the PPC timebase is supported.],
614[case "${enableval}" in
615 yes) sim_timebase="-DWITH_TIME_BASE=1";;
616 no) sim_timebase="-DWITH_TIME_BASE=0";;
617 *) AC_MSG_ERROR("--enable-sim-timebase does not take a value"); sim_timebase="";;
618esac
619if test x"$silent" != x"yes" && test x"$sim_timebase" != x""; then
620 echo "Setting timebase flags = $sim_timebase" 6>&1
621fi],[sim_timebase=""])dnl
622
623
624AC_ARG_ENABLE(sim-trace,
625[ --enable-sim-trace Specify whether tracing is supported.],
626[case "${enableval}" in
627 yes) sim_trace="-DWITH_TRACE=1";;
628 no) sim_trace="-DWITH_TRACE=0";;
629 *) AC_MSG_ERROR("--enable-sim-trace does not take a value"); sim_trace="";;
630esac
631if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then
632 echo "Setting trace flags = $sim_trace" 6>&1
633fi],[sim_trace=""])dnl
634
635
636AC_ARG_ENABLE(sim-warnings,
637[ --enable-sim-warnings=opts Extra CFLAGS for turning on compiler warnings except for idecode.o, semantics.o and psim.o],
638[case "${enableval}" in
639 yes) sim_warnings="-Werror -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations ";;
640 no) sim_warnings="-w";;
641 *) sim_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
642esac
643if test x"$silent" != x"yes" && test x"$sim_warnings" != x""; then
644 echo "Setting warning flags = $sim_warnings" 6>&1
645fi],[sim_warnings=""])dnl
646
647
648AC_ARG_ENABLE(sim-xor-endian,
649[ --enable-sim-xor-endian=n Specify number bytes involved in PowerPC XOR bi-endian mode (default 8).],
650[case "${enableval}" in
651 yes) sim_xor_endian="-DWITH_XOR_ENDIAN=8";;
652 no) sim_xor_endian="-DWITH_XOR_ENDIAN=0";;
653 *) sim_xor_endian="-DWITH_XOR_ENDIAN=$enableval";;
654esac
655if test x"$silent" != x"yes" && test x"$sim_xor_endian" != x""; then
656 echo "Setting xor-endian flag = $sim_xor_endian" 6>&1
657fi],[sim_xor_endian=""])dnl
658
659
6efef468
JM
660ACX_PKGVERSION([GDB])
661ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
662AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
663AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
664
c906108c
SS
665AC_CANONICAL_SYSTEM
666AC_ARG_PROGRAM
667
35689115
HPN
668# BFD conditionally uses zlib, so we must link it in if libbfd does, by
669# using the same condition.
670AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)])
671
c906108c
SS
672. ${srcdir}/../../bfd/configure.host
673
058ad269
MM
674case ${host} in
675 *mingw32*)
676 AC_DEFINE(USE_WIN32API, 1,
677 [Define if we should use the Windows API, instead of the
678 POSIX API. On Windows, we use the Windows API when
679 building for MinGW, but the POSIX API when building
680 for Cygwin.])
681 ;;
682esac
683
c906108c
SS
684AC_CONFIG_HEADER(config.h:config.in)
685
686AC_STRUCT_ST_BLKSIZE
687AC_STRUCT_ST_BLOCKS
688AC_STRUCT_ST_RDEV
689AC_STRUCT_TIMEZONE
690
691AC_TYPE_GETGROUPS
692AC_TYPE_MODE_T
693AC_TYPE_OFF_T
694AC_TYPE_PID_T
695AC_TYPE_SIGNAL
696AC_TYPE_SIZE_T
697AC_TYPE_UID_T
698
699AC_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)
700
1f362c96 701AC_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
702AC_HEADER_DIRENT
703
704dnl Figure out what type of termio/termios support there is
705sim_termio=""
706AC_MSG_CHECKING(for struct termios)
707AC_CACHE_VAL(ac_cv_termios_struct,
708[AC_TRY_COMPILE([#include <sys/types.h>
709#include <sys/termios.h>],
710[static struct termios x;
711 x.c_iflag = 0;
712 x.c_oflag = 0;
713 x.c_cflag = 0;
714 x.c_lflag = 0;
715 x.c_cc[NCCS] = 0;],
716ac_cv_termios_struct=yes, ac_cv_termios_struct=no)])
717AC_MSG_RESULT($ac_cv_termios_struct)
718if test $ac_cv_termios_struct = yes; then
719 sim_termio="$sim_termio -DHAVE_TERMIOS_STRUCTURE"
720fi
721
722if test "$ac_cv_termios_struct" = "yes"; then
723 AC_MSG_CHECKING(for c_line field in struct termios)
724 AC_CACHE_VAL(ac_cv_termios_cline,
725 [AC_TRY_COMPILE([#include <sys/types.h>
726#include <sys/termios.h>],
727[static struct termios x; x.c_line = 0;],
728 ac_cv_termios_cline=yes, ac_cv_termios_cline=no)])
729
730 AC_MSG_RESULT($ac_cv_termios_cline)
731 if test $ac_cv_termios_cline = yes; then
732 sim_termio="$sim_termio -DHAVE_TERMIOS_CLINE"
733 fi
734else
735 ac_cv_termios_cline=no
736fi
737
738if test "$ac_cv_termios_struct" != "yes"; then
739 AC_MSG_CHECKING(for struct termio)
740 AC_CACHE_VAL(ac_cv_termio_struct,
741 [AC_TRY_COMPILE([#include <sys/types.h>
742#include <sys/termio.h>],
743[static struct termio x;
744 x.c_iflag = 0;
745 x.c_oflag = 0;
746 x.c_cflag = 0;
747 x.c_lflag = 0;
748 x.c_cc[NCC] = 0;],
749ac_cv_termio_struct=yes, ac_cv_termio_struct=no)])
750 AC_MSG_RESULT($ac_cv_termio_struct)
751 if test $ac_cv_termio_struct = yes; then
752 sim_termio="$sim_termio -DHAVE_TERMIO_STRUCTURE"
753 fi
754else
755 ac_cv_termio_struct=no
756fi
757
758if test "$ac_cv_termio_struct" = "yes"; then
759 AC_MSG_CHECKING(for c_line field in struct termio)
760 AC_CACHE_VAL(ac_cv_termio_cline,
761 [AC_TRY_COMPILE([#include <sys/types.h>
762#include <sys/termio.h>],
763[static struct termio x; x.c_line = 0;],
764 ac_cv_termio_cline=yes, ac_cv_termio_cline=no)])
765
766 AC_MSG_RESULT($ac_cv_termio_cline)
767 if test $ac_cv_termio_cline = yes; then
768 sim_termio="$sim_termio -DHAVE_TERMIO_CLINE"
769 fi
770else
771 ac_cv_termio_cline=no
772fi
773
1f362c96
AC
774dnl Check for struct statfs
775AC_MSG_CHECKING(for struct statfs)
776AC_CACHE_VAL(ac_cv_struct_statfs,
777[AC_TRY_COMPILE([#include <sys/types.h>
778#ifdef HAVE_SYS_PARAM_H
779#include <sys/param.h>
780#endif
781#ifdef HAVE_SYS_MOUNT_H
782#include <sys/mount.h>
783#endif
784#ifdef HAVE_SYS_VFS_H
785#include <sys/vfs.h>
786#endif
787#ifdef HAVE_SYS_STATFS_H
788#include <sys/statfs.h>
789#endif],
790[static struct statfs s;],
791ac_cv_struct_statfs=yes, ac_cv_struct_statfs=no)])
792AC_MSG_RESULT($ac_cv_struct_statfs)
793if test $ac_cv_struct_statfs = yes; then
794 AC_DEFINE(HAVE_STRUCT_STATFS, 1,
795 [Define if struct statfs is defined in <sys/mount.h>])
796fi
797
30e66173
MI
798AC_CHECK_TYPES(long long)
799
c906108c
SS
800dnl Figure out if /dev/zero exists or not
801sim_devzero=""
802AC_MSG_CHECKING(for /dev/zero)
803AC_CACHE_VAL(ac_cv_devzero,
804[AC_TRY_RUN([#include <fcntl.h>
805main () {
806 char buf[2048];
807 int i;
808 int fd = open ("/dev/zero", O_RDONLY);
809 if (fd < 0)
810 return 1;
811 for (i = 0; i < sizeof (buf); i++)
812 buf[i] = 1;
813 if (read (fd, buf, sizeof (buf)) != sizeof (buf))
814 return 1;
815 for (i = 0; i < sizeof (buf); i++)
816 if (buf[i])
817 return 1;
818 return 0;
819}],[ac_cv_devzero=yes],[ac_cv_devzero=no],[ac_cv_devzero=no])])
820AC_MSG_RESULT($ac_cv_devzero)
821if test $ac_cv_devzero = yes; then
822 sim_devzero="-DHAVE_DEVZERO"
823else
824 sim_devzero=""
825fi
826
827dnl Figure out if we are in the new Cygnus tree with a common directory or not
828AC_MSG_CHECKING(for common simulator directory)
829if test -f "${srcdir}/../common/callback.c"; then
830 AC_MSG_RESULT(yes)
831 sim_callback="callback.o targ-map.o"
832 sim_targ_vals="targ-vals.h targ-map.c targ-vals.def"
833else
834 AC_MSG_RESULT(no)
835 sim_callback=""
836 sim_targ_vals=""
837fi
838
d29d5195
MG
839AC_MSG_CHECKING(for common simulator directory fpu implementation)
840if test -f "${srcdir}/../common/sim-fpu.c"; then
841 AC_MSG_RESULT(yes)
3e5e53f9 842 sim_fpu_cflags="-DHAVE_COMMON_FPU -I../common -I${srcdir}/../common"
3a11ea24 843 sim_fpu="sim-fpu.o"
d29d5195
MG
844else
845 AC_MSG_RESULT(no)
846 sim_fpu_cflags=
847 sim_fpu=
848fi
849
c906108c 850dnl Check for exe extension
cd0fc7c3 851AC_EXEEXT
c906108c
SS
852
853AC_SUBST(CC_FOR_BUILD)
4b164edf 854AC_SUBST(CFLAGS_FOR_BUILD)
c906108c
SS
855AC_SUBST(CFLAGS)
856AC_SUBST(HDEFINES)
857AR=${AR-ar}
858AC_SUBST(AR)
859AC_PROG_RANLIB
860AC_SUBST(sim_cflags)
861AC_SUBST(sim_warnings)
862AC_SUBST(sim_line_nr)
863AC_SUBST(sim_config)
864AC_SUBST(sim_opcode)
865AC_SUBST(sim_switch)
866AC_SUBST(sim_dup)
867AC_SUBST(sim_decode_mechanism)
868AC_SUBST(sim_jump)
869AC_SUBST(sim_filter)
870AC_SUBST(sim_icache)
871AC_SUBST(sim_hw_src)
872AC_SUBST(sim_hw_obj)
873AC_SUBST(sim_pk_src)
874AC_SUBST(sim_pk_obj)
875AC_SUBST(sim_inline)
876AC_SUBST(sim_bswap)
877AC_SUBST(sim_endian)
878AC_SUBST(sim_regparm)
879AC_SUBST(sim_stdcall)
880AC_SUBST(sim_xor_endian)
881AC_SUBST(sim_hostendian)
882AC_SUBST(sim_smp)
883AC_SUBST(sim_igen_smp)
884AC_SUBST(sim_bitsize)
885AC_SUBST(sim_hostbitsize)
886AC_SUBST(sim_env)
887AC_SUBST(sim_timebase)
888AC_SUBST(sim_alignment)
889AC_SUBST(sim_float)
890AC_SUBST(sim_trace)
891AC_SUBST(sim_assert)
892AC_SUBST(sim_reserved)
893AC_SUBST(sim_monitor)
894AC_SUBST(sim_model)
895AC_SUBST(sim_default_model)
896AC_SUBST(sim_model_issue)
897AC_SUBST(sim_stdio)
898AC_SUBST(sim_termio)
899AC_SUBST(sim_devzero)
900AC_SUBST(sim_callback)
901AC_SUBST(sim_targ_vals)
d29d5195
MG
902AC_SUBST(sim_fpu_cflags)
903AC_SUBST(sim_fpu)
c906108c
SS
904
905AC_OUTPUT(Makefile,
906[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac])