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