drag Makefile, kicking and screaming, into the modern era
[hw/lipocharger] / 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:    lipocharger.sch Makefile
8         -gnetlist -g drc2 lipocharger.sch -o lipocharger.drc
9
10 partslist:      lipocharger.sch Makefile
11         gnetlist -g bom -o lipocharger.unsorted lipocharger.sch
12         head -n1 lipocharger.unsorted > partslist
13         tail -n+2 lipocharger.unsorted | sort >> partslist
14         rm -f lipocharger.unsorted
15
16 partslist.csv:  lipocharger.sch Makefile
17         gnetlist -L $(SCHEME) -g partslistgag \
18                 -o lipocharger.unsorted lipocharger.sch
19         head -n1 lipocharger.unsorted > partslist.csv
20         tail -n+2 lipocharger.unsorted | sort -t \, -k 8 >> partslist.csv
21         rm -f lipocharger.unsorted
22
23 pcb:    lipocharger.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 lipocharger.xy: lipocharger.pcb
42         pcb -x bom lipocharger.pcb
43
44 lipocharger.bottom.gbr: lipocharger.pcb
45         pcb -x gerber lipocharger.pcb
46
47 zip:    lipocharger.bottom.gbr lipocharger.bottommask.gbr lipocharger.fab.gbr lipocharger.top.gbr lipocharger.topmask.gbr lipocharger.toppaste.gbr lipocharger.topsilk.gbr lipocharger.plated-drill.cnc lipocharger.xy  Makefile # lipocharger.xls
48         zip lipocharger.zip lipocharger.*.gbr lipocharger.*.cnc lipocharger.xy # lipocharger.xls
49
50 oshpark: lipocharger.bottom.gbr lipocharger.bottommask.gbr lipocharger.top.gbr lipocharger.topmask.gbr lipocharger.topsilk.gbr lipocharger.plated-drill.cnc
51         mv lipocharger.bottom.gbr bottom\ layer.ger
52         mv lipocharger.bottommask.gbr bottom\ solder\ mask.ger
53         mv lipocharger.bottomsilk.gbr bottom\ silk\ screen.ger
54         mv lipocharger.outline.gbr board\ outline.ger
55         mv lipocharger.top.gbr top\ layer.ger
56         mv lipocharger.topmask.gbr top\ solder\ mask.ger
57         mv lipocharger.topsilk.gbr top\ silk\ screen.ger
58         mv lipocharger.plated-drill.cnc drills.xln
59         zip lipocharger-oshpark.zip *.ger *.xln
60
61 stencil:        lipocharger.bottom.gbr lipocharger.toppaste.gbr lipocharger.outline.gbr
62         zip lipocharger-stencil.zip lipocharger.toppaste.gbr lipocharger.outline.gbr
63
64 clean:
65         rm -f *.bom *.drc *.log *~ lipocharger.ps *.gbr *.cnc *bak* *- *.zip 
66         rm -f *.net *.xy *.cmd *.png partslist partslist.csv *.ger *.xln
67         rm -f *.partslist *.new.pcb *.unsorted lipocharger.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