SIM_TOP = small1_tb
ZEALOT = zpu/zpu/hdl/zealot

all: zpu $(SIM_TOP)

LIBDEPS = zpu zpu-obj93.cf
ifndef WORKDIR
	WORKDIR = work
endif

GHDL_FLAGS += --workdir=$(WORKDIR)

zpu:
	git clone git://repo.or.cz/zpu.git

$(WORKDIR)/work-obj93.cf: $(PROJECTFILES)
	ghdl -i $(GHDL_FLAGS) $(PROJECTFILES)

$(WORKDIR):
	mkdir $(WORKDIR)

$(SIM_TOP): $(WORKDIR) $(WORKDIR)/work-obj93.cf $(PROJECTFILES) $(LIBDEPS)
	ghdl -m $(GHDL_LDFLAGS) $(GHDL_FLAGS) $(SIM_TOP)

zpu-obj93.cf:
	ghdl -i --work=zpu $(ZEALOT)/*.vhdl
	ghdl -i --work=zpu $(ZEALOT)/roms/*.vhdl
	ghdl -i --work=zpu $(ZEALOT)/helpers/*.vhdl
	ghdl -i --work=zpu $(ZEALOT)/devices/*.vhdl


GHDL_LIBFLAGS = -P.

PROJECTFILES = $(ZEALOT)/testbenches/small1_tb.vhdl
PROJECTFILES += $(ZEALOT)/zpu_small.vhdl
PROJECTFILES += $(ZEALOT)/helpers/zpu_small1.vhdl
PROJECTFILES += $(ZEALOT)/roms/rom_pkg.vhdl
PROJECTFILES += $(ZEALOT)/roms/hello_dbram.vhdl

clean:
	rm -fr $(WORKDIR)
	rm -f $(SIM_TOP)
	rm -f test.ghw
	rm -f zpu-obj93.cf
	rm -f *.log *.o


