5 LAYOUTOPTS_ALL= -ep=*Cm
6 LAYOUTOPTS= -E=*$(E_TRACK) $(LAYOUTOPTS_ALL)
7 LAYOUTOPTS_PHYS= -S1.0 $(LAYOUTOPTS) '-e*A'
8 XLAYOUTOPTS_LAYER= -e'=5AN' -E'*~=5rsm' -e'p~=5r' -e'*~=9C' -e'*=*l'
11 LAYERS_PS= $(addsuffix .ps, $(LAYERS_LS))
12 LAYERS_L= $(addprefix ours-l, $(LAYERS_PS))
13 LAYERS_E= $(addprefix ours-e, $(LAYERS_PS))
14 LAYERS= $(LAYERS_L) $(LAYERS_E)
16 LPAGES= $(foreach x, 0 1 2 3 4 5 6, $(foreach y, 1 2 3 4 5, ours-p0-$xx$y.ps))
18 default: netlists picprogs
22 all: default layers bulkres.bom divider-tables \
23 picprogs netlists panel3.pcb
25 o=>$@.new && mv -f $@.new $@
27 CIRCUITPARTS= control.partlist circuit.partlist
28 BULKRESPARTS= bulkres-select.partlist bulkres-items.partlist
32 netlists: reversers.net detectors.net \
33 reversers.hole-rep detectors.hole-rep \
34 both.hole-rep panel3.hole-rep
36 # print from pcb(1) as follows:
37 # File / Print Layout / ...
38 # select media and offsets: A4
41 # (If `... exists, use anyway?', Sequence OK)
44 # make {reversers,detectors}.oprints{-l,-lpr}
45 # for f in *.oprint-*.ps; do gv -scale -1 -media A4 $f; done
48 OPRINTS= %.oprint-copper.ps \
50 %.pcb.output_frontsilk.ps \
53 %.hole-rep: %.pcb hole-report.pl
54 ./hole-report.pl <$< $o
56 include reversers.layers.dep
57 include detectors.layers.dep
58 include panel3.layers.dep
60 %.zip: layers.txt.tmpl Makefile
61 rm -rf $@.d; mkdir -p $@.d
62 set -e; exec <$<; cd $@.d; perl -pe ' \
63 m/^(\S+)\s+(\w+)\s+(\w+)\s+(\S.*)$$/ or die; \
64 system "cp ../$*.pcb.output_$$1.$$3 $$2.$$3"; \
66 $$_= sprintf "%-20s %s\n", "$$2.$$3", $$4; \
72 PANEL3_PCBS= reversers.pcb detectors.pcb detectors.pcb
74 panel3.pcb: pcb-panelise $(PANEL3_PCBS) Makefile
75 ./$< -g100 $(PANEL3_PCBS) $o
77 $*.zip: $*.pcb.output_$$1.$$2/ or die' \
80 GZIP=-9v tar zvcf $@.gz $*.pcb.output_*.ps
82 %.layers.dep: layers.txt.tmpl Makefile
84 's/^(\S+)\s+\w+\s+(\w+)\s.*/$*.zip: $*.pcb.output_$$1.$$2/ or die' \
87 both.hole-rep: hole-report.pl reversers.pcb detectors.pcb
93 %.oprints-l: $(OPRINTS) %.oprints Makefile
96 pcboprints: reversers.oprints-l detectors.oprints-l
98 %.oprints-lpr: %.oprints-l
99 set -ex; for f in `cat $^`; do lpr $$f; done
104 %.oprint-copper.ps: %.pcb.output_back.distilled.ps \
105 %.pcb.output_front.distilled.ps
107 ps2ps $@.tmp $@-2.tmp
108 pstops '2:0(-50mm,0mm)+1(50mm,0mm)' <$@-2.tmp $o
110 %.oprint-copper.ps: Makefile
112 %.oprint-assembly.ps: %.pcb.output_assembly.ps Makefile
113 pstops -pa4 '0@2(-109mm,-290mm)' <$< $o
116 sed -e '/^\#/d' <$< $o
118 %.net-info: %.net-spec netlist-expand
119 ./netlist-expand $< $o
121 %.net-spec: generate-netspec.pl
127 circuit.bom: farnell-find $(CIRCUITPARTS)
128 ./farnell-find bom $(CIRCUITPARTS) $o
130 bulkres.bom: farnell-find $(BULKRESPARTS)
131 ./farnell-find bom $(BULKRESPARTS) $o
133 bulkres-select.partlist: bulkres-select-gen.pl
136 bulkres-items.suggest:
137 cat bulkres-searchout*[0-9] | ./farnell-resistor-convert.pl $o
139 bulkres-items.descs: bulkres-items.suggest
140 xargs ./farnell-find describe <$< $o
142 bulkres-items.partlist:
143 ./farnell-resistor-convert.pl <bulkres-items.descs MRS25 std $o
145 divider-table.txt: divider-table.pl
148 divider-tables: divider-table.ps divider-table.txt
150 divider-table.ps: divider-table.txt Makefile
151 a2ps -o- -R -1 --borders no -B -L"$$(wc -l <$<)" -l158 \
152 --center-title='E24 resistor ratios and logarithms' <$< $o
154 %.d4: %.m4 $(M4INCS) Makefile
158 ./layout <$< $(LAYOUTOPTS) '-E*l' $o
161 ./layout <$< $(LAYOUTOPTS) '-e*C' '-ep=rm' $o
164 ./layout -S1.0 <$< $(LAYOUTOPTS) '-e*A' '-ep=rm' $o
166 ours-l%.ps: ours.d4 layout
167 ./layout <$< -l$* $(LAYOUTOPTS) $(XLAYOUTOPTS_LAYER) $o
169 ours-e%.ps: ours.d4 layout
170 ./layout <$< -l$* -E'=*aRsclMno' \
171 -e'p=*rm' -e'=5RN' -E'*~=5rsm' -e'p~=5r' -e'*=*l' $o
173 ours-p%.ps: ours.d4 layout
174 ./layout <$< -l$$(printf %s "$*" | sed -e 's/-/ -P/') \
175 $(LAYOUTOPTS_PHYS) $(XLAYOUTOPTS_LAYER) $o
177 parts.ps: showlib.d4 layout
178 ./layout <$< $(LAYOUTOPTS_ALL) $o
181 -rm -f -- *.d4 farn.* *~ *.new
182 -rm -f bulkres-*.partlist bulkres-items.suggest *.bom
183 -rm -f t,*.gnuplot-data t,*.gnuplot-cmd t,gnuplot-fifo
184 -rm -f t,gnuplots.sh reversers.net reversers.net-info
185 -rm -f flasher.hex flasher.cod flasher.lst
186 -rm -f ours-*.ps parts.ps
189 .PRECIOUS: %.net-info %.net-spec
190 .PRECIOUS: $(OPRINTS)