aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2006-11-12 05:06:56 +0000
committerFelix Fietkau <nbd@openwrt.org>2006-11-12 05:06:56 +0000
commit768b48f380f60031f632cd7d1bc6be05e03a72a8 (patch)
treedf67c1174d33863318f90dbce91f22c7b204038c /scripts
parent87f59ecd7c9bddefaf9710b21f61b1d5a310ebfc (diff)
downloadmaster-187ad058-768b48f380f60031f632cd7d1bc6be05e03a72a8.tar.gz
master-187ad058-768b48f380f60031f632cd7d1bc6be05e03a72a8.tar.bz2
master-187ad058-768b48f380f60031f632cd7d1bc6be05e03a72a8.zip
implement target profiles in menuconfig
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5512 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/gen_package_config.pl3
-rwxr-xr-xscripts/gen_target_config.pl116
2 files changed, 116 insertions, 3 deletions
diff --git a/scripts/gen_package_config.pl b/scripts/gen_package_config.pl
index 9c705af563..4ce117c06f 100755
--- a/scripts/gen_package_config.pl
+++ b/scripts/gen_package_config.pl
@@ -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";
}
diff --git a/scripts/gen_target_config.pl b/scripts/gen_target_config.pl
index c0b83963b6..4d0d6b13ef 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";