GHDL ?= ghdl
OUTPUT ?= fst

# Analyze a vhdl file
%.a: %.vhd
	$(GHDL) -a $<

# Run the TestBench
%_tb: %
	$(GHDL) -r $@ --$(OUTPUT)=$@.$(OUTPUT) --stop-time=$(LENGTH)

clean:
	-rm *.vcd *.wave *.fst 2>/dev/null
	-rm work-obj*.cf
.PHONY: clean

SaturatingCounter: sat_counter.a
SaturatingCounter_tb: export LENGTH=80ns
SaturatingCounter_tb: sat_counter_tb.a

TwoLevelPredictor: SaturatingCounter 2lvl_pred.a
TwoLevelPredictor_tb: export LENGTH=500ns
TwoLevelPredictor_tb: 2lvl_pred_tb.a
