8ae0eb239a
Public demo of Factory 4 Life project management: - Gate definitions S0 (spec), S1 (build), S2 (integration), S3 (production ready) - Hardware project template with PlatformIO, KiCad CI, and Makefile for fab packages - JSON schema for .kill-life.yaml manifest - CLI scripts: create-project, validate-gates, dashboard with color-coded status output - Example project: led-controller (S0+S1 passed, S2 in progress)
33 lines
1.1 KiB
Makefile
33 lines
1.1 KiB
Makefile
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
|