Move refdes on silk to be usable
[hw/easymini] / Makefile
1 PROJECT=easymini
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 $(PROJECT)-bom.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 $(PROJECT)-bom.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: $(PROJECT)-bom.csv $(AM)/glabels/muffin-5267.glabels
28         glabels-3-batch $(AM)/glabels/muffin-5267.glabels -i $(PROJECT)-bom.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         cp easymini.bottom.gbr bottom\ layer.ger
53         cp easymini.bottommask.gbr bottom\ solder\ mask.ger
54         cp easymini.bottomsilk.gbr bottom\ silk\ screen.ger
55         cp easymini.outline.gbr board\ outline.ger
56         cp easymini.top.gbr top\ layer.ger
57         cp easymini.topmask.gbr top\ solder\ mask.ger
58 #       cp easymini.topsilk.gbr top\ silk\ screen.ger
59         cp easymini.plated-drill.cnc drills.xln
60         zip easymini-oshpark.zip *.ger *.xln
61
62 $(PROJECT)-sch.ps:      $(PROJECT).sch
63         gschem -p -o $(PROJECT)-sch.ps -s /usr/share/gEDA/scheme/print.scm \
64                 $(PROJECT).sch 
65
66 $(PROJECT)-sch.pdf:     $(PROJECT)-sch.ps
67         ps2pdf $(PROJECT)-sch.ps
68
69 $(PROJECT)-pcb.ps:      $(PROJECT).pcb
70         pcb -x ps --psfile $(PROJECT)-pcb.ps --media Letter $(PROJECT).pcb
71
72 $(PROJECT)-pcb.pdf:     $(PROJECT)-pcb.ps
73         ps2pdf $(PROJECT)-pcb.ps
74
75 pdf:    $(PROJECT)-sch.pdf $(PROJECT)-pcb.pdf
76
77 clean:
78         rm -f *.bom *.drc *.log *~ $(PROJECT).ps *.gbr $(PROJECT).gerb *.cnc *bak* *- *.zip *.ger *.xln
79         rm -f *.net *.xy *.cmd *.png partslist $(PROJECT)-bom.csv partslist.dk partslist.mouser muffin-5267.pdf
80         rm -f *.partslist *.new.pcb *.unsorted $(PROJECT).xls
81         rm -f $(PROJECT)-stencil.zip $(PROJECT)*.pdf $(PROJECT)*.ps