X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=scripts%2Fmetadata.pl;h=135ec9a9389c00f185ed7424767f203d08a3a7fb;hb=2581b4991e6086ccbc463d6f7311f39c03ca83b6;hp=bcc3700d42f6d78778dfedaf6305d86d10e9ae68;hpb=f5e274f398f8f2c9c30aa2ee39cf0c119ffa0ff9;p=openwrt.git diff --git a/scripts/metadata.pl b/scripts/metadata.pl index bcc3700d42..135ec9a938 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -53,6 +53,7 @@ sub parse_target_metadata() { /^Target-Depends:\s*(.+)\s*$/ and $target->{depends} = [ split(/\s+/, $1) ]; /^Target-Description:/ and $target->{desc} = get_multiline(*FILE); /^Target-Optimization:\s*(.+)\s*$/ and $target->{cflags} = $1; + /^CPU-Type:\s*(.+)\s*$/ and $target->{cputype} = $1; /^Linux-Version:\s*(.+)\s*$/ and $target->{version} = $1; /^Linux-Release:\s*(.+)\s*$/ and $target->{release} = $1; /^Linux-Kernel-Arch:\s*(.+)\s*$/ and $target->{karch} = $1; @@ -157,6 +158,7 @@ sub target_config_features(@) { /broken/ and $ret .= "\tdepends on BROKEN\n"; /audio/ and $ret .= "\tselect AUDIO_SUPPORT\n"; /display/ and $ret .= "\tselect DISPLAY_SUPPORT\n"; + /dt/ and $ret .= "\tselect USES_DEVICETREE\n"; /gpio/ and $ret .= "\tselect GPIO_SUPPORT\n"; /pci/ and $ret .= "\tselect PCI_SUPPORT\n"; /pcie/ and $ret .= "\tselect PCIE_SUPPORT\n"; @@ -177,6 +179,7 @@ sub target_config_features(@) { /powerpc64/ and $ret .= "\tselect powerpc64\n"; /nommu/ and $ret .= "\tselect NOMMU\n"; /mips16/ and $ret .= "\tselect HAS_MIPS16\n"; + /rfkill/ and $ret .= "\tselect RFKILL_SUPPORT\n"; } return $ret; } @@ -371,6 +374,16 @@ EOF print "\tdefault \"".$target->{cflags}."\" if TARGET_".$target->{conf}."\n"; } print "\tdefault \"-Os -pipe -funit-at-a-time\"\n"; + print <{subtargets}} > 0; + print "\tdefault \"".$target->{cputype}."\" if TARGET_".$target->{conf}."\n"; + } + print "\tdefault \"\"\n"; my %kver; foreach my $target (@target) { @@ -441,6 +454,7 @@ sub mconf_depends { my $parent_condition = shift; $dep or $dep = {}; $seen or $seen = {}; + my @t_depends; $depends or return; my @depends = @$depends; @@ -453,6 +467,7 @@ sub mconf_depends { next if $condition eq $depend; next if $seen->{"$parent_condition:$depend"}; + next if $seen->{":$depend"}; $seen->{"$parent_condition:$depend"} = 1; if ($depend =~ /^(.+):(.+)$/) { if ($1 ne "PACKAGE_$pkgname") { @@ -473,7 +488,7 @@ sub mconf_depends { # 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($pkgname, $package{$depend}->{depends}, 1, $dep, $seen, $condition); + $package{$depend} and push @t_depends, [ $package{$depend}->{depends}, $condition ]; $m = "select"; next if $only_dep; @@ -490,6 +505,11 @@ sub mconf_depends { } $dep->{$depend} =~ /select/ or $dep->{$depend} = $m; } + + foreach my $tdep (@t_depends) { + mconf_depends($pkgname, $tdep->[0], 1, $dep, $seen, $tdep->[1]); + } + foreach my $depend (keys %$dep) { my $m = $dep->{$depend}; $res .= "\t\t$m $depend\n";