-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
78 lines (68 loc) · 2.01 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
.DEFAULT_GOAL := help
.PHONY: bom test step pdf pos clean
GIT_HASH = $(shell git rev-parse --short HEAD)
PROJECT_NAME = pedalboard-soundcard
test: ## Run ERC and DRC checks
mkdir -p out
kicad-cli sch erc \
--define-var GIT_HASH=$(GIT_HASH) \
--output out/erc.rpt \
--severity-warning \
--severity-error \
--exit-code-violations \
$(PROJECT_NAME).kicad_sch
kicad-cli pcb drc \
--schematic-parity \
--define-var GIT_HASH=$(GIT_HASH) \
--output out/drc.rpt \
--severity-error \
--severity-warning \
--exit-code-violations \
$(PROJECT_NAME).kicad_pcb
step: ## export 3D model
mkdir -p out
kicad-cli pcb export step \
--define-var GIT_HASH=$(GIT_HASH) \
--output out/$(PROJECT_NAME).step \
--subst-models \
--force \
$(PROJECT_NAME).kicad_pcb
pdf: ## export PDF (schematic and PCB)
mkdir -p out
kicad-cli pcb export pdf \
--define-var GIT_HASH=$(GIT_HASH) \
--output out/$(PROJECT_NAME)-pcb-front.pdf \
--layers F.Cu \
$(PROJECT_NAME).kicad_pcb
kicad-cli pcb export pdf \
--define-var GIT_HASH=$(GIT_HASH) \
--output out/$(PROJECT_NAME)-pcb-back.pdf \
--layers B.Cu \
$(PROJECT_NAME).kicad_pcb
kicad-cli sch export pdf \
--define-var GIT_HASH=$(GIT_HASH) \
--output out/$(PROJECT_NAME)-schematic.pdf \
$(PROJECT_NAME).kicad_sch
bom: ## export BOM
mkdir -p out
kicad-cli sch export bom \
--preset "pedalboard" \
--output out/$(PROJECT_NAME)-bom.csv \
$(PROJECT_NAME).kicad_sch
../dotgithub/scripts/bon2inventree out/$(PROJECT_NAME)-bom.csv out/$(PROJECT_NAME)-inventree-bom.csv
pos: ## export Position file
mkdir -p out
kicad-cli pcb export pos \
--output out/$(PROJECT_NAME).pos \
--format ascii \
--side front \
--units mm \
--smd-only \
$(PROJECT_NAME).kicad_pcb
clean:
rm -rf out
panel: ## panelize the project
mkdir -p out/panel
kikit panelize -p panel.json $(PROJECT_NAME).kicad_pcb out/panel/panel.kicad_pcb
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'