From: John Crispin Date: Wed, 10 Jul 2019 11:32:24 +0000 (+0200) Subject: include/package.mk: Add support for src-checkout/ folder X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=HEAD;p=openwrt%2Fstaging%2Fblogic.git include/package.mk: Add support for src-checkout/ folder This feature is similar to the SRC_TREE_OVERRIDE. However instead of having to manually create a symlink inside the package folder, the buildsystem will check if $(TOP_DIR)/src-checkout/$(PKG_NAME)/.git is present and use this instead. Signed-off-by: John Crispin --- diff --git a/.gitignore b/.gitignore index 84e1a9d6d18c..1dea10c878c5 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ /overlay /package/feeds /package/openwrt-packages +/src-checkout key-build* *.orig *.rej diff --git a/include/package.mk b/include/package.mk index 06ff21b0b0af..c3818f176316 100644 --- a/include/package.mk +++ b/include/package.mk @@ -40,6 +40,10 @@ include $(INCLUDE_DIR)/prereq.mk include $(INCLUDE_DIR)/unpack.mk include $(INCLUDE_DIR)/depends.mk +ifneq ($(wildcard $(TOPDIR)/src-checkout/$(PKG_NAME)/.git),) + USE_GIT_SRC_CHECKOUT:=1 + QUILT:=1 +endif ifneq ($(if $(CONFIG_SRC_TREE_OVERRIDE),$(wildcard ./git-src)),) USE_GIT_TREE:=1 QUILT:=1 @@ -129,6 +133,18 @@ ifeq ($(DUMP)$(filter prereq clean refresh update,$(MAKECMDGOALS)),) endif endif +ifdef USE_GIT_SRC_CHECKOUT + define Build/Prepare/Default + mkdir -p $(PKG_BUILD_DIR) + ln -s $(TOPDIR)/src-checkout/$(PKG_NAME)/.git $(PKG_BUILD_DIR)/.git + ( cd $(PKG_BUILD_DIR); \ + git checkout .; \ + git submodule update --recursive; \ + git submodule foreach git config --unset core.worktree; \ + git submodule foreach git checkout .; \ + ) + endef +endif ifdef USE_GIT_TREE define Build/Prepare/Default mkdir -p $(PKG_BUILD_DIR) @@ -248,7 +264,7 @@ define Build/CoreTargets endef define Build/DefaultTargets - $(if $(USE_SOURCE_DIR)$(USE_GIT_TREE),,$(if $(strip $(PKG_SOURCE_URL)),$(call Download,default))) + $(if $(USE_SOURCE_DIR)$(USE_GIT_TREE)$(USE_GIT_SRC_CHECKOUT),,$(if $(strip $(PKG_SOURCE_URL)),$(call Download,default))) $(if $(DUMP),,$(Build/CoreTargets)) define Build/DefaultTargets