mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-19 16:40:46 -09:00
pkg-generic: fix rdepends and phony targets of virtual packages
Virtual packages are not added to the _RDEPENDENCIES list of packages that they depend on (i.e. their provider). This causes <provider>-show-rdepends to not show the virtual package and <provider>-show-recursive-rdepends to miss all the packages that transitively depend on <provider> via the virtual package. The virtual make targets (e.g. <pkg>-show-info) are also not marked as phony for virtual packages. To fix those issues, remove most of the special handling of virtual packages in pkg-generic by making $($($(1)_KCONFIG_VAR))=y for them as well. This also allows removal of some duplicated code in pkg-generic.mk and a now unneeded special condition in CHECK_ONE_DEPENDENCY. Still keep the virtual package out of PACKAGES since there is e.g. no need to rsync per-package target dir to global target dir. I am not aware of any showstoppers preventing addition to PACKAGES as well, though, so it is probably just an optimization. Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
committed by
Yann E. MORIN
parent
2fca33462b
commit
842ba7ecef
2
Makefile
2
Makefile
@@ -565,14 +565,12 @@ ifeq ($(BR_FORCE_CHECK_DEPENDENCIES),YES)
|
|||||||
|
|
||||||
define CHECK_ONE_DEPENDENCY
|
define CHECK_ONE_DEPENDENCY
|
||||||
ifeq ($$($(2)_TYPE),target)
|
ifeq ($$($(2)_TYPE),target)
|
||||||
ifeq ($$($(2)_IS_VIRTUAL),)
|
|
||||||
ifneq ($$($$($(2)_KCONFIG_VAR)),y)
|
ifneq ($$($$($(2)_KCONFIG_VAR)),y)
|
||||||
$$(error $$($(2)_NAME) is in the dependency chain of $$($(1)_NAME) that \
|
$$(error $$($(2)_NAME) is in the dependency chain of $$($(1)_NAME) that \
|
||||||
has added it to its _DEPENDENCIES variable without selecting it or \
|
has added it to its _DEPENDENCIES variable without selecting it or \
|
||||||
depending on it from Config.in)
|
depending on it from Config.in)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(foreach pkg,$(call UPPERCASE,$(PACKAGES)),\
|
$(foreach pkg,$(call UPPERCASE,$(PACKAGES)),\
|
||||||
|
|||||||
@@ -1088,15 +1088,15 @@ $$($(2)_TARGET_DIRCLEAN): PKG=$(2)
|
|||||||
$$($(2)_TARGET_DIRCLEAN): NAME=$(1)
|
$$($(2)_TARGET_DIRCLEAN): NAME=$(1)
|
||||||
|
|
||||||
# Compute the name of the Kconfig option that correspond to the
|
# Compute the name of the Kconfig option that correspond to the
|
||||||
# package being enabled. We handle three cases: the special Linux
|
# package being enabled.
|
||||||
# kernel case, the bootloaders case, and the normal packages case.
|
|
||||||
# Virtual packages are handled separately (see below).
|
|
||||||
ifeq ($(1),linux)
|
ifeq ($(1),linux)
|
||||||
$(2)_KCONFIG_VAR = BR2_LINUX_KERNEL
|
$(2)_KCONFIG_VAR = BR2_LINUX_KERNEL
|
||||||
else ifneq ($$(filter boot/% $$(foreach dir,$$(BR2_EXTERNAL_DIRS),$$(dir)/boot/%),$(pkgdir)),)
|
else ifneq ($$(filter boot/% $$(foreach dir,$$(BR2_EXTERNAL_DIRS),$$(dir)/boot/%),$(pkgdir)),)
|
||||||
$(2)_KCONFIG_VAR = BR2_TARGET_$(2)
|
$(2)_KCONFIG_VAR = BR2_TARGET_$(2)
|
||||||
else ifneq ($$(filter toolchain/% $$(foreach dir,$$(BR2_EXTERNAL_DIRS),$$(dir)/toolchain/%),$(pkgdir)),)
|
else ifneq ($$(filter toolchain/% $$(foreach dir,$$(BR2_EXTERNAL_DIRS),$$(dir)/toolchain/%),$(pkgdir)),)
|
||||||
$(2)_KCONFIG_VAR = BR2_$(2)
|
$(2)_KCONFIG_VAR = BR2_$(2)
|
||||||
|
else ifeq ($$($(2)_IS_VIRTUAL),YES)
|
||||||
|
$(2)_KCONFIG_VAR = BR2_PACKAGE_HAS_$(2)
|
||||||
else
|
else
|
||||||
$(2)_KCONFIG_VAR = BR2_PACKAGE_$(2)
|
$(2)_KCONFIG_VAR = BR2_PACKAGE_$(2)
|
||||||
endif
|
endif
|
||||||
@@ -1202,7 +1202,9 @@ $(eval $(call check-deprecated-variable,$(2)_BUILD_OPT,$(2)_BUILD_OPTS))
|
|||||||
$(eval $(call check-deprecated-variable,$(2)_GETTEXTIZE_OPT,$(2)_GETTEXTIZE_OPTS))
|
$(eval $(call check-deprecated-variable,$(2)_GETTEXTIZE_OPT,$(2)_GETTEXTIZE_OPTS))
|
||||||
$(eval $(call check-deprecated-variable,$(2)_KCONFIG_OPT,$(2)_KCONFIG_OPTS))
|
$(eval $(call check-deprecated-variable,$(2)_KCONFIG_OPT,$(2)_KCONFIG_OPTS))
|
||||||
|
|
||||||
|
ifneq ($$($(2)_IS_VIRTUAL),YES)
|
||||||
PACKAGES += $(1)
|
PACKAGES += $(1)
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($$($(2)_PERMISSIONS),)
|
ifneq ($$($(2)_PERMISSIONS),)
|
||||||
PACKAGES_PERMISSIONS_TABLE += $$($(2)_PERMISSIONS)$$(sep)
|
PACKAGES_PERMISSIONS_TABLE += $$($(2)_PERMISSIONS)$$(sep)
|
||||||
@@ -1292,22 +1294,6 @@ ifneq ($$($(2)_HELP_CMDS),)
|
|||||||
HELP_PACKAGES += $(2)
|
HELP_PACKAGES += $(2)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Virtual packages are not built but it's useful to allow them to have
|
|
||||||
# permission/device/user tables and target-finalize/rootfs-pre-cmd hooks.
|
|
||||||
else ifeq ($$(BR2_PACKAGE_HAS_$(2)),y) # $(2)_KCONFIG_VAR
|
|
||||||
|
|
||||||
ifneq ($$($(2)_PERMISSIONS),)
|
|
||||||
PACKAGES_PERMISSIONS_TABLE += $$($(2)_PERMISSIONS)$$(sep)
|
|
||||||
endif
|
|
||||||
ifneq ($$($(2)_DEVICES),)
|
|
||||||
PACKAGES_DEVICES_TABLE += $$($(2)_DEVICES)$$(sep)
|
|
||||||
endif
|
|
||||||
ifneq ($$($(2)_USERS),)
|
|
||||||
PACKAGES_USERS += $$($(2)_USERS)$$(sep)
|
|
||||||
endif
|
|
||||||
TARGET_FINALIZE_HOOKS += $$($(2)_TARGET_FINALIZE_HOOKS)
|
|
||||||
ROOTFS_PRE_CMD_HOOKS += $$($(2)_ROOTFS_PRE_CMD_HOOKS)
|
|
||||||
|
|
||||||
endif # $(2)_KCONFIG_VAR
|
endif # $(2)_KCONFIG_VAR
|
||||||
endef # inner-generic-package
|
endef # inner-generic-package
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user