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

# Use pylint 2.13.9
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
