all the footprints we need are in the shared altusmetrum repo now
[hw/easymini] / Makefile
1 PROJECT=easymetrum
2 AM=../altusmetrum
3 SCHEME=$(AM)/scheme
4 NICKLE=$(AM)/nickle
5 RETAB=nickle $(NICKLE)/retab
6
7 # intentionally want to rebuild drc and bom on every invocation
8 all:    drc pcb partslist partslist.csv partslist.dk muffin-5267.pdf zip
9
10 drc: $(PROJECT).sch
11         gnetlist -L $(SCHEME) -g drc2 $(PROJECT).sch -o $(PROJECT).drc
12
13 partslist: $(PROJECT).sch
14         gnetlist -L $(SCHEME) -g bom -o $(PROJECT).tabtmp $(PROJECT).sch
15         (head -n1 $(PROJECT).tabtmp; tail -n+2 $(PROJECT).tabtmp | sort) | $(RETAB) > $@ && rm -f $(PROJECT).tabtmp
16
17 partslist.csv: $(PROJECT).sch Makefile
18         gnetlist -L $(SCHEME) -g partslistgag -o $(PROJECT).csvtmp $(PROJECT).sch
19         (head -n1 $(PROJECT).csvtmp; tail -n+2 $(PROJECT).csvtmp | sort -t \, -k 8) > $@ && rm -f $(PROJECT).csvtmp
20
21 partslist.dk: $(PROJECT).sch Makefile $(SCHEME)/gnet-partslist-bom.scm
22         gnetlist -L $(SCHEME) -g partslist-bom -Ovendor=digikey -o $@ $(PROJECT).sch
23
24 partslist.mouser: $(PROJECT).sch Makefile $(SCHEME)/gnet-partslist-bom.scm
25         gnetlist -L $(SCHEME) -g partslist-bom -Ovendor=mouser -o $@ $(PROJECT).sch
26
27 muffin-5267.pdf: partslist.csv $(AM)/glabels/muffin-5267.glabels
28         glabels-3-batch $(AM)/glabels/muffin-5267.glabels -i partslist.csv -o muffin-5267.ps && ps2pdf muffin-5267.ps && rm muffin-5267.ps
29
30 pcb:    $(PROJECT).sch project Makefile
31         gsch2pcb project
32
33 $(PROJECT).xy:  $(PROJECT).pcb
34         pcb -x bom $(PROJECT).pcb
35
36 $(PROJECT).gerb: $(PROJECT).pcb
37         rm -f *.gbr *.cnc
38         pcb -x gerber $(PROJECT).pcb
39         touch $@
40
41 zip: $(PROJECT).zip $(PROJECT)-stencil.zip $(PROJECT)-oshpark.zip
42
43 $(PROJECT).zip: $(PROJECT).gerb $(PROJECT).xy
44         rm -f $@
45         zip $@ *.gbr *.cnc *.xy
46
47 $(PROJECT)-stencil.zip: $(PROJECT).gerb
48         rm -f $@
49         zip $@ $(PROJECT).toppaste.gbr $(PROJECT).outline.gbr
50
51 $(PROJECT)-oshpark.zip: $(PROJECT).gerb
52         mv easymetrum.bottom.gbr bottom\ layer.ger
53         mv easymetrum.bottommask.gbr bottom\ solder\ mask.ger
54         mv easymetrum.bottomsilk.gbr bottom\ silk\ screen.ger
55         mv easymetrum.outline.gbr board\ outline.ger
56         mv easymetrum.top.gbr top\ layer.ger
57         mv easymetrum.topmask.gbr top\ solder\ mask.ger
58         mv easymetrum.topsilk.gbr top\ silk\ screen.ger
59         mv easymetrum.plated-drill.cnc drills.xln
60         zip easymetrum-oshpark.zip *.ger *.xln
61
62 clean:
63         rm -f *.bom *.drc *.log *~ $(PROJECT).ps *.gbr $(PROJECT).gerb *.cnc *bak* *- *.zip 
64         rm -f *.net *.xy *.cmd *.png partslist partslist.csv partslist.dk partslist.mouser muffin-5267.pdf
65         rm -f *.partslist *.new.pcb *.unsorted $(PROJECT).xls
66         rm -f $(PROJECT)-stencil.zip