add support for creating a stencil for the local cutter
[hw/usbclassd] / Makefile
1 PROJECT=usbclassd
2 AM=../altusmetrum
3 SCHEME=$(AM)/scheme
4 SHEETS=usb.sch classd.sch
5
6 # intentionally want to rebuild drc and bom on every invocation
7 all:    drc partslist partslist.csv pcb
8
9 drc:    $(SHEETS) Makefile
10         -gnetlist -g drc2 $(SHEETS) -o $(PROJECT).drc
11
12 partslist:      $(SHEETS) Makefile
13         gnetlist -g bom -o $(PROJECT).unsorted $(SHEETS)
14         head -n1 $(PROJECT).unsorted > partslist
15         tail -n+2 $(PROJECT).unsorted | sort >> partslist
16         rm -f $(PROJECT).unsorted
17
18 partslist.csv:  $(SHEETS) Makefile
19         gnetlist -L $(SCHEME) -g partslistgag -o $(PROJECT).csvtmp $(SHEETS)
20         (head -n1 $(PROJECT).csvtmp; tail -n+2 $(PROJECT).csvtmp | sort -t \, -k 8) > $@ && rm -f $(PROJECT).csvtmp
21
22
23 partslist.dk: $(SHEETS) Makefile $(SCHEME)/gnet-partslist-bom.scm
24         gnetlist -L $(SCHEME) -g partslist-bom -Ovendor=digikey -o $@ $(SHEETS)
25
26 partslist.mouser: $(SHEETS) Makefile $(SCHEME)/gnet-partslist-bom.scm
27         gnetlist -L $(SCHEME) -g partslist-bom -Ovendor=mouser -o $@ $(SHEETS)
28
29 pcb:    $(SHEETS) project Makefile
30         gsch2pcb project
31
32 $(PROJECT).xy:  $(PROJECT).pcb
33         pcb -x bom $(PROJECT).pcb
34
35 $(PROJECT).bottom.gbr:  $(PROJECT).pcb
36         pcb -x gerber $(PROJECT).pcb
37
38 zip:    $(PROJECT).bottom.gbr $(PROJECT).bottommask.gbr $(PROJECT).fab.gbr $(PROJECT).top.gbr $(PROJECT).topmask.gbr $(PROJECT).toppaste.gbr $(PROJECT).topsilk.gbr $(PROJECT).plated-drill.cnc $(PROJECT).xy  Makefile # $(PROJECT).xls
39         zip $(PROJECT).zip $(PROJECT).*.gbr $(PROJECT).*.cnc $(PROJECT).xy # $(PROJECT).xls
40
41 oshpark: $(PROJECT).bottom.gbr $(PROJECT).bottommask.gbr $(PROJECT).top.gbr $(PROJECT).topmask.gbr $(PROJECT).topsilk.gbr $(PROJECT).plated-drill.cnc
42         mv $(PROJECT).bottom.gbr bottom\ layer.ger
43         mv $(PROJECT).bottommask.gbr bottom\ solder\ mask.ger
44         mv $(PROJECT).outline.gbr board\ outline.ger
45         mv $(PROJECT).top.gbr top\ layer.ger
46         mv $(PROJECT).topmask.gbr top\ solder\ mask.ger
47         mv $(PROJECT).topsilk.gbr top\ silk\ screen.ger
48         mv $(PROJECT).plated-drill.cnc drills.xln
49         zip $(PROJECT)-oshpark.zip *.ger *.xln
50
51 stencil:        $(PROJECT).pcb
52         pcb -x gerber --paste-adjust -0.075 $(PROJECT).pcb
53         mv $(PROJECT).toppaste.gbr stencil.gbr
54
55 ohararp:        $(PROJECT).bottom.gbr $(PROJECT).toppaste.gbr $(PROJECT).outline.gbr
56         zip $(PROJECT)-stencil.zip $(PROJECT).toppaste.gbr $(PROJECT).outline.gbr
57
58 clean:
59         rm -f *.bom *.drc *.log *~ $(PROJECT).ps *.gbr *.cnc *bak* *- *.zip 
60         rm -f *.net *.xy *.cmd *.png partslist partslist.csv *.ger *.xln
61         rm -f *.partslist *.new.pcb *.unsorted $(PROJECT).xls muffin-5267.pdf
62
63 muffins: partslist.csv $(AM)/glabels/muffin-short-5267.glabels
64         glabels-3-batch $(AM)/glabels/muffin-short-5267.glabels \
65                 -i partslist.csv -o muffin-5267.ps >/dev/null && \
66                 ps2pdf muffin-5267.ps && rm muffin-5267.ps
67
68 $(PROJECT).ps: $(SHEETS)
69         gschem -p -o $(PROJECT).ps -s /usr/share/gEDA/scheme/print.scm $(SHEETS)
70
71 $(PROJECT).pdf: $(PROJECT).ps
72         ps2pdf $(PROJECT).ps
73
74 $(PROJECT)-pcb.ps:      $(PROJECT).pcb
75         pcb -x ps --psfile $(PROJECT)-pcb.ps --media Letter $(PROJECT).pcb
76
77 $(PROJECT)-pcb.pdf:     $(PROJECT)-pcb.ps
78         ps2pdf $(PROJECT)-pcb.ps
79
80 pdf:    $(PROJECT).pdf $(PROJECT)-pcb.pdf
81