
SRC = *.vhd

TESTBENCH_ENTITY = testbench
GHDL_OPTIONS = --std=93c
# --ieee=synopsys

STOPTIME = --stop-time=500ns
WAVEFILE = wave.ghw



all: syntax analysis elaborate run wave



syntax: $(SRC)
	@echo Syntax-check
	ghdl -s $(GHDL_OPTIONS) $(SRC)


analysis: $(SRC)
	@echo Analysis
	ghdl -a $(GHDL_OPTIONS) $(SRC)


elaborate:
	@echo Elabortation
	ghdl -e $(GHDL_OPTIONS) $(TESTBENCH_ENTITY)

run: $(TESTBENCH_ENTITY)
	@echo Run: run the simulation
	ghdl -r $(GHDL_OPTIONS) $(TESTBENCH_ENTITY) $(STOPTIME) --wave=$(WAVEFILE)
#ghdl -r $OBJECT --wave=wave.ghw

wave: $(WAVEFILE)
	gtkwave $(WAVEFILE) -a wave.sav



clean:
	@echo Clean: remove generated files
	ghdl --clean
	rm -f work-obj93.cf
	rm -f $(WAVEFILE)


# Targets die stets neu erzeugt werden sollen
.PHONY : clean
