some cleanups in the metadata.pl script; allow target profiles to add overrides for menuconfig
SVN-Revision: 6648
This commit is contained in:
		| @@ -220,6 +220,7 @@ confname=$(subst .,_,$(subst -,_,$(1))) | |||||||
| define Profile | define Profile | ||||||
|   $(eval $(call Profile/Default)) |   $(eval $(call Profile/Default)) | ||||||
|   $(eval $(call Profile/$(1))) |   $(eval $(call Profile/$(1))) | ||||||
|  |   $(eval $(call shexport,Profile/$(1)/Config)) | ||||||
|   $(eval $(call shexport,Profile/$(1)/Description)) |   $(eval $(call shexport,Profile/$(1)/Description)) | ||||||
|   DUMPINFO += \ |   DUMPINFO += \ | ||||||
| 	echo "Target-Profile: $(1)"; \ | 	echo "Target-Profile: $(1)"; \ | ||||||
| @@ -228,6 +229,9 @@ define Profile | |||||||
| 	if [ -f ./config/profile-$(1) ]; then \ | 	if [ -f ./config/profile-$(1) ]; then \ | ||||||
| 		echo "Target-Profile-Kconfig: yes"; \ | 		echo "Target-Profile-Kconfig: yes"; \ | ||||||
| 	fi; \ | 	fi; \ | ||||||
|  | 	echo "Target-Profile-Config: "; \ | ||||||
|  | 	getvar "$(call shvar,Profile/$(1)/Config)"; \ | ||||||
|  | 	echo "@@"; \ | ||||||
| 	echo "Target-Profile-Description:"; \ | 	echo "Target-Profile-Description:"; \ | ||||||
| 	getvar "$(call shvar,Profile/$(1)/Description)"; \ | 	getvar "$(call shvar,Profile/$(1)/Description)"; \ | ||||||
| 	echo "@@"; \ | 	echo "@@"; \ | ||||||
|   | |||||||
| @@ -5,6 +5,18 @@ my %package; | |||||||
| my %srcpackage; | my %srcpackage; | ||||||
| my %category; | 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() { | sub parse_target_metadata() { | ||||||
| 	my ($target, @target, $profile);	 | 	my ($target, @target, $profile);	 | ||||||
| 	while (<>) { | 	while (<>) { | ||||||
| @@ -25,14 +37,7 @@ sub parse_target_metadata() { | |||||||
| 		/^Target-Path:\s*(.+)\s*$/ and $target->{path} = $1; | 		/^Target-Path:\s*(.+)\s*$/ and $target->{path} = $1; | ||||||
| 		/^Target-Arch:\s*(.+)\s*$/ and $target->{arch} = $1; | 		/^Target-Arch:\s*(.+)\s*$/ and $target->{arch} = $1; | ||||||
| 		/^Target-Features:\s*(.+)\s*$/ and $target->{features} = [ split(/\s+/, $1) ]; | 		/^Target-Features:\s*(.+)\s*$/ and $target->{features} = [ split(/\s+/, $1) ]; | ||||||
| 		/^Target-Description:/ and do { | 		/^Target-Description:/ and $target->{desc} = get_multiline(); | ||||||
| 			my $desc; |  | ||||||
| 			while (<>) { |  | ||||||
| 				last if /^@@/; |  | ||||||
| 				$desc .= $_; |  | ||||||
| 			} |  | ||||||
| 			$target->{desc} = $desc; |  | ||||||
| 		}; |  | ||||||
| 		/^Linux-Version:\s*(.+)\s*$/ and $target->{version} = $1; | 		/^Linux-Version:\s*(.+)\s*$/ and $target->{version} = $1; | ||||||
| 		/^Linux-Release:\s*(.+)\s*$/ and $target->{release} = $1; | 		/^Linux-Release:\s*(.+)\s*$/ and $target->{release} = $1; | ||||||
| 		/^Linux-Kernel-Arch:\s*(.+)\s*$/ and $target->{karch} = $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-Name:\s*(.+)\s*$/ and $profile->{name} = $1; | ||||||
| 		/^Target-Profile-Packages:\s*(.*)\s*$/ and $profile->{packages} = [ split(/\s+/, $1) ]; | 		/^Target-Profile-Packages:\s*(.*)\s*$/ and $profile->{packages} = [ split(/\s+/, $1) ]; | ||||||
| 		/^Target-Profile-Description:/ and do { | 		/^Target-Profile-Description:\s*(.*)\s*/ and $profile->{desc} = get_multiline(); | ||||||
| 			my $desc; | 		/^Target-Profile-Config:/ and $profile->{config} = get_multiline("\t"); | ||||||
| 			while (<>) { |  | ||||||
| 				last if /^@@/; |  | ||||||
| 				$desc .= $_; |  | ||||||
| 			} |  | ||||||
| 			$profile->{desc} = $desc; |  | ||||||
| 		}; |  | ||||||
| 		/^Target-Profile-Kconfig:/ and $profile->{kconfig} = 1; | 		/^Target-Profile-Kconfig:/ and $profile->{kconfig} = 1; | ||||||
| 	} | 	} | ||||||
| 	foreach my $target (@target) { | 	foreach my $target (@target) { | ||||||
| @@ -106,38 +105,16 @@ sub parse_package_metadata() { | |||||||
| 				push @{$package{$vpkg}->{vdepends}}, $pkg->{name}; | 				push @{$package{$vpkg}->{vdepends}}, $pkg->{name}; | ||||||
| 			} | 			} | ||||||
| 		}; | 		}; | ||||||
| 		/^Depends: \s*(.+)\s*$/ and do { | 		/^Depends: \s*(.+)\s*$/ and $pkg->{depends} = [ split /\s+/, $1 ]; | ||||||
| 			my @dep = split /\s+/, $1; | 		/^Build-Depends: \s*(.+)\s*$/ and $pkg->{builddepends} = [ split /\s+/, $1 ]; | ||||||
| 			$pkg->{depends} = \@dep; |  | ||||||
| 		}; |  | ||||||
| 		/^Build-Depends: \s*(.+)\s*$/ and do { |  | ||||||
| 			my @dep = split /\s+/, $1; |  | ||||||
| 			$pkg->{builddepends} = \@dep; |  | ||||||
| 		}; |  | ||||||
| 		/^Category: \s*(.+)\s*$/ and do { | 		/^Category: \s*(.+)\s*$/ and do { | ||||||
| 			$pkg->{category} = $1; | 			$pkg->{category} = $1; | ||||||
| 			defined $category{$1} or $category{$1} = {}; | 			defined $category{$1} or $category{$1} = {}; | ||||||
| 			defined $category{$1}->{$src} or $category{$1}->{$src} = []; | 			defined $category{$1}->{$src} or $category{$1}->{$src} = []; | ||||||
| 			push @{$category{$1}->{$src}}, $pkg; | 			push @{$category{$1}->{$src}}, $pkg; | ||||||
| 		}; | 		}; | ||||||
| 		/^Description: \s*(.*)\s*$/ and do { | 		/^Description: \s*(.*)\s*$/ and $pkg->{description} = "\t\t $1\n". get_multiline("\t\t "); | ||||||
| 			my $desc = "\t\t$1\n\n"; | 		/^Config: \s*(.*)\s*$/ and $pkg->{config} = "$1\n".get_multiline(); | ||||||
| 			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; |  | ||||||
| 		}; |  | ||||||
| 		/^Prereq-Check:/ and $pkg->{prereq} = 1; | 		/^Prereq-Check:/ and $pkg->{prereq} = 1; | ||||||
| 		/^Preconfig:\s*(.+)\s*$/ and do { | 		/^Preconfig:\s*(.+)\s*$/ and do { | ||||||
| 			my $pkgname = $pkg->{name}; | 			my $pkgname = $pkg->{name}; | ||||||
| @@ -323,6 +300,7 @@ EOF | |||||||
| config LINUX_$target->{conf}_$profile->{id} | config LINUX_$target->{conf}_$profile->{id} | ||||||
| 	bool "$profile->{name}" | 	bool "$profile->{name}" | ||||||
| 	depends LINUX_$target->{conf} | 	depends LINUX_$target->{conf} | ||||||
|  | $profile->{config} | ||||||
| EOF | EOF | ||||||
| 			$profile->{kconfig} and print "\tselect PROFILE_KCONFIG\n"; | 			$profile->{kconfig} and print "\tselect PROFILE_KCONFIG\n"; | ||||||
| 			my %pkgs; | 			my %pkgs; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau