PROJECT_DIR := hardware/pcb
TS ?= $(shell date +%Y%m%d-%H%M%S)
REL := releases/$(TS)

.PHONY: kicad-check kicad-fab firmware-build

kicad-check:
	@command -v kicad-cli >/dev/null || (echo "kicad-cli manquant" && exit 1)
	@for sch in $$(find $(PROJECT_DIR) -name '*.kicad_sch' -not -path '*/libs/*'); do \
		echo "--- ERC: $$sch ---"; \
		kicad-cli sch erc "$$sch"; \
	done
	@for pcb in $$(find $(PROJECT_DIR) -name '*.kicad_pcb'); do \
		echo "--- DRC: $$pcb ---"; \
		kicad-cli pcb drc "$$pcb"; \
	done

kicad-fab:
	@command -v kicad-cli >/dev/null || (echo "kicad-cli manquant" && exit 1)
	mkdir -p "$(REL)/gerbers" "$(REL)/drill" "$(REL)/bom" "$(REL)/netlist"
	@for pcb in $$(find $(PROJECT_DIR) -name '*.kicad_pcb'); do \
		kicad-cli pcb export gerbers "$$pcb" --output "$(REL)/gerbers"; \
		kicad-cli pcb export drill "$$pcb" --output "$(REL)/drill"; \
	done
	@for sch in $$(find $(PROJECT_DIR) -name '*.kicad_sch' -maxdepth 1); do \
		kicad-cli sch export bom "$$sch" --output "$(REL)/bom/bom.csv"; \
		kicad-cli sch export netlist "$$sch" --output "$(REL)/netlist/project.net"; \
	done
	@echo "Artefacts dans $(REL)"

firmware-build:
	cd firmware && pio run
