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