diff --git a/pkg/pkg.mk b/pkg/pkg.mk index 2d95474c84071282cffeb54348fa251338afe52a..fa8e5a9ddd63b0ad75a0e6594d19b5fd85d525eb 100644 --- a/pkg/pkg.mk +++ b/pkg/pkg.mk @@ -4,13 +4,20 @@ PKG_DIR?=$(CURDIR) PKG_BUILDDIR?=$(BINDIRBASE)/pkg/$(BOARD)/$(PKG_NAME) -.PHONY: git-download +.PHONY: git-download clean +ifneq (,$(wildcard $(PKG_DIR)/patches)) +git-download: $(PKG_BUILDDIR)/.git-patched +else git-download: $(PKG_BUILDDIR)/.git-downloaded +endif -GIT_APPLY_PATCHES:=if test -d "$(PKG_DIR)"/patches; then \ - git -C "$(PKG_BUILDDIR)" am --ignore-whitespace "$(PKG_DIR)"/patches/*.patch; \ - fi +ifneq (,$(wildcard $(PKG_DIR)/patches)) +$(PKG_BUILDDIR)/.git-patched: $(PKG_BUILDDIR)/.git-downloaded $(PKG_DIR)/Makefile $(PKG_DIR)/patches/*.patch + git -C $(PKG_BUILDDIR) checkout -f $(PKG_VERSION) + git -C $(PKG_BUILDDIR) am --ignore-whitespace "$(PKG_DIR)"/patches/*.patch + touch $@ +endif $(PKG_BUILDDIR)/.git-downloaded: rm -Rf $(PKG_BUILDDIR) @@ -21,9 +28,10 @@ $(PKG_BUILDDIR)/.git-downloaded: clean:: @test -d $(PKG_BUILDDIR) && { \ + rm $(PKG_BUILDDIR)/.git-patched ; \ git -C $(PKG_BUILDDIR) clean -f ; \ git -C $(PKG_BUILDDIR) checkout "$(PKG_VERSION)"; \ - $(GIT_APPLY_PATCHES) ; \ + make $(PKG_BUILDDIR)/.git-patched ; \ touch $(PKG_BUILDDIR)/.git-downloaded ; \ } > /dev/null 2>&1 || true