imagebuilder: use correct package directory when bundling kmods and libc
[openwrt/staging/lynxis/omap.git] / scripts / metadata.pl
index 48b1b7a96048d8e8729abc31aad8e0cdacc4f2da..5695bda4a45bb31ed2cea3bd8d96152db473ea21 100755 (executable)
@@ -321,6 +321,18 @@ EOF
                $target->{subtarget} or print "\t\tdefault \"".$target->{board}."\" if TARGET_".$target->{conf}."\n";
        }
        print <<EOF;
+config TARGET_SUBTARGET
+       string
+       default "generic" if !HAS_SUBTARGETS
+
+EOF
+
+       foreach my $target (@target) {
+               foreach my $subtarget (@{$target->{subtargets}}) {
+                       print "\t\tdefault \"$subtarget\" if TARGET_".$target->{conf}."_$subtarget\n";
+               }
+       }
+       print <<EOF;
 config TARGET_ARCH_PACKAGES
        string
        
@@ -546,11 +558,14 @@ sub print_package_config_category($) {
                        print "\t\t".($pkg->{tristate} ? 'tristate' : 'bool')." $title\n";
                        print "\t\tdefault y if DEFAULT_".$pkg->{name}."\n";
                        unless ($pkg->{hidden}) {
+                               my @def = ("ALL");
+                               if (!exists($pkg->{repository})) {
+                                       push @def, "ALL_NONSHARED";
+                               }
                                if ($pkg->{name} =~ /^kmod-/) {
-                                       $pkg->{default} ||= "m if ALL_KMODS";
-                               } else {
-                                       $pkg->{default} ||= "m if ALL";
+                                       push @def, "ALL_KMODS";
                                }
+                               $pkg->{default} ||= "m if " . join("||", @def);
                        }
                        if ($pkg->{default}) {
                                foreach my $default (split /\s*,\s*/, $pkg->{default}) {
@@ -833,12 +848,12 @@ sub gen_package_source() {
        }
 }
 
-sub gen_package_feeds() {
+sub gen_package_subdirs() {
        parse_package_metadata($ARGV[0]) or exit 1;
        foreach my $name (sort {uc($a) cmp uc($b)} keys %package) {
                my $pkg = $package{$name};
-               if ($pkg->{name} && $pkg->{feed}) {
-                       print "Package/$name/feed = $pkg->{feed}\n";
+               if ($pkg->{name} && $pkg->{repository}) {
+                       print "Package/$name/subdir = $pkg->{repository}\n";
                }
        }
 }
@@ -880,7 +895,7 @@ sub parse_command() {
                /^package_config$/ and return gen_package_config();
                /^kconfig/ and return gen_kconfig_overrides();
                /^package_source$/ and return gen_package_source();
-               /^package_feeds$/ and return gen_package_feeds();
+               /^package_subdirs$/ and return gen_package_subdirs();
                /^package_license$/ and return gen_package_license(0);
                /^package_licensefull$/ and return gen_package_license(1);
                /^version_filter$/ and return gen_version_filtered_list();
@@ -892,7 +907,7 @@ Available Commands:
        $0 package_config [file]                Package metadata in Kconfig format
        $0 kconfig [file] [config] [patchver]   Kernel config overrides
        $0 package_source [file]                Package source file information
-       $0 package_feeds [file]                 Package feed information in makefile format
+       $0 package_subdirs [file]               Package subdir information in makefile format
        $0 package_license [file]               Package license information
        $0 package_licensefull [file]           Package license information (full list)
        $0 version_filter [patchver] [list...]  Filter list of version tagged strings