# Makefile for blah ... # Copyright blah ... ## COMMON_PRE_CONFIG_FRAG # These variables are given default values in COMMON_PRE_CONFIG_FRAG. # We override the ones we need to here. # Not all of these need to be mentioned, only the necessary ones. # List of object files, less common parts. SIM_OBJS = \ $(SIM_NEW_COMMON_OBJS) \ support.o idecode.o semantics.o itable.o misc.o \ sim-engine.o \ sim-calls.o \ sim-hload.o \ sim-hrw.o \ sim-reason.o \ sim-resume.o \ sim-run.o \ sim-stop.o \ # List of extra dependencies. # Generally this consists of simulator specific files included by sim-main.h. SIM_EXTRA_DEPS = itable.h idecode.h cpu.h alu.h # List of extra libraries to link with SIM_EXTRA_LIBS = -lm # List of generators SIM_GEN=tmp-igen # List of flags to always pass to $(CC). SIM_EXTRA_CFLAGS = \ -DWITH_TARGET_WORD_MSB=31 # List of main object files for `run'. SIM_RUN_OBJS = nrun.o # Dependency of `clean' to clean any extra files. SIM_EXTRA_CLEAN = clean-igen ## COMMON_POST_CONFIG_FRAG # Rules need to build $(SIM_OBJS), plus whatever else the target wants. # ... target specific rules ... BUILT_SRC_FROM_IGEN = \ icache.h \ icache.c \ idecode.h \ idecode.c \ semantics.h \ semantics.c \ model.h \ model.c \ support.h \ support.c \ itable.h itable.c $(BUILT_SRC_FROM_IGEN): tmp-igen # .PHONY: clean-igen clean-igen: rm -f $(BUILT_SRC_FROM_IGEN) rm -f tmp-igen tmp-insns ../igen/igen: cd ../igen && $(MAKE) tmp-igen: $(srcdir)/tic80.dc $(srcdir)/tic80.igen $(srcdir)/tic80.ic ../igen/igen cd ../igen && $(MAKE) ../igen/igen \ -F f \ -G direct-access \ -G delayed-branch \ -G zero-r0 \ -F short,emul \ -B 32 -H 31 \ -o $(srcdir)/tic80.dc \ -k $(srcdir)/tic80.ic \ -i $(srcdir)/tic80.igen \ -n icache.h -hc tmp-icache.h \ -n icache.c -c tmp-icache.c \ -n semantics.h -hs tmp-semantics.h \ -n semantics.c -s tmp-semantics.c \ -n idecode.h -hd tmp-idecode.h \ -n idecode.c -d tmp-idecode.c \ -n model.h -hm tmp-model.h \ -n model.c -m tmp-model.c \ -n support.h -hf tmp-support.h \ -n support.c -f tmp-support.c \ -n itable.h -ht tmp-itable.h \ -n itable.c -t tmp-itable.c $(srcdir)/../../move-if-change tmp-icache.h icache.h $(srcdir)/../../move-if-change tmp-icache.c icache.c $(srcdir)/../../move-if-change tmp-idecode.h idecode.h $(srcdir)/../../move-if-change tmp-idecode.c idecode.c $(srcdir)/../../move-if-change tmp-semantics.h semantics.h $(srcdir)/../../move-if-change tmp-semantics.c semantics.c $(srcdir)/../../move-if-change tmp-model.h model.h $(srcdir)/../../move-if-change tmp-model.c model.c $(srcdir)/../../move-if-change tmp-support.h support.h $(srcdir)/../../move-if-change tmp-support.c support.c $(srcdir)/../../move-if-change tmp-itable.h itable.h $(srcdir)/../../move-if-change tmp-itable.c itable.c touch tmp-igen ENGINE_H = \ sim-main.h \ $(srcdir)/../common/sim-basics.h \ config.h \ $(srcdir)/../common/sim-config.h \ $(srcdir)/../common/sim-inline.h \ $(srcdir)/../common/sim-types.h \ $(srcdir)/../common/sim-bits.h \ $(srcdir)/../common/sim-endian.h \ $(srcdir)/../common/sim-options.h \ itable.h \ idecode.h \ cpu.h \ alu.h \ $(srcdir)/../common/sim-alu.h \ $(srcdir)/../common/sim-core.h \ $(srcdir)/../common/sim-events.h \ $(srcdir)/../common/sim-fpu.h \ $(srcdir)/../common/sim-engine.h \ idecode.o: $(ENGINE_H) semantics.o: $(ENGINE_H) support.o: $(ENGINE_H) interp.o: interp.c $(ENGINE_H) sim-calls.o: sim-calls.c $(ENGINE_H) cpu.o: cpu.c $(ENGINE_H) misc.o: $(ENGINE_H)