X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/e6074d0ad7b0160c45b38b2ee51747f58a7f2dd7..7102aaa3a3dffb3fc767f4d1552395b6cddb5000:/scripts/metadata.pl diff --git a/scripts/metadata.pl b/scripts/metadata.pl index bd1a40a53..ce8092497 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -380,14 +380,14 @@ sub mconf_depends($$) { $depend = join("||", map { "PACKAGE_".$_ } @$vdep); } else { $flags =~ /\+/ and do { - next if $only_dep; - $m = "select"; - # Menuconfig will not treat 'select FOO' as a real dependency # thus if FOO depends on other config options, these dependencies # will not be checked. To fix this, we simply emit all of FOO's # depends here as well. $package{$depend} and mconf_depends($package{$depend}->{depends}, 1, $dep); + + $m = "select"; + next if $only_dep; }; $flags =~ /@/ or $depend = "PACKAGE_$depend"; } @@ -472,7 +472,7 @@ sub print_package_config_category($) { sub gen_package_config() { parse_package_metadata($ARGV[0]) or exit 1; - print "menuconfig UCI_PRECONFIG\n\tbool \"Image configuration\"\n"; + print "menuconfig UCI_PRECONFIG\n\tbool \"Image configuration\"\n" if %preconfig; foreach my $preconfig (keys %preconfig) { foreach my $cfg (keys %{$preconfig{$preconfig}}) { my $conf = $preconfig{$preconfig}->{$cfg}->{id}; @@ -505,17 +505,6 @@ sub gen_package_mk() { my @srcdeps; next if defined $pkg->{vdepends}; - next if $done{$pkg->{src}}; - $done{$pkg->{src}} = 1; - - foreach my $spkg (@{$srcpackage{$pkg->{src}}}) { - foreach my $dep (@{$spkg->{depends}}, @{$spkg->{builddepends}}) { - $dep =~ /@/ or do { - $dep =~ s/\+//g; - push @srcdeps, $dep; - }; - } - } if ($ENV{SDK}) { $conf{$pkg->{src}} or do { @@ -530,6 +519,18 @@ sub gen_package_mk() { $pkg->{prereq} and print "prereq-$config += $pkg->{subdir}$pkg->{src}\n"; } + next if $done{$pkg->{src}}; + $done{$pkg->{src}} = 1; + + foreach my $spkg (@{$srcpackage{$pkg->{src}}}) { + foreach my $dep (@{$spkg->{depends}}, @{$spkg->{builddepends}}) { + $dep =~ /@/ or do { + $dep =~ s/\+//g; + push @srcdeps, $dep; + }; + } + } + my $hasdeps = 0; my $depline = ""; foreach my $deps (@srcdeps) {