X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=scripts%2Fmetadata.pl;h=2fcbf82dfa8ce785b9d2327da95f0e62e36cdddc;hb=6db7ad74f61eeaae0c8ecb08d483599d9d80c53f;hp=75fda05d4436b84f2c5151967a745693db2c36a3;hpb=263c7a706996b2991462fdc47146cb9a7a6ac19f;p=openwrt.git diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 75fda05d44..2fcbf82dfa 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -22,18 +22,18 @@ sub parse_target_metadata() { my ($target, @target, $profile); while (<>) { chomp; - /^Target:\s*((.+)-(\d+\.\d+))\s*$/ and do { - my $conf = uc $3.'_'.$2; - $conf =~ tr/\.-/__/; + /^Target:\s*(.+)\s*$/ and do { + my $conf = $1; + $conf =~ tr#/\.\-/#___#; $target = { id => $1, conf => $conf, - board => $2, - kernel => $3, profiles => [] }; push @target, $target; }; + /^Target-Board:\s*(.+)\s*$/ and $target->{board} = $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; /^Target-Arch:\s*(.+)\s*$/ and $target->{arch} = $1; @@ -199,47 +199,6 @@ sub merge_package_lists($$) { return sort(@l); } -sub gen_target_mk() { - my @target = parse_target_metadata(); - - @target = sort { - $a->{id} cmp $b->{id} - } @target; - - foreach my $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(" ", merge_package_lists($target->{packages}, $profile->{packages}))."\n"; - $profile->{kconfig} and $profiles_def .= " KCONFIG:=1\n"; - $profiles_def .= " endef"; - $profiles_eval .= " -\$(eval \$(call AddProfile,$conf\_$profile->{id}))" - } - print " -ifeq (\$(CONFIG_LINUX_$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; @@ -268,7 +227,7 @@ sub gen_target_config() { print <{conf} +config TARGET_$target->{conf} bool "$target->{name}" select $target->{arch} select LINUX_$kernel @@ -299,60 +258,16 @@ EOF } print <{board}."\" if TARGET_".$target->{conf}."\n"; + } + print <{conf}_$profile->{id} +config TARGET_$target->{conf}_$profile->{id} bool "$profile->{name}" - depends LINUX_$target->{conf} + depends TARGET_$target->{conf} $profile->{config} EOF $profile->{kconfig} and print "\tselect PROFILE_KCONFIG\n"; @@ -556,7 +471,7 @@ sub gen_package_mk() { } if ($config) { print "package-$config += $pkg->{subdir}$pkg->{src}\n"; - $pkg->{prereq} and print "prereq-$config += $pkg->{src}\n"; + $pkg->{prereq} and print "prereq-$config += $pkg->{subdir}$pkg->{src}\n"; } my $hasdeps = 0; @@ -576,12 +491,12 @@ sub gen_package_mk() { undef $idx if $idx =~ /^(kernel)|(base-files)$/; if ($idx) { next if $dep{$pkg->{src}."->".$idx}; - $depline .= " $idx\-compile"; + $depline .= " \$(curdir)/$idx/compile"; $dep{$pkg->{src}."->".$idx} = 1; } } if ($depline) { - $line .= $pkg->{subdir}."$pkg->{src}-compile: $depline\n"; + $line .= "\$(curdir)/".$pkg->{subdir}."$pkg->{src}/compile += $depline\n"; } } @@ -604,7 +519,7 @@ $cmds \\ ) > \$@ ifneq (\$(UCI_PRECONFIG)\$(CONFIG_UCI_PRECONFIG),) - preconfig: \$(TARGET_DIR)/etc/uci-defaults/$preconfig + package/preconfig: \$(TARGET_DIR)/etc/uci-defaults/$preconfig endif EOF } @@ -614,7 +529,6 @@ EOF sub parse_command() { my $cmd = shift @ARGV; for ($cmd) { - /^target_mk$/ and return gen_target_mk(); /^target_config$/ and return gen_target_config(); /^package_mk$/ and return gen_package_mk(); /^package_config$/ and return gen_package_config(); @@ -622,7 +536,6 @@ sub parse_command() { } print <