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