update to modern structure using shared libraries
[hw/swdadapter] / Makefile
1 PROJECT=swdadapter
2 AM=../altusmetrum
3 SCHEME=$(AM)/scheme
4
5 # intentionally want to rebuild drc and bom on every invocation
6 all:    drc partslist partslist.csv pcb
7
8 drc:    swdadapter.sch Makefile
9         -gnetlist -g drc2 swdadapter.sch -o swdadapter.drc
10
11 partslist:      swdadapter.sch Makefile
12         gnetlist -g bom -o swdadapter.unsorted swdadapter.sch
13         head -n1 swdadapter.unsorted > partslist
14         tail -n+2 swdadapter.unsorted | sort >> partslist
15         rm -f swdadapter.unsorted
16
17 partslist.csv:  swdadapter.sch Makefile
18         gnetlist -L $(SCHEME) -g partslistgag \
19                 -o swdadapter.unsorted swdadapter.sch
20         head -n1 swdadapter.unsorted > partslist.csv
21         tail -n+2 swdadapter.unsorted | sort -t \, -k 8 >> partslist.csv
22         rm -f swdadapter.unsorted
23
24 partslist.dk: $(PROJECT).sch Makefile $(SCHEME)/gnet-partslist-bom.scm
25         gnetlist -L $(SCHEME) -g partslist-bom -Ovendor=digikey -o $@ $(PROJECT).sch
26
27 pcb:    swdadapter.sch project Makefile
28         gsch2pcb project
29
30 # note that 'gschlas -e foo.sch' will embed all symbols in the schematic, this
31 # might be a really good idea for publishing designs to the web that others
32 # might review?  Like this example from DJ:
33 #
34 #web :
35 #        for i in channel.sch ethernet.sch power.sch mcu.sch; do \
36 #          cp $$i tmp.sch ; \
37 #          gschlas -e tmp.sch ; \
38 #          mv tmp.sch ${WEB}/$$i; \
39 #        done
40
41 # this shoves local work out to the git.gag.com repository
42 push:   
43         git push --mirror
44
45 swdadapter.xy:  swdadapter.pcb
46         pcb -x bom swdadapter.pcb
47
48 swdadapter.bottom.gbr:  swdadapter.pcb
49         pcb -x gerber swdadapter.pcb
50
51 zip:    swdadapter.bottom.gbr swdadapter.bottommask.gbr swdadapter.fab.gbr swdadapter.top.gbr swdadapter.topmask.gbr swdadapter.toppaste.gbr swdadapter.topsilk.gbr swdadapter.plated-drill.cnc swdadapter.xy  Makefile # swdadapter.xls
52         zip swdadapter.zip swdadapter.*.gbr swdadapter.*.cnc swdadapter.xy # swdadapter.xls
53
54 oshpark: swdadapter.bottom.gbr swdadapter.bottommask.gbr swdadapter.top.gbr swdadapter.topmask.gbr swdadapter.plated-drill.cnc
55         mv swdadapter.bottom.gbr bottom\ layer.ger
56         mv swdadapter.bottommask.gbr bottom\ solder\ mask.ger
57         mv swdadapter.bottomsilk.gbr bottom\ silk\ screen.ger
58         mv swdadapter.outline.gbr board\ outline.ger
59         mv swdadapter.top.gbr top\ layer.ger
60         mv swdadapter.topmask.gbr top\ solder\ mask.ger
61         mv swdadapter.plated-drill.cnc drills.xln
62         zip swdadapter-oshpark.zip *.ger *.xln
63
64 stencil:        swdadapter.bottom.gbr swdadapter.toppaste.gbr swdadapter.outline.gbr
65         zip swdadapter-stencil.zip swdadapter.toppaste.gbr swdadapter.outline.gbr
66
67 clean:
68         rm -f *.bom *.drc *.log *~ swdadapter.ps *.gbr *.cnc *bak* *- *.zip 
69         rm -f *.net *.xy *.cmd *.png partslist partslist.csv *.ger *.xln
70         rm -f *.partslist *.new.pcb *.unsorted swdadapter.xls muffin-5267.pdf
71
72 muffins: partslist.csv $(AM)/glabels/muffin-short-5267.glabels
73         glabels-3-batch $(AM)/glabels/muffin-short-5267.glabels \
74                 -i partslist.csv -o muffin-5267.ps >/dev/null && \
75                 ps2pdf muffin-5267.ps && rm muffin-5267.ps
76