1
0
mirror of https://github.com/mist-devel/mist-board.git synced 2026-02-05 23:54:41 +00:00
Files
mist-devel.mist-board/tests/tg68k/Makefile
2016-01-23 21:09:31 +01:00

88 lines
2.3 KiB
Makefile

CODE = tests/testsuite
TG68K_RUN = tg68k_run
M68K_RUN = m68k_run
SRCS = TG68K_ALU.vhd TG68K_Pack.vhd TG68KdotC_Kernel.vhd $(TG68K_RUN).vhd mem_if.vhd
OBJS = $(SRCS:.vhd=.o) mem_if_c.o mem.o
GHW = $(TG68K_RUN).ghw
TOOLS=../../tools
ZIP = tg68k_run.zip
PATCH = tg68k.patch
M68K_RUN_OBJS = $(M68K_RUN).o mem.o m68kcpu.o m68kops.o m68kopnz.o m68kopac.o m68kopdm.o
RND = randomize
all: $(M68K_RUN) $(TG68K_RUN) $(RND)
TG68KdotC_Kernel.o: TG68K_Pack.o
TG68K_ALU.o: TG68K_Pack.o
tg68k_run.o: mem_if.o
%.o: %.vhd # work-obj93.cf
ghdl -a --ieee=synopsys -fexplicit $<
work-obj93.cf: $(SRCS)
ghdl -i $(SRCS)
$(TG68K_RUN): $(OBJS) mem_if_c.o mem.o
ghdl -e -Wl,mem_if_c.o -Wl,mem.o --ieee=synopsys -fexplicit $@
%.o: Musashi/%.c
gcc -o $@ -c $<
m68kcpu.o: Musashi/m68kops.h
Musashi/m68kops.c: Musashi/m68kops.h
Musashi/m68kopnz.c: Musashi/m68kops.h
Musashi/m68kopdm.c: Musashi/m68kops.h
Musashi/m68kopac.c: Musashi/m68kops.h
$(CODE).bin: $(CODE).s tests/bcd.s tests/bfxxx.s tests/cmpi_d16_pc.s tests/pack.s tests/trace.s tests/magic.s
Musashi/m68kops.h: Musashi/m68kmake Musashi/m68k_in.c
cd Musashi; ./m68kmake
$(M68K_RUN): $(M68K_RUN_OBJS)
gcc -o $(M68K_RUN) $(M68K_RUN_OBJS)
test: $(M68K_RUN) $(CODE).bin
./$(M68K_RUN) $(CODE).bin
vtest: $(TG68K_RUN) $(CODE).bin
TG68K_BIN=$(CODE).bin ./$(TG68K_RUN) --ieee-asserts=disable --wave=$(GHW)
clean::
rm -f work-obj93.cf *.o Musashi/m68kop* $(CODE).bin *~ *.lst *.ghw $(TG68K_RUN) ghwreplay Musashi/m68kmake $(M68K_RUN)
$(GHW): $(TG68K_RUN) Makefile
ghdl -r $< --ieee-asserts=disable --stop-time=20000ns --wave=$@
disasm: $(CODE).bin
$(TOOLS)/m68kdis/m68kdis -020 $(CODE).bin
cat `basename $(CODE).bin.s`
%.tg68k.result: %.bin $(TG68K_RUN)
RESULT=$@ TG68K_BIN=$< ./$(TG68K_RUN) --ieee-asserts=disable --wave=$(GHW)
%.musashi.result: %.bin $(M68K_RUN)
RESULT=$@ ./$(M68K_RUN) $<
%.compare: %.tg68k.result %.musashi.result
diff $*.tg68k.result $*.musashi.result
%.disasm: %.bin
$(TOOLS)/m68kdis/m68kdis -020 $<
cat `basename $<.s`
view: $(GHW)
gtkwave $< $(TG68K_RUN).sav
%.bin: %.s
$(TOOLS)/vasm/vasmm68k_mot -m68020 -Fbin -no-opt -o $@ -L $(CODE).lst -nosym $<
hexdump -C $@
zip::
make clean
make patch
zip -r $(ZIP) *.c *.h *.vhd $(CODE).s Makefile *.sav orig Musashi
patch::
for i in orig/*.vhd ; do diff -Nbaur $$i `basename $$i`; done >$(PATCH) | true