From b04ef81416856af1fcab7d8d8b6522a26e1b9756 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 23 Mar 2007 14:48:47 +0000 Subject: [PATCH] some cleanups in the metadata.pl script; allow target profiles to add overrides for menuconfig SVN-Revision: 6648 --- include/kernel-build.mk | 4 +++ scripts/metadata.pl | 62 +++++++++++++---------------------------- 2 files changed, 24 insertions(+), 42 deletions(-) diff --git a/include/kernel-build.mk b/include/kernel-build.mk index 3193e9d185..b2837d1df3 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 ebe5eb2373..2527915bca 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;