diff --git a/config/Config-build.in b/config/Config-build.in index 5ad940ba6c2..23cf83bc404 100644 --- a/config/Config-build.in +++ b/config/Config-build.in @@ -1,4 +1,5 @@ # Copyright (C) 2006-2013 OpenWrt.org +# Copyright (C) 2016 LEDE Project # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -6,6 +7,10 @@ menu "Global build settings" + config ALL_NONSHARED + bool "Select all target specific packages by default" + default ALL + config ALL_KMODS bool "Select all kernel module packages by default" default ALL diff --git a/scripts/diffconfig.sh b/scripts/diffconfig.sh index f195d1849bd..9972a39132f 100755 --- a/scripts/diffconfig.sh +++ b/scripts/diffconfig.sh @@ -2,6 +2,7 @@ grep \^CONFIG_TARGET_ .config | head -n3 > tmp/.diffconfig.head grep '^CONFIG_ALL=y' .config >> tmp/.diffconfig.head grep '^CONFIG_ALL_KMODS=y' .config >> tmp/.diffconfig.head +grep '^CONFIG_ALL_NONSHARED=y' .config >> tmp/.diffconfig.head grep '^CONFIG_DEVEL=y' .config >> tmp/.diffconfig.head grep '^CONFIG_TOOLCHAINOPTS=y' .config >> tmp/.diffconfig.head grep '^CONFIG_BUSYBOX_CUSTOM=y' .config >> tmp/.diffconfig.head diff --git a/scripts/metadata.pl b/scripts/metadata.pl index a55b7990f71..5695bda4a45 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -558,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}) { - if ($pkg->{name} =~ /^kmod-/) { - $pkg->{default} ||= "m if ALL_KMODS"; - } else { - $pkg->{default} ||= "m if ALL"; + my @def = ("ALL"); + if (!exists($pkg->{repository})) { + push @def, "ALL_NONSHARED"; } + if ($pkg->{name} =~ /^kmod-/) { + push @def, "ALL_KMODS"; + } + $pkg->{default} ||= "m if " . join("||", @def); } if ($pkg->{default}) { foreach my $default (split /\s*,\s*/, $pkg->{default}) {