]>
jfr.im git - irc/quakenet/newserv.git/blob - depmod.pl
11 #push @arglist, "../newserv";
14 open DEPENDS
,">modules.dep";
15 open GRAPH
,">modgraph.dot";
19 open NM
,"nm $modname |";
23 push @realarglist, $modname;
25 $reqsyms{$modname} = [];
29 next unless (/([URTB]) (\S+)/);
31 my ($type,$sym) = ($1, $2);
33 next if ($sym eq "_init");
34 next if ($sym eq "_fini");
35 next if ($sym eq "_version");
38 push @{$reqsyms{$modname}}, $sym;
40 if (defined $definers{$sym}) {
41 print "Error: Multiple modules are providing $sym, at least $modname and $definers{$sym}\n";
43 $definers{$sym}=$modname;
51 print GRAPH
"digraph g { \n";
56 $reqmods{$modname} = {};
58 for (@{$reqsyms{$modname}}) {
59 my $provider = $definers{$_};
61 if (defined $provider) {
62 ${reqmods
{$modname}}{$provider}=1;
79 if (!(defined $printed{$modname})) {
82 for (keys %{$reqmods{$modname}}) {
86 print DEPENDS
"$modname";
87 for (keys %{$reqmods{$modname}}) {
89 print GRAPH
"\t\"$modname\" -> \"$_\";\n";