| N ?= 10 | |
| GENERATE_ARGS ?= | |
| SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) | |
| SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) | |
| export FUZDIR=$(PWD) | |
| database: build/segbits_tilegrid.tdb | |
| build/segbits_tilegrid.tdb: $(SPECIMENS_OK) | |
| $(XRAY_SEGMATCH) -o build/segbits_tilegrid.tdb $$(find build -name "segdata_tilegrid.txt") | |
| define generate = | |
| $(1)/top.v $(1)/params.csv: | |
| GENERATE_ARGS="$(GENERATE_ARGS)" bash ../fuzzaddr/generate.sh $(1) | |
| $(1)/design.bit $(1)/design.dcp: $(1)/top.v | |
| cd $(1); \ | |
| $(XRAY_VIVADO) -mode batch -source $(FUZDIR)/generate.tcl; \ | |
| test -z "$$$$(fgrep CRITICAL vivado.log)" | |
| $(1)/design.bits: $(1)/design.bit | |
| $(XRAY_BITREAD) -F $(XRAY_ROI_FRAMES) -o $$@ -z -y $$< | |
| $(1)/segdata_tilegrid.txt: $(1)/design.bits | |
| cd $(1); \ | |
| python3 $(FUZDIR)/../fuzzaddr/generate.py $(GENERATE_ARGS) > segdata_tilegrid.txt | |
| $(1)/OK: $(1)/segdata_tilegrid.txt | |
| touch $$@ | |
| endef | |
| $(foreach specimen,$(SPECIMENS),$(eval $(call generate,$(specimen)))) | |
| run: | |
| $(MAKE) clean | |
| $(MAKE) database | |
| $(MAKE) pushdb | |
| touch run.ok | |
| clean: | |
| rm -rf build | |
| .PHONY: database pushdb run clean | |