1 |
578 |
markom |
# Makefile fragment for common parts of all simulators.
|
2 |
|
|
# Copyright 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
3 |
|
|
# Contributed by Cygnus Support.
|
4 |
|
|
|
5 |
|
|
# This program is free software; you can redistribute it and/or modify
|
6 |
|
|
# it under the terms of the GNU General Public License as published by
|
7 |
|
|
# the Free Software Foundation; either version 2 of the License, or
|
8 |
|
|
# (at your option) any later version.
|
9 |
|
|
#
|
10 |
|
|
# This program is distributed in the hope that it will be useful,
|
11 |
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
|
|
# GNU General Public License for more details.
|
14 |
|
|
#
|
15 |
|
|
# You should have received a copy of the GNU General Public License
|
16 |
|
|
# along with this program; if not, write to the Free Software
|
17 |
|
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
18 |
|
|
|
19 |
|
|
# This Makefile fragment consists of two separate parts.
|
20 |
|
|
# They are merged into the final Makefile at points denoted by
|
21 |
|
|
# "## COMMON_PRE_CONFIG_FRAG" and "## COMMON_POST_CONFIG_FRAG".
|
22 |
|
|
#
|
23 |
|
|
# The target Makefile should look like:
|
24 |
|
|
#
|
25 |
|
|
#># Copyright blah blah
|
26 |
|
|
#>
|
27 |
|
|
#>## COMMON_PRE_CONFIG_FRAG
|
28 |
|
|
#>
|
29 |
|
|
#># Any overrides necessary for the SIM_FOO config vars.
|
30 |
|
|
#>SIM_FOO = ...
|
31 |
|
|
#>
|
32 |
|
|
#>## COMMON_POST_CONFIG_FRAG
|
33 |
|
|
#>
|
34 |
|
|
#># Rules to build target specific .o's.
|
35 |
|
|
|
36 |
|
|
## COMMON_PRE_CONFIG_FRAG
|
37 |
|
|
|
38 |
|
|
VPATH = @srcdir@
|
39 |
|
|
srcdir = @srcdir@
|
40 |
|
|
srccom = $(srcdir)/../common
|
41 |
|
|
srcroot = $(srcdir)/../..
|
42 |
|
|
|
43 |
|
|
prefix = @prefix@
|
44 |
|
|
exec_prefix = @exec_prefix@
|
45 |
|
|
|
46 |
|
|
host_alias = @host_alias@
|
47 |
|
|
target_alias = @target_alias@
|
48 |
|
|
program_transform_name = @program_transform_name@
|
49 |
|
|
bindir = @bindir@
|
50 |
|
|
|
51 |
|
|
libdir = @libdir@
|
52 |
|
|
tooldir = $(libdir)/$(target_alias)
|
53 |
|
|
|
54 |
|
|
datadir = @datadir@
|
55 |
|
|
mandir = @mandir@
|
56 |
|
|
man1dir = $(mandir)/man1
|
57 |
|
|
infodir = @infodir@
|
58 |
|
|
includedir = @includedir@
|
59 |
|
|
|
60 |
|
|
# This can be referenced by the gettext configuration code.
|
61 |
|
|
top_builddir = ..
|
62 |
|
|
|
63 |
|
|
EXEEXT = @EXEEXT@
|
64 |
|
|
SHELL = @SHELL@
|
65 |
|
|
|
66 |
|
|
INSTALL = @INSTALL@
|
67 |
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
68 |
|
|
INSTALL_DATA = @INSTALL_DATA@
|
69 |
|
|
|
70 |
|
|
CC = @CC@
|
71 |
|
|
CC_FOR_BUILD = @CC_FOR_BUILD@
|
72 |
|
|
CFLAGS = @CFLAGS@
|
73 |
|
|
SIM_BSWAP = @sim_bswap@
|
74 |
|
|
SIM_CFLAGS = @sim_cflags@
|
75 |
|
|
SIM_DEBUG = @sim_debug@
|
76 |
|
|
SIM_TRACE = @sim_trace@
|
77 |
|
|
SIM_PROFILE = @sim_profile@
|
78 |
|
|
|
79 |
|
|
SIM_ASSERT = @sim_assert@
|
80 |
|
|
SIM_ALIGNMENT = @sim_alignment@
|
81 |
|
|
SIM_BITSIZE = @sim_bitsize@
|
82 |
|
|
SIM_DEFAULT_MODEL = @sim_default_model@
|
83 |
|
|
SIM_ENDIAN = @sim_endian@
|
84 |
|
|
SIM_ENVIRONMENT = @sim_environment@
|
85 |
|
|
SIM_FLOAT = @sim_float@
|
86 |
|
|
SIM_HW_CFLAGS = @sim_hw_cflags@
|
87 |
|
|
SIM_HW_OBJS = @sim_hw_objs@
|
88 |
|
|
SIM_HW = @sim_hw@
|
89 |
|
|
SIM_HOSTENDIAN = @sim_hostendian@
|
90 |
|
|
SIM_INLINE = @sim_inline@
|
91 |
|
|
SIM_PACKAGES = @sim_packages@
|
92 |
|
|
SIM_REGPARM = @sim_regparm@
|
93 |
|
|
SIM_RESERVED_BITS = @sim_reserved_bits@
|
94 |
|
|
SIM_SCACHE = @sim_scache@
|
95 |
|
|
SIM_SMP = @sim_smp@
|
96 |
|
|
SIM_STDCALL = @sim_stdcall@
|
97 |
|
|
SIM_XOR_ENDIAN = @sim_xor_endian@
|
98 |
|
|
WARN_CFLAGS = @WARN_CFLAGS@
|
99 |
|
|
WERROR_CFLAGS = @WERROR_CFLAGS@
|
100 |
|
|
SIM_WARN_CFLAGS = $(WARN_CFLAGS)
|
101 |
|
|
SIM_WERROR_CFLAGS = $(WERROR_CFLAGS)
|
102 |
|
|
|
103 |
|
|
HDEFINES = @HDEFINES@
|
104 |
|
|
TDEFINES =
|
105 |
|
|
|
106 |
|
|
AR = @AR@
|
107 |
|
|
AR_FLAGS = rc
|
108 |
|
|
RANLIB = @RANLIB@
|
109 |
|
|
MAKEINFO = makeinfo
|
110 |
|
|
|
111 |
|
|
DEP = $(srcroot)/mkdep
|
112 |
|
|
|
113 |
|
|
# Each simulator's Makefile.in defines one or more of these variables
|
114 |
|
|
# to override our settings as necessary. There is no need to define these
|
115 |
|
|
# in the simulator's Makefile.in if one is using the default value. In fact
|
116 |
|
|
# it's preferable not to.
|
117 |
|
|
|
118 |
|
|
# List of object files, less common parts.
|
119 |
|
|
SIM_OBJS =
|
120 |
|
|
# List of extra dependencies.
|
121 |
|
|
# Generally this consists of simulator specific files included by sim-main.h.
|
122 |
|
|
SIM_EXTRA_DEPS =
|
123 |
|
|
# List of flags to always pass to $(CC).
|
124 |
|
|
SIM_EXTRA_CFLAGS =
|
125 |
|
|
# List of extra libraries to link with.
|
126 |
|
|
SIM_EXTRA_LIBS =
|
127 |
|
|
# List of extra program dependencies.
|
128 |
|
|
SIM_EXTRA_LIBDEPS =
|
129 |
|
|
# List of main object files for `run'.
|
130 |
|
|
SIM_RUN_OBJS = run.o
|
131 |
|
|
# Dependency of `all' to build any extra files.
|
132 |
|
|
SIM_EXTRA_ALL =
|
133 |
|
|
# Dependency of `install' to install any extra files.
|
134 |
|
|
SIM_EXTRA_INSTALL =
|
135 |
|
|
# Dependency of `clean' to clean any extra files.
|
136 |
|
|
SIM_EXTRA_CLEAN =
|
137 |
|
|
|
138 |
|
|
# Every time a new general purpose source file was added every target's
|
139 |
|
|
# Makefile.in needed to be updated to include the file in SIM_OBJS.
|
140 |
|
|
# This doesn't scale.
|
141 |
|
|
# This variable specifies all the generic stuff common to the newer simulators.
|
142 |
|
|
# Things like sim-reason.o can't go here as the cpu may provide its own
|
143 |
|
|
# (though hopefully in time that won't be so). Things like sim-bits.o can go
|
144 |
|
|
# here. Some files are used by all simulators (e.g. callback.o).
|
145 |
|
|
# Those files are specified in LIB_OBJS below.
|
146 |
|
|
|
147 |
|
|
SIM_COMMON_HW_OBJS = \
|
148 |
|
|
hw-alloc.o \
|
149 |
|
|
hw-base.o \
|
150 |
|
|
hw-device.o \
|
151 |
|
|
hw-events.o \
|
152 |
|
|
hw-handles.o \
|
153 |
|
|
hw-instances.o \
|
154 |
|
|
hw-ports.o \
|
155 |
|
|
hw-properties.o \
|
156 |
|
|
hw-tree.o \
|
157 |
|
|
sim-hw.o \
|
158 |
|
|
|
159 |
|
|
SIM_NEW_COMMON_OBJS = \
|
160 |
|
|
sim-arange.o \
|
161 |
|
|
sim-bits.o \
|
162 |
|
|
sim-break.o \
|
163 |
|
|
sim-config.o \
|
164 |
|
|
sim-core.o \
|
165 |
|
|
sim-endian.o \
|
166 |
|
|
sim-events.o \
|
167 |
|
|
sim-fpu.o \
|
168 |
|
|
sim-io.o \
|
169 |
|
|
sim-info.o \
|
170 |
|
|
sim-load.o \
|
171 |
|
|
sim-memopt.o \
|
172 |
|
|
sim-module.o \
|
173 |
|
|
sim-options.o \
|
174 |
|
|
sim-profile.o \
|
175 |
|
|
sim-signal.o \
|
176 |
|
|
sim-trace.o \
|
177 |
|
|
sim-utils.o \
|
178 |
|
|
sim-watch.o \
|
179 |
|
|
\
|
180 |
|
|
$(SIM_HW_OBJS) \
|
181 |
|
|
|
182 |
|
|
# Add this to SIM_EXTRA_DEPS.
|
183 |
|
|
CGEN_INCLUDE_DEPS = \
|
184 |
|
|
$(srccom)/cgen-cpu.h \
|
185 |
|
|
$(srccom)/cgen-defs.h \
|
186 |
|
|
$(srccom)/cgen-engine.h \
|
187 |
|
|
$(srccom)/cgen-scache.h \
|
188 |
|
|
$(srccom)/cgen-sim.h \
|
189 |
|
|
$(srccom)/cgen-trace.h \
|
190 |
|
|
$(srccom)/cgen-types.h \
|
191 |
|
|
$(srcdir)/../../include/opcode/cgen.h
|
192 |
|
|
|
193 |
|
|
## End COMMON_PRE_CONFIG_FRAG
|
194 |
|
|
|
195 |
|
|
## COMMON_POST_CONFIG_FRAG
|
196 |
|
|
|
197 |
|
|
CONFIG_CFLAGS = \
|
198 |
|
|
@DEFS@ \
|
199 |
|
|
$(SIM_CFLAGS) \
|
200 |
|
|
$(SIM_DEBUG) \
|
201 |
|
|
$(SIM_DEFAULT_MODEL) \
|
202 |
|
|
$(SIM_TRACE) \
|
203 |
|
|
$(SIM_PROFILE) \
|
204 |
|
|
$(SIM_BSWAP) \
|
205 |
|
|
$(SIM_ASSERT) \
|
206 |
|
|
$(SIM_ALIGNMENT) \
|
207 |
|
|
$(SIM_BITSIZE) \
|
208 |
|
|
$(SIM_ENDIAN) \
|
209 |
|
|
$(SIM_ENVIRONMENT) \
|
210 |
|
|
$(SIM_FLOAT) \
|
211 |
|
|
$(SIM_HW_CFLAGS) \
|
212 |
|
|
$(SIM_HOSTENDIAN) \
|
213 |
|
|
$(SIM_INLINE) \
|
214 |
|
|
$(SIM_PACKAGES) \
|
215 |
|
|
$(SIM_REGPARM) \
|
216 |
|
|
$(SIM_RESERVED_BITS) \
|
217 |
|
|
$(SIM_SCACHE) \
|
218 |
|
|
$(SIM_SMP) \
|
219 |
|
|
$(SIM_STDCALL) \
|
220 |
|
|
$(SIM_WARN_CFLAGS) \
|
221 |
|
|
$(SIM_WERROR_CFLAGS) \
|
222 |
|
|
$(SIM_XOR_ENDIAN) \
|
223 |
|
|
$(SIM_HARDWARE) \
|
224 |
|
|
$(SIM_EXTRA_CFLAGS) \
|
225 |
|
|
$(HDEFINES) $(TDEFINES)
|
226 |
|
|
CSEARCH = -I. -I$(srcdir) -I../common -I$(srccom) \
|
227 |
|
|
-I../../include -I$(srcroot)/include \
|
228 |
|
|
-I../../bfd -I$(srcroot)/bfd \
|
229 |
|
|
-I../../opcodes -I$(srcroot)/opcodes \
|
230 |
|
|
-I../../intl -I$(srcroot)/intl
|
231 |
|
|
ALL_CFLAGS = $(CONFIG_CFLAGS) $(CSEARCH) $(CFLAGS)
|
232 |
|
|
BUILD_CFLAGS = -g -O $(CSEARCH)
|
233 |
|
|
|
234 |
|
|
COMMON_DEP_CFLAGS = $(CONFIG_CFLAGS) $(CSEARCH)
|
235 |
|
|
|
236 |
|
|
LIBIBERTY_LIB = ../../libiberty/libiberty.a
|
237 |
|
|
BFD_LIB = ../../bfd/libbfd.a
|
238 |
|
|
OPCODES_LIB = ../../opcodes/libopcodes.a
|
239 |
|
|
INTLLIBS = @INTLLIBS@
|
240 |
|
|
INTLDEPS = @INTLDEPS@
|
241 |
|
|
CONFIG_LIBS = @LIBS@
|
242 |
|
|
LIBDEPS = $(BFD_LIB) $(OPCODES_LIB) $(INTLLIBS) $(LIBIBERTY_LIB) \
|
243 |
|
|
$(SIM_EXTRA_LIBDEPS)
|
244 |
|
|
EXTRA_LIBS = $(BFD_LIB) $(OPCODES_LIB) $(INTLLIBS) $(LIBIBERTY_LIB) \
|
245 |
|
|
$(CONFIG_LIBS) $(SIM_EXTRA_LIBS)
|
246 |
|
|
|
247 |
|
|
LIB_OBJS = callback.o syscall.o targ-map.o $(SIM_OBJS)
|
248 |
|
|
|
249 |
|
|
RUNTESTFLAGS =
|
250 |
|
|
|
251 |
|
|
all: $(SIM_EXTRA_ALL) libsim.a run .gdbinit
|
252 |
|
|
|
253 |
|
|
libsim.a: $(LIB_OBJS)
|
254 |
|
|
rm -f libsim.a
|
255 |
|
|
$(AR) $(AR_FLAGS) libsim.a $(LIB_OBJS)
|
256 |
|
|
$(RANLIB) libsim.a
|
257 |
|
|
|
258 |
|
|
run: $(SIM_RUN_OBJS) libsim.a $(LIBDEPS)
|
259 |
|
|
$(CC) $(ALL_CFLAGS) -o run$(EXEEXT) \
|
260 |
|
|
$(SIM_RUN_OBJS) libsim.a $(EXTRA_LIBS)
|
261 |
|
|
|
262 |
|
|
run.o: $(srccom)/run.c config.h tconfig.h \
|
263 |
|
|
$(srcroot)/include/remote-sim.h $(srcroot)/include/callback.h
|
264 |
|
|
$(CC) -c $(srccom)/run.c $(ALL_CFLAGS)
|
265 |
|
|
|
266 |
|
|
# FIXME: Ideally, callback.o and friends live in a library outside of
|
267 |
|
|
# both the gdb and simulator source trees (e.g. devo/remote. Not
|
268 |
|
|
# devo/libremote because this directory would contain more than just
|
269 |
|
|
# a library).
|
270 |
|
|
|
271 |
|
|
callback.o: $(srccom)/callback.c config.h tconfig.h \
|
272 |
|
|
$(srcroot)/include/callback.h targ-vals.h
|
273 |
|
|
$(CC) -c $(srccom)/callback.c $(ALL_CFLAGS)
|
274 |
|
|
|
275 |
|
|
syscall.o: $(srccom)/syscall.c config.h tconfig.h \
|
276 |
|
|
$(srcroot)/include/callback.h targ-vals.h
|
277 |
|
|
$(CC) -c $(srccom)/syscall.c $(ALL_CFLAGS)
|
278 |
|
|
|
279 |
|
|
targ-map.o: targ-map.c targ-vals.h
|
280 |
|
|
|
281 |
|
|
gentmap: Makefile $(srccom)/gentmap.c targ-vals.def
|
282 |
|
|
$(CC_FOR_BUILD) $(srccom)/gentmap.c -o gentmap $(BUILD_CFLAGS) $(NL_TARGET)
|
283 |
|
|
|
284 |
|
|
targ-vals.h targ-map.c: stamp-tvals
|
285 |
|
|
stamp-tvals: gentmap
|
286 |
|
|
rm -f tmp-tvals.h tmp-tmap.c
|
287 |
|
|
./gentmap -h >tmp-tvals.h
|
288 |
|
|
$(SHELL) $(srcroot)/move-if-change tmp-tvals.h targ-vals.h
|
289 |
|
|
./gentmap -c >tmp-tmap.c
|
290 |
|
|
$(SHELL) $(srcroot)/move-if-change tmp-tmap.c targ-map.c
|
291 |
|
|
touch stamp-tvals
|
292 |
|
|
|
293 |
|
|
#
|
294 |
|
|
# Rules for building sim-* components. Triggered by listing the corresponding
|
295 |
|
|
# .o file in the list of simulator targets.
|
296 |
|
|
#
|
297 |
|
|
|
298 |
|
|
sim_main_headers = \
|
299 |
|
|
sim-main.h \
|
300 |
|
|
$(srccom)/sim-assert.h \
|
301 |
|
|
$(srccom)/sim-base.h \
|
302 |
|
|
$(srccom)/sim-basics.h \
|
303 |
|
|
$(srccom)/sim-config.h \
|
304 |
|
|
$(srccom)/sim-cpu.h \
|
305 |
|
|
$(srccom)/sim-engine.h \
|
306 |
|
|
$(srccom)/sim-events.h \
|
307 |
|
|
$(srccom)/sim-inline.h \
|
308 |
|
|
$(srccom)/sim-memopt.h \
|
309 |
|
|
$(srccom)/sim-model.h \
|
310 |
|
|
$(srccom)/sim-module.h \
|
311 |
|
|
$(srccom)/sim-profile.h \
|
312 |
|
|
$(srccom)/sim-signal.h \
|
313 |
|
|
$(srccom)/sim-trace.h \
|
314 |
|
|
$(srccom)/sim-watch.h \
|
315 |
|
|
tconfig.h \
|
316 |
|
|
$(SIM_EXTRA_DEPS)
|
317 |
|
|
|
318 |
|
|
# Exported version of sim_main_headers.
|
319 |
|
|
SIM_MAIN_DEPS = \
|
320 |
|
|
$(sim_main_headers)
|
321 |
|
|
|
322 |
|
|
sim-assert_h = $(srccom)/sim-assert.h
|
323 |
|
|
sim-endian_h = $(srccom)/sim-endian.h
|
324 |
|
|
sim-n-endian_h = $(srccom)/sim-n-endian.h
|
325 |
|
|
sim-arange_h = $(srccom)/sim-arange.h
|
326 |
|
|
sim-bits_h = $(srccom)/sim-bits.h
|
327 |
|
|
sim-config_h = $(srccom)/sim-config.h
|
328 |
|
|
sim-n-bits_h = $(srccom)/sim-n-bits.h
|
329 |
|
|
sim-core_h = $(srccom)/sim-core.h
|
330 |
|
|
sim-n-core_h = $(srccom)/sim-n-core.h
|
331 |
|
|
sim-engine_h = $(srccom)/sim-engine.h
|
332 |
|
|
sim-events_h = $(srccom)/sim-events.h
|
333 |
|
|
sim-fpu_h = $(srccom)/sim-fpu.h
|
334 |
|
|
sim-io_h = $(srccom)/sim-io.h
|
335 |
|
|
sim-options_h = $(srccom)/sim-options.h
|
336 |
|
|
sim-break_h = $(srccom)/sim-break.h
|
337 |
|
|
sim-signal_h = $(srccom)/sim-signal.h
|
338 |
|
|
|
339 |
|
|
hw-alloc_h = $(srccom)/hw-alloc.h
|
340 |
|
|
hw-base_h = $(srccom)/hw-base.h
|
341 |
|
|
hw-device_h = $(srccom)/hw-device.h
|
342 |
|
|
hw-events_h = $(srccom)/hw-events.h
|
343 |
|
|
hw-handles_h = $(srccom)/hw-handles.h
|
344 |
|
|
hw-instances_h = $(srccom)/hw-instances.h
|
345 |
|
|
hw-ports_h = $(srccom)/hw-ports.h
|
346 |
|
|
hw-properties_h = $(srccom)/hw-properties.h
|
347 |
|
|
hw-tree_h = $(srccom)/hw-tree.h
|
348 |
|
|
|
349 |
|
|
hw_main_headers = \
|
350 |
|
|
$(srccom)/hw-main.h \
|
351 |
|
|
$(hw-alloc_h) \
|
352 |
|
|
$(hw-base_h) \
|
353 |
|
|
$(hw-device_h) \
|
354 |
|
|
$(hw-events_h) \
|
355 |
|
|
$(hw-instances_h) \
|
356 |
|
|
$(hw-handles_h) \
|
357 |
|
|
$(hw-ports_h) \
|
358 |
|
|
$(hw-properties_h) \
|
359 |
|
|
|
360 |
|
|
# FIXME: If this complicated way of building .o files from ../common is
|
361 |
|
|
# necessary, the reason should be documented here.
|
362 |
|
|
|
363 |
|
|
BUILT_SRC_FROM_COMMON= \
|
364 |
|
|
sim-inline.c
|
365 |
|
|
|
366 |
|
|
sim-abort.o: $(srccom)/sim-abort.c \
|
367 |
|
|
$(SIM_EXTRA_DEPS)
|
368 |
|
|
$(CC) -c $(srccom)/sim-abort.c $(ALL_CFLAGS)
|
369 |
|
|
|
370 |
|
|
sim-arange.o: $(srccom)/sim-arange.c $(sim-arange_h) $(SIM_EXTRA_DEPS)
|
371 |
|
|
$(CC) -c $(srccom)/sim-arange.c $(ALL_CFLAGS)
|
372 |
|
|
|
373 |
|
|
sim-bits.o: $(srccom)/sim-bits.c $(sim-bits_h) $(sim-n-bits_h) \
|
374 |
|
|
$(SIM_EXTRA_DEPS)
|
375 |
|
|
$(CC) -c $(srccom)/sim-bits.c $(ALL_CFLAGS)
|
376 |
|
|
|
377 |
|
|
sim-config.o: $(srccom)/sim-config.c $(sim-config_h) \
|
378 |
|
|
$(SIM_EXTRA_DEPS)
|
379 |
|
|
$(CC) -c $(srccom)/sim-config.c $(ALL_CFLAGS)
|
380 |
|
|
|
381 |
|
|
sim-core.o: $(srccom)/sim-core.c $(sim_main_headers) \
|
382 |
|
|
$(sim-core_h) $(sim-n-core_h)
|
383 |
|
|
$(CC) -c $(srccom)/sim-core.c $(ALL_CFLAGS)
|
384 |
|
|
|
385 |
|
|
sim-cpu.o: $(srccom)/sim-cpu.c $(sim_main_headers)
|
386 |
|
|
$(CC) -c $(srccom)/sim-cpu.c $(ALL_CFLAGS)
|
387 |
|
|
|
388 |
|
|
sim-endian.o: $(srccom)/sim-endian.c $(sim-endian_h) $(sim-n-endian_h)
|
389 |
|
|
$(CC) -c $(srccom)/sim-endian.c $(ALL_CFLAGS)
|
390 |
|
|
|
391 |
|
|
sim-engine.o: $(srccom)/sim-engine.c $(sim_main_headers) $(sim-engine_h)
|
392 |
|
|
$(CC) -c $(srccom)/sim-engine.c $(ALL_CFLAGS)
|
393 |
|
|
|
394 |
|
|
sim-events.o: $(srccom)/sim-events.c $(sim-events_h) \
|
395 |
|
|
$(SIM_EXTRA_DEPS)
|
396 |
|
|
$(CC) -c $(srccom)/sim-events.c $(ALL_CFLAGS)
|
397 |
|
|
|
398 |
|
|
sim-fpu.o: $(srccom)/sim-fpu.c $(sim-fpu_h) \
|
399 |
|
|
$(SIM_EXTRA_DEPS)
|
400 |
|
|
$(CC) -c $(srccom)/sim-fpu.c $(ALL_CFLAGS)
|
401 |
|
|
|
402 |
|
|
sim-hload.o: $(srccom)/sim-hload.c $(sim-assert_h) \
|
403 |
|
|
$(srcroot)/include/remote-sim.h \
|
404 |
|
|
$(SIM_EXTRA_DEPS)
|
405 |
|
|
$(CC) -c $(srccom)/sim-hload.c $(ALL_CFLAGS)
|
406 |
|
|
|
407 |
|
|
sim-hrw.o: $(srccom)/sim-hrw.c $(sim-assert_h) $(sim_core_h) \
|
408 |
|
|
$(srcroot)/include/remote-sim.h \
|
409 |
|
|
$(SIM_EXTRA_DEPS)
|
410 |
|
|
$(CC) -c $(srccom)/sim-hrw.c $(ALL_CFLAGS)
|
411 |
|
|
|
412 |
|
|
sim-hw.o: $(srccom)/sim-hw.c $(sim_main_headers)
|
413 |
|
|
$(CC) -c $(srccom)/sim-hw.c $(ALL_CFLAGS)
|
414 |
|
|
|
415 |
|
|
sim-info.o: $(srccom)/sim-info.c $(sim-assert_h) \
|
416 |
|
|
$(srcroot)/include/remote-sim.h \
|
417 |
|
|
$(SIM_EXTRA_DEPS)
|
418 |
|
|
$(CC) -c $(srccom)/sim-info.c $(ALL_CFLAGS)
|
419 |
|
|
|
420 |
|
|
sim-inline.c: $(srccom)/sim-inline.c
|
421 |
|
|
rm -f $@ tmp-$@
|
422 |
|
|
echo "# 1 \"$(srccom)/$@\"" > tmp-$@
|
423 |
|
|
cat $(srccom)/$@ >> tmp-$@
|
424 |
|
|
$(SHELL) $(srcdir)/../../move-if-change tmp-$@ $@
|
425 |
|
|
|
426 |
|
|
sim-io.o: $(srccom)/sim-io.c $(sim_main_headers) $(sim-io_h) \
|
427 |
|
|
$(srcroot)/include/remote-sim.h targ-vals.h
|
428 |
|
|
$(CC) -c $(srccom)/sim-io.c $(ALL_CFLAGS)
|
429 |
|
|
|
430 |
|
|
sim-memopt.o: $(srccom)/sim-memopt.c $(sim_main_headers) \
|
431 |
|
|
$(sim-io_h)
|
432 |
|
|
$(CC) -c $(srccom)/sim-memopt.c $(ALL_CFLAGS)
|
433 |
|
|
|
434 |
|
|
sim-module.o: $(srccom)/sim-module.c $(sim_main_headers) \
|
435 |
|
|
$(sim-io_h)
|
436 |
|
|
$(CC) -c $(srccom)/sim-module.c $(ALL_CFLAGS)
|
437 |
|
|
|
438 |
|
|
sim-options.o: $(srccom)/sim-options.c $(sim_main_headers) \
|
439 |
|
|
$(sim-options_h) $(sim-io_h)
|
440 |
|
|
$(CC) -c $(srccom)/sim-options.c $(ALL_CFLAGS)
|
441 |
|
|
|
442 |
|
|
sim-reason.o: $(srccom)/sim-reason.c $(sim_main_headers) \
|
443 |
|
|
$(srcroot)/include/remote-sim.h
|
444 |
|
|
$(CC) -c $(srccom)/sim-reason.c $(ALL_CFLAGS)
|
445 |
|
|
|
446 |
|
|
sim-reg.o: $(srccom)/sim-reg.c $(sim_main_headers) \
|
447 |
|
|
$(srcroot)/include/remote-sim.h
|
448 |
|
|
$(CC) -c $(srccom)/sim-reg.c $(ALL_CFLAGS)
|
449 |
|
|
|
450 |
|
|
sim-resume.o: $(srccom)/sim-resume.c $(sim_main_headers) \
|
451 |
|
|
$(srcroot)/include/remote-sim.h
|
452 |
|
|
$(CC) -c $(srccom)/sim-resume.c $(ALL_CFLAGS)
|
453 |
|
|
|
454 |
|
|
sim-run.o: $(srccom)/sim-run.c $(sim_main_headers)
|
455 |
|
|
$(CC) -c $(srccom)/sim-run.c $(ALL_CFLAGS)
|
456 |
|
|
|
457 |
|
|
sim-signal.o: $(srccom)/sim-signal.c $(sim_main_headers) $(sim-signal_h)
|
458 |
|
|
$(CC) -c $(srccom)/sim-signal.c $(ALL_CFLAGS)
|
459 |
|
|
|
460 |
|
|
sim-stop.o: $(srccom)/sim-stop.c $(sim_main_headers)
|
461 |
|
|
$(CC) -c $(srccom)/sim-stop.c $(ALL_CFLAGS)
|
462 |
|
|
|
463 |
|
|
sim-trace.o: $(srccom)/sim-trace.c $(sim_main_headers) \
|
464 |
|
|
$(sim-options_h) $(sim-io_h)
|
465 |
|
|
$(CC) -c $(srccom)/sim-trace.c $(ALL_CFLAGS)
|
466 |
|
|
|
467 |
|
|
sim-profile.o: $(srccom)/sim-profile.c $(sim_main_headers) \
|
468 |
|
|
$(sim-options_h) $(sim-io_h)
|
469 |
|
|
$(CC) -c $(srccom)/sim-profile.c $(ALL_CFLAGS)
|
470 |
|
|
|
471 |
|
|
sim-model.o: $(srccom)/sim-model.c $(sim_main_headers) \
|
472 |
|
|
$(sim-io_h)
|
473 |
|
|
$(CC) -c $(srccom)/sim-model.c $(ALL_CFLAGS)
|
474 |
|
|
|
475 |
|
|
sim-utils.o: $(srccom)/sim-utils.c $(sim_main_headers)
|
476 |
|
|
$(CC) -c $(srccom)/sim-utils.c $(ALL_CFLAGS)
|
477 |
|
|
|
478 |
|
|
sim-watch.o: $(srccom)/sim-watch.c $(sim_main_headers)
|
479 |
|
|
$(CC) -c $(srccom)/sim-watch.c $(ALL_CFLAGS)
|
480 |
|
|
|
481 |
|
|
sim-load.o: $(srccom)/sim-load.c $(srcroot)/include/callback.h
|
482 |
|
|
$(CC) -c $(srccom)/sim-load.c $(ALL_CFLAGS)
|
483 |
|
|
|
484 |
|
|
sim-break.o: $(srccom)/sim-break.c $(sim_main_headers) \
|
485 |
|
|
$(sim_break_h)
|
486 |
|
|
$(CC) -c $(srccom)/sim-break.c $(ALL_CFLAGS)
|
487 |
|
|
|
488 |
|
|
|
489 |
|
|
# FIXME This is one very simple-minded way of generating the file hw-config.h
|
490 |
|
|
hw-config.h: Makefile.in $(srccom)/Make-common.in config.status Makefile
|
491 |
|
|
rm -f tmp-hw.h
|
492 |
|
|
echo "/* generated by Makefile */" > tmp-hw.h
|
493 |
|
|
for hw in $(SIM_HW) ; do \
|
494 |
|
|
echo "extern const struct hw_descriptor dv_$${hw}_descriptor[];" ; \
|
495 |
|
|
done >> tmp-hw.h
|
496 |
|
|
echo "const struct hw_descriptor *hw_descriptors[] = {" >> tmp-hw.h
|
497 |
|
|
for hw in $(SIM_HW) ; do \
|
498 |
|
|
echo " dv_$${hw}_descriptor," ; \
|
499 |
|
|
done >> tmp-hw.h
|
500 |
|
|
echo " NULL," >> tmp-hw.h
|
501 |
|
|
echo "};" >> tmp-hw.h
|
502 |
|
|
mv tmp-hw.h hw-config.h
|
503 |
|
|
|
504 |
|
|
hw-alloc.o: $(srccom)/hw-alloc.c $(hw_main_headers)
|
505 |
|
|
$(CC) -c $(srccom)/hw-alloc.c $(ALL_CFLAGS)
|
506 |
|
|
|
507 |
|
|
hw-base.o: $(srccom)/hw-base.c $(hw_main_headers) hw-config.h
|
508 |
|
|
$(CC) -c $(srccom)/hw-base.c $(ALL_CFLAGS)
|
509 |
|
|
|
510 |
|
|
hw-device.o: $(srccom)/hw-device.c $(hw_main_headers)
|
511 |
|
|
$(CC) -c $(srccom)/hw-device.c $(ALL_CFLAGS)
|
512 |
|
|
|
513 |
|
|
hw-events.o: $(srccom)/hw-events.c $(hw_main_headers) $(sim_main_headers)
|
514 |
|
|
$(CC) -c $(srccom)/hw-events.c $(ALL_CFLAGS)
|
515 |
|
|
|
516 |
|
|
test-hw-events: $(srccom)/hw-events.c libsim.a
|
517 |
|
|
$(CC) $(ALL_CFLAGS) -DMAIN -o test-hw-events$(EXEEXT) \
|
518 |
|
|
$(srccom)/hw-events.c libsim.a $(EXTRA_LIBS)
|
519 |
|
|
|
520 |
|
|
hw-instances.o: $(srccom)/hw-instances.c $(hw_main_headers)
|
521 |
|
|
$(CC) -c $(srccom)/hw-instances.c $(ALL_CFLAGS)
|
522 |
|
|
|
523 |
|
|
hw-handles.o: $(srccom)/hw-handles.c $(hw_main_headers)
|
524 |
|
|
$(CC) -c $(srccom)/hw-handles.c $(ALL_CFLAGS)
|
525 |
|
|
|
526 |
|
|
hw-ports.o: $(srccom)/hw-ports.c $(hw_main_headers)
|
527 |
|
|
$(CC) -c $(srccom)/hw-ports.c $(ALL_CFLAGS)
|
528 |
|
|
|
529 |
|
|
hw-properties.o: $(srccom)/hw-properties.c $(hw_main_headers)
|
530 |
|
|
$(CC) -c $(srccom)/hw-properties.c $(ALL_CFLAGS)
|
531 |
|
|
|
532 |
|
|
hw-tree.o: $(srccom)/hw-tree.c $(hw_main_headers) $(hw-tree_h)
|
533 |
|
|
$(CC) -c $(srccom)/hw-tree.c $(ALL_CFLAGS)
|
534 |
|
|
|
535 |
|
|
# Devices.
|
536 |
|
|
|
537 |
|
|
dv-core.o: $(srccom)/dv-core.c $(hw_main_headers) $(sim_main_headers)
|
538 |
|
|
$(CC) -c $(srccom)/dv-core.c $(ALL_CFLAGS)
|
539 |
|
|
|
540 |
|
|
dv-glue.o: $(srccom)/dv-glue.c $(hw_main_headers) $(sim_main_headers)
|
541 |
|
|
$(CC) -c $(srccom)/dv-glue.c $(ALL_CFLAGS)
|
542 |
|
|
|
543 |
|
|
dv-pal.o: $(srccom)/dv-pal.c $(hw_main_headers) $(sim_main_headers)
|
544 |
|
|
$(CC) -c $(srccom)/dv-pal.c $(ALL_CFLAGS)
|
545 |
|
|
|
546 |
|
|
dv-sockser.o: $(srccom)/dv-sockser.h $(sim_main_headers)
|
547 |
|
|
$(CC) -c $(srccom)/dv-sockser.c $(ALL_CFLAGS)
|
548 |
|
|
|
549 |
|
|
|
550 |
|
|
nrun.o: $(srccom)/nrun.c config.h tconfig.h \
|
551 |
|
|
$(srcroot)/include/remote-sim.h $(srcroot)/include/callback.h \
|
552 |
|
|
$(sim_main_headers)
|
553 |
|
|
$(CC) -c $(srccom)/nrun.c $(ALL_CFLAGS)
|
554 |
|
|
|
555 |
|
|
# CGEN support.
|
556 |
|
|
|
557 |
|
|
# For use in Makefile.in for cpu-specific files.
|
558 |
|
|
CGEN_MAIN_CPU_DEPS = \
|
559 |
|
|
$(SIM_MAIN_DEPS) \
|
560 |
|
|
$(CGEN_INCLUDE_DEPS) \
|
561 |
|
|
$(srccom)/cgen-ops.h \
|
562 |
|
|
$(srccom)/cgen-mem.h \
|
563 |
|
|
$(srccom)/cgen-par.h \
|
564 |
|
|
$(srccom)/cgen-fpu.h
|
565 |
|
|
|
566 |
|
|
cgen-run.o: $(srccom)/cgen-run.c $(sim_main_headers)
|
567 |
|
|
$(CC) -c $(srccom)/cgen-run.c $(ALL_CFLAGS)
|
568 |
|
|
|
569 |
|
|
cgen-scache.o: $(srccom)/cgen-scache.c $(sim_main_headers)
|
570 |
|
|
$(CC) -c $(srccom)/cgen-scache.c $(ALL_CFLAGS)
|
571 |
|
|
|
572 |
|
|
cgen-trace.o: $(srccom)/cgen-trace.c $(sim_main_headers)
|
573 |
|
|
$(CC) -c $(srccom)/cgen-trace.c $(ALL_CFLAGS)
|
574 |
|
|
|
575 |
|
|
cgen-fpu.o: $(srccom)/cgen-fpu.c $(sim_main_headers) $(sim-fpu_h)
|
576 |
|
|
$(CC) -c $(srccom)/cgen-fpu.c $(ALL_CFLAGS)
|
577 |
|
|
|
578 |
|
|
cgen-accfp.o: $(srccom)/cgen-accfp.c $(sim_main_headers) $(sim-fpu_h)
|
579 |
|
|
$(CC) -c $(srccom)/cgen-accfp.c $(ALL_CFLAGS)
|
580 |
|
|
|
581 |
|
|
cgen-utils.o: $(srccom)/cgen-utils.c $(sim_main_headers) \
|
582 |
|
|
$(srccom)/cgen-mem.h $(srccom)/cgen-ops.h $(srccom)/cgen-engine.h
|
583 |
|
|
$(CC) -c $(srccom)/cgen-utils.c $(ALL_CFLAGS)
|
584 |
|
|
|
585 |
|
|
cgen-par.o: $(srccom)/cgen-par.c $(sim_main_headers) \
|
586 |
|
|
$(srccom)/cgen-mem.h $(srccom)/cgen-par.h
|
587 |
|
|
$(CC) -c $(srccom)/cgen-par.c $(ALL_CFLAGS)
|
588 |
|
|
|
589 |
|
|
# Support targets.
|
590 |
|
|
|
591 |
|
|
install: install-common $(SIM_EXTRA_INSTALL)
|
592 |
|
|
|
593 |
|
|
install-common: installdirs
|
594 |
|
|
n=`echo run | sed '$(program_transform_name)'`; \
|
595 |
|
|
$(INSTALL_PROGRAM) run$(EXEEXT) $(bindir)/$$n$(EXEEXT)
|
596 |
|
|
n=`echo libsim.a | sed s/libsim.a/lib$(target_alias)-sim.a/`; \
|
597 |
|
|
$(INSTALL_DATA) libsim.a $(libdir)/$$n ; \
|
598 |
|
|
( cd $(libdir) ; $(RANLIB) $$n )
|
599 |
|
|
|
600 |
|
|
installdirs:
|
601 |
|
|
$(SHELL) $(srcdir)/../../mkinstalldirs $(bindir)
|
602 |
|
|
|
603 |
|
|
check:
|
604 |
|
|
cd ../testsuite && $(MAKE) check RUNTESTFLAGS="$(RUNTESTFLAGS)"
|
605 |
|
|
|
606 |
|
|
info:
|
607 |
|
|
clean-info:
|
608 |
|
|
install-info:
|
609 |
|
|
|
610 |
|
|
.NOEXPORT:
|
611 |
|
|
MAKEOVERRIDES=
|
612 |
|
|
|
613 |
|
|
tags etags: TAGS
|
614 |
|
|
|
615 |
|
|
# Macros like EXTERN_SIM_CORE confuse tags.
|
616 |
|
|
# And the sim-n-foo.h files create functions that can't be found either.
|
617 |
|
|
TAGS: force
|
618 |
|
|
cd $(srcdir) && \
|
619 |
|
|
etags --regex '/^\([a-z_]+\) (/\1/' --regex '/^\/[*] TAGS: .*/' \
|
620 |
|
|
*.[ch] ../common/*.[ch]
|
621 |
|
|
|
622 |
|
|
clean: $(SIM_EXTRA_CLEAN)
|
623 |
|
|
rm -f *.[oa] *~ core
|
624 |
|
|
rm -f run libsim.a
|
625 |
|
|
rm -f gentmap targ-map.c targ-vals.h stamp-tvals
|
626 |
|
|
if [ ! -f Make-common.in ] ; then \
|
627 |
|
|
rm -f $(BUILT_SRC_FROM_COMMON) ; \
|
628 |
|
|
fi
|
629 |
|
|
rm -f tmp-mloop.hin tmp-mloop.h tmp-mloop.cin tmp-mloop.c
|
630 |
|
|
|
631 |
|
|
distclean mostlyclean maintainer-clean realclean: clean
|
632 |
|
|
rm -f TAGS
|
633 |
|
|
rm -f Makefile config.cache config.log config.status .gdbinit
|
634 |
|
|
rm -f tconfig.h config.h stamp-h
|
635 |
|
|
rm -f targ-vals.def
|
636 |
|
|
|
637 |
|
|
.c.o:
|
638 |
|
|
$(CC) -c $(ALL_CFLAGS) $<
|
639 |
|
|
|
640 |
|
|
# Dummy target to force execution of dependent targets.
|
641 |
|
|
force:
|
642 |
|
|
|
643 |
|
|
Makefile: Makefile.in $(srccom)/Make-common.in config.status
|
644 |
|
|
CONFIG_HEADERS= $(SHELL) ./config.status
|
645 |
|
|
|
646 |
|
|
config.status: configure
|
647 |
|
|
$(SHELL) ./config.status --recheck
|
648 |
|
|
|
649 |
|
|
config.h: stamp-h ; @true
|
650 |
|
|
stamp-h: config.in config.status
|
651 |
|
|
CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status
|
652 |
|
|
|
653 |
|
|
.gdbinit: # config.status $(srccom)/gdbinit.in
|
654 |
|
|
CONFIG_FILES=$@:../common/gdbinit.in CONFIG_HEADERS= $(SHELL) ./config.status
|
655 |
|
|
|
656 |
|
|
|
657 |
|
|
# CGEN support
|
658 |
|
|
|
659 |
|
|
CGENDIR = @cgendir@
|
660 |
|
|
CGEN = `if [ -f ../../guile/libguile/guile ]; then echo ../../guile/libguile/guile; else echo guile ; fi`
|
661 |
|
|
CGENFLAGS = -v
|
662 |
|
|
CGEN_CPU_DIR = $(CGENDIR)/cpu
|
663 |
|
|
|
664 |
|
|
CGEN_READ_SCM = ../../cgen/stamp-cgen $(CGENDIR)/sim.scm
|
665 |
|
|
CGEN_ARCH_SCM = $(CGENDIR)/sim-arch.scm
|
666 |
|
|
CGEN_CPU_SCM = $(CGENDIR)/sim-cpu.scm $(CGENDIR)/sim-model.scm
|
667 |
|
|
CGEN_DECODE_SCM = $(CGENDIR)/sim-decode.scm
|
668 |
|
|
CGEN_DESC_SCM = $(CGENDIR)/desc.scm $(CGENDIR)/desc-cpu.scm
|
669 |
|
|
|
670 |
|
|
# Various choices for which cpu specific files to generate.
|
671 |
|
|
CGEN_CPU_EXTR = -E tmp-ext.c1
|
672 |
|
|
CGEN_CPU_READ = -R tmp-read.c1
|
673 |
|
|
CGEN_CPU_WRITE = -W tmp-write.c1
|
674 |
|
|
CGEN_CPU_SEM = -S tmp-sem.c1
|
675 |
|
|
CGEN_CPU_SEMSW = -X tmp-semsw.c1
|
676 |
|
|
|
677 |
|
|
CGEN_FLAGS_TO_PASS = \
|
678 |
|
|
CGEN=$(CGEN) \
|
679 |
|
|
CGENFLAGS="$(CGENFLAGS)"
|
680 |
|
|
|
681 |
|
|
# We store the generated files in the source directory until we decide to
|
682 |
|
|
# ship a Scheme interpreter with gdb/binutils. Maybe we never will.
|
683 |
|
|
|
684 |
|
|
cgen-arch: force
|
685 |
|
|
$(SHELL) $(srccom)/cgen.sh arch $(srcdir) \
|
686 |
|
|
$(CGEN) $(CGENDIR) "$(CGENFLAGS)" \
|
687 |
|
|
$(arch) "$(FLAGS)" ignored "$(isa)" $(mach) ignored ignored
|
688 |
|
|
|
689 |
|
|
cgen-cpu: force
|
690 |
|
|
$(SHELL) $(srccom)/cgen.sh cpu $(srcdir) \
|
691 |
|
|
$(CGEN) $(CGENDIR) "$(CGENFLAGS)" \
|
692 |
|
|
$(arch) "$(FLAGS)" $(cpu) "$(isa)" $(mach) "$(SUFFIX)" "$(EXTRAFILES)"
|
693 |
|
|
|
694 |
|
|
cgen-defs: force
|
695 |
|
|
$(SHELL) $(srccom)/cgen.sh defs $(srcdir) \
|
696 |
|
|
$(CGEN) $(CGENDIR) "$(CGENFLAGS)" \
|
697 |
|
|
$(arch) "$(FLAGS)" $(cpu) "$(isa)" $(mach) "$(SUFFIX)" ignored
|
698 |
|
|
|
699 |
|
|
cgen-decode: force
|
700 |
|
|
$(SHELL) $(srccom)/cgen.sh decode $(srcdir) \
|
701 |
|
|
$(CGEN) $(CGENDIR) "$(CGENFLAGS)" \
|
702 |
|
|
$(arch) "$(FLAGS)" $(cpu) "$(isa)" $(mach) "$(SUFFIX)" "$(EXTRAFILES)"
|
703 |
|
|
|
704 |
|
|
cgen-cpu-decode: force
|
705 |
|
|
$(SHELL) $(srccom)/cgen.sh cpu-decode $(srcdir) \
|
706 |
|
|
$(CGEN) $(CGENDIR) "$(CGENFLAGS)" \
|
707 |
|
|
$(arch) "$(FLAGS)" $(cpu) "$(isa)" $(mach) "$(SUFFIX)" "$(EXTRAFILES)"
|
708 |
|
|
|
709 |
|
|
cgen-desc: force
|
710 |
|
|
$(SHELL) $(srccom)/cgen.sh desc $(srcdir) \
|
711 |
|
|
$(CGEN) $(CGENDIR) "$(CGENFLAGS)" \
|
712 |
|
|
$(arch) "$(FLAGS)" $(cpu) "$(isa)" $(mach) "$(SUFFIX)" ignored
|
713 |
|
|
|
714 |
|
|
## End COMMON_POST_CONFIG_FRAG
|