summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-03-23 14:48:47 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-03-23 14:48:47 +0000
commitaff12f542e56732b0ae0ba36731be9f86e719549 (patch)
treedf1cf207dd818164def00c8bc0bc2bc7e5605413
parent927764abf2c7710c29a100332587e4235fb36cf2 (diff)
some cleanups in the metadata.pl script; allow target profiles to add overrides for menuconfig
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6648 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--include/kernel-build.mk4
-rwxr-xr-xscripts/metadata.pl62
2 files changed, 24 insertions, 42 deletions
diff --git a/include/kernel-build.mk b/include/kernel-build.mk
index 3193e9d18..b2837d1df 100644
--- a/include/kernel-build.mk
+++ b/include/kernel-build.mk
@@ -220,6 +220,7 @@ confname=$(subst .,_,$(subst -,_,$(1)))
define Profile
$(eval $(call Profile/Default))
$(eval $(call Profile/$(1)))
+ $(eval $(call shexport,Profile/$(1)/Config))
$(eval $(call shexport,Profile/$(1)/Description))
DUMPINFO += \
echo "Target-Profile: $(1)"; \
@@ -228,6 +229,9 @@ define Profile
if [ -f ./config/profile-$(1) ]; then \
echo "Target-Profile-Kconfig: yes"; \
fi; \
+ echo "Target-Profile-Config: "; \
+ getvar "$(call shvar,Profile/$(1)/Config)"; \
+ echo "@@"; \
echo "Target-Profile-Description:"; \
getvar "$(call shvar,Profile/$(1)/Description)"; \
echo "@@"; \
diff --git a/scripts/metadata.pl b/scripts/metadata.pl
index ebe5eb237..2527915bc 100755
--- a/scripts/metadata.pl
+++ b/scripts/metadata.pl
@@ -5,6 +5,18 @@ my %package;
my %srcpackage;
my %category;
+sub get_multiline {
+ my $prefix = shift;
+ my $str;
+ while (<>) {
+ last if /^@@/;
+ s/^\s*//g;
+ $str .= (($_ and $prefix) ? $prefix . $_ : $_);
+ }
+
+ return $str;
+}
+
sub parse_target_metadata() {
my ($target, @target, $profile);
while (<>) {
@@ -25,14 +37,7 @@ sub parse_target_metadata() {
/^Target-Path:\s*(.+)\s*$/ and $target->{path} = $1;
/^Target-Arch:\s*(.+)\s*$/ and $target->{arch} = $1;
/^Target-Features:\s*(.+)\s*$/ and $target->{features} = [ split(/\s+/, $1) ];
- /^Target-Description:/ and do {
- my $desc;
- while (<>) {
- last if /^@@/;
- $desc .= $_;
- }
- $target->{desc} = $desc;
- };
+ /^Target-Description:/ and $target->{desc} = get_multiline();
/^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;
@@ -47,14 +52,8 @@ sub parse_target_metadata() {
};
/^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1;
/^Target-Profile-Packages:\s*(.*)\s*$/ and $profile->{packages} = [ split(/\s+/, $1) ];
- /^Target-Profile-Description:/ and do {
- my $desc;
- while (<>) {
- last if /^@@/;
- $desc .= $_;
- }
- $profile->{desc} = $desc;
- };
+ /^Target-Profile-Description:\s*(.*)\s*/ and $profile->{desc} = get_multiline();
+ /^Target-Profile-Config:/ and $profile->{config} = get_multiline("\t");
/^Target-Profile-Kconfig:/ and $profile->{kconfig} = 1;
}
foreach my $target (@target) {
@@ -106,38 +105,16 @@ sub parse_package_metadata() {
push @{$package{$vpkg}->{vdepends}}, $pkg->{name};
}
};
- /^Depends: \s*(.+)\s*$/ and do {
- my @dep = split /\s+/, $1;
- $pkg->{depends} = \@dep;
- };
- /^Build-Depends: \s*(.+)\s*$/ and do {
- my @dep = split /\s+/, $1;
- $pkg->{builddepends} = \@dep;
- };
+ /^Depends: \s*(.+)\s*$/ and $pkg->{depends} = [ split /\s+/, $1 ];
+ /^Build-Depends: \s*(.+)\s*$/ and $pkg->{builddepends} = [ split /\s+/, $1 ];
/^Category: \s*(.+)\s*$/ and do {
$pkg->{category} = $1;
defined $category{$1} or $category{$1} = {};
defined $category{$1}->{$src} or $category{$1}->{$src} = [];
push @{$category{$1}->{$src}}, $pkg;
};
- /^Description: \s*(.*)\s*$/ and do {
- my $desc = "\t\t$1\n\n";
- my $line;
- while ($line = <>) {
- last if $line =~ /^@@/;
- $desc .= "\t\t$line";
- }
- $pkg->{description} = $desc;
- };
- /^Config: \s*(.*)\s*$/ and do {
- my $conf = "$1\n";
- my $line;
- while ($line = <>) {
- last if $line =~ /^@@/;
- $conf .= "$line";
- }
- $pkg->{config} = $conf;
- };
+ /^Description: \s*(.*)\s*$/ and $pkg->{description} = "\t\t $1\n". get_multiline("\t\t ");
+ /^Config: \s*(.*)\s*$/ and $pkg->{config} = "$1\n".get_multiline();
/^Prereq-Check:/ and $pkg->{prereq} = 1;
/^Preconfig:\s*(.+)\s*$/ and do {
my $pkgname = $pkg->{name};
@@ -323,6 +300,7 @@ EOF
config LINUX_$target->{conf}_$profile->{id}
bool "$profile->{name}"
depends LINUX_$target->{conf}
+$profile->{config}
EOF
$profile->{kconfig} and print "\tselect PROFILE_KCONFIG\n";
my %pkgs;