1
0
mirror of https://git.openwrt.org/openwrt/openwrt.git synced 2024-11-18 14:47:46 +01:00

consider virtual dependencies (generated by using PROVIDES:=) when generating the build dependencies (fixes python build dependency errors)

SVN-Revision: 11428
This commit is contained in:
Felix Fietkau 2008-06-10 21:10:02 +00:00
parent 306910e5d1
commit 51bc4434dd

@ -495,6 +495,7 @@ EOF
sub gen_package_mk() {
my %conf;
my %dep;
my %done;
my $line;
parse_package_metadata($ARGV[0]) or exit 1;
@ -503,6 +504,9 @@ sub gen_package_mk() {
my $pkg = $package{$name};
next if defined $pkg->{vdepends};
next if $done{$pkg->{src}};
$done{$pkg->{src}} = 1;
if ($ENV{SDK}) {
$conf{$pkg->{src}} or do {
$config = 'm';
@ -518,23 +522,37 @@ sub gen_package_mk() {
my $hasdeps = 0;
my $depline = "";
foreach my $dep (@{$pkg->{depends}}, @{$pkg->{builddepends}}) {
next if $dep =~ /@/;
$dep =~ s/\+//;
foreach my $deps (@{$pkg->{depends}}, @{$pkg->{builddepends}}) {
next if $deps =~ /@/;
$deps =~ s/\+//;
my $idx;
my $pkg_dep = $package{$dep};
next if defined $pkg_dep->{vdepends};
my $pkg_dep = $package{$deps};
my @deps;
if (defined $pkg_dep->{src}) {
($pkg->{src} ne $pkg_dep->{src}) and $idx = $pkg_dep->{subdir}.$pkg_dep->{src};
} elsif (defined($srcpackage{$dep})) {
$idx = $subdir{$dep}.$dep;
if ($pkg_dep->{vdepends}) {
@deps = @{$pkg_dep->{vdepends}};
} else {
@deps = ($deps);
}
undef $idx if $idx =~ /^(kernel)|(base-files)$/;
if ($idx) {
next if $dep{$pkg->{src}."->".$idx};
$depline .= " \$(curdir)/$idx/compile";
$dep{$pkg->{src}."->".$idx} = 1;
foreach my $dep (@deps) {
$pkg_dep = $package{$deps};
if (defined $pkg_dep->{src}) {
($pkg->{src} ne $pkg_dep->{src}) and $idx = $pkg_dep->{subdir}.$pkg_dep->{src};
} elsif (defined($srcpackage{$dep})) {
$idx = $subdir{$dep}.$dep;
}
undef $idx if $idx =~ /^(kernel)|(base-files)$/;
if ($idx) {
next if $dep{$pkg->{src}."->".$idx};
next if $pkg->{src} eq $pkg_dep->{src};
if ($pkg_dep->{vdepends}) {
$depline .= " \$(if \$(CONFIG_PACKAGE_$dep),\$(curdir)/$idx/compile)";
} else {
$depline .= " \$(curdir)/$idx/compile";
$dep{$pkg->{src}."->".$idx} = 1;
}
}
}
}
if ($depline) {