image: allow specifying additional packages for device-specific rootfs
Add a new option to each device in multi-profile mode, allowing to provide a list of packages to add or remove. In case of added packages, the user must take care that these are selected to be built. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
This commit is contained in:
parent
1c09849f6c
commit
e916579340
2 changed files with 24 additions and 3 deletions
|
@ -387,11 +387,21 @@ else
|
||||||
DEVICE_CHECK_PROFILE = $(CONFIG_TARGET_$(if $(CONFIG_TARGET_MULTI_PROFILE),DEVICE_)$(call target_conf,$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET)))_$(1))
|
DEVICE_CHECK_PROFILE = $(CONFIG_TARGET_$(if $(CONFIG_TARGET_MULTI_PROFILE),DEVICE_)$(call target_conf,$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET)))_$(1))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
DEVICE_EXTRA_PACKAGES = $(call qstrip,$(CONFIG_TARGET_DEVICE_PACKAGES_$(call target_conf,$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET)))_DEVICE_$(1)))
|
||||||
|
|
||||||
|
define merge_packages
|
||||||
|
$(1) :=
|
||||||
|
$(foreach pkg,$(2),
|
||||||
|
$(1) := $$(strip $$(filter-out -$$(patsubst -%,%,$(pkg)) $$(patsubst -%,%,$(pkg)),$$($(1))) $(pkg))
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
define Device/Check/Common
|
define Device/Check/Common
|
||||||
_PROFILE_SET = $$(strip $$(foreach profile,$$(PROFILES) DEVICE_$(1),$$(call DEVICE_CHECK_PROFILE,$$(profile))))
|
_PROFILE_SET = $$(strip $$(foreach profile,$$(PROFILES) DEVICE_$(1),$$(call DEVICE_CHECK_PROFILE,$$(profile))))
|
||||||
ifdef TARGET_PER_DEVICE_ROOTFS
|
ifdef TARGET_PER_DEVICE_ROOTFS
|
||||||
ROOTFS_ID/$(1) := $$(if $$(_PROFILE_SET),$$(call mkfs_packages_id,$$(DEVICE_PACKAGES)))
|
$$(eval $$(call merge_packages,_PACKAGES,$$(DEVICE_PACKAGES) $$(call DEVICE_EXTRA_PACKAGES,$(1))))
|
||||||
PACKAGES_$$(ROOTFS_ID/$(1)) := $$(DEVICE_PACKAGES)
|
ROOTFS_ID/$(1) := $$(if $$(_PROFILE_SET),$$(call mkfs_packages_id,$$(_PACKAGES)))
|
||||||
|
PACKAGES_$$(ROOTFS_ID/$(1)) := $$(_PACKAGES)
|
||||||
endif
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
|
@ -263,7 +263,7 @@ EOF
|
||||||
foreach my $profile (@{$target->{profiles}}) {
|
foreach my $profile (@{$target->{profiles}}) {
|
||||||
next unless $profile->{id} =~ /^DEVICE_/;
|
next unless $profile->{id} =~ /^DEVICE_/;
|
||||||
print <<EOF;
|
print <<EOF;
|
||||||
config TARGET_DEVICE_$target->{conf}_$profile->{id}
|
menuconfig TARGET_DEVICE_$target->{conf}_$profile->{id}
|
||||||
bool "$profile->{name}"
|
bool "$profile->{name}"
|
||||||
depends on TARGET_$target->{conf}
|
depends on TARGET_$target->{conf}
|
||||||
default y if TARGET_ALL_PROFILES
|
default y if TARGET_ALL_PROFILES
|
||||||
|
@ -274,6 +274,17 @@ EOF
|
||||||
print "\tselect MODULE_DEFAULT_$pkg if TARGET_PER_DEVICE_ROOTFS\n";
|
print "\tselect MODULE_DEFAULT_$pkg if TARGET_PER_DEVICE_ROOTFS\n";
|
||||||
$defaults{$pkg} = 1;
|
$defaults{$pkg} = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print <<EOF;
|
||||||
|
|
||||||
|
|
||||||
|
config TARGET_DEVICE_PACKAGES_$target->{conf}_$profile->{id}
|
||||||
|
string "$profile->{name} additional packages"
|
||||||
|
default ""
|
||||||
|
depends on TARGET_PER_DEVICE_ROOTFS
|
||||||
|
depends on TARGET_DEVICE_$target->{conf}_$profile->{id}
|
||||||
|
|
||||||
|
EOF
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue