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