1 # This file contains common code used by all simulators.
3 # common.m4 invokes AC macros used by all simulators and by the common
4 # directory. It is intended to be included before any target specific
5 # stuff. SIM_AC_OUTPUT is a cover function to AC_OUTPUT to generate
6 # the Makefile. 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.
12 # AC_INIT(Makefile.in)
13 # AC_CONFIG_HEADER(config.h:config.in)
15 # sinclude(../common/aclocal.m4)
16 # sinclude(../common/common.m4)
18 # ... target specific stuff ...
25 # Put a plausible default for CC_FOR_BUILD in Makefile.
26 if test "x$cross_compiling" = "xno"; then
31 AC_SUBST(CC_FOR_BUILD)
39 dnl We don't use gettext, but bfd does. So we do the appropriate checks
40 dnl to see if there are intl libraries we should link against.
42 ZW_GNU_GETTEXT_SISTER_DIR(../../intl)
44 # Check for common headers.
45 # FIXME: Seems to me this can cause problems for i386-windows hosts.
46 # At one point there were hardcoded AC_DEFINE's if ${host} = i386-*-windows*.
47 AC_CHECK_HEADERS(stdlib.h string.h strings.h unistd.h time.h)
48 AC_CHECK_HEADERS(sys/time.h sys/resource.h)
49 AC_CHECK_HEADERS(fcntl.h fpu_control.h)
50 AC_CHECK_HEADERS(dlfcn.h errno.h sys/stat.h)
51 AC_CHECK_FUNCS(getrusage time sigaction __setfpucw)
53 # Check for socket libraries
54 AC_CHECK_LIB(socket, bind)
55 AC_CHECK_LIB(nsl, gethostbyname)
57 # BFD conditionally uses zlib, so we must link it in if libbfd does, by
58 # using the same condition.
61 . ${srcdir}/../../bfd/configure.host
63 dnl Standard (and optional) simulator options.
64 dnl Eventually all simulators will support these.
65 dnl Do not add any here that cannot be supported by all simulators.
66 dnl Do not add similar but different options to a particular simulator,
67 dnl all shall eventually behave the same way.
70 dnl We don't use automake, but we still want to support
71 dnl --enable-maintainer-mode.
72 USE_MAINTAINER_MODE=no
73 AC_ARG_ENABLE(maintainer-mode,
74 [ --enable-maintainer-mode Enable developer functionality.],
75 [case "${enableval}" in
76 yes) MAINT="" USE_MAINTAINER_MODE=yes ;;
78 *) AC_MSG_ERROR("--enable-maintainer-mode does not take a value"); MAINT="#" ;;
80 if test x"$silent" != x"yes" && test x"$MAINT" = x""; then
81 echo "Setting maintainer mode" 6>&1
86 dnl This is a generic option to enable special byte swapping
87 dnl insns on *any* cpu.
88 AC_ARG_ENABLE(sim-bswap,
89 [ --enable-sim-bswap Use Host specific BSWAP instruction.],
90 [case "${enableval}" in
91 yes) sim_bswap="-DWITH_BSWAP=1 -DUSE_BSWAP=1";;
92 no) sim_bswap="-DWITH_BSWAP=0";;
93 *) AC_MSG_ERROR("--enable-sim-bswap does not take a value"); sim_bswap="";;
95 if test x"$silent" != x"yes" && test x"$sim_bswap" != x""; then
96 echo "Setting bswap flags = $sim_bswap" 6>&1
97 fi],[sim_bswap=""])dnl
101 AC_ARG_ENABLE(sim-cflags,
102 [ --enable-sim-cflags=opts Extra CFLAGS for use in building simulator],
103 [case "${enableval}" in
104 yes) sim_cflags="-O2 -fomit-frame-pointer";;
105 trace) AC_MSG_ERROR("Please use --enable-sim-debug instead."); sim_cflags="";;
107 *) sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;;
109 if test x"$silent" != x"yes" && test x"$sim_cflags" != x""; then
110 echo "Setting sim cflags = $sim_cflags" 6>&1
111 fi],[sim_cflags=""])dnl
115 dnl --enable-sim-debug is for developers of the simulator
116 dnl the allowable values are work-in-progress
117 AC_ARG_ENABLE(sim-debug,
118 [ --enable-sim-debug=opts Enable debugging flags],
119 [case "${enableval}" in
120 yes) sim_debug="-DDEBUG=7 -DWITH_DEBUG=7";;
121 no) sim_debug="-DDEBUG=0 -DWITH_DEBUG=0";;
122 *) sim_debug="-DDEBUG='(${enableval})' -DWITH_DEBUG='(${enableval})'";;
124 if test x"$silent" != x"yes" && test x"$sim_debug" != x""; then
125 echo "Setting sim debug = $sim_debug" 6>&1
126 fi],[sim_debug=""])dnl
130 dnl --enable-sim-stdio is for users of the simulator
131 dnl It determines if IO from the program is routed through STDIO (buffered)
132 AC_ARG_ENABLE(sim-stdio,
133 [ --enable-sim-stdio Specify whether to use stdio for console input/output.],
134 [case "${enableval}" in
135 yes) sim_stdio="-DWITH_STDIO=DO_USE_STDIO";;
136 no) sim_stdio="-DWITH_STDIO=DONT_USE_STDIO";;
137 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-stdio"); sim_stdio="";;
139 if test x"$silent" != x"yes" && test x"$sim_stdio" != x""; then
140 echo "Setting stdio flags = $sim_stdio" 6>&1
141 fi],[sim_stdio=""])dnl
145 dnl --enable-sim-trace is for users of the simulator
146 dnl The argument is either a bitmask of things to enable [exactly what is
147 dnl up to the simulator], or is a comma separated list of names of tracing
148 dnl elements to enable. The latter is only supported on simulators that
150 AC_ARG_ENABLE(sim-trace,
151 [ --enable-sim-trace=opts Enable tracing flags],
152 [case "${enableval}" in
153 yes) sim_trace="-DTRACE=1 -DWITH_TRACE=-1";;
154 no) sim_trace="-DTRACE=0 -DWITH_TRACE=0";;
156 sim_trace="-DTRACE='(${enableval})' -DWITH_TRACE='(${enableval})'";;
159 for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
160 if test x"$sim_trace" = x; then
161 sim_trace="-DWITH_TRACE='(TRACE_$x"
163 sim_trace="${sim_trace}|TRACE_$x"
166 sim_trace="$sim_trace)'" ;;
168 if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then
169 echo "Setting sim trace = $sim_trace" 6>&1
170 fi],[sim_trace=""])dnl
174 dnl --enable-sim-profile
175 dnl The argument is either a bitmask of things to enable [exactly what is
176 dnl up to the simulator], or is a comma separated list of names of profiling
177 dnl elements to enable. The latter is only supported on simulators that
178 dnl use WITH_PROFILE.
179 AC_ARG_ENABLE(sim-profile,
180 [ --enable-sim-profile=opts Enable profiling flags],
181 [case "${enableval}" in
182 yes) sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1";;
183 no) sim_profile="-DPROFILE=0 -DWITH_PROFILE=0";;
185 sim_profile="-DPROFILE='(${enableval})' -DWITH_PROFILE='(${enableval})'";;
188 for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
189 if test x"$sim_profile" = x; then
190 sim_profile="-DWITH_PROFILE='(PROFILE_$x"
192 sim_profile="${sim_profile}|PROFILE_$x"
195 sim_profile="$sim_profile)'" ;;
197 if test x"$silent" != x"yes" && test x"$sim_profile" != x""; then
198 echo "Setting sim profile = $sim_profile" 6>&1
199 fi],[sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1"])dnl
200 AC_SUBST(sim_profile)
202 ACX_PKGVERSION([GDB])
203 ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
204 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
205 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
207 dnl Types used by common code
210 dnl Detect exe extension
213 dnl These are available to append to as desired.
217 dnl Create tconfig.h either from simulator's tconfig.in or default one
219 sim_link_links=tconfig.h
220 if test -f ${srcdir}/tconfig.in
222 sim_link_files=tconfig.in
224 sim_link_files=../common/tconfig.in
227 # targ-vals.def points to the libc macro description file.
229 *-*-*) TARG_VALS_DEF=../common/nltvals.def ;;
231 sim_link_files="${sim_link_files} ${TARG_VALS_DEF}"
232 sim_link_links="${sim_link_links} targ-vals.def"