X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=scripts%2Fmetadata.pl;h=26d878cc9ed0d64685b2285f109c81e9e0f02ee5;hp=e8850c937f94f884353ba6f7a5c7b77cdfe986f1;hb=0a06d2c8747bd9f63157615d121ebc323e714f12;hpb=86e8eafe32f991926ed9b0c1bcaabc82b154528b diff --git a/scripts/metadata.pl b/scripts/metadata.pl index e8850c937f..26d878cc9e 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -165,6 +165,8 @@ sub target_config_features(@) { /cpiogz/ and $ret .= "\tselect USES_CPIOGZ\n"; /fpu/ and $ret .= "\tselect HAS_FPU\n"; /ramdisk/ and $ret .= "\tselect USES_INITRAMFS\n"; + /powerpc64/ and $ret .= "\tselect powerpc64\n"; + /nommu/ and $ret .= "\tselect NOMMU\n"; } return $ret; } @@ -223,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; } @@ -413,8 +416,8 @@ sub mconf_depends { my @depends = @$depends; foreach my $depend (@depends) { my $m = "depends"; - $depend =~ s/^([@\+]+)//; - my $flags = $1; + my $flags = ""; + $depend =~ s/^([@\+]+)// and $flags = $1; my $vdep; my $condition = $parent_condition; @@ -531,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; @@ -547,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; @@ -592,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"; }