From 941fc5e8c8fd48c31c97c9194d1bed786145f978 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jo@mein.io>
Date: Wed, 13 Apr 2016 17:24:12 +0200
Subject: [PATCH] global: introduce ALL_NONSHARED symbol

Introduce a new symbol ALL_NONSHARED which selects all non-sharable packages
by default. This option is mainly intented for buildbot setups to build the
target dependant software subset only.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
---
 config/Config-build.in | 5 +++++
 scripts/diffconfig.sh  | 1 +
 scripts/metadata.pl    | 9 ++++++---
 3 files changed, 12 insertions(+), 3 deletions(-)

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}) {
+				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}) {
-- 
GitLab