svn commit: samba r15521 - in
branches/SAMBA_4_0/source/build/smb_build: .
jelmer at samba.org
jelmer at samba.org
Tue May 9 09:41:41 GMT 2006
Author: jelmer
Date: 2006-05-09 09:41:40 +0000 (Tue, 09 May 2006)
New Revision: 15521
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15521
Log:
Take an optional subsystem name to generate a dependency graph for
just that subsystem
Modified:
branches/SAMBA_4_0/source/build/smb_build/dot.pl
Changeset:
Modified: branches/SAMBA_4_0/source/build/smb_build/dot.pl
===================================================================
--- branches/SAMBA_4_0/source/build/smb_build/dot.pl 2006-05-09 08:43:56 UTC (rev 15520)
+++ branches/SAMBA_4_0/source/build/smb_build/dot.pl 2006-05-09 09:41:40 UTC (rev 15521)
@@ -7,12 +7,24 @@
use lib 'build';
use smb_build::config_mk;
-sub generate($)
+my $subsys = shift @ARGV;
+
+sub contains($$)
{
- my $depend = shift;
- my $res = "digraph samba4 {\n";
+ my ($haystack,$needle) = @_;
+ foreach (@$haystack) {
+ return 1 if ($_ eq $needle);
+ }
+ return 0;
+}
+sub generate($$$)
+{
+ my ($depend,$only,$name) = @_;
+ my $res = "digraph $name {\n";
+
foreach my $part (values %{$depend}) {
+ next if (defined($only) and not contains($only,$part->{NAME}));
foreach my $elem (@{$part->{PUBLIC_DEPENDENCIES}},
@{$part->{PRIVATE_DEPENDENCIES}}) {
$res .= "\t\"$part->{NAME}\" -> \"$elem\";\n";
@@ -25,9 +37,25 @@
my $INPUT = {};
smb_build::config_mk::run_config_mk($INPUT, '.', '.', "main.mk");
-print __FILE__.": creating samba4-deps.dot\n";
-open DOTTY, ">samba4-deps.dot";
-print DOTTY generate($INPUT);
+my $name = "samba4";
+
+my $only;
+if (defined($subsys)) {
+ my $DEPEND = smb_build::input::check($INPUT, \%config::enabled,
+ "STATIC_LIBRARY", "SHARED_LIBRARY", "SHARED_LIBRARY");
+
+ die("No such subsystem $subsys") unless (defined($DEPEND->{$subsys}));
+
+ $only = $DEPEND->{$subsys}->{UNIQUE_DEPENDENCIES_ALL};
+ push (@$only, "$subsys");
+
+ $name = $subsys;
+}
+
+my $fname = "$name-deps.dot";
+print __FILE__.": creating $fname\n";
+open DOTTY, ">$fname";
+print DOTTY generate($INPUT, $only, $name);
close DOTTY;
1;
More information about the samba-cvs
mailing list