Files
life-project-example/templates/hardware-project/Makefile
T
electron 8ae0eb239a feat: public example of life-project gates system
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)
2026-04-07 15:39:30 +02:00

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