fix kernel config related build error
[openwrt.git] / scripts / metadata.pl
index 7b3b74b..2898289 100755 (executable)
@@ -72,6 +72,7 @@ sub parse_target_metadata() {
        }
        close FILE;
        foreach my $target (@target) {
+               next if @{$target->{subtargets}} > 0;
                @{$target->{profiles}} > 0 or $target->{profiles} = [
                        {
                                id => 'Default',
@@ -150,6 +151,7 @@ sub target_config_features(@) {
 
        while ($_ = shift @_) {
                /broken/ and $ret .= "\tdepends BROKEN\n";
+               /display/ and $ret .= "\tselect DISPLAY_SUPPORT\n";
                /pci/ and $ret .= "\tselect PCI_SUPPORT\n";
                /usb/ and $ret .= "\tselect USB_SUPPORT\n";
                /pcmcia/ and $ret .= "\tselect PCMCIA_SUPPORT\n";
@@ -171,6 +173,13 @@ sub target_name($) {
        }
 }
 
+sub kver($) {
+       my $v = shift;
+       $v =~ tr/\./_/;
+       $v =~ /(\d+_\d+_\d+)(_\d+)?/ and $v = $1;
+       return $v;
+}
+
 sub print_target($) {
        my $target = shift;
        my $features = target_config_features(@{$target->{features}});
@@ -188,10 +197,12 @@ sub print_target($) {
                undef $help;
        }
 
+       my $v = kver($target->{version});
        $confstr = <<EOF;
 config TARGET_$target->{conf}
        bool "$target->{name}"
        select LINUX_$kernel
+       select LINUX_$v
 EOF
        if ($target->{subtarget}) {
                $confstr .= "\tdepends TARGET_$target->{boardconf}\n";
@@ -294,6 +305,16 @@ EOF
                $target->{subtarget} or print "\t\tdefault \"".$target->{board}."\" if TARGET_".$target->{conf}."\n";
        }
 
+       my %kver;
+       foreach my $target (@target) {
+               my $v = kver($target->{version});
+               next if $kver{$v};
+               $kver{$v} = 1;
+               print <<EOF;
+config LINUX_$v
+       bool
+EOF
+       }
 }
 
 my %dep_check;
This page took 0.026141 seconds and 4 git commands to generate.