use strict;
+my $verbose=0;
+
my %definers;
my %reqsyms;
my %reqmods;
open DEPENDS,">modules.dep";
open GRAPH,">modgraph.dot";
+if (@ARGV) {
+ if ($ARGV[0] eq "--verbose" or $ARGV[0] eq "-v") {
+ $verbose=1;
+ }
+}
+
for (@arglist) {
my $modname=$_;
open NM,"nm $modname |";
push @{$reqsyms{$modname}}, $sym;
} else {
if (defined $definers{$sym}) {
- print "Error: Multiple modules are providing $sym, at least $modname and $definers{$sym}\n";
+ print "WARNING: Multiple modules export $sym, at least $modname and $definers{$sym}\n";
} else {
$definers{$sym}=$modname;
}
if (defined $provider) {
${reqmods{$modname}}{$provider}=1;
+ if ($verbose) {
+ print "Module $modname importing $_ from $provider\n";
+ }
}
}
}
print DEPENDS "$modname";
for (keys %{$reqmods{$modname}}) {
+ if (defined ${$reqmods{$_}}{$modname}) {
+ print "ERROR: circular dependency between $modname and $_\n";
+ }
print DEPENDS " $_";
print GRAPH "\t\"$modname\" -> \"$_\";\n";
}