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";
|