OSDN Git Service

Index: sh/ChangeLog
[pf3gnuchains/pf3gnuchains4x.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 #
14 # sinclude(../common/common.m4)
15 #
16 # ... target specific stuff ...
17
18 # autoconf.info says this should be called right after AC_INIT.
19 AC_CONFIG_HEADER(config.h:config.in)
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 CY_GNU_GETTEXT
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 . ${srcdir}/../../bfd/configure.host
58
59 dnl Standard (and optional) simulator options.
60 dnl Eventually all simulators will support these.
61 dnl Do not add any here that cannot be supported by all simulators.
62 dnl Do not add similar but different options to a particular simulator,
63 dnl all shall eventually behave the same way.
64
65
66 dnl We don't use automake, but we still want to support
67 dnl --enable-maintainer-mode.
68 USE_MAINTAINER_MODE=no
69 AC_ARG_ENABLE(maintainer-mode,
70 [  --enable-maintainer-mode             Enable developer functionality.],
71 [case "${enableval}" in
72   yes)  MAINT="" USE_MAINTAINER_MODE=yes ;;
73   no)   MAINT="#" ;;
74   *)    AC_MSG_ERROR("--enable-maintainer-mode does not take a value"); MAINT="#" ;;
75 esac
76 if test x"$silent" != x"yes" && test x"$MAINT" = x""; then
77   echo "Setting maintainer mode" 6>&1
78 fi],[MAINT="#"])dnl
79 AC_SUBST(MAINT)
80
81
82 dnl This is a generic option to enable special byte swapping
83 dnl insns on *any* cpu.
84 AC_ARG_ENABLE(sim-bswap,
85 [  --enable-sim-bswap                   Use Host specific BSWAP instruction.],
86 [case "${enableval}" in
87   yes)  sim_bswap="-DWITH_BSWAP=1 -DUSE_BSWAP=1";;
88   no)   sim_bswap="-DWITH_BSWAP=0";;
89   *)    AC_MSG_ERROR("--enable-sim-bswap does not take a value"); sim_bswap="";;
90 esac
91 if test x"$silent" != x"yes" && test x"$sim_bswap" != x""; then
92   echo "Setting bswap flags = $sim_bswap" 6>&1
93 fi],[sim_bswap=""])dnl
94 AC_SUBST(sim_bswap)
95
96
97 AC_ARG_ENABLE(sim-cflags,
98 [  --enable-sim-cflags=opts             Extra CFLAGS for use in building simulator],
99 [case "${enableval}" in
100   yes)   sim_cflags="-O2 -fomit-frame-pointer";;
101   trace) AC_MSG_ERROR("Please use --enable-sim-debug instead."); sim_cflags="";;
102   no)    sim_cflags="";;
103   *)     sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;;
104 esac
105 if test x"$silent" != x"yes" && test x"$sim_cflags" != x""; then
106   echo "Setting sim cflags = $sim_cflags" 6>&1
107 fi],[sim_cflags=""])dnl
108 AC_SUBST(sim_cflags)
109
110
111 dnl --enable-sim-debug is for developers of the simulator
112 dnl the allowable values are work-in-progress
113 AC_ARG_ENABLE(sim-debug,
114 [  --enable-sim-debug=opts              Enable debugging flags],
115 [case "${enableval}" in
116   yes) sim_debug="-DDEBUG=7 -DWITH_DEBUG=7";;
117   no)  sim_debug="-DDEBUG=0 -DWITH_DEBUG=0";;
118   *)   sim_debug="-DDEBUG='(${enableval})' -DWITH_DEBUG='(${enableval})'";;
119 esac
120 if test x"$silent" != x"yes" && test x"$sim_debug" != x""; then
121   echo "Setting sim debug = $sim_debug" 6>&1
122 fi],[sim_debug=""])dnl
123 AC_SUBST(sim_debug)
124
125
126 dnl --enable-sim-stdio is for users of the simulator
127 dnl It determines if IO from the program is routed through STDIO (buffered)
128 AC_ARG_ENABLE(sim-stdio,
129 [  --enable-sim-stdio                   Specify whether to use stdio for console input/output.],
130 [case "${enableval}" in
131   yes)  sim_stdio="-DWITH_STDIO=DO_USE_STDIO";;
132   no)   sim_stdio="-DWITH_STDIO=DONT_USE_STDIO";;
133   *)    AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-stdio"); sim_stdio="";;
134 esac
135 if test x"$silent" != x"yes" && test x"$sim_stdio" != x""; then
136   echo "Setting stdio flags = $sim_stdio" 6>&1
137 fi],[sim_stdio=""])dnl
138 AC_SUBST(sim_stdio)
139
140
141 dnl --enable-sim-trace is for users of the simulator
142 dnl The argument is either a bitmask of things to enable [exactly what is
143 dnl up to the simulator], or is a comma separated list of names of tracing
144 dnl elements to enable.  The latter is only supported on simulators that
145 dnl use WITH_TRACE.
146 AC_ARG_ENABLE(sim-trace,
147 [  --enable-sim-trace=opts              Enable tracing flags],
148 [case "${enableval}" in
149   yes)  sim_trace="-DTRACE=1 -DWITH_TRACE=-1";;
150   no)   sim_trace="-DTRACE=0 -DWITH_TRACE=0";;
151   [[-0-9]]*)
152         sim_trace="-DTRACE='(${enableval})' -DWITH_TRACE='(${enableval})'";;
153   [[a-z]]*)
154         sim_trace=""
155         for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
156           if test x"$sim_trace" = x; then
157             sim_trace="-DWITH_TRACE='(TRACE_$x"
158           else
159             sim_trace="${sim_trace}|TRACE_$x"
160           fi
161         done
162         sim_trace="$sim_trace)'" ;;
163 esac
164 if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then
165   echo "Setting sim trace = $sim_trace" 6>&1
166 fi],[sim_trace=""])dnl
167 AC_SUBST(sim_trace)
168
169
170 dnl --enable-sim-profile
171 dnl The argument is either a bitmask of things to enable [exactly what is
172 dnl up to the simulator], or is a comma separated list of names of profiling
173 dnl elements to enable.  The latter is only supported on simulators that
174 dnl use WITH_PROFILE.
175 AC_ARG_ENABLE(sim-profile,
176 [  --enable-sim-profile=opts            Enable profiling flags],
177 [case "${enableval}" in
178   yes)  sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1";;
179   no)   sim_profile="-DPROFILE=0 -DWITH_PROFILE=0";;
180   [[-0-9]]*)
181         sim_profile="-DPROFILE='(${enableval})' -DWITH_PROFILE='(${enableval})'";;
182   [[a-z]]*)
183         sim_profile=""
184         for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
185           if test x"$sim_profile" = x; then
186             sim_profile="-DWITH_PROFILE='(PROFILE_$x"
187           else
188             sim_profile="${sim_profile}|PROFILE_$x"
189           fi
190         done
191         sim_profile="$sim_profile)'" ;;
192 esac
193 if test x"$silent" != x"yes" && test x"$sim_profile" != x""; then
194   echo "Setting sim profile = $sim_profile" 6>&1
195 fi],[sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1"])dnl
196 AC_SUBST(sim_profile)
197
198
199 dnl Types used by common code
200 AC_TYPE_SIGNAL
201
202 dnl Detect exe extension
203 AC_EXEEXT
204
205 dnl These are available to append to as desired.
206 sim_link_files=
207 sim_link_links=
208
209 dnl Create tconfig.h either from simulator's tconfig.in or default one
210 dnl in common.
211 sim_link_links=tconfig.h
212 if test -f ${srcdir}/tconfig.in
213 then
214   sim_link_files=tconfig.in
215 else
216   sim_link_files=../common/tconfig.in
217 fi
218
219 # targ-vals.def points to the libc macro description file.
220 case "${target}" in
221 *-*-*) TARG_VALS_DEF=../common/nltvals.def ;;
222 esac
223 sim_link_files="${sim_link_files} ${TARG_VALS_DEF}"
224 sim_link_links="${sim_link_links} targ-vals.def"