r5835 - in trunk: eda/boom gta02-core/bom

werner at docs.openmoko.org werner at docs.openmoko.org
Sun Feb 7 18:46:18 CET 2010


Author: werner
Date: 2010-02-07 18:46:18 +0100 (Sun, 07 Feb 2010)
New Revision: 5835

Modified:
   trunk/eda/boom/annotate
   trunk/gta02-core/bom/Makefile
Log:
Annotations can now also use order data instead of or in addition to the parts 
list.

- eda/boom/annotate: if .ord data is available, use it for descriptions too
- bom/Makefile: annotations now use gta02-core.ord, not gta02-core.par
- bom/Makefile: annotations can be switched back to gta02-core.par by setting
  ANNOTATE=par
- bom/Makefile (spotless): didn't remove .ps files



Modified: trunk/eda/boom/annotate
===================================================================
--- trunk/eda/boom/annotate	2010-02-07 17:02:40 UTC (rev 5834)
+++ trunk/eda/boom/annotate	2010-02-07 17:46:18 UTC (rev 5835)
@@ -103,6 +103,45 @@
 }
 
 
+sub find_dsc
+{
+    local ($id) = @_;
+
+    for ($id, &eq($id)) {
+	return $dsc{$_} if defined $dsc{$_};
+    }
+    return ();
+}
+
+
+sub dsc_parts
+{
+    local ($ref) = @_;
+    my @p = @{ $parts{$ref} };
+    my @f = ();
+    while (@p) {
+	my @id = splice(@p, 0, 2);
+	my $id = "$id[0] $id[1]";
+	push(@f, &find_dsc($id));
+    }
+    return @f;
+}
+
+
+sub dsc_order
+{
+    local ($ref) = @_;
+    my @f = ();
+    for my $id (keys %order) {
+	my @p = @{ $order{$id} };
+	for (splice(@p, 3)) {
+	    push(@f, &find_dsc($id)) if $_ eq $ref;
+	}
+    }
+    return @f;
+}
+
+
 #
 # pass 1: find the orientation of all parts
 #
@@ -150,16 +189,8 @@
     undef @f if /^\$Comp/;
     if (/^L \S+ (\S+)/) {
 	$ref = $1;
-	my @p = @{ $parts{$ref} };
-	while (@p) {
-	    my @id = splice(@p, 0, 2);
-	    my $id = "$id[0] $id[1]";
-	    for ($id, &eq($id)) {
-		next unless defined $dsc{$_};
-		push(@f, $dsc{$_});
-		last;
-	    }
-	}
+	push(@f, &dsc_order($ref)) if %order;
+	push(@f, &dsc_parts($ref)) if %parts;
     }
     if (/^P (\d+) (\d+)/) {
 	$x = $1;

Modified: trunk/gta02-core/bom/Makefile
===================================================================
--- trunk/gta02-core/bom/Makefile	2010-02-07 17:02:40 UTC (rev 5834)
+++ trunk/gta02-core/bom/Makefile	2010-02-07 17:46:18 UTC (rev 5835)
@@ -3,6 +3,8 @@
 
 BOOM=../../eda/boom/boom
 
+ANNOTATE=ord	# make ANNOTATE=par ... for the parts list
+
 KITS=20
 EQU=fic/fic.equ fic/missing.equ digi-key.equ
 INV=fic/fic.inv gta02-core.inv dummy.inv fic/missing.inv digi-key.inv
@@ -59,7 +61,7 @@
 		rm -f gta02-core.par gta02-core.ord darfon.chr ralec.chr
 		rm -f gta02-core-bom.pro gta02-core-bom.sch
 		rm -f gta02-core-bom-all.ps.gz gta02-core-bom-all.pdf
-		rm -f $(SCH:%=%-bom.sch) $(SCH:%=%-bom.ps)
+		rm -f $(SCH:%=%-bom.sch) gta02-core-bom-*.ps
 
 show-dup:	gta02-core.par
 		$(BOOM) ./pardup.pl gta02-core.par
@@ -82,10 +84,11 @@
 		  $(EQU) >$(ANN)-bom.sch || { rm -f $(ANN)-bom.sch; exit 1; }
 
 $(SCH:%=%-bom.sch): \
-		$(SCH:%=../%.sch) fic/fic.dsc gta02-core.par $(EQU)
+		$(SCH:%=../%.sch) fic/fic.dsc gta02-core.$(ANNOTATE) $(EQU)
 		for n in $(SCH); do \
-		    $(BOOM) annotate ../$$n.sch fic/fic.dsc gta02-core.par \
-		      $(EQU) >$$n-bom.sch || { rm -f $$n-bom.sch; exit 1; }; \
+		    $(BOOM) annotate ../$$n.sch fic/fic.dsc \
+		      gta02-core.$(ANNOTATE) $(EQU) >$$n-bom.sch \
+		      || { rm -f $$n-bom.sch; exit 1; }; \
 		done
 
 gta02-core-bom.pro:	../gta02-core.pro




More information about the commitlog mailing list