MODEL=model
GEN_MODEL=gen
FICKLE=fickle
OUT=out.tina
TINA_FLAGS=-q
TINA_FICKLE=tina-dyn

basic: preprocess $(GEN_MODEL)

all: basic preall $(GEN_MODEL)02 $(GEN_MODEL)03 $(GEN_MODEL)05 $(GEN_MODEL)10 $(GEN_MODEL)15 

preprocess:
	gpp $(MODEL).fcr > $(GEN_MODEL).fcr
	gpp $(FICKLE).c > $(GEN_MODEL).c

preall:
	gpp -DTASK_COUNT=2 $(MODEL).fcr > $(GEN_MODEL)02.fcr
	gpp -DTASK_COUNT=2  $(FICKLE).c > $(GEN_MODEL)02.c

	gpp -DTASK_COUNT=3 $(MODEL).fcr > $(GEN_MODEL)03.fcr
	gpp -DTASK_COUNT=3 $(FICKLE).c > $(GEN_MODEL)03.c

	gpp -DTASK_COUNT=5 $(MODEL).fcr > $(GEN_MODEL)05.fcr
	gpp -DTASK_COUNT=5 $(FICKLE).c > $(GEN_MODEL)05.c

	gpp -DTASK_COUNT=10 $(MODEL).fcr > $(GEN_MODEL)10.fcr
	gpp -DTASK_COUNT=10 $(FICKLE).c > $(GEN_MODEL)10.c

	gpp -DTASK_COUNT=15 $(MODEL).fcr > $(GEN_MODEL)15.fcr
	gpp -DTASK_COUNT=15 $(FICKLE).c > $(GEN_MODEL)15.c

stats:
	$(TINA_FICKLE) $(TINA_FLAGS) $(GEN_MODEL).tts >> $(OUT)
stats2:
	$(TINA_FICKLE) $(TINA_FLAGS) $(GEN_MODEL)02.tts >> $(OUT)
stats3:
	$(TINA_FICKLE) $(TINA_FLAGS) $(GEN_MODEL)03.tts >> $(OUT)
stats5:
	$(TINA_FICKLE) $(TINA_FLAGS) $(GEN_MODEL)05.tts >> $(OUT)
stats10:
	$(TINA_FICKLE) $(TINA_FLAGS) $(GEN_MODEL)10.tts >> $(OUT)
stats15:
	$(TINA_FICKLE) $(TINA_FLAGS) $(GEN_MODEL)15.tts >> $(OUT)

statsall: stats2 stats3 stats5 stats10 stats15

%: %.fcr
	frac $@.fcr $@.tts
	echo "#include \"../$(@).c\"" >> $@.tts/$@.c	
	$(MAKE) -f $(FRAC_MAKEFILE) $@

.PHONY: $(GEN_MODEL).fcr $(GEN_MODEL)02.fcr $(GEN_MODEL)03.fcr $(GEN_MODEL)05.fcr $(GEN_MODEL)10.fcr $(GEN_MODEL)15.fcr 

clean:
	rm -rf *~ $(GEN_MODEL)*.fcr $(GEN_MODEL)*.tts $(OUT) $(GEN_MODEL)*.c $(GEN_MODEL)*.ktz
