0d58595077
Rather than include this for some targets, set it up so we can build it all the time via the common code. This makes it easier for targets to opt into it when they're ready, increases build coverage, and allows us to centralize much of the logic. We also get to delete tconfig.h from two more targets -- they were setting WITH_DEVICES to 0 which has the same behavior as not defining it at all. While the SIM_HAVE_MODEL knob is gone, we now have WITH_MODEL_P, but it is only used by the common sim-model code. We use it to declare dummy model lists when the arch hasn't created its own.
151 lines
6.1 KiB
Makefile
151 lines
6.1 KiB
Makefile
# Makefile template for Configure for the SH64 simulator
|
|
# Copyright (C) 2000-2015 Free Software Foundation, Inc.
|
|
# Contributed by Red Hat, Inc.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
## COMMON_PRE_CONFIG_FRAG
|
|
|
|
SH64_OBJS = sh64.o cpu.o sh-desc.o \
|
|
decode-compact.o sem-compact.o mloop-compact.o \
|
|
decode-media.o sem-media.o mloop-media.o
|
|
|
|
SIM_OBJS = \
|
|
$(SIM_NEW_COMMON_OBJS) \
|
|
sim-hload.o \
|
|
cgen-utils.o cgen-trace.o cgen-scache.o \
|
|
cgen-run.o \
|
|
sim-if.o arch.o \
|
|
$(SH64_OBJS)
|
|
|
|
# Extra headers included by sim-main.h.
|
|
SIM_EXTRA_DEPS = \
|
|
$(CGEN_INCLUDE_DEPS) \
|
|
arch.h cpuall.h sh64-sim.h sh-desc.h sh-opc.h
|
|
|
|
SIM_EXTRA_CFLAGS =
|
|
|
|
SIM_EXTRA_CLEAN = sh64-clean
|
|
|
|
## COMMON_POST_CONFIG_FRAG
|
|
|
|
arch = sh
|
|
|
|
sim-if.o: sim-if.c $(SIM_MAIN_DEPS) $(srcdir)/../common/sim-core.h
|
|
|
|
arch.o: arch.c $(SIM_MAIN_DEPS)
|
|
|
|
sh-desc.o: sh-desc.c $(SIM_MAIN_DEPS)
|
|
|
|
devices.o: devices.c $(SIM_MAIN_DEPS)
|
|
|
|
# SH64 objs
|
|
|
|
SH64_INCLUDE_DEPS = \
|
|
$(CGEN_MAIN_CPU_DEPS) \
|
|
cpu.h decode.h \
|
|
decode-compact.h eng-compact.h defs-compact.h \
|
|
decode-media.h eng-media.h defs-media.h
|
|
|
|
sh64.o: sh64.c $(SH64_INCLUDE_DEPS)
|
|
|
|
mloop-compact.o: mloop-compact.c sem-compact-switch.c $(SH64_INCLUDE_DEPS)
|
|
$(CC) -c $(srcdir)/mloop-compact.c $(ALL_CFLAGS) -DWANT_ISA_COMPACT
|
|
|
|
mloop-media.o: mloop-media.c sem-media-switch.c $(SH64_INCLUDE_DEPS)
|
|
$(CC) -c $(srcdir)/mloop-media.c $(ALL_CFLAGS) -DWANT_ISA_MEDIA
|
|
|
|
cpu.o: $(srcdir)/cpu.c $(SH64_INCLUDE_DEPS)
|
|
|
|
decode-compact.o: decode-compact.c $(SH64_INCLUDE_DEPS)
|
|
$(CC) -c $(srcdir)/decode-compact.c $(ALL_CFLAGS) -DWANT_ISA_COMPACT
|
|
|
|
sem-compact.o: sem-compact.c $(SH64_INCLUDE_DEPS)
|
|
$(CC) -c $(srcdir)/sem-compact.c $(ALL_CFLAGS) -DWANT_ISA_COMPACT
|
|
|
|
decode-media.o: decode-media.c $(SH64_INCLUDE_DEPS)
|
|
$(CC) -c $(srcdir)/decode-media.c $(ALL_CFLAGS) -DWANT_ISA_MEDIA
|
|
|
|
sem-media.o: sem-media.c $(SH64_INCLUDE_DEPS)
|
|
$(CC) -c $(srcdir)/sem-media.c $(ALL_CFLAGS) -DWANT_ISA_MEDIA
|
|
|
|
sh64-clean:
|
|
rm -f tmp-*
|
|
rm -f stamp-defs-{compact,media}
|
|
rm -f stamp-arch stamp-desc stamp-cpu stamp-decode-{compact,media}
|
|
|
|
# cgen support, enable with --enable-cgen-maint
|
|
CGEN_MAINT = ; @true
|
|
# The following line is commented in or out depending upon --enable-cgen-maint.
|
|
@CGEN_MAINT@CGEN_MAINT =
|
|
|
|
# Utility rules for humans.
|
|
.PHONY: stamp-all stamp-decode stamp-defs
|
|
stamp-all: stamp-arch stamp-desc stamp-cpu stamp-decode stamp-defs
|
|
stamp-decode: stamp-decode-compact stamp-decode-media
|
|
stamp-defs: stamp-defs-compact stamp-defs-media
|
|
|
|
# NOTE: Generated source files are specified as full paths,
|
|
# e.g. $(srcdir)/arch.c, because make may decide the files live
|
|
# in objdir otherwise.
|
|
|
|
stamp-arch: $(CGEN_READ_SCM) $(CGEN_ARCH_SCM) $(CGEN_CPU_DIR)/sh.cpu $(CGEN_CPU_DIR)/sh.opc $(CGEN_CPU_DIR)/sh64-media.cpu $(CGEN_CPU_DIR)/sh64-compact.cpu $(CGEN_CPU_DIR)/sh-sim.cpu Makefile
|
|
$(MAKE) cgen-arch $(CGEN_FLAGS_TO_PASS) mach=all isa=compact,media archfile=$(CGEN_CPU_DIR)/sh.cpu \
|
|
FLAGS="with-scache"
|
|
touch $@
|
|
$(srcdir)/arch.h $(srcdir)/arch.c $(srcdir)/cpuall.h: $(CGEN_MAINT) stamp-arch
|
|
@true
|
|
|
|
stamp-desc: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(CGEN_CPU_DIR)/sh.cpu $(CGEN_CPU_DIR)/sh.opc $(CGEN_CPU_DIR)/sh64-compact.cpu $(CGEN_CPU_DIR)/sh64-media.cpu $(CGEN_CPU_DIR)/sh-sim.cpu Makefile
|
|
$(MAKE) cgen-desc $(CGEN_FLAGS_TO_PASS) cpu=sh64 mach=all isa=compact,media archfile=$(CGEN_CPU_DIR)/sh.cpu
|
|
touch $@
|
|
$(srcdir)/sh-desc.h $(srcdir)/sh-desc.c $(srcdir)/sh-opc.h: $(CGEN_MAINT) stamp-desc
|
|
@true
|
|
|
|
stamp-cpu: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(CGEN_CPU_DIR)/sh.cpu $(CGEN_CPU_DIR)/sh.opc $(CGEN_CPU_DIR)/sh64-compact.cpu $(CGEN_CPU_DIR)/sh64-media.cpu $(CGEN_CPU_DIR)/sh-sim.cpu Makefile
|
|
$(MAKE) cgen-cpu $(CGEN_FLAGS_TO_PASS) \
|
|
cpu=sh64 mach=sh4,sh5 isa=compact,media FLAGS="with-multiple-isa with-scache" archfile=$(CGEN_CPU_DIR)/sh.cpu
|
|
rm -f $(srcdir)/model.c
|
|
touch $@
|
|
$(srcdir)/cpu.h $(srcdir)/cpu.c: $(CGEN_MAINT) stamp-cpu
|
|
@true
|
|
|
|
stamp-defs-compact: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(CGEN_CPU_DIR)/sh.cpu $(CGEN_CPU_DIR)/sh.opc $(CGEN_CPU_DIR)/sh64-compact.cpu $(CGEN_CPU_DIR)/sh-sim.cpu Makefile
|
|
$(MAKE) cgen-defs $(CGEN_FLAGS_TO_PASS) \
|
|
cpu=sh64 mach=sh5 isa=compact FLAGS="with-scache" SUFFIX="-compact" archfile=$(CGEN_CPU_DIR)/sh.cpu
|
|
touch $@
|
|
$(srcdir)/defs-compact.h: $(CGEN_MAINT) stamp-defs-compact
|
|
@true
|
|
|
|
stamp-defs-media: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(CGEN_CPU_DIR)/sh.cpu $(CGEN_CPU_DIR)/sh.opc $(CGEN_CPU_DIR)/sh64-media.cpu $(CGEN_CPU_DIR)/sh-sim.cpu Makefile
|
|
$(MAKE) cgen-defs $(CGEN_FLAGS_TO_PASS) \
|
|
cpu=sh64 mach=sh5 isa=media FLAGS="with-scache" SUFFIX="-media" archfile=$(CGEN_CPU_DIR)/sh.cpu
|
|
touch $@
|
|
$(srcdir)/defs-media.h: $(CGEN_MAINT) stamp-defs-media
|
|
|
|
stamp-decode-compact: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(CGEN_DECODE_SCM) $(CGEN_CPU_DIR)/sh.cpu $(CGEN_CPU_DIR)/sh.opc $(CGEN_CPU_DIR)/sh64-compact.cpu $(CGEN_CPU_DIR)/sh-sim.cpu Makefile
|
|
$(MAKE) cgen-decode $(CGEN_FLAGS_TO_PASS) \
|
|
cpu=sh64 mach=sh5 isa=compact FLAGS="with-scache" SUFFIX="-compact" EXTRAFILES="$(CGEN_CPU_SEM) $(CGEN_CPU_SEMSW)" \
|
|
archfile=$(CGEN_CPU_DIR)/sh.cpu
|
|
touch $@
|
|
$(srcdir)/sem-compact.c $(srcdir)/sem-compact-switch.c $(srcdir)/decode-compact.c $(srcdir)/decode-compact.h: $(CGEN_MAINT) stamp-decode-compact
|
|
@true
|
|
|
|
stamp-decode-media: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(CGEN_DECODE_SCM) $(CGEN_CPU_DIR)/sh.cpu $(CGEN_CPU_DIR)/sh.opc $(CGEN_CPU_DIR)/sh64-media.cpu $(CGEN_CPU_DIR)/sh-sim.cpu Makefile
|
|
$(MAKE) cgen-decode $(CGEN_FLAGS_TO_PASS) \
|
|
cpu=sh64 mach=sh5 isa=media FLAGS="with-scache" SUFFIX="-media" EXTRAFILES="$(CGEN_CPU_SEM) $(CGEN_CPU_SEMSW)" \
|
|
archfile=$(CGEN_CPU_DIR)/sh.cpu
|
|
touch $@
|
|
$(srcdir)/sem-media.c $(srcdir)/sem-media-switch.c $(srcdir)/decode-media.c $(srcdir)/decode-media.h: $(CGEN_MAINT) stamp-decode-media
|
|
@true
|