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 <john@phrozen.org>
This commit is contained in:
John Crispin 2019-07-10 13:32:24 +02:00
parent 1174b94bc9
commit 9e57b62783
1 changed files with 17 additions and 1 deletions

View File

@ -40,6 +40,10 @@ include $(INCLUDE_DIR)/prereq.mk
include $(INCLUDE_DIR)/unpack.mk include $(INCLUDE_DIR)/unpack.mk
include $(INCLUDE_DIR)/depends.mk include $(INCLUDE_DIR)/depends.mk
ifneq ($(wildcard $(TOPDIR)/git-src/$(PKG_NAME)/.git),)
USE_GIT_SRC_CHECKOUT:=1
QUILT:=1
endif
ifneq ($(if $(CONFIG_SRC_TREE_OVERRIDE),$(wildcard ./git-src)),) ifneq ($(if $(CONFIG_SRC_TREE_OVERRIDE),$(wildcard ./git-src)),)
USE_GIT_TREE:=1 USE_GIT_TREE:=1
QUILT:=1 QUILT:=1
@ -129,6 +133,18 @@ ifeq ($(DUMP)$(filter prereq clean refresh update,$(MAKECMDGOALS)),)
endif endif
endif endif
ifdef USE_GIT_SRC_CHECKOUT
define Build/Prepare/Default
mkdir -p $(PKG_BUILD_DIR)
ln -s $(TOPDIR)/git-src/$(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 ifdef USE_GIT_TREE
define Build/Prepare/Default define Build/Prepare/Default
mkdir -p $(PKG_BUILD_DIR) mkdir -p $(PKG_BUILD_DIR)
@ -248,7 +264,7 @@ define Build/CoreTargets
endef endef
define Build/DefaultTargets 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)) $(if $(DUMP),,$(Build/CoreTargets))
define Build/DefaultTargets define Build/DefaultTargets