ae393bf53a51912a0c584dc23d3c057a0045a566
[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 -m scheme/gnet-partslistgag.scm -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 scheme/gnet-partslist-bom.scm
29         gnetlist -m scheme/gnet-partslist-bom.scm -g partslist-bom -Ovendor=digikey -o $@ $(PROJECT).sch
30
31 partslist.mouser:       $(PROJECT).sch Makefile scheme/gnet-partslist-bom.scm
32         gnetlist -m scheme/gnet-partslist-bom.scm -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 clean:
62         rm -f *.bom *.drc *.log *~ teleterra.ps *.gbr *.cnc *bak* *- *.zip 
63         rm -f *.net *.xy *.cmd *.png partslist partslist.csv
64         rm -f *.partslist *.new.pcb *.unsorted
65         rm -f *.hex *.cod *.lst *.ps *.o *.asm
66