mirror of
https://github.com/samba-team/samba.git
synced 2025-01-26 10:04:02 +03:00
2895f28c4c
just that subsystem (This used to be commit 3fae92eef5d2f591dd40c4c07e20baa1c4a33211)
62 lines
1.3 KiB
Perl
Executable File
62 lines
1.3 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
# Samba4 Dependency Graph Generator
|
|
# (C) 2004-2005 Jelmer Vernooij <jelmer@samba.org>
|
|
# Published under the GNU GPL
|
|
|
|
use strict;
|
|
use lib 'build';
|
|
use smb_build::config_mk;
|
|
|
|
my $subsys = shift @ARGV;
|
|
|
|
sub contains($$)
|
|
{
|
|
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";
|
|
}
|
|
}
|
|
|
|
return $res . "}\n";
|
|
}
|
|
|
|
my $INPUT = {};
|
|
smb_build::config_mk::run_config_mk($INPUT, '.', '.', "main.mk");
|
|
|
|
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;
|