OSDN Git Service

2011-03-11 Michael Snyder <msnyder@vmware.com>
[pf3gnuchains/sourceware.git] / sim / common / common.m4
1 # This file contains common code used by all simulators.
2 #
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.
7 #
8 # The simulator's configure.in should look like:
9 #
10 # dnl Process this file with autoconf to produce a configure script.
11 # AC_PREREQ(2.5)dnl
12 # AC_INIT(Makefile.in)
13 # AC_CONFIG_HEADER(config.h:config.in)
14 #
15 # sinclude(../common/aclocal.m4)
16 # sinclude(../common/common.m4)
17 #
18 # ... target specific stuff ...
19
20 AC_CANONICAL_SYSTEM
21 AC_ARG_PROGRAM
22 AC_PROG_CC
23 AC_PROG_INSTALL
24
25 # Put a plausible default for CC_FOR_BUILD in Makefile.
26 if test "x$cross_compiling" = "xno"; then
27   CC_FOR_BUILD='$(CC)'
28 else
29   CC_FOR_BUILD=gcc
30 fi
31 AC_SUBST(CC_FOR_BUILD)
32
33 AC_SUBST(CFLAGS)
34 AC_SUBST(HDEFINES)
35 AR=${AR-ar}
36 AC_SUBST(AR)
37 AC_PROG_RANLIB
38
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.
41 ALL_LINGUAS=
42 ZW_GNU_GETTEXT_SISTER_DIR(../../intl)
43
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)
52
53 # Check for socket libraries
54 AC_CHECK_LIB(socket, bind)
55 AC_CHECK_LIB(nsl, gethostbyname)
56
57 # BFD conditionally uses zlib, so we must link it in if libbfd does, by
58 # using the same condition.
59 AM_ZLIB
60
61 . ${srcdir}/../../bfd/configure.host
62
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.
68
69
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 ;;
77   no)   MAINT="#" ;;
78   *)    AC_MSG_ERROR("--enable-maintainer-mode does not take a value"); MAINT="#" ;;
79 esac
80 if test x"$silent" != x"yes" && test x"$MAINT" = x""; then
81   echo "Setting maintainer mode" 6>&1
82 fi],[MAINT="#"])dnl
83 AC_SUBST(MAINT)
84
85
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="";;
94 esac
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
98 AC_SUBST(sim_bswap)
99
100
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="";;
106   no)    sim_cflags="";;
107   *)     sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;;
108 esac
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
112 AC_SUBST(sim_cflags)
113
114
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})'";;
123 esac
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
127 AC_SUBST(sim_debug)
128
129
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="";;
138 esac
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
142 AC_SUBST(sim_stdio)
143
144
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
149 dnl use WITH_TRACE.
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";;
155   [[-0-9]]*)
156         sim_trace="-DTRACE='(${enableval})' -DWITH_TRACE='(${enableval})'";;
157   [[a-z]]*)
158         sim_trace=""
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"
162           else
163             sim_trace="${sim_trace}|TRACE_$x"
164           fi
165         done
166         sim_trace="$sim_trace)'" ;;
167 esac
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
171 AC_SUBST(sim_trace)
172
173
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";;
184   [[-0-9]]*)
185         sim_profile="-DPROFILE='(${enableval})' -DWITH_PROFILE='(${enableval})'";;
186   [[a-z]]*)
187         sim_profile=""
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"
191           else
192             sim_profile="${sim_profile}|PROFILE_$x"
193           fi
194         done
195         sim_profile="$sim_profile)'" ;;
196 esac
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)
201
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])
206
207 dnl Types used by common code
208 AC_TYPE_SIGNAL
209
210 dnl Detect exe extension
211 AC_EXEEXT
212
213 dnl These are available to append to as desired.
214 sim_link_files=
215 sim_link_links=
216
217 dnl Create tconfig.h either from simulator's tconfig.in or default one
218 dnl in common.
219 sim_link_links=tconfig.h
220 if test -f ${srcdir}/tconfig.in
221 then
222   sim_link_files=tconfig.in
223 else
224   sim_link_files=../common/tconfig.in
225 fi
226
227 # targ-vals.def points to the libc macro description file.
228 case "${target}" in
229 *-*-*) TARG_VALS_DEF=../common/nltvals.def ;;
230 esac
231 sim_link_files="${sim_link_files} ${TARG_VALS_DEF}"
232 sim_link_links="${sim_link_links} targ-vals.def"