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