[openwrt/openwrt] build: add support for PKG_SUBDIRS variable

LEDE Commits lede-commits at lists.infradead.org
Sun Jul 7 23:49:48 PDT 2024


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/3de19697fdd5baee3df9c67fdec48fe48e673894

commit 3de19697fdd5baee3df9c67fdec48fe48e673894
Author: Michael Pratt <mcpratt at pm.me>
AuthorDate: Thu Jun 20 00:23:39 2024 -0400

    build: add support for PKG_SUBDIRS variable
    
    Add support for overriding the SUBDIRS variable while invoking Make
    by defining it after Make in the command line.
    
    This is useful for builds that have previously patched out
    the building of certain subdirectories in projects
    that use recursive and independent Makefiles,
    for example, to block the building of docs or test suites.
    
    The wildcard function is used in the case of there being
    subdirectories within any of the subdirectories,
    for example, in the building of gengetopt,
    in order to avoid the problem where Make will attempt
    to execute a Makefile in a subdirectory that does not exist
    within the subdirectory it is currently running from
    because it really exists at the top-level, or one that exists
    within one of the subdirectories when ran from top-level.
    There are also cases where the Makefiles in the subdirectories
    have the recursive building rules even though there are no more
    subdirectories beyond that point, for example, with gnulib.
    
    Signed-off-by: Michael Pratt <mcpratt at pm.me>
    Link: https://github.com/openwrt/openwrt/pull/15853
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 include/host-build.mk       | 4 ++--
 include/package-defaults.mk | 1 +
 include/package.mk          | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/include/host-build.mk b/include/host-build.mk
index 246f248e26..7e64fc16fe 100644
--- a/include/host-build.mk
+++ b/include/host-build.mk
@@ -110,11 +110,11 @@ define Host/Compile/Default
 endef
 
 define Host/Compile
-  $(call Host/Compile/Default)
+  $(call Host/Compile/Default,$(if $(PKG_SUBDIRS),SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))'))
 endef
 
 define Host/Install/Default
-	$(call Host/Compile/Default,install)
+  $(call Host/Compile/Default,$(if $(PKG_SUBDIRS),SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))') install)
 endef
 
 define Host/Install
diff --git a/include/package-defaults.mk b/include/package-defaults.mk
index 37de9f0ccb..6a401dde2c 100644
--- a/include/package-defaults.mk
+++ b/include/package-defaults.mk
@@ -151,6 +151,7 @@ define Build/Install/Default
 	$(MAKE_VARS) \
 	$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
 		$(MAKE_INSTALL_FLAGS) \
+		$(if $(PKG_SUBDIRS),SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))') \
 		$(if $(1), $(1), install);
 endef
 
diff --git a/include/package.mk b/include/package.mk
index 8ee78415df..7fbecf98dc 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -343,7 +343,7 @@ endef
 
 Build/Prepare=$(call Build/Prepare/Default,)
 Build/Configure=$(call Build/Configure/Default,)
-Build/Compile=$(call Build/Compile/Default,)
+Build/Compile=$(call Build/Compile/Default,$(if $(PKG_SUBDIRS),SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))'))
 Build/Install=$(if $(PKG_INSTALL),$(call Build/Install/Default,))
 Build/Dist=$(call Build/Dist/Default,)
 Build/DistCheck=$(call Build/DistCheck/Default,)




More information about the lede-commits mailing list