*.pcb.output_*.txt
ours-*.ps
parts.ps
+*.hole-rep
picprogs: flasher.hex flash-all.hex
-netlists: reversers.net detectors.net
+netlists: reversers.net detectors.net \
+ reversers.hole-rep detectors.hole-rep
# print from pcb(1) as follows:
# File / Print Layout / ...
%.pcb.output_frontsilk.ps \
%.oprint-assembly.ps
+%.hole-rep: %.pcb hole-report.pl
+ ./hole-report.pl <$< $o
+
%.oprints: $(OPRINTS)
echo $^ >$@-l-tmp
--- /dev/null
+#!/usr/bin/perl
+while (<>) {
+ if (m/^\s*(Pin|Via)\[\-?\d+ \-?\d+ (\d+) (\d+) (\d+) (\d+) .*\]$/) {
+ $have{ sprintf "%05d %05d %05d %05d %s",
+ $5,$2,$4,$3,$1 }++;
+ } elsif (m/^ \s* (?:
+ PCB | Grid | Cursor | Thermal | DRC |
+ Flags | Groups | Styles |
+ Layer | Line | Text | Arc | Polygon |
+ Symbol | SymbolLine |
+ Element | ElementLine | ElementArc |
+ NetList | Net | Connect ) \s* (?: \( | \[ ) /x ||
+ m/^ \s* [()\#] /x ||
+ !m/\S/ ||
+ m/^ (?: \s* \[ \d+ \s \d+ \] )+ \s* $/x) {
+ } else {
+ die "$_ ?";
+ }
+}
+
+printf "%5s %5s %5s %5s %-3s %5s\n",
+ qw(drill pad rsist poclr pv count)
+ or die $!;
+
+foreach $k (sort keys %have) {
+ printf("%5d %5d %5d %5d %-3s %5d\n",
+ split(/ /, $k), $have{$k})
+ or die $!;
+}
picprogs: flasher.hex flash-all.hex
-netlists: reversers.net detectors.net
+netlists: reversers.net detectors.net \
+ reversers.hole-rep detectors.hole-rep
# print from pcb(1) as follows:
# File / Print Layout / ...
%.pcb.output_frontsilk.ps \
%.oprint-assembly.ps
+%.hole-rep: %.pcb hole-report.pl
+ ./hole-report.pl <$< $o
+
%.oprints: $(OPRINTS)
echo $^ >$@-l-tmp
picprogs: flasher.hex flash-all.hex
-netlists: reversers.net detectors.net
+netlists: reversers.net detectors.net \
+ reversers.hole-rep detectors.hole-rep
# print from pcb(1) as follows:
# File / Print Layout / ...
%.pcb.output_frontsilk.ps \
%.oprint-assembly.ps
+%.hole-rep: %.pcb hole-report.pl
+ ./hole-report.pl <$< $o
+
%.oprints: $(OPRINTS)
echo $^ >$@-l-tmp