sim: move many common settings from CPPFLAGS to config.h
[deliverable/binutils-gdb.git] / sim / ppc / configure.ac
CommitLineData
c906108c 1dnl Process this file with autoconf to produce a configure script.
b7026657 2AC_PREREQ(2.59)dnl
c906108c 3AC_INIT(Makefile.in)
9c082ca8 4sinclude(../common/acinclude.m4)
c906108c
SS
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
ce39bd38
MF
36AC_MSG_CHECKING([whether to enable sim asserts])
37sim_assert="1"
c906108c
SS
38AC_ARG_ENABLE(sim-assert,
39[ --enable-sim-assert Specify whether to perform random assertions.],
40[case "${enableval}" in
ce39bd38
MF
41 yes) sim_assert="1";;
42 no) sim_assert="0";;
43 *) AC_MSG_ERROR([--enable-sim-assert does not take a value]);;
44esac])dnl
45AC_DEFINE_UNQUOTED([WITH_ASSERT], [$sim_assert], [Sim assert settings])
46AC_MSG_RESULT($sim_assert)
c906108c
SS
47
48
49AC_ARG_ENABLE(sim-bitsize,
50[ --enable-sim-bitsize=n Specify target bitsize (32 or 64).],
51[case "${enableval}" in
52 32|64) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=$enableval";;
53 *) AC_MSG_ERROR("--enable-sim-bitsize was given $enableval. Expected 32 or 64"); sim_bitsize="";;
54esac
55if test x"$silent" != x"yes" && test x"$sim_bitsize" != x""; then
56 echo "Setting bitsize flags = $sim_bitsize" 6>&1
57fi],[sim_bitsize=""])dnl
58
59
c906108c
SS
60AC_ARG_ENABLE(sim-config,
61[ --enable-sim-config=file Override default config file],
62[case "${enableval}" in
63 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-config=file");;
64 *) if test -f "${srcdir}/${enableval}"; then
65 sim_config="${enableval}";
66 elif test -f "${srcdir}/${enableval}-config.h"; then
67 sim_config="${enableval}-config.h"
68 else
69 AC_MSG_ERROR("Config file $enableval was not found");
70 sim_config=std-config.h
71 fi;;
72esac
73if test x"$silent" != x"yes" && test x"$sim_config" != x""; then
74 echo "Setting config flags = $sim_config" 6>&1
75fi],[sim_config="std-config.h"
76if test x"$silent" != x"yes"; then
77 echo "Setting config flags = $sim_config" 6>&1
78fi])dnl
79
80
81AC_ARG_ENABLE(sim-decode-mechanism,
82[ --enable-sim-decode-mechanism=which Specify the instruction decode mechanism.],
83[case "${enableval}" in
84 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-decode-mechanism=file");;
85 array|switch|padded-switch|goto-switch) sim_decode_mechanism="-T ${enableval}";;
86 *) AC_MSG_ERROR("File $enableval is not an opcode rules file");
87 sim_decode_mechanism="switch";;
88esac
89if test x"$silent" != x"yes" && test x"$sim_decode_mechanism" != x""; then
90 echo "Setting decode mechanism flags = $sim_decode_mechanism" 6>&1
91fi],[sim_decode_mechanism=""
92if test x"$silent" != x"yes"; then
93 echo "Setting decode mechanism flags = $sim_decode_mechanism"
94fi])dnl
95
96
97AC_ARG_ENABLE(sim-default-model,
98[ --enable-sim-default-model=which Specify default PowerPC to model.],
99[case "${enableval}" in
100 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-default-model=model");;
101 *) sim_default_model="-DWITH_DEFAULT_MODEL=${enableval}";;
102esac
103if test x"$silent" != x"yes" && test x"$sim_default_model" != x""; then
104 echo "Setting default-model flags = $sim_default_model" 6>&1
105fi],[sim_default_model=""])dnl
106
107
108AC_ARG_ENABLE(sim-duplicate,
109[ --enable-sim-duplicate Expand (duplicate) semantic functions.],
110[case "${enableval}" in
111 yes) sim_dup="-E";;
112 no) sim_dup="";;
113 *) AC_MSG_ERROR("--enable-sim-duplicate does not take a value"); sim_dup="";;
114esac
115if test x"$silent" != x"yes" && test x"$sim_dup" != x""; then
116 echo "Setting duplicate flags = $sim_dup" 6>&1
117fi],[sim_dup="-E"
118if test x"$silent" != x"yes"; then
119 echo "Setting duplicate flags = $sim_dup" 6>&1
120fi])dnl
121
122
123AC_ARG_ENABLE(sim-endian,
124[ --enable-sim-endian=endian Specify target byte endian orientation.],
125[case "${enableval}" in
126 yes) case "$target" in
127 *powerpc-*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
128 *powerpcle-*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
129 *) echo "Unknown target $target" 1>&6; sim_endian="-DWITH_TARGET_BYTE_ORDER=0";;
130 esac;;
131 no) sim_endian="-DWITH_TARGET_BYTE_ORDER=0";;
132 b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
133 l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
134 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-endian"); sim_endian="";;
135esac
136if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then
137 echo "Setting endian flags = $sim_endian" 6>&1
138fi],[sim_endian=""])dnl
139
140
ce39bd38
MF
141AC_MSG_CHECKING([default sim environment setting])
142sim_env="0"
c906108c
SS
143AC_ARG_ENABLE(sim-env,
144[ --enable-sim-env=env Specify target environment (operating, virtual, user).],
145[case "${enableval}" in
ce39bd38
MF
146 operating | os | oea) sim_env="OPERATING_ENVIRONMENT";;
147 virtual | vea) sim_env="VIRTUAL_ENVIRONMENT";;
148 user | uea) sim_env="USER_ENVIRONMENT";;
149 no) sim_env="0";;
150 *) AC_MSG_ERROR([Unknown value $enableval passed to --enable-sim-env]);;
151esac])dnl
152AC_DEFINE_UNQUOTED([WITH_ENVIRONMENT], [$sim_env], [Sim default environment])
153AC_MSG_RESULT($sim_env)
c906108c
SS
154
155
156AC_ARG_ENABLE(sim-filter,
157[ --enable-sim-filter=rule Specify filter rules.],
158[case "${enableval}" in
159 yes) AC_MSG_ERROR("--enable-sim-filter must be specified with a rule to filter or no"); sim_filter="";;
160 no) sim_filter="";;
161 *) sim_filter="-F $enableval";;
162esac
163if test x"$silent" != x"yes" && test x"$sim_filter" != x""; then
164 echo "Setting filter flags = $sim_filter" 6>&1
165fi],[sim_filter="-F 32,f,o"
166if test x"$silent" != x"yes"; then
167 echo "Setting filter flags = $sim_filter" 6>&1
168fi])dnl
169
170
171AC_ARG_ENABLE(sim-float,
345d88d9 172[ --enable-sim-float Specify whether the target has hard, soft, altivec or e500 floating point.],
c906108c
SS
173[case "${enableval}" in
174 yes | hard) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT";;
175 no | soft) sim_float="-DWITH_FLOATING_POINT=SOFT_FLOATING_POINT";;
345d88d9
AC
176 altivec) sim_float="-DWITH_ALTIVEC" ; sim_filter="${sim_filter},av" ;;
177 *spe*|*simd*) sim_float="-DWITH_E500" ; sim_filter="${sim_filter},e500" ;;
c906108c
SS
178 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-float"); sim_float="";;
179esac
180if test x"$silent" != x"yes" && test x"$sim_float" != x""; then
181 echo "Setting float flags = $sim_float" 6>&1
345d88d9
AC
182fi],[
183case "${target}" in
184 *altivec*) sim_float="-DWITH_ALTIVEC" ; sim_filter="${sim_filter},av" ;;
185 *spe*|*simd*) sim_float="-DWITH_E500" ; sim_filter="${sim_filter},e500" ;;
186 *) sim_float=""
187esac
188])dnl
c906108c 189
00a0b122
JS
190AC_CACHE_CHECK([if union semun defined],
191 ac_cv_HAS_UNION_SEMUN,
192 [AC_TRY_COMPILE([
193#include <sys/types.h>
194#include <sys/ipc.h>
195#include <sys/sem.h>],
196[union semun arg ;],
197[ac_cv_has_union_semun="yes"],
198[ac_cv_has_union_semun="no"])
199AC_MSG_RESULT($ac_cv_has_union_semun)
200])
201
202
203if test "$ac_cv_has_union_semun" = "yes"; then
204 AC_CACHE_CHECK(whether System V semaphores are supported,
205 ac_cv_sysv_sem,
206 [
207 AC_TRY_RUN(
208 [
209 #include <sys/types.h>
210 #include <sys/ipc.h>
211 #include <sys/sem.h>
212 int main () {
213 union semun arg ;
214
215 int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400);
216 if (id == -1)
217 exit(1);
218 arg.val = 0; /* avoid implicit type cast to union */
219 if (semctl(id, 0, IPC_RMID, arg) == -1)
220 exit(1);
221 exit(0);
222 }
223 ],
224 ac_cv_sysv_sem="yes", ac_cv_sysv_sem="no", :)
225 ])
226else # semun is not defined
227 AC_CACHE_CHECK(whether System V semaphores are supported,
228 ac_cv_sysv_sem,
229 [
230 AC_TRY_RUN(
231 [
232 #include <sys/types.h>
233 #include <sys/ipc.h>
234 #include <sys/sem.h>
235 union semun {
236 int val;
237 struct semid_ds *buf;
238 ushort *array;
239 };
240 int main () {
241 union semun arg ;
242
243 int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400);
244 if (id == -1)
245 exit(1);
246 arg.val = 0; /* avoid implicit type cast to union */
247 if (semctl(id, 0, IPC_RMID, arg) == -1)
248 exit(1);
249 exit(0);
250 }
251 ],
252 ac_cv_sysv_sem="yes", ac_cv_sysv_sem="no", :)
253 ])
254fi
255
256AC_CACHE_CHECK(whether System V shared memory is supported,
257ac_cv_sysv_shm,
258[
259AC_TRY_RUN([
260#include <sys/types.h>
261#include <sys/ipc.h>
262#include <sys/shm.h>
263int main () {
264 int id=shmget(IPC_PRIVATE,1,IPC_CREAT|0400);
265 if (id == -1)
266 exit(1);
267 if (shmctl(id, IPC_RMID, 0) == -1)
268 exit(1);
269 exit(0);
270}
271],
272ac_cv_sysv_shm="yes", ac_cv_sysv_shm="no", :)
273])
274
275if test x"$ac_cv_sysv_shm" = x"yes" -a x"$ac_cv_sysv_sem" = x"yes" ; then
276 sim_sysv_ipc_hw=",sem,shm";
277else
278 sim_sysv_ipc_hw="";
279fi
280
281if test x"$ac_cv_has_union_semun" = x"yes" -a x"$ac_cv_sysv_sem" = x"yes" ; then
bf0275b1
DE
282 AC_DEFINE(HAVE_UNION_SEMUN, 1,
283 [Define if union semun is defined in <sys/sem.h>])
00a0b122
JS
284fi
285
c906108c
SS
286
287AC_ARG_ENABLE(sim-hardware,
288[ --enable-sim-hardware=list Specify the hardware to be included in the build.],
00a0b122 289[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
290case "${enableval}" in
291 yes) ;;
292 no) AC_MSG_ERROR("List of hardware must be specified for --enable-sim-hardware"); hardware="";;
293 ,*) hardware="${hardware}${enableval}";;
294 *,) hardware="${enableval}${hardware}";;
295 *) hardware="${enableval}"'';;
296esac
297sim_hw_src=`echo $hardware | sed -e 's/,/.c hw_/g' -e 's/^/hw_/' -e s'/$/.c/'`
298sim_hw_obj=`echo $sim_hw_src | sed -e 's/\.c/.o/g'`
299if test x"$silent" != x"yes" && test x"$hardware" != x""; then
300 echo "Setting hardware to $sim_hw_src, $sim_hw_obj"
00a0b122 301fi],[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
302sim_hw_src=`echo $hardware | sed -e 's/,/.c hw_/g' -e 's/^/hw_/' -e s'/$/.c/'`
303sim_hw_obj=`echo $sim_hw_src | sed -e 's/\.c/.o/g'`
304if test x"$silent" != x"yes"; then
305 echo "Setting hardware to $sim_hw_src, $sim_hw_obj"
306fi])dnl
307
c906108c
SS
308AC_ARG_ENABLE(sim-hostbitsize,
309[ --enable-sim-hostbitsize=32|64 Specify host bitsize (32 or 64).],
310[case "${enableval}" in
311 32|64) sim_hostbitsize="-DWITH_HOST_WORD_BITSIZE=$enableval";;
312 *) AC_MSG_ERROR("--enable-sim-hostbitsize was given $enableval. Expected 32 or 64"); sim_hostbitsize="";;
313esac
314if test x"$silent" != x"yes" && test x"$sim_hostbitsize" != x""; then
315 echo "Setting hostbitsize flags = $sim_hostbitsize" 6>&1
316fi],[sim_hostbitsize=""])dnl
317
318
319AC_ARG_ENABLE(sim-hostendian,
320[ --enable-sim-hostendian=end Specify host byte endian orientation.],
321[case "${enableval}" in
322 no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";;
323 b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";;
324 l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";;
325 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-hostendian"); sim_hostendian="";;
326esac
327if test x"$silent" != x"yes" && test x"$sim_hostendian" != x""; then
328 echo "Setting hostendian flags = $sim_hostendian" 6>&1
329fi],[
330if test "x$cross_compiling" = "xno"; then
331 AC_C_BIGENDIAN
332 if test $ac_cv_c_bigendian = yes; then
333 sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN"
334 else
335 sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN"
336 fi
337else
338 sim_hostendian="-DWITH_HOST_BYTE_ORDER=0"
339fi])dnl
340
341
342AC_ARG_ENABLE(sim-icache,
343[ --enable-sim-icache=size Specify instruction-decode cache size and type.],
344[icache="-R"
345 case "${enableval}" in
346 yes) icache="1024"; sim_icache="-I $icache";;
347 no) sim_icache="-R";;
348 *) icache=1024
349 sim_icache="-"
350 for x in `echo "${enableval}" | sed -e "s/,/ /g"`; do
351 case "$x" in
352 define) sim_icache="${sim_icache}R";;
353 semantic) sim_icache="${sim_icache}C";;
354 insn) sim_icache="${sim_icache}S";;
355 0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) icache=$x;;
356 *) AC_MSG_ERROR("Unknown value $x for --enable-sim-icache"); sim_icache="";;
357 esac
358 done
359 sim_icache="${sim_icache}I $icache";;
360esac
361if test x"$silent" != x"yes" && test x"$icache" != x""; then
362 echo "Setting instruction cache size to $icache ($sim_icache)"
363fi],[sim_icache="-CSRI 1024"
364if test x"$silent" != x"yes"; then
365 echo "Setting instruction cache size to 1024 ($sim_icache)"
366fi])dnl
367
368
369AC_ARG_ENABLE(sim-inline,
370[ --enable-sim-inline=inlines Specify which functions should be inlined.],
371[sim_inline=""
372case "$enableval" in
373 no) sim_inline="-DDEFAULT_INLINE=0";;
374 0) sim_inline="-DDEFAULT_INLINE=0";;
375 yes | 2) sim_inline="-DDEFAULT_INLINE=ALL_INLINE";;
d29d5195 376 1) sim_inline="-DDEFAULT_INLINE=PSIM_INLINE_LOCALS";;
c906108c
SS
377 *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
378 new_flag=""
379 case "$x" in
380 *_INLINE=*) new_flag="-D$x";;
381 *=*) new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
382 *_INLINE) new_flag="-D$x=ALL_INLINE";;
383 *) new_flag="-D$x""_INLINE=ALL_INLINE";;
384 esac
385 if test x"$sim_inline" = x""; then
386 sim_inline="$new_flag"
387 else
388 sim_inline="$sim_inline $new_flag"
389 fi
390 done;;
391esac
392if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
393 echo "Setting inline flags = $sim_inline" 6>&1
394fi],[if test x"$GCC" != ""; then
d29d5195 395 sim_inline="-DDEFAULT_INLINE=PSIM_INLINE_LOCALS"
c906108c
SS
396 if test x"$silent" != x"yes"; then
397 echo "Setting inline flags = $sim_inline" 6>&1
398 fi
399else
400 sim_inline=""
401fi])dnl
402
403
404AC_ARG_ENABLE(sim-jump,
405[ --enable-sim-jump Jump between semantic code (instead of call/return).],
406[case "${enableval}" in
407 yes) sim_jump="-J";;
408 no) sim_jump="";;
409 *) AC_MSG_ERROR("--enable-sim-jump does not take a value"); sim_jump="";;
410esac
411if test x"$silent" != x"yes" && test x"$sim_jump" != x""; then
412 echo "Setting jump flag = $sim_jump" 6>&1
413fi],[sim_jump=""
414if test x"$silent" != x"yes"; then
415 echo "Setting jump flag = $sim_jump" 6>&1
416fi])dnl
417
418
419AC_ARG_ENABLE(sim-line-nr,
420[ --enable-sim-line-nr=opts Generate extra CPP code that references source rather than generated code],
421[case "${enableval}" in
422 yes) sim_line_nr="";;
423 no) sim_line_nr="-L";;
424 *) AC_MSG_ERROR("--enable-sim-line-nr does not take a value"); sim_line_nr="";;
425esac
426if test x"$silent" != x"yes" && test x"$sim_line_nr" != x""; then
427 echo "Setting warning flags = $sim_line_nr" 6>&1
428fi],[sim_line_nr=""])dnl
429
430
431AC_ARG_ENABLE(sim-model,
432[ --enable-sim-model=which Specify PowerPC to model.],
433[case "${enableval}" in
434 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-model=model");;
435 *) sim_model="-DWITH_MODEL=${enableval}";;
436esac
437if test x"$silent" != x"yes" && test x"$sim_model" != x""; then
438 echo "Setting model flags = $sim_model" 6>&1
439fi],[sim_model=""])dnl
440
441
442AC_ARG_ENABLE(sim-model-issue,
443[ --enable-sim-model-issue Specify whether to simulate model specific actions],
444[case "${enableval}" in
445 yes) sim_model_issue="-DWITH_MODEL_ISSUE=MODEL_ISSUE_PROCESS";;
446 no) sim_model_issue="-DWITH_MODEL_ISSUE=MODEL_ISSUE_IGNORE";;
447 *) AC_MSG_ERROR("--enable-sim-model-issue does not take a value"); sim_model_issue="";;
448esac
449if test x"$silent" != x"yes"; then
450 echo "Setting model-issue flags = $sim_model_issue" 6>&1
451fi],[sim_model_issue=""])dnl
452
453
454AC_ARG_ENABLE(sim-monitor,
455[ --enable-sim-monitor=mon Specify whether to enable monitoring events.],
456[case "${enableval}" in
457 yes) sim_monitor="-DWITH_MON='MONITOR_INSTRUCTION_ISSUE | MONITOR_LOAD_STORE_UNIT'";;
458 no) sim_monitor="-DWITH_MON=0";;
459 instruction) sim_monitor="-DWITH_MON=MONITOR_INSTRUCTION_ISSUE";;
460 memory) sim_monitor="-DWITH_MON=MONITOR_LOAD_STORE_UNIT";;
461 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-mon"); sim_env="";;
462esac
463if test x"$silent" != x"yes" && test x"$sim_monitor" != x""; then
464 echo "Setting monitor flags = $sim_monitor" 6>&1
465fi],[sim_monitor=""])dnl
466
467
468AC_ARG_ENABLE(sim-opcode,
469[ --enable-sim-opcode=which Override default opcode lookup.],
470[case "${enableval}" in
471 yes|no) AC_MSG_ERROR("No value supplied for --enable-sim-opcode=file");;
472 *) if test -f "${srcdir}/${enableval}"; then
473 sim_opcode="${enableval}"
474 elif test -f "${srcdir}/dc-${enableval}"; then
475 sim_opcode="dc-${enableval}"
476 else
477 AC_MSG_ERROR("File $enableval is not an opcode rules file");
478 sim_opcode="dc-complex"
479 fi;;
480esac
481if test x"$silent" != x"yes" && test x"$sim_opcode" != x""; then
482 echo "Setting opcode flags = $sim_opcode" 6>&1
483fi],[sim_opcode="dc-complex"
484if test x"$silent" != x"yes"; then
485 echo "Setting opcode flags = $sim_opcode"
486fi])dnl
487
488
489AC_ARG_ENABLE(sim-packages,
490[ --enable-sim-packages=list Specify the packages to be included in the build.],
491[packages=disklabel
492case "${enableval}" in
493 yes) ;;
494 no) AC_MSG_ERROR("List of packages must be specified for --enable-sim-packages"); packages="";;
495 ,*) packages="${packages}${enableval}";;
496 *,) packages="${enableval}${packages}";;
497 *) packages="${enableval}"'';;
498esac
499sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'`
500sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'`
501if test x"$silent" != x"yes" && test x"$packages" != x""; then
502 echo "Setting packages to $sim_pk_src, $sim_pk_obj"
503fi],[packages=disklabel
504sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'`
505sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'`
506if test x"$silent" != x"yes"; then
507 echo "Setting packages to $sim_pk_src, $sim_pk_obj"
508fi])dnl
509
510
c906108c
SS
511AC_ARG_ENABLE(sim-reserved-bits,
512[ --enable-sim-reserved-bits Specify whether to check reserved bits in instruction.],
513[case "${enableval}" in
514 yes) sim_reserved="-DWITH_RESERVED_BITS=1";;
515 no) sim_reserved="-DWITH_RESERVED_BITS=0";;
516 *) AC_MSG_ERROR("--enable-sim-reserved-bits does not take a value"); sim_reserved="";;
517esac
518if test x"$silent" != x"yes" && test x"$sim_reserved" != x""; then
519 echo "Setting reserved flags = $sim_reserved" 6>&1
520fi],[sim_reserved=""])dnl
521
522
523AC_ARG_ENABLE(sim-smp,
524[ --enable-sim-smp=n Specify number of processors to configure for.],
525[case "${enableval}" in
526 yes) sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5";;
527 no) sim_smp="-DWITH_SMP=0" ; sim_igen_smp="-N 0";;
528 *) sim_smp="-DWITH_SMP=$enableval" ; sim_igen_smp="-N $enableval";;
529esac
530if test x"$silent" != x"yes" && test x"$sim_smp" != x""; then
531 echo "Setting smp flags = $sim_smp" 6>&1
532fi],[sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5"
533if test x"$silent" != x"yes"; then
534 echo "Setting smp flags = $sim_smp" 6>&1
535fi])dnl
536
537
ce39bd38
MF
538AC_MSG_CHECKING([for sim stdio debug behavior])
539sim_stdio=0
c906108c
SS
540AC_ARG_ENABLE(sim-stdio,
541[ --enable-sim-stdio Specify whether to use stdio for console input/output.],
542[case "${enableval}" in
ce39bd38
MF
543 yes) sim_stdio="DO_USE_STDIO";;
544 no) sim_stdio="DONT_USE_STDIO";;
545 *) AC_MSG_ERROR([Unknown value $enableval passed to --enable-sim-stdio]);;
546esac])dnl
547AC_DEFINE_UNQUOTED([WITH_STDIO], [$sim_stdio], [How to route I/O])
548AC_MSG_RESULT($sim_stdio)
c906108c
SS
549
550
551AC_ARG_ENABLE(sim-switch,
552[ --enable-sim-switch Use a switch instead of a table for instruction call.],
553[case "${enableval}" in
554 yes) sim_switch="-s";;
555 no) sim_switch="";;
556 *) AC_MSG_ERROR("--enable-sim-switch does not take a value"); sim_switch="";;
557esac
558if test x"$silent" != x"yes" && test x"$sim_switch" != x""; then
559 echo "Setting switch flags = $sim_switch" 6>&1
560fi],[sim_switch="";
561if test x"$silent" != x"yes"; then
562 echo "Setting switch flags = $sim_switch" 6>&1
563fi])dnl
564
565
566AC_ARG_ENABLE(sim-timebase,
567[ --enable-sim-timebase Specify whether the PPC timebase is supported.],
568[case "${enableval}" in
569 yes) sim_timebase="-DWITH_TIME_BASE=1";;
570 no) sim_timebase="-DWITH_TIME_BASE=0";;
571 *) AC_MSG_ERROR("--enable-sim-timebase does not take a value"); sim_timebase="";;
572esac
573if test x"$silent" != x"yes" && test x"$sim_timebase" != x""; then
574 echo "Setting timebase flags = $sim_timebase" 6>&1
575fi],[sim_timebase=""])dnl
576
577
ce39bd38
MF
578AC_MSG_CHECKING([for sim trace settings])
579sim_trace="1"
c906108c
SS
580AC_ARG_ENABLE(sim-trace,
581[ --enable-sim-trace Specify whether tracing is supported.],
582[case "${enableval}" in
ce39bd38
MF
583 yes) sim_trace="1";;
584 no) sim_trace="0";;
585 *) AC_MSG_ERROR([--enable-sim-trace does not take a value]);;
586esac])dnl
587AC_DEFINE_UNQUOTED([WITH_TRACE], [$sim_trace], [Sim trace settings])
588AC_MSG_RESULT($sim_trace)
c906108c
SS
589
590
591AC_ARG_ENABLE(sim-warnings,
592[ --enable-sim-warnings=opts Extra CFLAGS for turning on compiler warnings except for idecode.o, semantics.o and psim.o],
593[case "${enableval}" in
594 yes) sim_warnings="-Werror -Wall -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations ";;
595 no) sim_warnings="-w";;
596 *) sim_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
597esac
598if test x"$silent" != x"yes" && test x"$sim_warnings" != x""; then
599 echo "Setting warning flags = $sim_warnings" 6>&1
600fi],[sim_warnings=""])dnl
601
602
603AC_ARG_ENABLE(sim-xor-endian,
604[ --enable-sim-xor-endian=n Specify number bytes involved in PowerPC XOR bi-endian mode (default 8).],
605[case "${enableval}" in
606 yes) sim_xor_endian="-DWITH_XOR_ENDIAN=8";;
607 no) sim_xor_endian="-DWITH_XOR_ENDIAN=0";;
608 *) sim_xor_endian="-DWITH_XOR_ENDIAN=$enableval";;
609esac
610if test x"$silent" != x"yes" && test x"$sim_xor_endian" != x""; then
611 echo "Setting xor-endian flag = $sim_xor_endian" 6>&1
612fi],[sim_xor_endian=""])dnl
613
614
6efef468
JM
615ACX_PKGVERSION([GDB])
616ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
617AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
618AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
619
c906108c
SS
620AC_CANONICAL_SYSTEM
621AC_ARG_PROGRAM
622
35689115
HPN
623# BFD conditionally uses zlib, so we must link it in if libbfd does, by
624# using the same condition.
5912fadd 625AM_ZLIB
35689115 626
2974be62
AM
627# BFD uses libdl when when plugins enabled.
628AC_PLUGINS
629
c906108c
SS
630. ${srcdir}/../../bfd/configure.host
631
058ad269
MM
632case ${host} in
633 *mingw32*)
634 AC_DEFINE(USE_WIN32API, 1,
635 [Define if we should use the Windows API, instead of the
636 POSIX API. On Windows, we use the Windows API when
637 building for MinGW, but the POSIX API when building
638 for Cygwin.])
639 ;;
640esac
641
c906108c
SS
642AC_CONFIG_HEADER(config.h:config.in)
643
644AC_STRUCT_ST_BLKSIZE
645AC_STRUCT_ST_BLOCKS
646AC_STRUCT_ST_RDEV
647AC_STRUCT_TIMEZONE
648
649AC_TYPE_GETGROUPS
650AC_TYPE_MODE_T
651AC_TYPE_OFF_T
652AC_TYPE_PID_T
653AC_TYPE_SIGNAL
654AC_TYPE_SIZE_T
655AC_TYPE_UID_T
656
657AC_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)
658
1f362c96 659AC_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
660AC_HEADER_DIRENT
661
662dnl Figure out what type of termio/termios support there is
663sim_termio=""
664AC_MSG_CHECKING(for struct termios)
665AC_CACHE_VAL(ac_cv_termios_struct,
666[AC_TRY_COMPILE([#include <sys/types.h>
667#include <sys/termios.h>],
668[static struct termios x;
669 x.c_iflag = 0;
670 x.c_oflag = 0;
671 x.c_cflag = 0;
672 x.c_lflag = 0;
673 x.c_cc[NCCS] = 0;],
674ac_cv_termios_struct=yes, ac_cv_termios_struct=no)])
675AC_MSG_RESULT($ac_cv_termios_struct)
676if test $ac_cv_termios_struct = yes; then
677 sim_termio="$sim_termio -DHAVE_TERMIOS_STRUCTURE"
678fi
679
680if test "$ac_cv_termios_struct" = "yes"; then
681 AC_MSG_CHECKING(for c_line field in struct termios)
682 AC_CACHE_VAL(ac_cv_termios_cline,
683 [AC_TRY_COMPILE([#include <sys/types.h>
684#include <sys/termios.h>],
685[static struct termios x; x.c_line = 0;],
686 ac_cv_termios_cline=yes, ac_cv_termios_cline=no)])
687
688 AC_MSG_RESULT($ac_cv_termios_cline)
689 if test $ac_cv_termios_cline = yes; then
690 sim_termio="$sim_termio -DHAVE_TERMIOS_CLINE"
691 fi
692else
693 ac_cv_termios_cline=no
694fi
695
696if test "$ac_cv_termios_struct" != "yes"; then
697 AC_MSG_CHECKING(for struct termio)
698 AC_CACHE_VAL(ac_cv_termio_struct,
699 [AC_TRY_COMPILE([#include <sys/types.h>
700#include <sys/termio.h>],
701[static struct termio x;
702 x.c_iflag = 0;
703 x.c_oflag = 0;
704 x.c_cflag = 0;
705 x.c_lflag = 0;
706 x.c_cc[NCC] = 0;],
707ac_cv_termio_struct=yes, ac_cv_termio_struct=no)])
708 AC_MSG_RESULT($ac_cv_termio_struct)
709 if test $ac_cv_termio_struct = yes; then
710 sim_termio="$sim_termio -DHAVE_TERMIO_STRUCTURE"
711 fi
712else
713 ac_cv_termio_struct=no
714fi
715
716if test "$ac_cv_termio_struct" = "yes"; then
717 AC_MSG_CHECKING(for c_line field in struct termio)
718 AC_CACHE_VAL(ac_cv_termio_cline,
719 [AC_TRY_COMPILE([#include <sys/types.h>
720#include <sys/termio.h>],
721[static struct termio x; x.c_line = 0;],
722 ac_cv_termio_cline=yes, ac_cv_termio_cline=no)])
723
724 AC_MSG_RESULT($ac_cv_termio_cline)
725 if test $ac_cv_termio_cline = yes; then
726 sim_termio="$sim_termio -DHAVE_TERMIO_CLINE"
727 fi
728else
729 ac_cv_termio_cline=no
730fi
731
1f362c96
AC
732dnl Check for struct statfs
733AC_MSG_CHECKING(for struct statfs)
734AC_CACHE_VAL(ac_cv_struct_statfs,
735[AC_TRY_COMPILE([#include <sys/types.h>
736#ifdef HAVE_SYS_PARAM_H
737#include <sys/param.h>
738#endif
739#ifdef HAVE_SYS_MOUNT_H
740#include <sys/mount.h>
741#endif
742#ifdef HAVE_SYS_VFS_H
743#include <sys/vfs.h>
744#endif
745#ifdef HAVE_SYS_STATFS_H
746#include <sys/statfs.h>
747#endif],
748[static struct statfs s;],
749ac_cv_struct_statfs=yes, ac_cv_struct_statfs=no)])
750AC_MSG_RESULT($ac_cv_struct_statfs)
751if test $ac_cv_struct_statfs = yes; then
752 AC_DEFINE(HAVE_STRUCT_STATFS, 1,
753 [Define if struct statfs is defined in <sys/mount.h>])
754fi
755
30e66173
MI
756AC_CHECK_TYPES(long long)
757
c906108c
SS
758dnl Figure out if /dev/zero exists or not
759sim_devzero=""
760AC_MSG_CHECKING(for /dev/zero)
761AC_CACHE_VAL(ac_cv_devzero,
762[AC_TRY_RUN([#include <fcntl.h>
763main () {
764 char buf[2048];
765 int i;
766 int fd = open ("/dev/zero", O_RDONLY);
767 if (fd < 0)
768 return 1;
769 for (i = 0; i < sizeof (buf); i++)
770 buf[i] = 1;
771 if (read (fd, buf, sizeof (buf)) != sizeof (buf))
772 return 1;
773 for (i = 0; i < sizeof (buf); i++)
774 if (buf[i])
775 return 1;
776 return 0;
777}],[ac_cv_devzero=yes],[ac_cv_devzero=no],[ac_cv_devzero=no])])
778AC_MSG_RESULT($ac_cv_devzero)
779if test $ac_cv_devzero = yes; then
780 sim_devzero="-DHAVE_DEVZERO"
781else
782 sim_devzero=""
783fi
784
785dnl Figure out if we are in the new Cygnus tree with a common directory or not
786AC_MSG_CHECKING(for common simulator directory)
787if test -f "${srcdir}/../common/callback.c"; then
788 AC_MSG_RESULT(yes)
789 sim_callback="callback.o targ-map.o"
790 sim_targ_vals="targ-vals.h targ-map.c targ-vals.def"
791else
792 AC_MSG_RESULT(no)
793 sim_callback=""
794 sim_targ_vals=""
795fi
796
d29d5195
MG
797AC_MSG_CHECKING(for common simulator directory fpu implementation)
798if test -f "${srcdir}/../common/sim-fpu.c"; then
799 AC_MSG_RESULT(yes)
3e5e53f9 800 sim_fpu_cflags="-DHAVE_COMMON_FPU -I../common -I${srcdir}/../common"
3a11ea24 801 sim_fpu="sim-fpu.o"
d29d5195
MG
802else
803 AC_MSG_RESULT(no)
804 sim_fpu_cflags=
805 sim_fpu=
806fi
807
68a3e151
NF
808# Since we run commands on the build system, we have to create a
809# separate config header for the build system if build != host.
810if test x$host = x$build; then
811 AC_CONFIG_COMMANDS([build-config.h],[cp config.h build-config.h])
812else
813 tempdir=build.$$
814 rm -rf $tempdir
815 mkdir $tempdir
816 cd $tempdir
817 case ${srcdir} in
818 /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
819 *) realsrcdir=../${srcdir};;
820 esac
821 saved_CFLAGS="${CFLAGS}"
822 CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
823 LDFLAGS="${LDFLAGS_FOR_BUILD}" \
824 ${realsrcdir}/configure \
825 --enable-languages=${enable_languages-all} \
826 --target=$target_alias --host=$build_alias --build=$build_alias
827 CFLAGS="${saved_CFLAGS}"
828 mv config.h ../build-config.h
829 cd ..
830 rm -rf $tempdir
831fi
832
c906108c 833dnl Check for exe extension
cd0fc7c3 834AC_EXEEXT
c906108c
SS
835
836AC_SUBST(CC_FOR_BUILD)
4b164edf 837AC_SUBST(CFLAGS_FOR_BUILD)
c906108c
SS
838AC_SUBST(CFLAGS)
839AC_SUBST(HDEFINES)
840AR=${AR-ar}
841AC_SUBST(AR)
842AC_PROG_RANLIB
c906108c
SS
843AC_SUBST(sim_warnings)
844AC_SUBST(sim_line_nr)
845AC_SUBST(sim_config)
846AC_SUBST(sim_opcode)
847AC_SUBST(sim_switch)
848AC_SUBST(sim_dup)
849AC_SUBST(sim_decode_mechanism)
850AC_SUBST(sim_jump)
851AC_SUBST(sim_filter)
852AC_SUBST(sim_icache)
853AC_SUBST(sim_hw_src)
854AC_SUBST(sim_hw_obj)
855AC_SUBST(sim_pk_src)
856AC_SUBST(sim_pk_obj)
857AC_SUBST(sim_inline)
c906108c 858AC_SUBST(sim_endian)
c906108c
SS
859AC_SUBST(sim_xor_endian)
860AC_SUBST(sim_hostendian)
861AC_SUBST(sim_smp)
862AC_SUBST(sim_igen_smp)
863AC_SUBST(sim_bitsize)
864AC_SUBST(sim_hostbitsize)
c906108c
SS
865AC_SUBST(sim_timebase)
866AC_SUBST(sim_alignment)
867AC_SUBST(sim_float)
c906108c
SS
868AC_SUBST(sim_reserved)
869AC_SUBST(sim_monitor)
870AC_SUBST(sim_model)
871AC_SUBST(sim_default_model)
872AC_SUBST(sim_model_issue)
c906108c
SS
873AC_SUBST(sim_termio)
874AC_SUBST(sim_devzero)
875AC_SUBST(sim_callback)
876AC_SUBST(sim_targ_vals)
d29d5195
MG
877AC_SUBST(sim_fpu_cflags)
878AC_SUBST(sim_fpu)
c906108c
SS
879
880AC_OUTPUT(Makefile,
881[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac])
This page took 0.76948 seconds and 4 git commands to generate.