+ foreach my $srcname (sort {uc($a) cmp uc($b)} keys %srcpackage) {
+ my $src = $srcpackage{$srcname};
+ my $variant_default;
+ my %deplines = ('' => {});
+
+ foreach my $pkg (@{$src->{packages}}) {
+ foreach my $dep (@{$pkg->{depends}}) {
+ next if ($dep =~ /@/);
+
+ my $condition;
+
+ $dep =~ s/\+//g;
+ if ($dep =~ /^(.+):(.+)/) {
+ $condition = $1;
+ $dep = $2;
+ }
+
+ my $vpkg_dep = $vpackage{$dep};
+ unless (defined $vpkg_dep) {
+ warn sprintf "WARNING: Makefile '%s' has a dependency on '%s', which does not exist\n",
+ $src->{makefile}, $dep;
+ next;
+ }
+
+ # Filter out self-depends
+ my @vdeps = grep { $srcname ne $_->{src}{name} } @{$vpkg_dep};
+
+ foreach my $vdep (@vdeps) {
+ my $depstr = sprintf '$(curdir)/%s/compile', $vdep->{src}{path};
+ if (@vdeps > 1) {
+ $depstr = sprintf '$(if $(CONFIG_PACKAGE_%s),%s)', $vdep->{name}, $depstr;
+ }
+ my $depline = get_conditional_dep($condition, $depstr);
+ if ($depline) {
+ $deplines{''}{$depline}++;
+ }
+ }
+ }
+
+ my $config = '';
+ $config = sprintf '$(CONFIG_PACKAGE_%s)', $pkg->{name} unless $pkg->{buildonly};
+
+ $pkg->{prereq} and printf "prereq-%s += %s\n", $config, $src->{path};
+
+ next if $pkg->{buildonly};