# risc-v-gsp-rm-debugger convenience targets. The real work lives in the package.
PYTHON ?= python3
FW ?= ../../firmware/57X-GSP/570.144/gsp-570.144.fwimage.bin
OUT ?= dumps/triage
TRIAGE_ARGS ?=

.PHONY: all demo test demo-run plugin probe-real clean info config-sanity triage

all: demo sdk

demo:
	$(MAKE) -C firmware/uproc_demo

sdk:
	$(MAKE) -C sdk

test: demo config-sanity
	$(PYTHON) -m unittest discover -s tests -t .

# GreenEye-GPGPU-Sim TU104 scaffold config consistency (no build required).
config-sanity:
	$(PYTHON) gpgpu-sim/scripts/config_sanity.py

demo-run: demo
	./risc-v-gsp-rm-debugger.sh demo --no-build

info:
	./risc-v-gsp-rm-debugger.sh info

# Optional TCG plugin (needs the QEMU plugin headers; see qemu/README.md).
plugin:
	$(MAKE) -C qemu

# Run the real GSP fwimage for a bounded window and report first divergence.
probe-real:
	./risc-v-gsp-rm-debugger.sh probe

# One-command new-version triage (docs/40); override FW/OUT/TRIAGE_ARGS as needed.
triage:
	$(PYTHON) harness/triage.py --firmware $(FW) --out $(OUT) $(TRIAGE_ARGS)

clean:
	$(MAKE) -C firmware/uproc_demo clean
	$(MAKE) -C sdk clean
	rm -rf dumps/* qemu/*.so qemu/*.o
	find . -name __pycache__ -type d -exec rm -rf {} + 2>/dev/null || true
