Browse Source

define extra config symbols for targets containing multiple subtargets

SVN-Revision: 8724
Felix Fietkau 18 years ago
parent
commit
fb68d6c468
1 changed files with 26 additions and 7 deletions
  1. 26 7
      scripts/metadata.pl

+ 26 - 7
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 <<EOF
+		print <<EOF;
 config TARGET_$target->{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 <<EOF;
@@ -266,6 +276,15 @@ EOF
 	foreach my $target (@target) {
 		print "\t\tdefault \"".$target->{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 <<EOF;
 
 choice