extend tmp/.target.mk to include target profile information - preparation for the image builder
SVN-Revision: 6050
This commit is contained in:
		| @@ -10,6 +10,7 @@ use strict; | ||||
|  | ||||
| my @target; | ||||
| my $target; | ||||
| my $profile; | ||||
|  | ||||
| while (<>) { | ||||
| 	chomp; | ||||
| @@ -17,18 +18,15 @@ while (<>) { | ||||
| 		$target = { | ||||
| 			id => $1, | ||||
| 			board => $2, | ||||
| 			kernel => $3 | ||||
| 			kernel => $3, | ||||
| 			profiles => [] | ||||
| 		}; | ||||
| 		push @target, $target; | ||||
| 	}; | ||||
| 	/^Target-Name:\s*(.+)\s*$/ and $target->{name} = $1; | ||||
| 	/^Target-Path:\s*(.+)\s*$/ and $target->{path} = $1; | ||||
| 	/^Target-Arch:\s*(.+)\s*$/ and $target->{arch} = $1; | ||||
| 	/^Target-Features:\s*(.+)\s*$/ and do { | ||||
| 		my $f = []; | ||||
| 		$target->{features} = $f; | ||||
| 		@$f = split /\s+/, $1; | ||||
| 	}; | ||||
| 	/^Target-Features:\s*(.+)\s*$/ and $target->{features} = [ split(/\s+/, $1) ]; | ||||
| 	/^Target-Description:/ and do { | ||||
| 		my $desc; | ||||
| 		while (<>) { | ||||
| @@ -40,6 +38,17 @@ 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 $target->{packages} = [ split(/\s+/, $1) ]; | ||||
| 	/^Target-Profile:\s*(.+)\s*$/ and do { | ||||
| 		$profile = { | ||||
| 			id => $1, | ||||
| 			name => $1, | ||||
| 			packages => [] | ||||
| 		}; | ||||
| 		push @{$target->{profiles}}, $profile; | ||||
| 	}; | ||||
| 	/^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1; | ||||
| 	/^Target-Profile-Packages:\s*(.*)\s*$/ and $profile->{packages} = [ split(/\s+/, $1) ]; | ||||
| } | ||||
|  | ||||
| @target = sort { | ||||
| @@ -47,8 +56,20 @@ while (<>) { | ||||
| } @target; | ||||
|  | ||||
| foreach $target (@target) { | ||||
| 	my ($profiles_def, $profiles_eval); | ||||
| 	my $conf = uc $target->{kernel}.'_'.$target->{board}; | ||||
| 	$conf =~ tr/\.-/__/; | ||||
| 	 | ||||
| 	foreach my $profile (@{$target->{profiles}}) { | ||||
| 		$profiles_def .= " | ||||
|   define Profile/$conf\_$profile->{id} | ||||
|     ID:=$profile->{id} | ||||
|     NAME:=$profile->{name} | ||||
|     PACKAGES:=".join(" ", @{$profile->{packages}})." | ||||
|   endef"; | ||||
|   $profiles_eval .= " | ||||
| \$(eval \$(call Profile,$conf\_$profile->{id}))" | ||||
| 	} | ||||
| 	print <<EOF | ||||
| ifeq (\$(CONFIG_LINUX_$conf),y) | ||||
|   define Target | ||||
| @@ -57,8 +78,8 @@ ifeq (\$(CONFIG_LINUX_$conf),y) | ||||
|     LINUX_VERSION:=$target->{version} | ||||
|     LINUX_RELEASE:=$target->{release} | ||||
|     LINUX_KARCH:=$target->{karch} | ||||
|   endef | ||||
| endif | ||||
|   endef$profiles_def | ||||
| endif$profiles_eval | ||||
|  | ||||
| EOF | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user