From 56cf5612937f14bcc7f2f339b6fb28ea3d635a67 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 23 Oct 2016 17:28:51 +0200 Subject: [PATCH] pkg-infra: allow dumping reverse dependencies of a package Finding the packages that select another one in a specific configuration is not very trivial: - when optional, the dependency is not expressed in Kconfig - looking at the .mk files is not very nice. Introduce a way to dump reverse dependencies of packages, i.e. the list of packages that directly depend on that package. Like for direct dependencies, we limit the list to the first-order reverse dependencies. Document it in the main help; use the opportunity to also document foo-show-depends. Signed-off-by: "Yann E. MORIN" Cc: Arnout Vandecappelle Cc: Thomas Petazzoni Signed-off-by: Thomas Petazzoni --- Makefile | 2 ++ package/pkg-generic.mk | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/Makefile b/Makefile index 3ba149050c..5c65f90fbb 100644 --- a/Makefile +++ b/Makefile @@ -974,6 +974,8 @@ help: @echo ' -depends - Build '\''s dependencies' @echo ' -configure - Build up to the configure step' @echo ' -build - Build up to the build step' + @echo ' -show-depends - List packages on which depends' + @echo ' -show-rdepends - List packages which have as a dependency' @echo ' -graph-depends - Generate a graph of '\''s dependencies' @echo ' -dirclean - Remove build directory' @echo ' -reconfigure - Restart the build from the configure step' diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk index e726ac5ef1..81bb82c2c4 100644 --- a/package/pkg-generic.mk +++ b/package/pkg-generic.mk @@ -698,6 +698,9 @@ $(1)-show-version: $(1)-show-depends: @echo $$($(2)_FINAL_ALL_DEPENDENCIES) +$(1)-show-rdepends: + @echo $$($(2)_RDEPENDENCIES) + $(1)-graph-depends: graph-depends-requirements @$$(INSTALL) -d $$(GRAPHS_DIR) @cd "$$(CONFIG_DIR)"; \ @@ -854,6 +857,10 @@ $$(foreach pkg,$$($(2)_PROVIDES),\ $$(eval $$(call virt-provides-single,$$(pkg),$$(call UPPERCASE,$$(pkg)),$(1))$$(sep))) endif +# Register package as a reverse-dependencies of all its dependencies +$$(eval $$(foreach p,$$($(2)_FINAL_ALL_DEPENDENCIES),\ + $$(call UPPERCASE,$$(p))_RDEPENDENCIES += $(1)$$(sep))) + # Ensure unified variable name conventions between all packages Some # of the variables are used by more than one infrastructure; so, # rather than duplicating the checks in each infrastructure, we check