some cleanups in the metadata.pl script; allow target profiles to add overrides for menuconfig

SVN-Revision: 6648
This commit is contained in:
Felix Fietkau 2007-03-23 14:48:47 +00:00
parent c48b6508fe
commit b04ef81416
2 changed files with 24 additions and 42 deletions

View File

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

View File

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