BIN6502 = ${HOME}/6502
BINCOM = ${HOME}/compress
INPUT = ../input

CC65BINDIR = $(BIN6502)/apps/cc/install/bin
CC = $(CC65BINDIR)/cc65
AS = $(CC65BINDIR)/ca65
LD = $(CC65BINDIR)/ld65

BU6502CFG = ../bu6502.cfg
BU6502LIB = ../bu6502.lib

data: data-fibiter-bu6502
trace: fibiter-bu6502.svtrace.com
img: fibiter-bu6502.img
.PHONY: data trace img

######

data-fibiter-bu6502: fibiter-bu6502.svtrace.com $(BINCOM)/tools/comstats6502
	$(BINCOM)/tools/comstats6502 <$< 3>fibiter-bu6502.hist 4>fibiter-bu6502.seq 5>fibiter-bu6502.pat 6>/dev/null

fibiter-bu6502.svtrace.com: fibiter-bu6502.img $(BIN6502)/6502 $(BINCOM)/com6502
	/usr/bin/time -o fibiter-bu6502.time $(BIN6502)/6502 -t sv -o /dev/stdout -p fibiter-bu6502.stdout $< fibiter-bu6502.oimg <$(INPUT) 2>fibiter-bu6502.stderr | $(BINCOM)/com6502 >$@ 2>$@.info

fibiter-bu6502.img: fibiter-bu6502.o ${BU6502CFG} ${BU6502LIB}
	$(LD) -o $@ -C ${BU6502CFG} $< ${BU6502LIB} -m fibiter-bu6502.map

fibiter-bu6502.o: fibiter-bu6502.s
	$(AS) --cpu 6502 $< -l fibiter-bu6502.lst

fibiter-bu6502.s: fibiter-bu6502.c
	$(CC) -D__6502__ -t none -O -Oi --cpu 6502 $<

######

clean:
	-rm -rf *.s *.o *.lst *.map *.img *.oimg *.stdout *.stderr *trace.com* *.time *~ 6502.trc.bin