brcm63xx: fix CT-536p/CT-5621T support
[openwrt/staging/yousong.git] / scripts / target-metadata.pl
index ea6462c94fea62d1b64e8ebe0f4954c163260234..7e7d26bac93147f2652abd549509269b29362174 100755 (executable)
@@ -27,6 +27,7 @@ sub target_config_features(@) {
                /ext4/ and $ret .= "\tselect USES_EXT4\n";
                /targz/ and $ret .= "\tselect USES_TARGZ\n";
                /cpiogz/ and $ret .= "\tselect USES_CPIOGZ\n";
+               /minor/ and $ret .= "\tselect USES_MINOR\n";
                /ubifs/ and $ret .= "\tselect USES_UBIFS\n";
                /fpu/ and $ret .= "\tselect HAS_FPU\n";
                /spe_fpu/ and $ret .= "\tselect HAS_SPE_FPU\n";
@@ -150,6 +151,18 @@ sub gen_target_config() {
                target_name($a) cmp target_name($b);
        } @target;
 
+       foreach my $target (@target_sort) {
+               next if @{$target->{subtargets}} > 0;
+               print <<EOF;
+config DEFAULT_TARGET_$target->{conf}
+       bool
+       depends on TARGET_PER_DEVICE_ROOTFS
+       default y if TARGET_$target->{conf}
+EOF
+               foreach my $pkg (@{$target->{packages}}) {
+                       print "\tselect DEFAULT_$pkg if TARGET_PER_DEVICE_ROOTFS\n";
+               }
+       }
 
        print <<EOF;
 choice
@@ -237,6 +250,12 @@ endchoice
 menu "Target Devices"
        depends on TARGET_MULTI_PROFILE
 
+       config TARGET_ALL_PROFILES
+               bool "Enable all profiles by default"
+
+       config TARGET_PER_DEVICE_ROOTFS
+               bool "Use a per-device root filesystem that adds profile packages"
+
 EOF
        foreach my $target (@target) {
                my $profiles = $target->{profiles};
@@ -246,10 +265,12 @@ EOF
 config TARGET_DEVICE_$target->{conf}_$profile->{id}
        bool "$profile->{name}"
        depends on TARGET_$target->{conf}
+       default y if TARGET_ALL_PROFILES
 EOF
                        my @pkglist = merge_package_lists($target->{packages}, $profile->{packages});
                        foreach my $pkg (@pkglist) {
-                               print "\tselect DEFAULT_$pkg\n";
+                               print "\tselect DEFAULT_$pkg if !TARGET_PER_DEVICE_ROOTFS\n";
+                               print "\tselect MODULE_DEFAULT_$pkg if TARGET_PER_DEVICE_ROOTFS\n";
                                $defaults{$pkg} = 1;
                        }
                }
@@ -339,8 +360,18 @@ config LINUX_$v
 EOF
        }
        foreach my $def (sort keys %defaults) {
-               print "\tconfig DEFAULT_".$def."\n";
-               print "\t\tbool\n\n";
+               print <<EOF;
+       config DEFAULT_$def
+               bool
+
+       config MODULE_DEFAULT_$def
+               tristate
+               depends on TARGET_PER_DEVICE_ROOTFS
+               depends on m
+               default m if DEFAULT_$def
+               select PACKAGE_$def
+
+EOF
        }
 }