X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=scripts%2Ftarget-metadata.pl;h=7f7dc6d4ee77efdb814bd54a0836e6d927f0efee;hb=cfd83555fc4f0bab18a26f6812da18e64df46ff3;hp=34a7c22ce62dfe3223c9ab939195ccf92a8535c3;hpb=f8ebbbc568c166e59f1302e0abb817060313fd9d;p=openwrt%2Fopenwrt.git diff --git a/scripts/target-metadata.pl b/scripts/target-metadata.pl index 34a7c22ce6..7f7dc6d4ee 100755 --- a/scripts/target-metadata.pl +++ b/scripts/target-metadata.pl @@ -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"; @@ -36,7 +37,9 @@ sub target_config_features(@) { /mips16/ and $ret .= "\tselect HAS_MIPS16\n"; /rfkill/ and $ret .= "\tselect RFKILL_SUPPORT\n"; /low_mem/ and $ret .= "\tselect LOW_MEMORY_FOOTPRINT\n"; + /small_flash/ and $ret .= "\tselect SMALL_FLASH\n"; /nand/ and $ret .= "\tselect NAND_SUPPORT\n"; + /virtio/ and $ret .= "\tselect VIRTIO_SUPPORT\n"; } return $ret; } @@ -149,6 +152,18 @@ sub gen_target_config() { target_name($a) cmp target_name($b); } @target; + foreach my $target (@target_sort) { + next if @{$target->{subtargets}} > 0; + print <{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 <) You will + still be able to manually deselect any/all packages. + When enabled, each device builds it's own image, including only the + profile packages for that device. (Marked as {M}) You will be able + to change a package to included in all images by marking as {*}, but + will not be able to disable a profile package completely. + + To get the most use of this setting, you must set in a .config stub + before calling "make defconfig". Selecting TARGET_MULTI_PROFILE and + then manually selecting (via menuconfig for instance) this option + will have pre-defaulted all profile packages to included, making this + option appear to have had no effect. + EOF foreach my $target (@target) { - my $profiles = $target->{profiles}; - foreach my $profile (@{$target->{profiles}}) { + my @profiles = sort { + my $x = $a->{name}; + my $y = $b->{name}; + "\L$x" cmp "\L$y"; + } @{$target->{profiles}}; + foreach my $profile (@profiles) { next unless $profile->{id} =~ /^DEVICE_/; print <{conf}_$profile->{id} +menuconfig 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; } + + print <{conf}_$profile->{id} + string "$profile->{name} additional packages" + default "" + depends on TARGET_PER_DEVICE_ROOTFS + depends on TARGET_DEVICE_$target->{conf}_$profile->{id} + +EOF } } @@ -338,8 +393,18 @@ config LINUX_$v EOF } foreach my $def (sort keys %defaults) { - print "\tconfig DEFAULT_".$def."\n"; - print "\t\tbool\n\n"; + print <