Author: metze
Date: 2007-04-22 11:40:11 +0000 (Sun, 22 Apr 2007)
New Revision: 22455

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22455

Log:
split dependecies array for compiling and linking and use better names:-)

calculate the CFLAGS only based on the public dependencies when recursing

metze 
Modified:
   branches/SAMBA_4_0/source/build/smb_build/input.pm
   branches/SAMBA_4_0/source/build/smb_build/output.pm


Changeset:
Modified: branches/SAMBA_4_0/source/build/smb_build/input.pm
===================================================================
--- branches/SAMBA_4_0/source/build/smb_build/input.pm  2007-04-22 11:28:12 UTC 
(rev 22454)
+++ branches/SAMBA_4_0/source/build/smb_build/input.pm  2007-04-22 11:40:11 UTC 
(rev 22455)
@@ -162,10 +162,10 @@
        }
 }
 
-sub calc_unique_deps($$$$$$)
+sub calc_unique_deps($$$$$$$$)
 {
-       sub calc_unique_deps($$$$$$);
-       my ($name, $INPUT, $deps, $udeps, $withlibs, $busy) = @_;
+       sub calc_unique_deps($$$$$$$$);
+       my ($name, $INPUT, $deps, $udeps, $withlibs, $forward, $pubonly, $busy) 
= @_;
 
        foreach my $n (@$deps) {
                die("Dependency unknown: $n") unless (defined($INPUT->{$n}));
@@ -173,17 +173,19 @@
                next if (grep /^$n$/, @$udeps);
                my $dep = $INPUT->{$n};
 
+               push (@{$udeps}, $dep->{NAME}) if $forward;
+
                if (defined ($dep->{OUTPUT_TYPE}) && 
                        ($withlibs or 
                        (@{$dep->{OUTPUT_TYPE}}[0] eq "INTEGRATED") or 
                        (@{$dep->{OUTPUT_TYPE}}[0] eq "STATIC_LIBRARY"))) {
                                push (@$busy, $dep->{NAME});
-                               calc_unique_deps($dep->{NAME}, $INPUT, 
$dep->{PUBLIC_DEPENDENCIES}, $udeps, $withlibs, $busy);
-                               calc_unique_deps($dep->{NAME}, $INPUT, 
$dep->{PRIVATE_DEPENDENCIES}, $udeps, $withlibs, $busy);
+                               calc_unique_deps($dep->{NAME}, $INPUT, 
$dep->{PUBLIC_DEPENDENCIES}, $udeps, $withlibs, $forward, $pubonly, $busy);
+                               calc_unique_deps($dep->{NAME}, $INPUT, 
$dep->{PRIVATE_DEPENDENCIES}, $udeps, $withlibs, $forward, $pubonly, $busy) 
unless $pubonly;
                                pop (@$busy);
                }
 
-               unshift (@{$udeps}, $dep->{NAME});
+               unshift (@{$udeps}, $dep->{NAME}) unless $forward;
        }
 }
 
@@ -242,15 +244,21 @@
        }
 
        foreach my $part (values %$INPUT) {
-               $part->{UNIQUE_DEPENDENCIES} = [];
-               calc_unique_deps($part->{NAME}, $INPUT, 
$part->{PUBLIC_DEPENDENCIES}, $part->{UNIQUE_DEPENDENCIES}, 0, []);
-               calc_unique_deps($part->{NAME}, $INPUT, 
$part->{PRIVATE_DEPENDENCIES}, $part->{UNIQUE_DEPENDENCIES}, 0, []);
+               $part->{UNIQUE_DEPENDENCIES_LINK} = [];
+               calc_unique_deps($part->{NAME}, $INPUT, 
$part->{PUBLIC_DEPENDENCIES}, $part->{UNIQUE_DEPENDENCIES_LINK}, 0, 0, 0, []);
+               calc_unique_deps($part->{NAME}, $INPUT, 
$part->{PRIVATE_DEPENDENCIES}, $part->{UNIQUE_DEPENDENCIES_LINK}, 0, 0, 0, []);
        }
 
        foreach my $part (values %$INPUT) {
+               $part->{UNIQUE_DEPENDENCIES_COMPILE} = [];
+               calc_unique_deps($part->{NAME}, $INPUT, 
$part->{PUBLIC_DEPENDENCIES}, $part->{UNIQUE_DEPENDENCIES_COMPILE}, 1, 1, 1, 
[]);
+               calc_unique_deps($part->{NAME}, $INPUT, 
$part->{PRIVATE_DEPENDENCIES}, $part->{UNIQUE_DEPENDENCIES_COMPILE}, 1, 1, 1, 
[]);
+       }
+
+       foreach my $part (values %$INPUT) {
                $part->{UNIQUE_DEPENDENCIES_ALL} = [];
-               calc_unique_deps($part->{NAME}, $INPUT, 
$part->{PUBLIC_DEPENDENCIES}, $part->{UNIQUE_DEPENDENCIES_ALL}, 1, []);
-               calc_unique_deps($part->{NAME}, $INPUT, 
$part->{PRIVATE_DEPENDENCIES}, $part->{UNIQUE_DEPENDENCIES_ALL}, 1, []);
+               calc_unique_deps($part->{NAME}, $INPUT, 
$part->{PUBLIC_DEPENDENCIES}, $part->{UNIQUE_DEPENDENCIES_ALL}, 1, 0, 0, []);
+               calc_unique_deps($part->{NAME}, $INPUT, 
$part->{PRIVATE_DEPENDENCIES}, $part->{UNIQUE_DEPENDENCIES_ALL}, 1, 0, 0, []);
        }
 
        return $INPUT;

Modified: branches/SAMBA_4_0/source/build/smb_build/output.pm
===================================================================
--- branches/SAMBA_4_0/source/build/smb_build/output.pm 2007-04-22 11:28:12 UTC 
(rev 22454)
+++ branches/SAMBA_4_0/source/build/smb_build/output.pm 2007-04-22 11:40:11 UTC 
(rev 22455)
@@ -148,7 +148,7 @@
                merge_array(\$part->{FINAL_CFLAGS}, $part->{CPPFLAGS});
                merge_array(\$part->{FINAL_CFLAGS}, $part->{CFLAGS});
 
-               foreach (reverse @{$part->{UNIQUE_DEPENDENCIES_ALL}}) {
+               foreach (@{$part->{UNIQUE_DEPENDENCIES_COMPILE}}) {
                        my $elem = $depend->{$_};
                        next if $elem == $part;
 
@@ -157,7 +157,7 @@
                }
 
                # Always import the link options of the unique dependencies
-               foreach (@{$part->{UNIQUE_DEPENDENCIES}}) {
+               foreach (@{$part->{UNIQUE_DEPENDENCIES_LINK}}) {
                        my $elem = $depend->{$_};
                        next if $elem == $part;
 

Reply via email to