include $(NOODLYBOX_HOME)/etc/makerule

CPROGRAM=accessfpga
TOP_UNIT=tSAMPLEFPGA

FSMARGS=-l $(HDL) -c ../c/$(CPROGRAM)

all : $(TOP_UNIT).prj s

clean :
	-rm -rf isim isim.tmp_save
	-rm -f  *.log *.log_back *.xwv *.wdb *.wcfg *$(DOTEXE) *.prj s

makefile : ../isesim_makefile
	cd .. && $(MAKE) $(notdir $(PWD))/$@

s :
	echo 'source ../../tcl/s.tcl' > $@

package-vhdl :
	cd .. && $(MAKE) package-vhdl

$(TOP_UNIT).prj : ../create_project.tcl $(PACKAGE_VHDL) ../rtl/MAINDCM.$(HDLEXT)
	xtclsh $< isesim $(HDL) > $@

../c/$(CPROGRAM)$(DOTEXE) :
	cd ../c && $(MAKE)

$(CPROGRAM).xwv : $(TOP_UNIT)$(DOTEXE) ../c/$(CPROGRAM)$(DOTEXE)
	FSMARGS="$(FSMARGS)" ./$< -tclbatch $(NOODLYBOX_HOME)/tcl/fsm.tcl -wavefile $@

fsm.wcfg : $(TOP_UNIT)$(DOTEXE) ../c/$(CPROGRAM)$(DOTEXE)
	echo "isim set radix hex; wave add -wcfg fsm.wcfg -r /; quit" > x.tcl
	FSMARGS="$(FSMARGS)" ./$< -gui -tclbatch x.tcl -wdb $(CPROGRAM).wdb
	rm x.tcl $(CPROGRAM).wdb

$(CPROGRAM).wdb : $(TOP_UNIT)$(DOTEXE) ../c/$(CPROGRAM)$(DOTEXE)
	runrun.sh | FSMARGS="$(FSMARGS)" ./$< -tclbatch $(NOODLYBOX_HOME)/tcl/fsm.tcl -wdb $@

ifdef NO_ISIMWAVE
view : fsm.wcfg $(CPROGRAM).wdb
	isimgui -wcfg fsm.wcfg
else
view : $(CPROGRAM).xwv
	isimwave $<
endif
