include common.mk

.DEFAULT_GOAL := all
all: $(OUT_PACKAGES)/FBInstruction/Instruction.py

# flatc actually generates two files, Instruction.py and Instructions.py. make
# 4.3 supports `&:` for multiple targets, but it's probably not wise to depend
# on such a new version of make, so instead we use Instruction.py as a sentinel
# for both files.
$(OUT_PACKAGES)/FBInstruction/Instruction.py: config/instruction.fbs | $(OUT_PACKAGES)
	$(FLATC) -o $(OUT_PACKAGES) --python $<

$(OUT_PACKAGES):
	mkdir -p $@

# Regenerate the pipe-maps for RISC-V, based on the opcodes from the
# riscv-opcodes repo. The associated pipes are copied from the old json file.
RISCV_EXTS := $(shell find $(ROOTDIR)/toolchain/riscv-opcodes -maxdepth 1 -name 'opcodes-*' -printf '%f\n' | cut -d- -f2-)
riscv_pipe_maps: $(RISCV_EXTS:%=pipe_maps/riscv/%.json)
.PHONY: riscv_pipe_maps

pipe_maps/riscv/%.json: $(ROOTDIR)/toolchain/riscv-opcodes/opcodes-%
	$(PYTHON) $(IMPORT_RISCV_OPCODES) $(if $(wildcard $@),-m $@) -n $@.new $<
	mv $@.new $@

requirements.txt:
	pip list --format=freeze --local --not-required --exclude=pip --exclude=setuptools > $@
.PHONY: requirements.txt

lint:
	$(PYLINT) tbm/*.py
.PHONY:lint

type-check:
	$(PYTYPE) tbm/tbm.py tbm/gentrace-spike.py tbm/merge-counters.py
.PHONY: type-check

# After running pytype you can merge the inferred types into the .py files.
# `make merge-pyi` will merge to all files.
# `make merge-pyi-<module>` will merge only to module.
define merge-pyi
merge-pyi-$(1):
	$(MERGE_PYI) -i $(2) $(3)
.PHONY: merge-pyi-$(1)
merge-pyi: merge-pyi-$(1)
endef
.PHONY: merge-pyi

$(foreach py,$(wildcard tbm/*.py),\
	$(eval name = $(basename $(notdir $(py))))\
	$(eval pyi = .pytype/pyi/$(name).pyi)\
	$(if $(wildcard $(pyi)),\
		$(eval $(call merge-pyi,$(name),$(py),$(pyi)))))

clean:
	$(RM) $(OUT_PACKAGES)/FBInstruction/Instruction.py
	$(RM) $(OUT_PACKAGES)/FBInstruction/Instructions.py
	$(RM) -r __pycache__
	$(RM) -r .pytype
.PHONY: clean
