[svn:parrot] r43409 - branches/one_make/tools/dev

coke at svn.parrot.org coke at svn.parrot.org
Fri Jan 8 00:26:07 UTC 2010


Author: coke
Date: Fri Jan  8 00:26:06 2010
New Revision: 43409
URL: https://trac.parrot.org/parrot/changeset/43409

Log:
Actually report on missing .include dependencies.

Modified:
   branches/one_make/tools/dev/checkdepend.pl

Modified: branches/one_make/tools/dev/checkdepend.pl
==============================================================================
--- branches/one_make/tools/dev/checkdepend.pl	Fri Jan  8 00:20:57 2010	(r43408)
+++ branches/one_make/tools/dev/checkdepend.pl	Fri Jan  8 00:26:06 2010	(r43409)
@@ -105,6 +105,7 @@
     while ($guts =~ m/.include (["'])(.*)\1/g) {
         push @includes, $2;
     } 
+    # XXX also check load_bytecode
 
     # Canonicalize each of these includes.
 
@@ -225,6 +226,41 @@
     }
 }
 
+foreach my $file (sort grep {/\.pir$/} @files) {
+    my $rule = $file;
+    $rule =~ s/\.c$//;
+
+    $rules =~ /^${rule}.pbc\s*:\s*(.*)\s*$/m;
+    my $declared = $1;
+
+    my $failed = 0;
+    if (!defined($declared)) {
+        $failed = 1;
+        is("", join(' ', (get_deps($file))), "$file has no dependencies");
+        next;
+    }
+    else
+    {
+        $declared =~ s/\s+/ /g;
+        foreach my $inc (sort (get_deps($file))) {
+            next if $declared =~ s/\b\Q$inc\E\b//;
+
+            is($declared, $inc, "$file is missing a dependency.");
+            $failed = 1;
+
+        }
+    }
+    $declared =~ s/^\s+//;
+    $declared =~ s/\s+$//;
+    $declared =~ s/\s+/ /g;
+    if ($declared ne "") {
+       is($declared, '', "$file has extra dependencies.");
+    }
+    elsif (!$failed) {
+        pass($file);
+    }
+}
+
 sub collapse_path {
     my $path = shift;
     return $path unless defined $path;


More information about the parrot-commits mailing list