summaryrefslogtreecommitdiff
path: root/scripts/gen_target_config.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gen_target_config.pl')
-rwxr-xr-xscripts/gen_target_config.pl116
1 files changed, 113 insertions, 3 deletions
diff --git a/scripts/gen_target_config.pl b/scripts/gen_target_config.pl
index c0b8396..4d0d6b1 100755
--- a/scripts/gen_target_config.pl
+++ b/scripts/gen_target_config.pl
@@ -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";