66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl
 | |
| # 
 | |
| # Copyright (C) 2006 OpenWrt.org
 | |
| #
 | |
| # This is free software, licensed under the GNU General Public License v2.
 | |
| # See /LICENSE for more information.
 | |
| #
 | |
| 
 | |
| use strict;
 | |
| 
 | |
| my @target;
 | |
| my $target;
 | |
| 
 | |
| while (<>) {
 | |
| 	chomp;
 | |
| 	/^Target:\s*((.+)-(\d+\.\d+))\s*$/ and do {
 | |
| 		$target = {
 | |
| 			id => $1,
 | |
| 			board => $2,
 | |
| 			kernel => $3
 | |
| 		};
 | |
| 		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-Description:/ and do {
 | |
| 		my $desc;
 | |
| 		while (<>) {
 | |
| 			last if /^@@/;
 | |
| 			$desc .= $_;
 | |
| 		}
 | |
| 		$target->{desc} = $desc;
 | |
| 	};
 | |
| 	/^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;
 | |
| }
 | |
| 
 | |
| @target = sort {
 | |
| 	$a->{id} cmp $b->{id}
 | |
| } @target;
 | |
| 
 | |
| foreach $target (@target) {
 | |
| 	my $conf = uc $target->{kernel}.'_'.$target->{board};
 | |
| 	$conf =~ tr/\.-/__/;
 | |
| 	print <<EOF
 | |
| ifeq (\$(CONFIG_LINUX_$conf),y)
 | |
|   define Target
 | |
|     KERNEL:=$target->{kernel}
 | |
|     BOARD:=$target->{board}
 | |
|     LINUX_VERSION:=$target->{version}
 | |
|     LINUX_RELEASE:=$target->{release}
 | |
|     LINUX_KARCH:=$target->{karch}
 | |
|   endef
 | |
| endif
 | |
| 
 | |
| EOF
 | |
| }
 | |
| print "\$(eval \$(call Target))\n";
 | 
