ebb6d1bc29ecfc70ca0872c0a88c7570c66aea9a
[external/binutils.git] / sim / common / acinclude.m4
1 # This file contains common code used by all simulators.
2 #
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.
7 #
8 # The simulator's configure.ac should look like:
9 #
10 # dnl Process this file with autoconf to produce a configure script.
11 # AC_PREREQ(2.64)dnl
12 # AC_INIT(Makefile.in)
13 # sinclude(../common/aclocal.m4)
14 #
15 # SIM_AC_COMMON
16 #
17 # ... target specific stuff ...
18 #
19 # SIM_AC_OUTPUT
20
21 # Include global overrides and fixes for Autoconf.
22 m4_include(../../config/override.m4)
23 sinclude([../../config/zlib.m4])
24 m4_include([../../config/plugins.m4])
25 m4_include([../../libtool.m4])
26 m4_include([../../ltoptions.m4])
27 m4_include([../../ltsugar.m4])
28 m4_include([../../ltversion.m4])
29 m4_include([../../lt~obsolete.m4])
30 sinclude([../../config/depstand.m4])
31
32 AC_DEFUN([SIM_AC_COMMON],
33 [
34 AC_REQUIRE([AC_PROG_CC])
35 # autoconf.info says this should be called right after AC_INIT.
36 AC_CONFIG_HEADER(ifelse([$1],,config.h,[$1]):config.in)
37 AC_CANONICAL_SYSTEM
38 AC_USE_SYSTEM_EXTENSIONS
39 AC_ARG_PROGRAM
40 AC_PROG_INSTALL
41
42 # Put a plausible default for CC_FOR_BUILD in Makefile.
43 if test "x$cross_compiling" = "xno"; then
44   CC_FOR_BUILD='$(CC)'
45 else
46   CC_FOR_BUILD=gcc
47 fi
48 AC_SUBST(CC_FOR_BUILD)
49
50 AC_SUBST(CFLAGS)
51 AC_SUBST(HDEFINES)
52 AR=${AR-ar}
53 AC_SUBST(AR)
54 AC_PROG_RANLIB
55
56 # Some of the common include files depend on bfd.h, and bfd.h checks
57 # that config.h is included first by testing that the PACKAGE macro
58 # is defined.
59 PACKAGE=sim
60 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
61 AC_SUBST(PACKAGE)
62
63 # Dependency checking.
64 ZW_CREATE_DEPDIR
65 ZW_PROG_COMPILER_DEPENDENCIES([CC])
66
67 # Check for the 'make' the user wants to use.
68 AC_CHECK_PROGS(MAKE, make)
69 MAKE_IS_GNU=
70 case "`$MAKE --version 2>&1 | sed 1q`" in
71   *GNU*)
72     MAKE_IS_GNU=yes
73     ;;
74 esac
75 AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
76
77 dnl We don't use gettext, but bfd does.  So we do the appropriate checks
78 dnl to see if there are intl libraries we should link against.
79 ALL_LINGUAS=
80 ZW_GNU_GETTEXT_SISTER_DIR(../../intl)
81
82 # Check for common headers.
83 # FIXME: Seems to me this can cause problems for i386-windows hosts.
84 # At one point there were hardcoded AC_DEFINE's if ${host} = i386-*-windows*.
85 AC_CHECK_HEADERS(stdlib.h string.h strings.h unistd.h time.h)
86 AC_CHECK_HEADERS(sys/time.h sys/resource.h)
87 AC_CHECK_HEADERS(fcntl.h fpu_control.h)
88 AC_CHECK_HEADERS(dlfcn.h errno.h sys/stat.h)
89 AC_CHECK_FUNCS(getrusage time sigaction __setfpucw)
90
91 # Check for socket libraries
92 AC_CHECK_LIB(socket, bind)
93 AC_CHECK_LIB(nsl, gethostbyname)
94
95 # BFD conditionally uses zlib, so we must link it in if libbfd does, by
96 # using the same condition.
97 AM_ZLIB
98
99 # BFD uses libdl when when plugins enabled.
100 AC_PLUGINS
101 AM_CONDITIONAL(PLUGINS, test "$plugins" = yes)
102 LT_INIT([dlopen])
103 AC_SUBST(lt_cv_dlopen_libs)
104
105 . ${srcdir}/../../bfd/configure.host
106
107 dnl Standard (and optional) simulator options.
108 dnl Eventually all simulators will support these.
109 dnl Do not add any here that cannot be supported by all simulators.
110 dnl Do not add similar but different options to a particular simulator,
111 dnl all shall eventually behave the same way.
112
113
114 dnl We don't use automake, but we still want to support
115 dnl --enable-maintainer-mode.
116 AM_MAINTAINER_MODE
117
118
119 dnl This is a generic option to enable special byte swapping
120 dnl insns on *any* cpu.
121 AC_ARG_ENABLE(sim-bswap,
122 [AS_HELP_STRING([--enable-sim-bswap], [Use Host specific BSWAP instruction])],
123 [case "${enableval}" in
124   yes)  sim_bswap="-DWITH_BSWAP=1 -DUSE_BSWAP=1";;
125   no)   sim_bswap="-DWITH_BSWAP=0";;
126   *)    AC_MSG_ERROR("--enable-sim-bswap does not take a value"); sim_bswap="";;
127 esac
128 if test x"$silent" != x"yes" && test x"$sim_bswap" != x""; then
129   echo "Setting bswap flags = $sim_bswap" 6>&1
130 fi],[sim_bswap=""])dnl
131 AC_SUBST(sim_bswap)
132
133
134 AC_ARG_ENABLE(sim-cflags,
135 [AS_HELP_STRING([--enable-sim-cflags=opts],
136                 [Extra CFLAGS for use in building simulator])],
137 [case "${enableval}" in
138   yes)   sim_cflags="-O2 -fomit-frame-pointer";;
139   trace) AC_MSG_ERROR("Please use --enable-sim-debug instead."); sim_cflags="";;
140   no)    sim_cflags="";;
141   *)     sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;;
142 esac
143 if test x"$silent" != x"yes" && test x"$sim_cflags" != x""; then
144   echo "Setting sim cflags = $sim_cflags" 6>&1
145 fi],[sim_cflags=""])dnl
146 AC_SUBST(sim_cflags)
147
148
149 dnl --enable-sim-debug is for developers of the simulator
150 dnl the allowable values are work-in-progress
151 AC_ARG_ENABLE(sim-debug,
152 [AS_HELP_STRING([--enable-sim-debug=opts],
153                 [Enable debugging flags (for developers of the sim itself)])],
154 [case "${enableval}" in
155   yes) sim_debug="-DDEBUG=7 -DWITH_DEBUG=7";;
156   no)  sim_debug="-DDEBUG=0 -DWITH_DEBUG=0";;
157   *)   sim_debug="-DDEBUG='(${enableval})' -DWITH_DEBUG='(${enableval})'";;
158 esac
159 if test x"$silent" != x"yes" && test x"$sim_debug" != x""; then
160   echo "Setting sim debug = $sim_debug" 6>&1
161 fi],[sim_debug=""])dnl
162 AC_SUBST(sim_debug)
163
164
165 dnl --enable-sim-stdio is for users of the simulator
166 dnl It determines if IO from the program is routed through STDIO (buffered)
167 AC_ARG_ENABLE(sim-stdio,
168 [AS_HELP_STRING([--enable-sim-stdio],
169                 [Specify whether to use stdio for console input/output])],
170 [case "${enableval}" in
171   yes)  sim_stdio="-DWITH_STDIO=DO_USE_STDIO";;
172   no)   sim_stdio="-DWITH_STDIO=DONT_USE_STDIO";;
173   *)    AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-stdio"); sim_stdio="";;
174 esac
175 if test x"$silent" != x"yes" && test x"$sim_stdio" != x""; then
176   echo "Setting stdio flags = $sim_stdio" 6>&1
177 fi],[sim_stdio=""])dnl
178 AC_SUBST(sim_stdio)
179
180
181 dnl --enable-sim-trace is for users of the simulator
182 dnl The argument is either a bitmask of things to enable [exactly what is
183 dnl up to the simulator], or is a comma separated list of names of tracing
184 dnl elements to enable.  The latter is only supported on simulators that
185 dnl use WITH_TRACE.
186 AC_ARG_ENABLE(sim-trace,
187 [AS_HELP_STRING([--enable-sim-trace=opts],
188                 [Enable tracing of simulated programs])],
189 [case "${enableval}" in
190   yes)  sim_trace="-DWITH_TRACE=-1";;
191   no)   sim_trace="-DWITH_TRACE=0";;
192   [[-0-9]]*)
193         sim_trace="-DWITH_TRACE='(${enableval})'";;
194   [[[:lower:]]]*)
195         sim_trace=""
196         for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
197           if test x"$sim_trace" = x; then
198             sim_trace="-DWITH_TRACE='(TRACE_$x"
199           else
200             sim_trace="${sim_trace}|TRACE_$x"
201           fi
202         done
203         sim_trace="$sim_trace)'" ;;
204 esac
205 if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then
206   echo "Setting sim trace = $sim_trace" 6>&1
207 fi],[sim_trace=""])dnl
208 AC_SUBST(sim_trace)
209
210
211 dnl --enable-sim-profile
212 dnl The argument is either a bitmask of things to enable [exactly what is
213 dnl up to the simulator], or is a comma separated list of names of profiling
214 dnl elements to enable.  The latter is only supported on simulators that
215 dnl use WITH_PROFILE.
216 AC_ARG_ENABLE(sim-profile,
217 [AS_HELP_STRING([--enable-sim-profile=opts], [Enable profiling flags])],
218 [case "${enableval}" in
219   yes)  sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1";;
220   no)   sim_profile="-DPROFILE=0 -DWITH_PROFILE=0";;
221   [[-0-9]]*)
222         sim_profile="-DPROFILE='(${enableval})' -DWITH_PROFILE='(${enableval})'";;
223   [[a-z]]*)
224         sim_profile=""
225         for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
226           if test x"$sim_profile" = x; then
227             sim_profile="-DWITH_PROFILE='(PROFILE_$x"
228           else
229             sim_profile="${sim_profile}|PROFILE_$x"
230           fi
231         done
232         sim_profile="$sim_profile)'" ;;
233 esac
234 if test x"$silent" != x"yes" && test x"$sim_profile" != x""; then
235   echo "Setting sim profile = $sim_profile" 6>&1
236 fi],[sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1"])dnl
237 AC_SUBST(sim_profile)
238
239 ACX_PKGVERSION([SIM])
240 ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
241 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
242 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
243
244 dnl Types used by common code
245 AC_TYPE_SIGNAL
246
247 dnl Detect exe extension
248 AC_EXEEXT
249
250 dnl These are available to append to as desired.
251 sim_link_files=
252 sim_link_links=
253
254 # targ-vals.def points to the libc macro description file.
255 case "${target}" in
256 *-*-*) TARG_VALS_DEF=../common/nltvals.def ;;
257 esac
258 sim_link_files="${sim_link_files} ${TARG_VALS_DEF}"
259 sim_link_links="${sim_link_links} targ-vals.def"
260
261 ]) dnl End of SIM_AC_COMMON
262
263
264 dnl Additional SIM options that can (optionally) be configured
265 dnl For optional simulator options, a macro SIM_AC_OPTION_* is defined.
266 dnl Simulators that wish to use the relevant option specify the macro
267 dnl in the simulator specific configure.ac file between the SIM_AC_COMMON
268 dnl and SIM_AC_OUTPUT lines.
269
270
271 dnl Specify the running environment.
272 dnl If the simulator invokes this in its configure.ac then without this option
273 dnl the default is the user environment and all are runtime selectable.
274 dnl If the simulator doesn't invoke this, only the user environment is
275 dnl supported.
276 dnl ??? Until there is demonstrable value in doing something more complicated,
277 dnl let's not.
278 AC_DEFUN([SIM_AC_OPTION_ENVIRONMENT],
279 [
280 AC_ARG_ENABLE(sim-environment,
281 [AS_HELP_STRING([--enable-sim-environment=environment],
282                 [Specify mixed, user, virtual or operating environment])],
283 [case "${enableval}" in
284   all | ALL)             sim_environment="-DWITH_ENVIRONMENT=ALL_ENVIRONMENT";;
285   user | USER)           sim_environment="-DWITH_ENVIRONMENT=USER_ENVIRONMENT";;
286   virtual | VIRTUAL)     sim_environment="-DWITH_ENVIRONMENT=VIRTUAL_ENVIRONMENT";;
287   operating | OPERATING) sim_environment="-DWITH_ENVIRONMENT=OPERATING_ENVIRONMENT";;
288   *)   AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-environment");
289        sim_environment="";;
290 esac
291 if test x"$silent" != x"yes" && test x"$sim_environment" != x""; then
292   echo "Setting sim environment = $sim_environment" 6>&1
293 fi],
294 [sim_environment="-DWITH_ENVIRONMENT=ALL_ENVIRONMENT"])dnl
295 ])
296 AC_SUBST(sim_environment)
297
298
299 dnl Specify the alignment restrictions of the target architecture.
300 dnl Without this option all possible alignment restrictions are accommodated.
301 dnl arg[1] is hardwired target alignment
302 dnl arg[2] is default target alignment
303 AC_DEFUN([SIM_AC_OPTION_ALIGNMENT],
304 wire_alignment="[$1]"
305 default_alignment="[$2]"
306 [
307 AC_ARG_ENABLE(sim-alignment,
308 [AS_HELP_STRING([--enable-sim-alignment=align],
309                 [Specify strict, nonstrict or forced alignment of memory accesses])],
310 [case "${enableval}" in
311   strict | STRICT)       sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";;
312   nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";;
313   forced | FORCED)       sim_alignment="-DWITH_ALIGNMENT=FORCED_ALIGNMENT";;
314   yes) if test x"$wire_alignment" != x; then
315          sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
316        else
317          if test x"$default_alignment" != x; then
318            sim_alignment="-DWITH_ALIGNMENT=${default_alignment}"
319          else
320            echo "No hard-wired alignment for target $target" 1>&6
321            sim_alignment="-DWITH_ALIGNMENT=0"
322          fi
323        fi;;
324   no)  if test x"$default_alignment" != x; then
325          sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
326        else
327          if test x"$wire_alignment" != x; then
328            sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${wire_alignment}"
329          else
330            echo "No default alignment for target $target" 1>&6
331            sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0"
332          fi
333        fi;;
334   *)   AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-alignment"); sim_alignment="";;
335 esac
336 if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then
337   echo "Setting alignment flags = $sim_alignment" 6>&1
338 fi],
339 [if test x"$default_alignment" != x; then
340   sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
341 else
342   if test x"$wire_alignment" != x; then
343     sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
344   else
345     sim_alignment=
346   fi
347 fi])dnl
348 ])dnl
349 AC_SUBST(sim_alignment)
350
351
352 dnl Conditionally compile in assertion statements.
353 AC_DEFUN([SIM_AC_OPTION_ASSERT],
354 [
355 AC_ARG_ENABLE(sim-assert,
356 [AS_HELP_STRING([--enable-sim-assert],
357                 [Specify whether to perform random assertions])],
358 [case "${enableval}" in
359   yes)  sim_assert="-DWITH_ASSERT=1";;
360   no)   sim_assert="-DWITH_ASSERT=0";;
361   *)    AC_MSG_ERROR("--enable-sim-assert does not take a value"); sim_assert="";;
362 esac
363 if test x"$silent" != x"yes" && test x"$sim_assert" != x""; then
364   echo "Setting assert flags = $sim_assert" 6>&1
365 fi],[sim_assert=""])dnl
366 ])
367 AC_SUBST(sim_assert)
368
369
370
371 dnl --enable-sim-bitsize is for developers of the simulator
372 dnl It specifies the number of BITS in the target.
373 dnl arg[1] is the number of bits in a word
374 dnl arg[2] is the number assigned to the most significant bit
375 dnl arg[3] is the number of bits in an address
376 dnl arg[4] is the number of bits in an OpenFirmware cell.
377 dnl FIXME: this information should be obtained from bfd/archure
378 AC_DEFUN([SIM_AC_OPTION_BITSIZE],
379 wire_word_bitsize="[$1]"
380 wire_word_msb="[$2]"
381 wire_address_bitsize="[$3]"
382 wire_cell_bitsize="[$4]"
383 [AC_ARG_ENABLE(sim-bitsize,
384 [AS_HELP_STRING([--enable-sim-bitsize=N], [Specify target bitsize (32 or 64)])],
385 [sim_bitsize=
386 case "${enableval}" in
387   64,63 | 64,63,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63";;
388   32,31 | 32,31,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31";;
389   64,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";;
390   32,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";;
391   32) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then
392         sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31"
393       else
394         sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0"
395       fi ;;
396   64) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then
397         sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63"
398       else
399         sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=0"
400       fi ;;
401   *)  AC_MSG_ERROR("--enable-sim-bitsize was given $enableval.  Expected 32 or 64") ;;
402 esac
403 # address bitsize
404 tmp=`echo "${enableval}" | sed -e "s/^[[0-9]]*,*[[0-9]]*,*//"`
405 case x"${tmp}" in
406   x ) ;;
407   x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=32" ;;
408   x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=64" ;;
409   * ) AC_MSG_ERROR("--enable-sim-bitsize was given address size $enableval.  Expected 32 or 64") ;;
410 esac
411 # cell bitsize
412 tmp=`echo "${enableval}" | sed -e "s/^[[0-9]]*,*[[0-9*]]*,*[[0-9]]*,*//"`
413 case x"${tmp}" in
414   x ) ;;
415   x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=32" ;;
416   x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=64" ;;
417   * ) AC_MSG_ERROR("--enable-sim-bitsize was given cell size $enableval.  Expected 32 or 64") ;;
418 esac
419 if test x"$silent" != x"yes" && test x"$sim_bitsize" != x""; then
420   echo "Setting bitsize flags = $sim_bitsize" 6>&1
421 fi],
422 [sim_bitsize=""
423 if test x"$wire_word_bitsize" != x; then
424   sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_BITSIZE=$wire_word_bitsize"
425 fi
426 if test x"$wire_word_msb" != x; then
427   sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_MSB=$wire_word_msb"
428 fi
429 if test x"$wire_address_bitsize" != x; then
430   sim_bitsize="$sim_bitsize -DWITH_TARGET_ADDRESS_BITSIZE=$wire_address_bitsize"
431 fi
432 if test x"$wire_cell_bitsize" != x; then
433   sim_bitsize="$sim_bitsize -DWITH_TARGET_CELL_BITSIZE=$wire_cell_bitsize"
434 fi])dnl
435 ])
436 AC_SUBST(sim_bitsize)
437
438
439
440 dnl --enable-sim-endian={yes,no,big,little} is for simulators
441 dnl that support both big and little endian targets.
442 dnl arg[1] is hardwired target endianness.
443 dnl arg[2] is default target endianness.
444 AC_DEFUN([SIM_AC_OPTION_ENDIAN],
445 [
446 wire_endian="[$1]"
447 default_endian="[$2]"
448 AC_ARG_ENABLE(sim-endian,
449 [AS_HELP_STRING([--enable-sim-endian=endian],
450                 [Specify target byte endian orientation])],
451 [case "${enableval}" in
452   b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
453   l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
454   yes)   if test x"$wire_endian" != x; then
455            sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}"
456          else
457            if test x"$default_endian" != x; then
458              sim_endian="-DWITH_TARGET_BYTE_ORDER=${default_endian}"
459            else
460              echo "No hard-wired endian for target $target" 1>&6
461              sim_endian="-DWITH_TARGET_BYTE_ORDER=0"
462            fi
463          fi;;
464   no)    if test x"$default_endian" != x; then
465            sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}"
466          else
467            if test x"$wire_endian" != x; then
468              sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${wire_endian}"
469            else
470              echo "No default endian for target $target" 1>&6
471              sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=0"
472            fi
473          fi;;
474   *)     AC_MSG_ERROR("Unknown value $enableval for --enable-sim-endian"); sim_endian="";;
475 esac
476 if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then
477   echo "Setting endian flags = $sim_endian" 6>&1
478 fi],
479 [if test x"$default_endian" != x; then
480   sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}"
481 else
482   if test x"$wire_endian" != x; then
483     sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}"
484   else
485     sim_endian=
486   fi
487 fi])dnl
488 ])
489 AC_SUBST(sim_endian)
490
491
492 dnl --enable-sim-hostendian is for users of the simulator when
493 dnl they find that AC_C_BIGENDIAN does not function correctly
494 dnl (for instance in a canadian cross)
495 AC_DEFUN([SIM_AC_OPTION_HOSTENDIAN],
496 [
497 AC_ARG_ENABLE(sim-hostendian,
498 [AS_HELP_STRING([--enable-sim-hostendian=end],
499                 [Specify host byte endian orientation])],
500 [case "${enableval}" in
501   no)    sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";;
502   b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";;
503   l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";;
504   *)     AC_MSG_ERROR("Unknown value $enableval for --enable-sim-hostendian"); sim_hostendian="";;
505 esac
506 if test x"$silent" != x"yes" && test x"$sim_hostendian" != x""; then
507   echo "Setting hostendian flags = $sim_hostendian" 6>&1
508 fi],[
509 if test "x$cross_compiling" = "xno"; then
510   AC_C_BIGENDIAN
511   if test $ac_cv_c_bigendian = yes; then
512     sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN"
513   else
514     sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN"
515   fi
516 else
517   sim_hostendian="-DWITH_HOST_BYTE_ORDER=0"
518 fi])dnl
519 ])
520 AC_SUBST(sim_hostendian)
521
522
523 dnl --enable-sim-float is for developers of the simulator
524 dnl It specifies the presence of hardware floating point
525 dnl And optionally the bitsize of the floating point register.
526 dnl arg[1] specifies the presence (or absence) of floating point hardware
527 dnl arg[2] specifies the number of bits in a floating point register
528 AC_DEFUN([SIM_AC_OPTION_FLOAT],
529 [
530 default_sim_float="[$1]"
531 default_sim_float_bitsize="[$2]"
532 AC_ARG_ENABLE(sim-float,
533 [AS_HELP_STRING([--enable-sim-float],
534                 [Specify that the target processor has floating point hardware])],
535 [case "${enableval}" in
536   yes | hard)   sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT";;
537   no | soft)    sim_float="-DWITH_FLOATING_POINT=SOFT_FLOATING_POINT";;
538   32)           sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT -DWITH_TARGET_FLOATING_POINT_BITSIZE=32";;
539   64)           sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT -DWITH_TARGET_FLOATING_POINT_BITSIZE=64";;
540   *)            AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-float"); sim_float="";;
541 esac
542 if test x"$silent" != x"yes" && test x"$sim_float" != x""; then
543   echo "Setting float flags = $sim_float" 6>&1
544 fi],[
545 sim_float=
546 if test x"${default_sim_float}" != x""; then
547   sim_float="-DWITH_FLOATING_POINT=${default_sim_float}"
548 fi
549 if test x"${default_sim_float_bitsize}" != x""; then
550   sim_float="$sim_float -DWITH_TARGET_FLOATING_POINT_BITSIZE=${default_sim_float_bitsize}"
551 fi
552 ])dnl
553 ])
554 AC_SUBST(sim_float)
555
556
557 dnl The argument is the default cache size if none is specified.
558 AC_DEFUN([SIM_AC_OPTION_SCACHE],
559 [
560 default_sim_scache="ifelse([$1],,0,[$1])"
561 AC_ARG_ENABLE(sim-scache,
562 [AS_HELP_STRING([--enable-sim-scache=size],
563                 [Specify simulator execution cache size])],
564 [case "${enableval}" in
565   yes)  sim_scache="-DWITH_SCACHE=${default_sim_scache}";;
566   no)   sim_scache="-DWITH_SCACHE=0" ;;
567   [[0-9]]*) sim_scache="-DWITH_SCACHE=${enableval}";;
568   *)    AC_MSG_ERROR("Bad value $enableval passed to --enable-sim-scache");
569         sim_scache="";;
570 esac
571 if test x"$silent" != x"yes" && test x"$sim_scache" != x""; then
572   echo "Setting scache size = $sim_scache" 6>&1
573 fi],[sim_scache="-DWITH_SCACHE=${default_sim_scache}"])
574 ])
575 AC_SUBST(sim_scache)
576
577
578 dnl The argument is the default model if none is specified.
579 AC_DEFUN([SIM_AC_OPTION_DEFAULT_MODEL],
580 [
581 default_sim_default_model="ifelse([$1],,0,[$1])"
582 AC_ARG_ENABLE(sim-default-model,
583 [AS_HELP_STRING([--enable-sim-default-model=model],
584                 [Specify default model to simulate])],
585 [case "${enableval}" in
586   yes|no) AC_MSG_ERROR("Missing argument to --enable-sim-default-model");;
587   *)    sim_default_model="-DWITH_DEFAULT_MODEL='\"${enableval}\"'";;
588 esac
589 if test x"$silent" != x"yes" && test x"$sim_default_model" != x""; then
590   echo "Setting default model = $sim_default_model" 6>&1
591 fi],[sim_default_model="-DWITH_DEFAULT_MODEL='\"${default_sim_default_model}\"'"])
592 ])
593 AC_SUBST(sim_default_model)
594
595
596 dnl --enable-sim-hardware is for users of the simulator
597 dnl arg[1] Enable sim-hw by default? ("yes" or "no")
598 dnl arg[2] is a space separated list of devices that override the defaults
599 dnl arg[3] is a space separated list of extra target specific devices.
600 AC_DEFUN([SIM_AC_OPTION_HARDWARE],
601 [
602 if test "[$2]"; then
603   hardware="[$2]"
604 else
605   hardware="cfi core pal glue"
606 fi
607 hardware="$hardware [$3]"
608
609 sim_hw_cflags="-DWITH_HW=1"
610 sim_hw="$hardware"
611 sim_hw_objs="\$(SIM_COMMON_HW_OBJS) `echo $sim_hw | sed -e 's/\([[^ ]][[^ ]]*\)/dv-\1.o/g'`"
612
613 AC_ARG_ENABLE(sim-hardware,
614   [AS_HELP_STRING([--enable-sim-hardware=LIST],
615                   [Specify the hardware to be included in the build.])],
616   ,[enable_sim_hardware="[$1]"])
617 case ${enable_sim_hardware} in
618   yes|no) ;;
619   ,*) hardware="${hardware} `echo ${enableval} | sed -e 's/,/ /'`";;
620   *,) hardware="`echo ${enableval} | sed -e 's/,/ /'` ${hardware}";;
621   *)  hardware="`echo ${enableval} | sed -e 's/,/ /'`"'';;
622 esac
623
624 if test "$enable_sim_hardware" = no; then
625   sim_hw_objs=
626   sim_hw_cflags="-DWITH_HW=0"
627   sim_hw=
628 else
629   sim_hw_cflags="-DWITH_HW=1"
630   # remove duplicates
631   sim_hw=""
632   sim_hw_objs="\$(SIM_COMMON_HW_OBJS)"
633   for i in $hardware ; do
634     case " $sim_hw " in
635       *" $i "*) ;;
636       *) sim_hw="$sim_hw $i" ; sim_hw_objs="$sim_hw_objs dv-$i.o";;
637     esac
638   done
639   # mingw does not support sockser
640   case ${host} in
641     *mingw*) ;;
642     *) # TODO: We don't add dv-sockser to sim_hw as it is not a "real" device
643        # that you instatiate.  Instead, other code will call into it directly.
644        # At some point, we should convert it over.
645        sim_hw_objs="$sim_hw_objs dv-sockser.o"
646        AC_DEFINE_UNQUOTED(
647          [HAVE_DV_SOCKSER], 1, [Define if dv-sockser is usable.])
648        ;;
649   esac
650   if test x"$silent" != x"yes"; then
651     echo "Setting hardware to $sim_hw_cflags, $sim_hw, $sim_hw_objs"
652   fi
653   dnl Some devices require extra libraries.
654   case " $hardware " in
655     *" cfi "*) AC_CHECK_LIB(m, log2);;
656   esac
657 fi
658 ])
659 AC_SUBST(sim_hw_cflags)
660 AC_SUBST(sim_hw_objs)
661 AC_SUBST(sim_hw)
662
663
664 dnl --enable-sim-inline is for users that wish to ramp up the simulator's
665 dnl performance by inlining functions.
666 dnl Guarantee that unconfigured simulators do not do any inlining
667 sim_inline="-DDEFAULT_INLINE=0"
668 AC_DEFUN([SIM_AC_OPTION_INLINE],
669 [
670 default_sim_inline="ifelse([$1],,,-DDEFAULT_INLINE=[$1])"
671 AC_ARG_ENABLE(sim-inline,
672 [AS_HELP_STRING([--enable-sim-inline=inlines],
673                 [Specify which functions should be inlined])],
674 [sim_inline=""
675 case "$enableval" in
676   no)           sim_inline="-DDEFAULT_INLINE=0";;
677   0)            sim_inline="-DDEFAULT_INLINE=0";;
678   yes | 2)      sim_inline="-DDEFAULT_INLINE=ALL_C_INLINE";;
679   1)            sim_inline="-DDEFAULT_INLINE=INLINE_LOCALS";;
680   *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
681        new_flag=""
682        case "$x" in
683          *_INLINE=*)    new_flag="-D$x";;
684          *=*)           new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
685          *_INLINE)      new_flag="-D$x=ALL_C_INLINE";;
686          *)             new_flag="-D$x""_INLINE=ALL_C_INLINE";;
687        esac
688        if test x"$sim_inline" = x""; then
689          sim_inline="$new_flag"
690        else
691          sim_inline="$sim_inline $new_flag"
692        fi
693      done;;
694 esac
695 if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
696   echo "Setting inline flags = $sim_inline" 6>&1
697 fi],[
698 if test "x$cross_compiling" = "xno"; then
699   if test x"$GCC" != "x" -a x"${default_sim_inline}" != "x" ; then
700     sim_inline="${default_sim_inline}"
701     if test x"$silent" != x"yes"; then
702       echo "Setting inline flags = $sim_inline" 6>&1
703     fi
704   else
705     sim_inline=""
706   fi
707 else
708   sim_inline="-DDEFAULT_INLINE=0"
709 fi])dnl
710 ])
711 AC_SUBST(sim_inline)
712
713
714 AC_DEFUN([SIM_AC_OPTION_PACKAGES],
715 [
716 AC_ARG_ENABLE(sim-packages,
717 [AS_HELP_STRING([--enable-sim-packages=list],
718                 [Specify the packages to be included in the build])],
719 [packages=disklabel
720 case "${enableval}" in
721   yes)  ;;
722   no)   AC_MSG_ERROR("List of packages must be specified for --enable-sim-packages"); packages="";;
723   ,*)   packages="${packages}${enableval}";;
724   *,)   packages="${enableval}${packages}";;
725   *)    packages="${enableval}"'';;
726 esac
727 sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'`
728 sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'`
729 if test x"$silent" != x"yes" && test x"$packages" != x""; then
730   echo "Setting packages to $sim_pk_src, $sim_pk_obj"
731 fi],[packages=disklabel
732 sim_pk_src=`echo $packages | sed -e 's/,/.c pk_/g' -e 's/^/pk_/' -e 's/$/.c/'`
733 sim_pk_obj=`echo $sim_pk_src | sed -e 's/\.c/.o/g'`
734 if test x"$silent" != x"yes"; then
735   echo "Setting packages to $sim_pk_src, $sim_pk_obj"
736 fi])dnl
737 ])
738 AC_SUBST(sim_packages)
739
740
741 AC_DEFUN([SIM_AC_OPTION_REGPARM],
742 [
743 AC_ARG_ENABLE(sim-regparm,
744 [AS_HELP_STRING([--enable-sim-regparm=nr-parm],
745                 [Pass parameters in registers instead of on the stack - x86/GCC specific])],
746 [case "${enableval}" in
747   0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) sim_regparm="-DWITH_REGPARM=${enableval}";;
748   no)                            sim_regparm="" ;;
749   yes)                           sim_regparm="-DWITH_REGPARM=3";;
750   *)   AC_MSG_ERROR("Unknown value $enableval for --enable-sim-regparm"); sim_regparm="";;
751 esac
752 if test x"$silent" != x"yes" && test x"$sim_regparm" != x""; then
753   echo "Setting regparm flags = $sim_regparm" 6>&1
754 fi],[sim_regparm=""])dnl
755 ])
756 AC_SUBST(sim_regparm)
757
758
759 AC_DEFUN([SIM_AC_OPTION_RESERVED_BITS],
760 [
761 default_sim_reserved_bits="ifelse([$1],,1,[$1])"
762 AC_ARG_ENABLE(sim-reserved-bits,
763 [AS_HELP_STRING([--enable-sim-reserved-bits],
764                 [Specify whether to check reserved bits in instruction])],
765 [case "${enableval}" in
766   yes)  sim_reserved_bits="-DWITH_RESERVED_BITS=1";;
767   no)   sim_reserved_bits="-DWITH_RESERVED_BITS=0";;
768   *)    AC_MSG_ERROR("--enable-sim-reserved-bits does not take a value"); sim_reserved_bits="";;
769 esac
770 if test x"$silent" != x"yes" && test x"$sim_reserved_bits" != x""; then
771   echo "Setting reserved flags = $sim_reserved_bits" 6>&1
772 fi],[sim_reserved_bits="-DWITH_RESERVED_BITS=${default_sim_reserved_bits}"])dnl
773 ])
774 AC_SUBST(sim_reserved_bits)
775
776
777 AC_DEFUN([SIM_AC_OPTION_SMP],
778 [
779 default_sim_smp="ifelse([$1],,5,[$1])"
780 AC_ARG_ENABLE(sim-smp,
781 [AS_HELP_STRING([--enable-sim-smp=n],
782                 [Specify number of processors to configure for (default ${default_sim_smp})])],
783 [case "${enableval}" in
784   yes)  sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5";;
785   no)   sim_smp="-DWITH_SMP=0" ; sim_igen_smp="-N 0";;
786   *)    sim_smp="-DWITH_SMP=$enableval" ; sim_igen_smp="-N $enableval";;
787 esac
788 if test x"$silent" != x"yes" && test x"$sim_smp" != x""; then
789   echo "Setting smp flags = $sim_smp" 6>&1
790 fi],[sim_smp="-DWITH_SMP=${default_sim_smp}" ; sim_igen_smp="-N ${default_sim_smp}"
791 if test x"$silent" != x"yes"; then
792   echo "Setting smp flags = $sim_smp" 6>&1
793 fi])dnl
794 ])
795 AC_SUBST(sim_smp)
796
797
798 AC_DEFUN([SIM_AC_OPTION_STDCALL],
799 [
800 AC_ARG_ENABLE(sim-stdcall,
801 [AS_HELP_STRING([--enable-sim-stdcall=type],
802                 [Use an alternative function call/return mechanism - x86/GCC specific])],
803 [case "${enableval}" in
804   no)           sim_stdcall="" ;;
805   std*)         sim_stdcall="-DWITH_STDCALL=1";;
806   yes)          sim_stdcall="-DWITH_STDCALL=1";;
807   *)   AC_MSG_ERROR("Unknown value $enableval for --enable-sim-stdcall"); sim_stdcall="";;
808 esac
809 if test x"$silent" != x"yes" && test x"$sim_stdcall" != x""; then
810   echo "Setting function call flags = $sim_stdcall" 6>&1
811 fi],[sim_stdcall=""])dnl
812 ])
813 AC_SUBST(sim_stdcall)
814
815
816 AC_DEFUN([SIM_AC_OPTION_XOR_ENDIAN],
817 [
818 default_sim_xor_endian="ifelse([$1],,8,[$1])"
819 AC_ARG_ENABLE(sim-xor-endian,
820 [AS_HELP_STRING([--enable-sim-xor-endian=n],
821                 [Specify number bytes involved in XOR bi-endian mode (default ${default_sim_xor_endian})])],
822 [case "${enableval}" in
823   yes)  sim_xor_endian="-DWITH_XOR_ENDIAN=8";;
824   no)   sim_xor_endian="-DWITH_XOR_ENDIAN=0";;
825   *)    sim_xor_endian="-DWITH_XOR_ENDIAN=$enableval";;
826 esac
827 if test x"$silent" != x"yes" && test x"$sim_xor_endian" != x""; then
828   echo "Setting xor-endian flag = $sim_xor_endian" 6>&1
829 fi],[sim_xor_endian="-DWITH_XOR_ENDIAN=${default_sim_xor_endian}"])dnl
830 ])
831 AC_SUBST(sim_xor_endian)
832
833
834 dnl --enable-build-warnings is for developers of the simulator.
835 dnl it enables extra GCC specific warnings.
836 AC_DEFUN([SIM_AC_OPTION_WARNINGS],
837 [
838 AC_ARG_ENABLE(werror,
839   AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
840   [case "${enableval}" in
841      yes | y) ERROR_ON_WARNING="yes" ;;
842      no | n)  ERROR_ON_WARNING="no" ;;
843      *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
844    esac])
845
846 # Enable -Werror by default when using gcc
847 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
848     ERROR_ON_WARNING=yes
849 fi
850
851 WERROR_CFLAGS=""
852 if test "${ERROR_ON_WARNING}" = yes ; then
853 # NOTE: Disabled in the sim dir due to most sims generating warnings.
854 #    WERROR_CFLAGS="-Werror"
855      true
856 fi
857
858 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
859 -Wpointer-sign \
860 -Wno-unused -Wunused-value -Wunused-function \
861 -Wno-switch -Wno-char-subscripts -Wmissing-prototypes
862 -Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type \
863 -Wold-style-declaration -Wold-style-definition"
864
865 # Enable -Wno-format by default when using gcc on mingw since many
866 # GCC versions complain about %I64.
867 case "${host}" in
868   *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
869   *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
870 esac
871
872 AC_ARG_ENABLE(build-warnings,
873 AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
874 [case "${enableval}" in
875   yes)  ;;
876   no)   build_warnings="-w";;
877   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
878         build_warnings="${build_warnings} ${t}";;
879   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
880         build_warnings="${t} ${build_warnings}";;
881   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
882 esac
883 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
884   echo "Setting compiler warning flags = $build_warnings" 6>&1
885 fi])dnl
886 AC_ARG_ENABLE(sim-build-warnings,
887 AS_HELP_STRING([--enable-sim-build-warnings], [enable SIM specific build-time compiler warnings if gcc is used]),
888 [case "${enableval}" in
889   yes)  ;;
890   no)   build_warnings="-w";;
891   ,*)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
892         build_warnings="${build_warnings} ${t}";;
893   *,)   t=`echo "${enableval}" | sed -e "s/,/ /g"`
894         build_warnings="${t} ${build_warnings}";;
895   *)    build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
896 esac
897 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
898   echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
899 fi])dnl
900 WARN_CFLAGS=""
901 if test "x${build_warnings}" != x -a "x$GCC" = xyes
902 then
903     AC_MSG_CHECKING(compiler warning flags)
904     # Separate out the -Werror flag as some files just cannot be
905     # compiled with it enabled.
906     for w in ${build_warnings}; do
907         case $w in
908         -Werr*) WERROR_CFLAGS=-Werror ;;
909         *) # Check that GCC accepts it
910             saved_CFLAGS="$CFLAGS"
911             CFLAGS="$CFLAGS $w"
912             AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
913             CFLAGS="$saved_CFLAGS"
914         esac
915     done
916     AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
917 fi
918 ])
919 AC_SUBST(WARN_CFLAGS)
920 AC_SUBST(WERROR_CFLAGS)
921
922
923 dnl Generate the Makefile in a target specific directory.
924 dnl Substitutions aren't performed on the file in AC_SUBST_FILE,
925 dnl so this is a cover macro to tuck the details away of how we cope.
926 dnl We cope by having autoconf generate two files and then merge them into
927 dnl one afterwards.  The two pieces of the common fragment are inserted into
928 dnl the target's fragment at the appropriate points.
929
930 AC_DEFUN([SIM_AC_OUTPUT],
931 [
932 AC_LINK_FILES($sim_link_files, $sim_link_links)
933 dnl Make @cgen_breaks@ non-null only if the sim uses CGEN.
934 cgen_breaks=""
935 if grep CGEN_MAINT $srcdir/Makefile.in >/dev/null; then
936 cgen_breaks="break cgen_rtx_error";
937 fi
938 AC_SUBST(cgen_breaks)
939 AC_CONFIG_FILES(Makefile.sim:Makefile.in)
940 AC_CONFIG_FILES(Make-common.sim:../common/Make-common.in)
941 AC_CONFIG_FILES(.gdbinit:../common/gdbinit.in)
942 AC_CONFIG_COMMANDS([Makefile],
943 [echo "Merging Makefile.sim+Make-common.sim into Makefile ..."
944  rm -f Makesim1.tmp Makesim2.tmp Makefile
945  sed -n -e '/^## COMMON_PRE_/,/^## End COMMON_PRE_/ p' <Make-common.sim >Makesim1.tmp
946  sed -n -e '/^## COMMON_POST_/,/^## End COMMON_POST_/ p' <Make-common.sim >Makesim2.tmp
947  sed -e '/^## COMMON_PRE_/ r Makesim1.tmp' \
948         -e '/^## COMMON_POST_/ r Makesim2.tmp' \
949         <Makefile.sim >Makefile
950  rm -f Makefile.sim Make-common.sim Makesim1.tmp Makesim2.tmp
951 ])
952 AC_CONFIG_COMMANDS([stamp-h], [echo > stamp-h])
953 AC_OUTPUT
954 ])
955
956 sinclude(../../config/gettext-sister.m4)
957 sinclude(../../config/acx.m4)
958
959 dnl --enable-cgen-maint support
960 AC_DEFUN([SIM_AC_OPTION_CGEN_MAINT],
961 [
962 cgen_maint=no
963 dnl Default is to use one in build tree.
964 cgen=guile
965 cgendir='$(srcdir)/../../cgen'
966 dnl Having --enable-maintainer-mode take arguments is another way to go.
967 dnl ??? One can argue --with is more appropriate if one wants to specify
968 dnl a directory name, but what we're doing here is an enable/disable kind
969 dnl of thing and specifying both --enable and --with is klunky.
970 dnl If you reeely want this to be --with, go ahead and change it.
971 AC_ARG_ENABLE(cgen-maint,
972 [AS_HELP_STRING([--enable-cgen-maint[=DIR]], [build cgen generated files])],
973 [case "${enableval}" in
974   yes)  cgen_maint=yes ;;
975   no)   cgen_maint=no ;;
976   *)
977         # argument is cgen install directory (not implemented yet).
978         # Having a `share' directory might be more appropriate for the .scm,
979         # .cpu, etc. files.
980         cgendir=${cgen_maint}/lib/cgen
981         cgen=guile
982         ;;
983 esac])dnl
984 dnl AM_CONDITIONAL(CGEN_MAINT, test x${cgen_maint} != xno)
985 if test x${cgen_maint} != xno ; then
986   CGEN_MAINT=''
987 else
988   CGEN_MAINT='#'
989 fi
990 AC_SUBST(CGEN_MAINT)
991 AC_SUBST(cgendir)
992 AC_SUBST(cgen)
993 ])