aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Gorski <jonas.gorski@gmail.com>2019-08-13 12:33:47 +0200
committerJonas Gorski <jonas.gorski@gmail.com>2019-08-13 22:13:18 +0200
commit7546be60074e452751ba2a48eddbc13910bec708 (patch)
tree37da5cea283d59cf50e675e11d884080c0a9d949
parentdfe99645dbdd4460f394beaa3a05091cd40b5942 (diff)
downloadupstream-7546be60074e452751ba2a48eddbc13910bec708.tar.gz
upstream-7546be60074e452751ba2a48eddbc13910bec708.tar.bz2
upstream-7546be60074e452751ba2a48eddbc13910bec708.zip
build: allow overriding default selection state for devices
Allow overriding the default selection state for Devices, similar to setting a default for packages. E.g. by setting DEFAULT to n, they won't be selected by default anymore when enabling all device in the multi device profile. This allows preventing images being built by the default config for known broken devices, devices without enough RAM/flash, or devices not working with a certain kernel versions. This does not prevent the devices from being manually selected or images being built by the ImageBuilder. These devices often still have worth with a reduced package-set, or as a device for regression testing, when no better device is available. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
-rw-r--r--include/image.mk3
-rw-r--r--scripts/metadata.pm4
-rwxr-xr-xscripts/target-metadata.pl2
3 files changed, 7 insertions, 2 deletions
diff --git a/include/image.mk b/include/image.mk
index c6a6ab7993..2d003e4ab8 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -416,6 +416,8 @@ define Device/Init
FILESYSTEMS := $(TARGET_FILESYSTEMS)
UBOOT_PATH := $(STAGING_DIR_IMAGE)/uboot-$(1)
+
+ DEFAULT :=
endef
DEFAULT_DEVICE_VARS := \
@@ -593,6 +595,7 @@ Target-Profile-Name: $(DEVICE_TITLE)
Target-Profile-Packages: $(DEVICE_PACKAGES)
Target-Profile-hasImageMetadata: $(if $(foreach image,$(IMAGES),$(findstring append-metadata,$(IMAGE/$(image)))),1,0)
Target-Profile-SupportedDevices: $(SUPPORTED_DEVICES)
+$(if $(DEFAULT),Target-Profile-Default: $(DEFAULT))
Target-Profile-Description:
$(DEVICE_DESCRIPTION)
@@
diff --git a/scripts/metadata.pm b/scripts/metadata.pm
index d088332152..1826a040a1 100644
--- a/scripts/metadata.pm
+++ b/scripts/metadata.pm
@@ -143,7 +143,8 @@ sub parse_target_metadata($) {
has_image_metadata => 0,
supported_devices => [],
priority => 999,
- packages => []
+ packages => [],
+ default => "y if TARGET_ALL_PROFILES"
};
$1 =~ /^DEVICE_/ and $target->{has_devices} = 1;
push @{$target->{profiles}}, $profile;
@@ -157,6 +158,7 @@ sub parse_target_metadata($) {
};
/^Target-Profile-Packages:\s*(.*)\s*$/ and $profile->{packages} = [ split(/\s+/, $1) ];
/^Target-Profile-Description:\s*(.*)\s*/ and $profile->{desc} = get_multiline(*FILE);
+ /^Target-Profile-Default:\s*(.+)\s*$/ and $profile->{default} = $1;
}
close FILE;
foreach my $target (@target) {
diff --git a/scripts/target-metadata.pl b/scripts/target-metadata.pl
index d183e943f6..ee0ab5a718 100755
--- a/scripts/target-metadata.pl
+++ b/scripts/target-metadata.pl
@@ -296,7 +296,7 @@ EOF
menuconfig TARGET_DEVICE_$target->{conf}_$profile->{id}
bool "$profile->{name}"
depends on TARGET_$target->{conf}
- default y if TARGET_ALL_PROFILES
+ default $profile->{default}
EOF
my @pkglist = merge_package_lists($target->{packages}, $profile->{packages});
foreach my $pkg (@pkglist) {