DATAPATH = data/$(DATA)
NTCU ?= 1024
OUT = bw_$(DATA)

.PHONY: sim
sim: $(OUT).sim
	xmtsim -cycle -conf 1024 $(OUT).sim -binload $(OUT).b

.PHONY: clean
clean:
	rm -f *.p *.b *.sim *.log
	cd lib && make clean

lib/sum.p: lib/sum.c
	cd lib && make

blocksort.p: blocksort.c lib/sum.p
	xmtcc -q -O2 -nTcus $(NTCU) -sim $^ -c

mtf.p: mtf.c
	xmtcc -q -O2 -nTcus $(NTCU) -sim $^ -c

$(OUT).sim: bw.c mtf.p blocksort.p lib/sum.p lib/kheap.p lib/bitstream.p lib/listrank.p lib/arith.p lib/rand1m2.xbo lib/fi.p
	xmtcc -q -O2 -nTcus $(NTCU) -sim -o $(OUT) $^ -include $(DATAPATH).h $(DATAPATH).xbo -loop-pref
