X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=scripts%2Fmetadata.pl;h=26d878cc9ed0d64685b2285f109c81e9e0f02ee5;hp=8f146c3b005d7bb68762af171e3ddc0ef3810ab3;hb=0a06d2c8747bd9f63157615d121ebc323e714f12;hpb=3d30e9121009d70ad0d44c6ee0b23a44017fed3b diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 8f146c3b00..26d878cc9e 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -225,25 +225,26 @@ EOF } if (@{$target->{subtargets}} > 0) { $confstr .= "\tselect HAS_SUBTARGETS\n"; - } else { + } + + if ($target->{arch} =~ /\w/) { $confstr .= "\tselect $target->{arch}\n"; - foreach my $dep (@{$target->{depends}}) { - my $mode = "depends"; - my $flags; - my $name; - - $dep =~ /^([@\+\-]+)(.+)$/; - $flags = $1; - $name = $2; - - next if $name =~ /:/; - $flags =~ /-/ and $mode = "deselect"; - $flags =~ /\+/ and $mode = "select"; - $flags =~ /@/ and $confstr .= "\t$mode $name\n"; - } - $confstr .= $features; } + foreach my $dep (@{$target->{depends}}) { + my $mode = "depends"; + my $flags; + my $name; + + $dep =~ /^([@\+\-]+)(.+)$/; + $flags = $1; + $name = $2; + next if $name =~ /:/; + $flags =~ /-/ and $mode = "deselect"; + $flags =~ /\+/ and $mode = "select"; + $flags =~ /@/ and $confstr .= "\t$mode $name\n"; + } + $confstr .= $features; $confstr .= "$help\n\n"; print $confstr; } @@ -533,6 +534,30 @@ sub print_package_config_category($) { undef $category{$cat}; } +sub print_package_features() { + keys %features > 0 or return; + print "menu \"Package features\"\n"; + foreach my $n (keys %features) { + my @features = sort { $b->{priority} <=> $a->{priority} or $a->{title} cmp $b->{title} } @{$features{$n}}; + print <{target_title}" + default FEATURE_$features[0]->{name} +EOF + + foreach my $feature (@features) { + print <{name} + bool "$feature->{title}" + help +$feature->{description} +EOF + } + print "endchoice\n" + } + print "endmenu\n\n"; +} + sub gen_package_config() { parse_package_metadata($ARGV[0]) or exit 1; print "menuconfig UCI_PRECONFIG\n\tbool \"Image configuration\"\n" if %preconfig; @@ -549,6 +574,7 @@ sub gen_package_config() { EOF } } + print_package_features(); print_package_config_category 'Base system'; foreach my $cat (keys %category) { print_package_config_category $cat; @@ -594,6 +620,9 @@ sub gen_package_mk() { if ($config) { $pkg->{buildonly} and $config = ""; print "package-$config += $pkg->{subdir}$pkg->{src}\n"; + if ($pkg->{variant}) { + print "\$(curdir)/$pkg->{subdir}$pkg->{src}/variants += \$(if $config,$pkg->{variant})\n" + } $pkg->{prereq} and print "prereq-$config += $pkg->{subdir}$pkg->{src}\n"; }