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