some cleanups in the metadata.pl script; allow target profiles to add overrides for...
authorFelix Fietkau <nbd@openwrt.org>
Fri, 23 Mar 2007 14:48:47 +0000 (14:48 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 23 Mar 2007 14:48:47 +0000 (14:48 +0000)
SVN-Revision: 6648

include/kernel-build.mk
scripts/metadata.pl

index 3193e9d..b2837d1 100644 (file)
@@ -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 "@@"; \
index ebe5eb2..2527915 100755 (executable)
@@ -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;