diff options
| -rwxr-xr-x | scripts/gen_target_mk.pl | 37 | 
1 files changed, 29 insertions, 8 deletions
diff --git a/scripts/gen_target_mk.pl b/scripts/gen_target_mk.pl index 52f2a5c06..0e4d50a74 100755 --- a/scripts/gen_target_mk.pl +++ b/scripts/gen_target_mk.pl @@ -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  }  | 
