1 # Makefile for the disassembler regression tests
9 MKDIR = mkdir $(subst /,\,$1)
10 RMDIR = -rmdir /s /q $(subst /,\,$1)
11 DEL = del /f $(subst /,\,$1)
19 CL65 := $(if $(wildcard ../../bin/cl65*),../../bin/cl65,cl65)
20 DA65 := $(if $(wildcard ../../bin/da65*),../../bin/da65,da65)
22 WORKDIR = ../../testwrk/dasm
24 DIFF = $(WORKDIR)/bdiff$(EXE)
29 START = --start-addr 0x8000
33 SOURCES := $(wildcard *.s)
34 CPUS = $(foreach src,$(SOURCES),$(src:%-disass.s=%))
35 BINS = $(foreach cpu,$(CPUS),$(WORKDIR)/$(cpu)-reass.bin)
37 # default target defined later
41 $(call MKDIR,$(WORKDIR))
43 $(DIFF): ../bdiff.c | $(WORKDIR)
44 $(CC) $(CFLAGS) -o $@ $<
46 define DISASS_template
48 $(WORKDIR)/$1-disass.bin: $1-disass.s | $(WORKDIR)
49 $(CL65) --cpu $1 -t none $(START) -o $$@ $$<
51 $(WORKDIR)/$1-reass.s: $(WORKDIR)/$1-disass.bin
52 $(DA65) --cpu $1 $(START) -o $$@ $$<
54 $(WORKDIR)/$1-reass.bin: $(WORKDIR)/$1-reass.s $(DIFF)
55 $(CL65) --cpu $1 -t none $(START) -o $$@ $$<
56 $(DIFF) $$@ $(WORKDIR)/$1-disass.bin
58 endef # DISASS_template
60 $(foreach cpu,$(CPUS),$(eval $(call DISASS_template,$(cpu))))
63 @$(call RMDIR,$(WORKDIR))
64 @$(call DEL,$(SOURCES:.s=.o))