From fb68d6c468c3ef13f94fea1c9ee32ea9cdcba836 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 9 Sep 2007 22:39:10 +0000 Subject: [PATCH] define extra config symbols for targets containing multiple subtargets SVN-Revision: 8724 --- scripts/metadata.pl | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 2fcbf82dfa..695abf7b32 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -5,6 +5,7 @@ my %package; my %srcpackage; my %category; my %subdir; +my %board; sub get_multiline { my $prefix = shift; @@ -18,21 +19,28 @@ sub get_multiline { return $str; } +sub confstr($) { + my $conf = shift; + $conf =~ tr#/\.\-/#___#; + return $conf; +} + sub parse_target_metadata() { my ($target, @target, $profile); while (<>) { chomp; /^Target:\s*(.+)\s*$/ and do { - my $conf = $1; - $conf =~ tr#/\.\-/#___#; $target = { id => $1, - conf => $conf, + conf => confstr($1), profiles => [] }; push @target, $target; }; - /^Target-Board:\s*(.+)\s*$/ and $target->{board} = $1; + /^Target-Board:\s*(.+)\s*$/ and do { + $target->{board} = $1; + $target->{boardconf} = confstr($1); + }; /^Target-Kernel:\s*(\d+\.\d+)\s*$/ and $target->{kernel} = $1; /^Target-Name:\s*(.+)\s*$/ and $target->{name} = $1; /^Target-Path:\s*(.+)\s*$/ and $target->{path} = $1; @@ -247,14 +255,16 @@ EOF undef $help; } - print <{conf} bool "$target->{name}" select $target->{arch} select LINUX_$kernel -$features$help - EOF + if ($target->{id} ne $target->{board}) { + print "\tselect TARGET_".$target->{boardconf}."\n"; + } + print "$features$help\n\n" } print <{board}."\" if TARGET_".$target->{conf}."\n"; } + + # add hidden target config options + foreach my $target (@target) { + next if $board{$target->{board}}; + if ($target->{id} ne $target->{board}) { + print "\nconfig TARGET_".$target->{boardconf}."\n\tbool\n"; + $board{$target->{board}} = 1; + } + } print <