1 # This file contains common code used by all simulators.
3 # SIM_AC_COMMON invokes AC macros used by all simulators and by the common
4 # directory. It is intended to be invoked before any target specific stuff.
5 # SIM_AC_OUTPUT is a cover function to AC_OUTPUT to generate the Makefile.
6 # It is intended to be invoked last.
8 # The simulator's configure.in should look like:
10 # dnl Process this file with autoconf to produce a configure script.
11 # sinclude(../common/aclocal.m4)
13 # AC_INIT(Makefile.in)
17 # ... target specific stuff ...
21 AC_DEFUN(SIM_AC_COMMON,
23 # autoconf.info says this should be called right after AC_INIT.
24 AC_CONFIG_HEADER(ifelse([$1],,config.h,[$1]):config.in)
26 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../..)
32 # Put a plausible default for CC_FOR_BUILD in Makefile.
33 if test "x$cross_compiling" = "xno"; then
38 AC_SUBST(CC_FOR_BUILD)
46 dnl We don't use gettext, but bfd does. So we do the appropriate checks
47 dnl to see if there are intl libraries we should link against.
51 # Check for common headers.
52 # FIXME: Seems to me this can cause problems for i386-windows hosts.
53 # At one point there were hardcoded AC_DEFINE's if ${host} = i386-*-windows*.
54 AC_CHECK_HEADERS(stdlib.h string.h strings.h unistd.h time.h)
55 AC_CHECK_HEADERS(sys/time.h sys/resource.h)
56 AC_CHECK_HEADERS(fcntl.h fpu_control.h)
57 AC_CHECK_HEADERS(dlfcn.h errno.h sys/stat.h)
58 AC_CHECK_FUNCS(getrusage time sigaction __setfpucw)
60 # Check for socket libraries
61 AC_CHECK_LIB(socket, bind)
62 AC_CHECK_LIB(nsl, gethostbyname)
64 . ${srcdir}/../../bfd/configure.host
66 dnl Standard (and optional) simulator options.
67 dnl Eventually all simulators will support these.
68 dnl Do not add any here that cannot be supported by all simulators.
69 dnl Do not add similar but different options to a particular simulator,
70 dnl all shall eventually behave the same way.
73 dnl We don't use automake, but we still want to support
74 dnl --enable-maintainer-mode.
75 USE_MAINTAINER_MODE=no
76 AC_ARG_ENABLE(maintainer-mode,
77 [ --enable-maintainer-mode Enable developer functionality.],
78 [case "${enableval}" in
79 yes) MAINT="" USE_MAINTAINER_MODE=yes ;;
81 *) AC_MSG_ERROR("--enable-maintainer-mode does not take a value"); MAINT="#" ;;
83 if test x"$silent" != x"yes" && test x"$MAINT" = x""; then
84 echo "Setting maintainer mode" 6>&1
89 dnl This is a generic option to enable special byte swapping
90 dnl insns on *any* cpu.
91 AC_ARG_ENABLE(sim-bswap,
92 [ --enable-sim-bswap Use Host specific BSWAP instruction.],
93 [case "${enableval}" in
94 yes) sim_bswap="-DWITH_BSWAP=1 -DUSE_BSWAP=1";;
95 no) sim_bswap="-DWITH_BSWAP=0";;
96 *) AC_MSG_ERROR("--enable-sim-bswap does not take a value"); sim_bswap="";;
98 if test x"$silent" != x"yes" && test x"$sim_bswap" != x""; then
99 echo "Setting bswap flags = $sim_bswap" 6>&1
100 fi],[sim_bswap=""])dnl
104 AC_ARG_ENABLE(sim-cflags,
105 [ --enable-sim-cflags=opts Extra CFLAGS for use in building simulator],
106 [case "${enableval}" in
107 yes) sim_cflags="-O2 -fomit-frame-pointer";;
108 trace) AC_MSG_ERROR("Please use --enable-sim-debug instead."); sim_cflags="";;
110 *) sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;;
112 if test x"$silent" != x"yes" && test x"$sim_cflags" != x""; then
113 echo "Setting sim cflags = $sim_cflags" 6>&1
114 fi],[sim_cflags=""])dnl
118 dnl --enable-sim-debug is for developers of the simulator
119 dnl the allowable values are work-in-progress
120 AC_ARG_ENABLE(sim-debug,
121 [ --enable-sim-debug=opts Enable debugging flags],
122 [case "${enableval}" in
123 yes) sim_debug="-DDEBUG=7 -DWITH_DEBUG=7";;
124 no) sim_debug="-DDEBUG=0 -DWITH_DEBUG=0";;
125 *) sim_debug="-DDEBUG='(${enableval})' -DWITH_DEBUG='(${enableval})'";;
127 if test x"$silent" != x"yes" && test x"$sim_debug" != x""; then
128 echo "Setting sim debug = $sim_debug" 6>&1
129 fi],[sim_debug=""])dnl
133 dnl --enable-sim-stdio is for users of the simulator
134 dnl It determines if IO from the program is routed through STDIO (buffered)
135 AC_ARG_ENABLE(sim-stdio,
136 [ --enable-sim-stdio Specify whether to use stdio for console input/output.],
137 [case "${enableval}" in
138 yes) sim_stdio="-DWITH_STDIO=DO_USE_STDIO";;
139 no) sim_stdio="-DWITH_STDIO=DONT_USE_STDIO";;
140 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-stdio"); sim_stdio="";;
142 if test x"$silent" != x"yes" && test x"$sim_stdio" != x""; then
143 echo "Setting stdio flags = $sim_stdio" 6>&1
144 fi],[sim_stdio=""])dnl
148 dnl --enable-sim-trace is for users of the simulator
149 dnl The argument is either a bitmask of things to enable [exactly what is
150 dnl up to the simulator], or is a comma separated list of names of tracing
151 dnl elements to enable. The latter is only supported on simulators that
153 AC_ARG_ENABLE(sim-trace,
154 [ --enable-sim-trace=opts Enable tracing flags],
155 [case "${enableval}" in
156 yes) sim_trace="-DTRACE=1 -DWITH_TRACE=-1";;
157 no) sim_trace="-DTRACE=0 -DWITH_TRACE=0";;
159 sim_trace="-DTRACE='(${enableval})' -DWITH_TRACE='(${enableval})'";;
162 for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
163 if test x"$sim_trace" = x; then
164 sim_trace="-DWITH_TRACE='(TRACE_$x"
166 sim_trace="${sim_trace}|TRACE_$x"
169 sim_trace="$sim_trace)'" ;;
171 if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then
172 echo "Setting sim trace = $sim_trace" 6>&1
173 fi],[sim_trace=""])dnl
177 dnl --enable-sim-profile
178 dnl The argument is either a bitmask of things to enable [exactly what is
179 dnl up to the simulator], or is a comma separated list of names of profiling
180 dnl elements to enable. The latter is only supported on simulators that
181 dnl use WITH_PROFILE.
182 AC_ARG_ENABLE(sim-profile,
183 [ --enable-sim-profile=opts Enable profiling flags],
184 [case "${enableval}" in
185 yes) sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1";;
186 no) sim_profile="-DPROFILE=0 -DWITH_PROFILE=0";;
188 sim_profile="-DPROFILE='(${enableval})' -DWITH_PROFILE='(${enableval})'";;
191 for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
192 if test x"$sim_profile" = x; then
193 sim_profile="-DWITH_PROFILE='(PROFILE_$x"
195 sim_profile="${sim_profile}|PROFILE_$x"
198 sim_profile="$sim_profile)'" ;;
200 if test x"$silent" != x"yes" && test x"$sim_profile" != x""; then
201 echo "Setting sim profile = $sim_profile" 6>&1
202 fi],[sim_profile=""])dnl
203 AC_SUBST(sim_profile)
206 dnl Types used by common code
209 dnl Detect exe extension
212 dnl These are available to append to as desired.
216 dnl Create tconfig.h either from simulator's tconfig.in or default one
218 sim_link_links=tconfig.h
219 if test -f ${srcdir}/tconfig.in
221 sim_link_files=tconfig.in
223 sim_link_files=../common/tconfig.in
226 # targ-vals.def points to the libc macro description file.
228 *-*-*) TARG_VALS_DEF=../common/nltvals.def ;;
230 sim_link_files="${sim_link_files} ${TARG_VALS_DEF}"
231 sim_link_links="${sim_link_links} targ-vals.def"
233 ]) dnl End of SIM_AC_COMMON
236 dnl Additional SIM options that can (optionally) be configured
237 dnl For optional simulator options, a macro SIM_AC_OPTION_* is defined.
238 dnl Simulators that wish to use the relevant option specify the macro
239 dnl in the simulator specific configure.in file between the SIM_AC_COMMON
240 dnl and SIM_AC_OUTPUT lines.
243 dnl Specify the running environment.
244 dnl If the simulator invokes this in its configure.in then without this option
245 dnl the default is the user environment and all are runtime selectable.
246 dnl If the simulator doesn't invoke this, only the user environment is
248 dnl ??? Until there is demonstrable value in doing something more complicated,
250 AC_DEFUN(SIM_AC_OPTION_ENVIRONMENT,
252 AC_ARG_ENABLE(sim-environment,
253 [ --enable-sim-environment=environment Specify mixed, user, virtual or operating environment.],
254 [case "${enableval}" in
255 all | ALL) sim_environment="-DWITH_ENVIRONMENT=ALL_ENVIRONMENT";;
256 user | USER) sim_environment="-DWITH_ENVIRONMENT=USER_ENVIRONMENT";;
257 virtual | VIRTUAL) sim_environment="-DWITH_ENVIRONMENT=VIRTUAL_ENVIRONMENT";;
258 operating | OPERATING) sim_environment="-DWITH_ENVIRONMENT=OPERATING_ENVIRONMENT";;
259 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-environment");
262 if test x"$silent" != x"yes" && test x"$sim_environment" != x""; then
263 echo "Setting sim environment = $sim_environment" 6>&1
265 [sim_environment="-DWITH_ENVIRONMENT=ALL_ENVIRONMENT"])dnl
267 AC_SUBST(sim_environment)
270 dnl Specify the alignment restrictions of the target architecture.
271 dnl Without this option all possible alignment restrictions are accommodated.
272 dnl arg[1] is hardwired target alignment
273 dnl arg[2] is default target alignment
274 AC_DEFUN(SIM_AC_OPTION_ALIGNMENT,
275 wire_alignment="[$1]"
276 default_alignment="[$2]"
278 AC_ARG_ENABLE(sim-alignment,
279 [ --enable-sim-alignment=align Specify strict, nonstrict or forced alignment of memory accesses.],
280 [case "${enableval}" in
281 strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";;
282 nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";;
283 forced | FORCED) sim_alignment="-DWITH_ALIGNMENT=FORCED_ALIGNMENT";;
284 yes) if test x"$wire_alignment" != x; then
285 sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
287 if test x"$default_alignment" != x; then
288 sim_alignment="-DWITH_ALIGNMENT=${default_alignment}"
290 echo "No hard-wired alignment for target $target" 1>&6
291 sim_alignment="-DWITH_ALIGNMENT=0"
294 no) if test x"$default_alignment" != x; then
295 sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
297 if test x"$wire_alignment" != x; then
298 sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${wire_alignment}"
300 echo "No default alignment for target $target" 1>&6
301 sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0"
304 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-alignment"); sim_alignment="";;
306 if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then
307 echo "Setting alignment flags = $sim_alignment" 6>&1
309 [if test x"$default_alignment" != x; then
310 sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
312 if test x"$wire_alignment" != x; then
313 sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
319 AC_SUBST(sim_alignment)
322 dnl Conditionally compile in assertion statements.
323 AC_DEFUN(SIM_AC_OPTION_ASSERT,
325 AC_ARG_ENABLE(sim-assert,
326 [ --enable-sim-assert Specify whether to perform random assertions.],
327 [case "${enableval}" in
328 yes) sim_assert="-DWITH_ASSERT=1";;
329 no) sim_assert="-DWITH_ASSERT=0";;
330 *) AC_MSG_ERROR("--enable-sim-assert does not take a value"); sim_assert="";;
332 if test x"$silent" != x"yes" && test x"$sim_assert" != x""; then
333 echo "Setting assert flags = $sim_assert" 6>&1
334 fi],[sim_assert=""])dnl
340 dnl --enable-sim-bitsize is for developers of the simulator
341 dnl It specifies the number of BITS in the target.
342 dnl arg[1] is the number of bits in a word
343 dnl arg[2] is the number assigned to the most significant bit
344 dnl arg[3] is the number of bits in an address
345 dnl arg[4] is the number of bits in an OpenFirmware cell.
346 dnl FIXME: this information should be obtained from bfd/archure
347 AC_DEFUN(SIM_AC_OPTION_BITSIZE,
348 wire_word_bitsize="[$1]"
350 wire_address_bitsize="[$3]"
351 wire_cell_bitsize="[$4]"
352 [AC_ARG_ENABLE(sim-bitsize,
353 [ --enable-sim-bitsize=N Specify target bitsize (32 or 64).],
355 case "${enableval}" in
356 64,63 | 64,63,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63";;
357 32,31 | 32,31,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31";;
358 64,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";;
359 32,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";;
360 32) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then
361 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31"
363 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0"
365 64) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then
366 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63"
368 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=0"
370 *) AC_MSG_ERROR("--enable-sim-bitsize was given $enableval. Expected 32 or 64") ;;
373 tmp=`echo "${enableval}" | sed -e "s/^[[0-9]]*,*[[0-9]]*,*//"`
376 x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=32" ;;
377 x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=64" ;;
378 * ) AC_MSG_ERROR("--enable-sim-bitsize was given address size $enableval. Expected 32 or 64") ;;
381 tmp=`echo "${enableval}" | sed -e "s/^[[0-9]]*,*[[0-9*]]*,*[[0-9]]*,*//"`
384 x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=32" ;;
385 x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=64" ;;
386 * ) AC_MSG_ERROR("--enable-sim-bitsize was given cell size $enableval. Expected 32 or 64") ;;
388 if test x"$silent" != x"yes" && test x"$sim_bitsize" != x""; then
389 echo "Setting bitsize flags = $sim_bitsize" 6>&1
392 if test x"$wire_word_bitsize" != x; then
393 sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_BITSIZE=$wire_word_bitsize"
395 if test x"$wire_word_msb" != x; then
396 sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_MSB=$wire_word_msb"
398 if test x"$wire_address_bitsize" != x; then
399 sim_bitsize="$sim_bitsize -DWITH_TARGET_ADDRESS_BITSIZE=$wire_address_bitsize"
401 if test x"$wire_cell_bitsize" != x; then
402 sim_bitsize="$sim_bitsize -DWITH_TARGET_CELL_BITSIZE=$wire_cell_bitsize"
405 AC_SUBST(sim_bitsize)
409 dnl --enable-sim-endian={yes,no,big,little} is for simulators
410 dnl that support both big and little endian targets.
411 dnl arg[1] is hardwired target endianness.
412 dnl arg[2] is default target endianness.
413 AC_DEFUN(SIM_AC_OPTION_ENDIAN,
416 default_endian="[$2]"
417 AC_ARG_ENABLE(sim-endian,
418 [ --enable-sim-endian=endian Specify target byte endian orientation.],
419 [case "${enableval}" in
420 b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
421 l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
422 yes) if test x"$wire_endian" != x; then
423 sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}"
425 if test x"$default_endian" != x; then
426 sim_endian="-DWITH_TARGET_BYTE_ORDER=${default_endian}"
428 echo "No hard-wired endian for target $target" 1>&6
429 sim_endian="-DWITH_TARGET_BYTE_ORDER=0"
432 no) if test x"$default_endian" != x; then
433 sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}"
435 if test x"$wire_endian" != x; then
436 sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${wire_endian}"
438 echo "No default endian for target $target" 1>&6
439 sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=0"
442 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-endian"); sim_endian="";;
444 if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then
445 echo "Setting endian flags = $sim_endian" 6>&1
447 [if test x"$default_endian" != x; then
448 sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}"
450 if test x"$wire_endian" != x; then
451 sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}"
460 dnl --enable-sim-hostendian is for users of the simulator when
461 dnl they find that AC_C_BIGENDIAN does not function correctly
462 dnl (for instance in a canadian cross)
463 AC_DEFUN(SIM_AC_OPTION_HOSTENDIAN,
465 AC_ARG_ENABLE(sim-hostendian,
466 [ --enable-sim-hostendian=end Specify host byte endian orientation.],
467 [case "${enableval}" in
468 no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";;
469 b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";;
470 l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";;
471 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-hostendian"); sim_hostendian="";;
473 if test x"$silent" != x"yes" && test x"$sim_hostendian" != x""; then
474 echo "Setting hostendian flags = $sim_hostendian" 6>&1
476 if test "x$cross_compiling" = "xno"; then
478 if test $ac_cv_c_bigendian = yes; then
479 sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN"
481 sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN"
484 sim_hostendian="-DWITH_HOST_BYTE_ORDER=0"
487 AC_SUBST(sim_hostendian)
490 dnl --enable-sim-float is for developers of the simulator
491 dnl It specifies the presence of hardware floating point
492 dnl And optionally the bitsize of the floating point register.
493 dnl arg[1] specifies the presence (or absence) of floating point hardware
494 dnl arg[2] specifies the number of bits in a floating point register
495 AC_DEFUN(SIM_AC_OPTION_FLOAT,
497 default_sim_float="[$1]"
498 default_sim_float_bitsize="[$2]"
499 AC_ARG_ENABLE(sim-float,
500 [ --enable-sim-float Specify that the target processor has floating point hardware.],
501 [case "${enableval}" in
502 yes | hard) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT";;
503 no | soft) sim_float="-DWITH_FLOATING_POINT=SOFT_FLOATING_POINT";;
504 32) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT -DWITH_TARGET_FLOATING_POINT_BITSIZE=32";;
505 64) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT -DWITH_TARGET_FLOATING_POINT_BITSIZE=64";;
506 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-float"); sim_float="";;
508 if test x"$silent" != x"yes" && test x"$sim_float" != x""; then
509 echo "Setting float flags = $sim_float" 6>&1
512 if test x"${default_sim_float}" != x""; then
513 sim_float="-DWITH_FLOATING_POINT=${default_sim_float}"
515 if test x"${default_sim_float_bitsize}" != x""; then
516 sim_float="$sim_float -DWITH_TARGET_FLOATING_POINT_BITSIZE=${default_sim_float_bitsize}"
523 dnl The argument is the default cache size if none is specified.
524 AC_DEFUN(SIM_AC_OPTION_SCACHE,
526 default_sim_scache="ifelse([$1],,0,[$1])"
527 AC_ARG_ENABLE(sim-scache,
528 [ --enable-sim-scache=size Specify simulator execution cache size.],
529 [case "${enableval}" in
530 yes) sim_scache="-DWITH_SCACHE=${default_sim_scache}";;
531 no) sim_scache="-DWITH_SCACHE=0" ;;
532 [[0-9]]*) sim_cache=${enableval};;
533 *) AC_MSG_ERROR("Bad value $enableval passed to --enable-sim-scache");
536 if test x"$silent" != x"yes" && test x"$sim_scache" != x""; then
537 echo "Setting scache size = $sim_scache" 6>&1
538 fi],[sim_scache="-DWITH_SCACHE=${default_sim_scache}"])
543 dnl The argument is the default model if none is specified.
544 AC_DEFUN(SIM_AC_OPTION_DEFAULT_MODEL,
546 default_sim_default_model="ifelse([$1],,0,[$1])"
547 AC_ARG_ENABLE(sim-default-model,
548 [ --enable-sim-default-model=model Specify default model to simulate.],
549 [case "${enableval}" in
550 yes|no) AC_MSG_ERROR("Missing argument to --enable-sim-default-model");;
551 *) sim_default_model="-DWITH_DEFAULT_MODEL='\"${enableval}\"'";;
553 if test x"$silent" != x"yes" && test x"$sim_default_model" != x""; then
554 echo "Setting default model = $sim_default_model" 6>&1
555 fi],[sim_default_model="-DWITH_DEFAULT_MODEL='\"${default_sim_default_model}\"'"])
557 AC_SUBST(sim_default_model)
560 dnl --enable-sim-hardware is for users of the simulator
561 dnl arg[1] Enable sim-hw by default? ("yes" or "no")
562 dnl arg[2] is a space separated list of devices that override the defaults
563 dnl arg[3] is a space separated list of extra target specific devices.
564 AC_DEFUN(SIM_AC_OPTION_HARDWARE,
566 if test x"[$1]" = x"yes"; then
572 hardware="core pal glue"
574 hardware="core pal glue [$3]"
576 sim_hw_cflags="-DWITH_HW=1"
578 sim_hw_objs="\$(SIM_COMMON_HW_OBJS) `echo $sim_hw | sed -e 's/\([[^ ]][[^ ]]*\)/dv-\1.o/g'`"
579 AC_ARG_ENABLE(sim-hardware,
580 [ --enable-sim-hardware=LIST Specify the hardware to be included in the build.],
582 case "${enableval}" in
585 ,*) sim_hw_p=yes; hardware="${hardware} `echo ${enableval} | sed -e 's/,/ /'`";;
586 *,) sim_hw_p=yes; hardware="`echo ${enableval} | sed -e 's/,/ /'` ${hardware}";;
587 *) sim_hw_p=yes; hardware="`echo ${enableval} | sed -e 's/,/ /'`"'';;
589 if test "$sim_hw_p" != yes; then
591 sim_hw_cflags="-DWITH_HW=0"
594 sim_hw_cflags="-DWITH_HW=1"
597 sim_hw_objs="\$(SIM_COMMON_HW_OBJS)"
598 for i in x $hardware ; do
602 *) sim_hw="$sim_hw $i" ; sim_hw_objs="$sim_hw_objs dv-$i.o";;
606 if test x"$silent" != x"yes" && test "$sim_hw_p" = "yes"; then
607 echo "Setting hardware to $sim_hw_cflags, $sim_hw, $sim_hw_objs"
609 if test "$sim_hw_p" != yes; then
611 sim_hw_cflags="-DWITH_HW=0"
614 if test x"$silent" != x"yes"; then
615 echo "Setting hardware to $sim_hw_cflags, $sim_hw, $sim_hw_objs"
618 AC_SUBST(sim_hw_cflags)
619 AC_SUBST(sim_hw_objs)
623 dnl --enable-sim-inline is for users that wish to ramp up the simulator's
624 dnl performance by inlining functions.
625 dnl Guarantee that unconfigured simulators do not do any inlining
626 sim_inline="-DDEFAULT_INLINE=0"
627 AC_DEFUN(SIM_AC_OPTION_INLINE,
629 default_sim_inline="ifelse([$1],,,-DDEFAULT_INLINE=[$1])"
630 AC_ARG_ENABLE(sim-inline,
631 [ --enable-sim-inline=inlines Specify which functions should be inlined.],
634 no) sim_inline="-DDEFAULT_INLINE=0";;
635 0) sim_inline="-DDEFAULT_INLINE=0";;
636 yes | 2) sim_inline="-DDEFAULT_INLINE=ALL_C_INLINE";;
637 1) sim_inline="-DDEFAULT_INLINE=INLINE_LOCALS";;
638 *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
641 *_INLINE=*) new_flag="-D$x";;
642 *=*) new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
643 *_INLINE) new_flag="-D$x=ALL_C_INLINE";;
644 *) new_flag="-D$x""_INLINE=ALL_C_INLINE";;
646 if test x"$sim_inline" = x""; then
647 sim_inline="$new_flag"
649 sim_inline="$sim_inline $new_flag"
653 if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
654 echo "Setting inline flags = $sim_inline" 6>&1
656 if test "x$cross_compiling" = "xno"; then
657 if test x"$GCC" != "x" -a x"${default_sim_inline}" != "x" ; then
658 sim_inline="${default_sim_inline}"
659 if test x"$silent" != x"yes"; then
660 echo "Setting inline flags = $sim_inline" 6>&1
666 sim_inline="-DDEFAULT_INLINE=0"
672 AC_DEFUN(SIM_AC_OPTION_PACKAGES,
674 AC_ARG_ENABLE(sim-packages,
675 [ --enable-sim-packages=list Specify the packages to be included in the build.],
677 case "${enableval}" in
679 no) AC_MSG_ERROR("List of packages must be specified for --enable-sim-packages"); packages="";;
680 ,*) packages="${packages}${enableval}";;
681 *,) packages="${enableval}${packages}";;
682 *) packages="${enableval}"'';;
684 sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'`
685 sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'`
686 if test x"$silent" != x"yes" && test x"$packages" != x""; then
687 echo "Setting packages to $sim_pk_src, $sim_pk_obj"
688 fi],[packages=disklabel
689 sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'`
690 sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'`
691 if test x"$silent" != x"yes"; then
692 echo "Setting packages to $sim_pk_src, $sim_pk_obj"
695 AC_SUBST(sim_packages)
698 AC_DEFUN(SIM_AC_OPTION_REGPARM,
700 AC_ARG_ENABLE(sim-regparm,
701 [ --enable-sim-regparm=nr-parm Pass parameters in registers instead of on the stack - x86/GCC specific.],
702 [case "${enableval}" in
703 0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) sim_regparm="-DWITH_REGPARM=${enableval}";;
704 no) sim_regparm="" ;;
705 yes) sim_regparm="-DWITH_REGPARM=3";;
706 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-regparm"); sim_regparm="";;
708 if test x"$silent" != x"yes" && test x"$sim_regparm" != x""; then
709 echo "Setting regparm flags = $sim_regparm" 6>&1
710 fi],[sim_regparm=""])dnl
712 AC_SUBST(sim_regparm)
715 AC_DEFUN(SIM_AC_OPTION_RESERVED_BITS,
717 default_sim_reserved_bits="ifelse([$1],,1,[$1])"
718 AC_ARG_ENABLE(sim-reserved-bits,
719 [ --enable-sim-reserved-bits Specify whether to check reserved bits in instruction.],
720 [case "${enableval}" in
721 yes) sim_reserved_bits="-DWITH_RESERVED_BITS=1";;
722 no) sim_reserved_bits="-DWITH_RESERVED_BITS=0";;
723 *) AC_MSG_ERROR("--enable-sim-reserved-bits does not take a value"); sim_reserved_bits="";;
725 if test x"$silent" != x"yes" && test x"$sim_reserved_bits" != x""; then
726 echo "Setting reserved flags = $sim_reserved_bits" 6>&1
727 fi],[sim_reserved_bits="-DWITH_RESERVED_BITS=${default_sim_reserved_bits}"])dnl
729 AC_SUBST(sim_reserved_bits)
732 AC_DEFUN(SIM_AC_OPTION_SMP,
734 default_sim_smp="ifelse([$1],,5,[$1])"
735 AC_ARG_ENABLE(sim-smp,
736 [ --enable-sim-smp=n Specify number of processors to configure for (default ${default_sim_smp}).],
737 [case "${enableval}" in
738 yes) sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5";;
739 no) sim_smp="-DWITH_SMP=0" ; sim_igen_smp="-N 0";;
740 *) sim_smp="-DWITH_SMP=$enableval" ; sim_igen_smp="-N $enableval";;
742 if test x"$silent" != x"yes" && test x"$sim_smp" != x""; then
743 echo "Setting smp flags = $sim_smp" 6>&1
744 fi],[sim_smp="-DWITH_SMP=${default_sim_smp}" ; sim_igen_smp="-N ${default_sim_smp}"
745 if test x"$silent" != x"yes"; then
746 echo "Setting smp flags = $sim_smp" 6>&1
752 AC_DEFUN(SIM_AC_OPTION_STDCALL,
754 AC_ARG_ENABLE(sim-stdcall,
755 [ --enable-sim-stdcall=type Use an alternative function call/return mechanism - x86/GCC specific.],
756 [case "${enableval}" in
757 no) sim_stdcall="" ;;
758 std*) sim_stdcall="-DWITH_STDCALL=1";;
759 yes) sim_stdcall="-DWITH_STDCALL=1";;
760 *) AC_MSG_ERROR("Unknown value $enableval for --enable-sim-stdcall"); sim_stdcall="";;
762 if test x"$silent" != x"yes" && test x"$sim_stdcall" != x""; then
763 echo "Setting function call flags = $sim_stdcall" 6>&1
764 fi],[sim_stdcall=""])dnl
766 AC_SUBST(sim_stdcall)
769 AC_DEFUN(SIM_AC_OPTION_XOR_ENDIAN,
771 default_sim_xor_endian="ifelse([$1],,8,[$1])"
772 AC_ARG_ENABLE(sim-xor-endian,
773 [ --enable-sim-xor-endian=n Specify number bytes involved in XOR bi-endian mode (default ${default_sim_xor_endian}).],
774 [case "${enableval}" in
775 yes) sim_xor_endian="-DWITH_XOR_ENDIAN=8";;
776 no) sim_xor_endian="-DWITH_XOR_ENDIAN=0";;
777 *) sim_xor_endian="-DWITH_XOR_ENDIAN=$enableval";;
779 if test x"$silent" != x"yes" && test x"$sim_xor_endian" != x""; then
780 echo "Setting xor-endian flag = $sim_xor_endian" 6>&1
781 fi],[sim_xor_endian="-DWITH_XOR_ENDIAN=${default_sim_xor_endian}"])dnl
783 AC_SUBST(sim_xor_endian)
786 dnl --enable-build-warnings is for developers of the simulator.
787 dnl it enables extra GCC specific warnings.
788 AC_DEFUN(SIM_AC_OPTION_WARNINGS,
790 AC_ARG_ENABLE(build-warnings,
791 [ --enable-build-warnings[=LIST] Enable build-time compiler warnings],
792 [build_warnings="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
793 case "${enableval}" in
795 no) build_warnings="-w";;
796 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
797 build_warnings="${build_warnings} ${t}";;
798 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
799 build_warnings="${t} ${build_warnings}";;
800 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
802 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
803 echo "Setting warning flags = $build_warnings" 6>&1
804 fi],[build_warnings=""])dnl
806 AC_SUBST(build_warnings)
809 dnl Generate the Makefile in a target specific directory.
810 dnl Substitutions aren't performed on the file in AC_SUBST_FILE,
811 dnl so this is a cover macro to tuck the details away of how we cope.
812 dnl We cope by having autoconf generate two files and then merge them into
813 dnl one afterwards. The two pieces of the common fragment are inserted into
814 dnl the target's fragment at the appropriate points.
816 AC_DEFUN(SIM_AC_OUTPUT,
818 AC_LINK_FILES($sim_link_files, $sim_link_links)
819 AC_OUTPUT(Makefile.sim:Makefile.in Make-common.sim:../common/Make-common.in .gdbinit:../common/gdbinit.in,
820 [case "x$CONFIG_FILES" in
822 echo "Merging Makefile.sim+Make-common.sim into Makefile ..."
823 rm -f Makesim1.tmp Makesim2.tmp Makefile
824 sed -n -e '/^## COMMON_PRE_/,/^## End COMMON_PRE_/ p' <Make-common.sim >Makesim1.tmp
825 sed -n -e '/^## COMMON_POST_/,/^## End COMMON_POST_/ p' <Make-common.sim >Makesim2.tmp
826 sed -e '/^## COMMON_PRE_/ r Makesim1.tmp' \
827 -e '/^## COMMON_POST_/ r Makesim2.tmp' \
828 <Makefile.sim >Makefile
829 rm -f Makefile.sim Make-common.sim Makesim1.tmp Makesim2.tmp
832 case "x$CONFIG_HEADERS" in xconfig.h:config.in) echo > stamp-h ;; esac
836 # This file is derived from `gettext.m4'. The difference is that the
837 # included macros assume Cygnus-style source and build trees.
839 # Macro to add for using GNU gettext.
840 # Ulrich Drepper <drepper@cygnus.com>, 1995.
842 # This file file be copied and used freely without restrictions. It can
843 # be used in projects which are not available under the GNU Public License
844 # but which still want to provide support for the GNU gettext functionality.
845 # Please note that the actual code is *not* freely available.
849 AC_DEFUN(CY_WITH_NLS,
850 [AC_MSG_CHECKING([whether NLS is requested])
851 dnl Default is enabled NLS
853 [ --disable-nls do not use Native Language Support],
854 USE_NLS=$enableval, USE_NLS=yes)
855 AC_MSG_RESULT($USE_NLS)
858 USE_INCLUDED_LIBINTL=no
860 dnl If we use NLS figure out what method
861 if test "$USE_NLS" = "yes"; then
862 AC_DEFINE(ENABLE_NLS)
863 AC_MSG_CHECKING([whether included gettext is requested])
864 AC_ARG_WITH(included-gettext,
865 [ --with-included-gettext use the GNU gettext library included here],
866 nls_cv_force_use_gnu_gettext=$withval,
867 nls_cv_force_use_gnu_gettext=no)
868 AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
870 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
871 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
872 dnl User does not insist on using GNU NLS library. Figure out what
873 dnl to use. If gettext or catgets are available (in this order) we
874 dnl use this. Else we have to fall back to GNU NLS library.
875 dnl catgets is only used if permitted by option --with-catgets.
880 AC_CHECK_HEADER(libintl.h,
881 [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
882 [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
883 gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
885 if test "$gt_cv_func_gettext_libc" != "yes"; then
886 AC_CHECK_LIB(intl, bindtextdomain,
887 [AC_CACHE_CHECK([for gettext in libintl],
888 gt_cv_func_gettext_libintl,
889 [AC_TRY_LINK([], [return (int) gettext ("")],
890 gt_cv_func_gettext_libintl=yes,
891 gt_cv_func_gettext_libintl=no)])])
894 if test "$gt_cv_func_gettext_libc" = "yes" \
895 || test "$gt_cv_func_gettext_libintl" = "yes"; then
896 AC_DEFINE(HAVE_GETTEXT)
897 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
898 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
899 if test "$MSGFMT" != "no"; then
900 AC_CHECK_FUNCS(dcgettext)
901 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
902 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
903 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
904 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
905 return _nl_msg_cat_cntr],
915 dnl In the standard gettext, we would now check for catgets.
916 dnl However, we never want to use catgets for our releases.
918 if test "$CATOBJEXT" = "NONE"; then
919 dnl Neither gettext nor catgets in included in the C library.
920 dnl Fall back on GNU gettext library.
921 nls_cv_use_gnu_gettext=yes
925 if test "$nls_cv_use_gnu_gettext" = "yes"; then
926 dnl Mark actions used to generate GNU NLS library.
927 INTLOBJS="\$(GETTOBJS)"
928 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
929 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
930 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
931 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
932 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
934 USE_INCLUDED_LIBINTL=yes
938 INTLDEPS='$(top_builddir)/../intl/libintl.a'
940 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
941 nls_cv_header_intl=libintl.h
942 nls_cv_header_libgt=libgettext.h
945 dnl Test whether we really found GNU xgettext.
946 if test "$XGETTEXT" != ":"; then
947 dnl If it is no GNU xgettext we define it as : so that the
948 dnl Makefiles still can work.
949 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
953 [found xgettext programs is not GNU xgettext; ignore it])
958 # We need to process the po/ directory.
962 nls_cv_header_intl=libintl.h
963 nls_cv_header_libgt=libgettext.h
966 # If this is used in GNU gettext we have to set USE_NLS to `yes'
967 # because some of the sources are only built for this goal.
968 if test "$PACKAGE" = gettext; then
970 USE_INCLUDED_LIBINTL=yes
973 dnl These rules are solely for the distribution goal. While doing this
974 dnl we only have to keep exactly one list of the available catalogs
976 for lang in $ALL_LINGUAS; do
977 GMOFILES="$GMOFILES $lang.gmo"
978 POFILES="$POFILES $lang.po"
981 dnl Make all variables we use known to autoconf.
982 AC_SUBST(USE_INCLUDED_LIBINTL)
985 AC_SUBST(DATADIRNAME)
995 AC_DEFUN(CY_GNU_GETTEXT,
996 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
997 AC_REQUIRE([AC_PROG_CC])dnl
998 AC_REQUIRE([AC_PROG_RANLIB])dnl
999 AC_REQUIRE([AC_ISC_POSIX])dnl
1000 AC_REQUIRE([AC_HEADER_STDC])dnl
1001 AC_REQUIRE([AC_C_CONST])dnl
1002 AC_REQUIRE([AC_C_INLINE])dnl
1003 AC_REQUIRE([AC_TYPE_OFF_T])dnl
1004 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
1005 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
1006 AC_REQUIRE([AC_FUNC_MMAP])dnl
1008 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
1009 unistd.h values.h sys/param.h])
1010 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
1011 __argz_count __argz_stringify __argz_next])
1013 if test "${ac_cv_func_stpcpy+set}" != "set"; then
1014 AC_CHECK_FUNCS(stpcpy)
1016 if test "${ac_cv_func_stpcpy}" = "yes"; then
1017 AC_DEFINE(HAVE_STPCPY)
1023 if test "x$CATOBJEXT" != "x"; then
1024 if test "x$ALL_LINGUAS" = "x"; then
1027 AC_MSG_CHECKING(for catalogs to be installed)
1029 for lang in ${LINGUAS=$ALL_LINGUAS}; do
1030 case "$ALL_LINGUAS" in
1031 *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
1034 LINGUAS=$NEW_LINGUAS
1035 AC_MSG_RESULT($LINGUAS)
1038 dnl Construct list of names of catalog files to be constructed.
1039 if test -n "$LINGUAS"; then
1040 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
1044 dnl The reference to <locale.h> in the installed <libintl.h> file
1045 dnl must be resolved because we cannot expect the users of this
1046 dnl to define HAVE_LOCALE_H.
1047 if test $ac_cv_header_locale_h = yes; then
1048 INCLUDE_LOCALE_H="#include <locale.h>"
1051 /* The system does not provide the header <locale.h>. Take care yourself. */"
1053 AC_SUBST(INCLUDE_LOCALE_H)
1055 dnl Determine which catalog format we have (if any is needed)
1056 dnl For now we know about two different formats:
1057 dnl Linux libc-5 and the normal X/Open format
1058 if test -f $srcdir/po2tbl.sed.in; then
1059 if test "$CATOBJEXT" = ".cat"; then
1060 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
1062 dnl Transform the SED scripts while copying because some dumb SEDs
1063 dnl cannot handle comments.
1064 sed -e '/^#/d' $srcdir/$msgformat-msg.sed > po2msg.sed
1066 dnl po2tbl.sed is always needed.
1067 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
1068 $srcdir/po2tbl.sed.in > po2tbl.sed
1071 dnl In the intl/Makefile.in we have a special dependency which makes
1072 dnl only sense for gettext. We comment this out for non-gettext
1074 if test "$PACKAGE" = "gettext"; then
1084 MKINSTALLDIRS="\$(srcdir)/../../mkinstalldirs"
1085 AC_SUBST(MKINSTALLDIRS)
1087 dnl *** For now the libtool support in intl/Makefile is not for real.
1091 dnl Generate list of files to be processed by xgettext which will
1092 dnl be included in po/Makefile. But only do this if the po directory
1093 dnl exists in srcdir.
1094 if test -d $srcdir/po; then
1095 test -d po || mkdir po
1096 if test "x$srcdir" != "x."; then
1097 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
1098 posrcprefix="$srcdir/"
1100 posrcprefix="../$srcdir/"
1106 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
1107 < $srcdir/po/POTFILES.in > po/POTFILES
1111 # Search path for a program which passes the given test.
1112 # Ulrich Drepper <drepper@cygnus.com>, 1996.
1114 # This file file be copied and used freely without restrictions. It can
1115 # be used in projects which are not available under the GNU Public License
1116 # but which still want to provide support for the GNU gettext functionality.
1117 # Please note that the actual code is *not* freely available.
1121 dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
1122 dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
1123 AC_DEFUN(AM_PATH_PROG_WITH_TEST,
1124 [# Extract the first word of "$2", so it can be a program name with args.
1125 set dummy $2; ac_word=[$]2
1126 AC_MSG_CHECKING([for $ac_word])
1127 AC_CACHE_VAL(ac_cv_path_$1,
1130 ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
1133 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
1134 for ac_dir in ifelse([$5], , $PATH, [$5]); do
1135 test -z "$ac_dir" && ac_dir=.
1136 if test -f $ac_dir/$ac_word; then
1138 ac_cv_path_$1="$ac_dir/$ac_word"
1144 dnl If no 4th arg is given, leave the cache variable unset,
1145 dnl so AC_PATH_PROGS will keep looking.
1146 ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
1151 if test -n "[$]$1"; then
1152 AC_MSG_RESULT([$]$1)
1159 # Check whether LC_MESSAGES is available in <locale.h>.
1160 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1162 # This file file be copied and used freely without restrictions. It can
1163 # be used in projects which are not available under the GNU Public License
1164 # but which still want to provide support for the GNU gettext functionality.
1165 # Please note that the actual code is *not* freely available.
1169 AC_DEFUN(AM_LC_MESSAGES,
1170 [if test $ac_cv_header_locale_h = yes; then
1171 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
1172 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
1173 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
1174 if test $am_cv_val_LC_MESSAGES = yes; then
1175 AC_DEFINE(HAVE_LC_MESSAGES)
1179 # Check to see if we're running under Cygwin32, without using
1180 # AC_CANONICAL_*. If so, set output variable CYGWIN32 to "yes".
1181 # Otherwise set it to "no".
1184 dnl You might think we can do this by checking for a cygwin32-specific
1186 AC_DEFUN(AM_CYGWIN32,
1187 [AC_CACHE_CHECK(for Cygwin32 environment, am_cv_cygwin32,
1188 [AC_TRY_COMPILE(,[int main () { return __CYGWIN32__; }],
1189 am_cv_cygwin32=yes, am_cv_cygwin32=no)
1192 test "$am_cv_cygwin32" = yes && CYGWIN32=yes])
1194 # Check to see if we're running under Win32, without using
1195 # AC_CANONICAL_*. If so, set output variable EXEEXT to ".exe".
1196 # Otherwise set it to "".
1199 dnl This knows we add .exe if we're building in the Cygwin32
1200 dnl environment. But if we're not, then it compiles a test program
1201 dnl to see if there is a suffix for executables.
1203 dnl AC_REQUIRE([AC_PROG_CC])AC_REQUIRE([AM_CYGWIN32])
1204 AC_MSG_CHECKING([for executable suffix])
1205 [AC_CACHE_VAL(am_cv_exeext,
1206 [if test "$CYGWIN32" = yes; then
1209 cat > am_c_test.c << 'EOF'
1211 /* Nothing needed here */
1214 ${CC-cc} -o am_c_test $CFLAGS $CPPFLAGS $LDFLAGS am_c_test.c $LIBS 1>&5
1215 am_cv_exeext=`ls am_c_test.* | grep -v am_c_test.c | sed -e s/am_c_test//`
1217 test x"${am_cv_exeext}" = x && am_cv_exeext=no
1220 test x"${am_cv_exeext}" != xno && EXEEXT=${am_cv_exeext}
1221 AC_MSG_RESULT(${am_cv_exeext})
1225 dnl --enable-cgen-maint support
1226 AC_DEFUN(SIM_AC_OPTION_CGEN_MAINT,
1229 dnl Default is to use one in build tree.
1230 cgen=../../cgen/cgen
1231 cgendir='$(srcdir)/../../cgen'
1232 dnl Having --enable-maintainer-mode take arguments is another way to go.
1233 dnl ??? One can argue --with is more appropriate if one wants to specify
1234 dnl a directory name, but what we're doing here is an enable/disable kind
1235 dnl of thing and specifying both --enable and --with is klunky.
1236 dnl If you reeely want this to be --with, go ahead and change it.
1237 AC_ARG_ENABLE(cgen-maint,
1238 [ --enable-cgen-maint[=DIR] build cgen generated files],
1239 [case "${enableval}" in
1240 yes) cgen_maint=yes ;;
1241 no) cgen_maint=no ;;
1243 # argument is cgen install directory (not implemented yet).
1244 # Having a `share' directory might be more appropriate for the .scm,
1246 cgendir=${cgen_maint}/lib/cgen
1247 cgen=${cgendir}/bin/cgen
1250 dnl AM_CONDITIONAL(CGEN_MAINT, test x${cgen_maint} != xno)
1251 if test x${cgen_maint} != xno ; then
1256 AC_SUBST(CGEN_MAINT)