X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/17c7b6c3fdc48301e50d22cc6138ede16bd1be24..16885019df804baacf75300ba8fc21f8fb40bf88:/scripts/metadata.pl diff --git a/scripts/metadata.pl b/scripts/metadata.pl index fe135418c..695abf7b3 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -5,6 +5,7 @@ my %package; my %srcpackage; my %category; my %subdir; +my %board; sub get_multiline { my $prefix = shift; @@ -18,20 +19,28 @@ sub get_multiline { return $str; } +sub confstr($) { + my $conf = shift; + $conf =~ tr#/\.\-/#___#; + return $conf; +} + sub parse_target_metadata() { my ($target, @target, $profile); while (<>) { chomp; /^Target:\s*(.+)\s*$/ and do { - my $conf = uc $1; - $conf =~ tr/\.-/__/; $target = { - conf => $conf, - board => $1, + id => $1, + conf => confstr($1), profiles => [] }; push @target, $target; }; + /^Target-Board:\s*(.+)\s*$/ and do { + $target->{board} = $1; + $target->{boardconf} = confstr($1); + }; /^Target-Kernel:\s*(\d+\.\d+)\s*$/ and $target->{kernel} = $1; /^Target-Name:\s*(.+)\s*$/ and $target->{name} = $1; /^Target-Path:\s*(.+)\s*$/ and $target->{path} = $1; @@ -198,45 +207,6 @@ sub merge_package_lists($$) { return sort(@l); } -sub gen_target_mk() { - my @target = parse_target_metadata(); - - @target = sort { - $a->{board} cmp $b->{board} - } @target; - - foreach my $target (@target) { - my ($profiles_def, $profiles_eval); - - foreach my $profile (@{$target->{profiles}}) { - $profiles_def .= " - define Profile/$target->{conf}\_$profile->{id} - ID:=$profile->{id} - NAME:=$profile->{name} - PACKAGES:=".join(" ", merge_package_lists($target->{packages}, $profile->{packages}))."\n"; - $profile->{kconfig} and $profiles_def .= " KCONFIG:=1\n"; - $profiles_def .= " endef"; - $profiles_eval .= " -\$(eval \$(call AddProfile,$target->{conf}\_$profile->{id}))" - } - print " -ifeq (\$(CONFIG_TARGET_$target->{conf}),y) - define Target - KERNEL:=$target->{kernel} - BOARD:=$target->{board} - BOARDNAME:=$target->{name} - LINUX_VERSION:=$target->{version} - LINUX_RELEASE:=$target->{release} - LINUX_KARCH:=$target->{karch} - DEFAULT_PACKAGES:=".join(" ", @{$target->{packages}})." - endef$profiles_def -endif$profiles_eval - -" - } - print "\$(eval \$(call Target))\n"; -} - sub target_config_features(@) { my $ret; @@ -265,7 +235,7 @@ sub gen_target_config() { print <{conf} bool "$target->{name}" select $target->{arch} select LINUX_$kernel -$features$help - EOF + if ($target->{id} ne $target->{board}) { + print "\tselect TARGET_".$target->{boardconf}."\n"; + } + print "$features$help\n\n" } print <{board}."\" if TARGET_".$target->{conf}."\n"; + } + + # add hidden target config options + foreach my $target (@target) { + next if $board{$target->{board}}; + if ($target->{id} ne $target->{board}) { + print "\nconfig TARGET_".$target->{boardconf}."\n\tbool\n"; + $board{$target->{board}} = 1; + } + } + print <