implement target profiles in menuconfig
SVN-Revision: 5512
This commit is contained in:
@@ -89,10 +89,13 @@ sub print_category($) {
|
||||
if ($c > 0) {
|
||||
$title .= ("." x $c). " ". $pkg->{title};
|
||||
}
|
||||
print "\tconfig DEFAULT_".$pkg->{name}."\n";
|
||||
print "\t\tbool\n\n";
|
||||
print "\t";
|
||||
$pkg->{menu} and print "menu";
|
||||
print "config PACKAGE_".$pkg->{name}."\n";
|
||||
print "\t\ttristate \"$title\"\n";
|
||||
print "\t\tdefault y if DEFAULT_".$pkg->{name}."\n";
|
||||
foreach my $default (split /\s*,\s*/, $pkg->{default}) {
|
||||
print "\t\tdefault $default\n";
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ use strict;
|
||||
|
||||
my @target;
|
||||
my $target;
|
||||
my $profiles;
|
||||
my $profile;
|
||||
|
||||
sub features(@) {
|
||||
my $ret;
|
||||
@@ -30,8 +32,11 @@ sub features(@) {
|
||||
while (<>) {
|
||||
chomp;
|
||||
/^Target:\s*((.+)-(\d+\.\d+))\s*$/ and do {
|
||||
my $conf = uc $3.'_'.$2;
|
||||
$conf =~ tr/\.-/__/;
|
||||
$target = {
|
||||
id => $1,
|
||||
conf => $conf,
|
||||
board => $2,
|
||||
kernel => $3
|
||||
};
|
||||
@@ -56,6 +61,22 @@ while (<>) {
|
||||
/^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;
|
||||
/^Default-Packages:\s*(.+)\s*$/ and do {
|
||||
my @pkgs = split /\s+/, $1;
|
||||
$target->{defaultpkgs} = \@pkgs;
|
||||
};
|
||||
/^Target-Profile:\s*(.+)\s*$/ and do {
|
||||
$profiles = $target->{profiles} or $target->{profiles} = $profiles = [];
|
||||
$profile = {
|
||||
id => $1
|
||||
};
|
||||
push @$profiles, $profile;
|
||||
};
|
||||
/^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1;
|
||||
/^Target-Profile-Packages:\s*(.+)\s*$/ and do {
|
||||
my @pkgs = split /\s+/, $1;
|
||||
$profile->{pkgs} = \@pkgs;
|
||||
};
|
||||
}
|
||||
|
||||
@target = sort {
|
||||
@@ -63,13 +84,18 @@ while (<>) {
|
||||
} @target;
|
||||
|
||||
|
||||
print <<EOF;
|
||||
choice
|
||||
prompt "Target System"
|
||||
default LINUX_2_4_BRCM
|
||||
|
||||
EOF
|
||||
|
||||
foreach $target (@target) {
|
||||
my $conf = uc $target->{kernel}.'_'.$target->{board};
|
||||
my $features = features(@{$target->{features}});
|
||||
my $help = $target->{desc};
|
||||
chomp $features;
|
||||
$features .= "\n";
|
||||
$conf =~ tr/\.-/__/;
|
||||
if ($help =~ /\w+/) {
|
||||
$help =~ s/^\s*/\t /mg;
|
||||
$help = "\thelp\n$help";
|
||||
@@ -78,7 +104,7 @@ foreach $target (@target) {
|
||||
}
|
||||
|
||||
print <<EOF
|
||||
config LINUX_$conf
|
||||
config LINUX_$target->{conf}
|
||||
bool "$target->{name}"
|
||||
select $target->{arch}
|
||||
$features$help
|
||||
@@ -86,3 +112,87 @@ $features$help
|
||||
EOF
|
||||
}
|
||||
|
||||
print <<EOF;
|
||||
if DEVEL
|
||||
|
||||
config LINUX_2_6_ARM
|
||||
bool "UNSUPPORTED little-endian arm platform"
|
||||
depends BROKEN
|
||||
select LINUX_2_6
|
||||
select arm
|
||||
|
||||
config LINUX_2_6_CRIS
|
||||
bool "UNSUPPORTED cris platform"
|
||||
depends BROKEN
|
||||
select LINUX_2_6
|
||||
select cris
|
||||
|
||||
config LINUX_2_6_M68K
|
||||
bool "UNSUPPORTED m68k platform"
|
||||
depends BROKEN
|
||||
select LINUX_2_6
|
||||
select m68k
|
||||
|
||||
config LINUX_2_6_SH3
|
||||
bool "UNSUPPORTED little-endian sh3 platform"
|
||||
depends BROKEN
|
||||
select LINUX_2_6
|
||||
select sh3
|
||||
|
||||
config LINUX_2_6_SH3EB
|
||||
bool "UNSUPPORTED big-endian sh3 platform"
|
||||
depends BROKEN
|
||||
select LINUX_2_6
|
||||
select sh3eb
|
||||
|
||||
config LINUX_2_6_SH4
|
||||
bool "UNSUPPORTED little-endian sh4 platform"
|
||||
depends BROKEN
|
||||
select LINUX_2_6
|
||||
select sh4
|
||||
|
||||
config LINUX_2_6_SH4EB
|
||||
bool "UNSUPPORTED big-endian sh4 platform"
|
||||
depends BROKEN
|
||||
select LINUX_2_6
|
||||
select sh4eb
|
||||
|
||||
config LINUX_2_6_SPARC
|
||||
bool "UNSUPPORTED sparc platform"
|
||||
depends BROKEN
|
||||
select LINUX_2_6
|
||||
select sparc
|
||||
|
||||
endif
|
||||
|
||||
endchoice
|
||||
|
||||
choice
|
||||
prompt "Target Profile"
|
||||
|
||||
EOF
|
||||
|
||||
foreach $target (@target) {
|
||||
my $profiles;
|
||||
|
||||
$profiles = $target->{profiles} or $profiles = [
|
||||
{
|
||||
id => 'Default',
|
||||
name => 'Default',
|
||||
pkgs => []
|
||||
}
|
||||
];
|
||||
foreach my $profile (@$profiles) {
|
||||
print <<EOF;
|
||||
config LINUX_$target->{conf}_$profile->{id}
|
||||
bool "$profile->{name}"
|
||||
depends LINUX_$target->{conf}
|
||||
EOF
|
||||
foreach my $pkg (@{$target->{defaultpkgs}}, @{$profile->{pkgs}}) {
|
||||
print "\tselect DEFAULT_$pkg\n";
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
|
||||
print "endchoice\n";
|
||||
|
||||
Reference in New Issue
Block a user