From 56cdcf23a35f80615b40df3481151764aac30089 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 9 May 2007 22:47:01 +0000 Subject: [PATCH] fix recursive dependencies on build directories - should lead to fewer spontaneous rebuilds SVN-Revision: 7151 --- include/depends.mk | 17 +++++++++-------- include/host-build.mk | 8 ++++---- include/package-ipkg.mk | 2 +- include/package.mk | 4 ++-- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/include/depends.mk b/include/depends.mk index 07345a3998..1e01d35f81 100644 --- a/include/depends.mk +++ b/include/depends.mk @@ -11,18 +11,19 @@ # 3: tempfile for file listings # 4: find options -FINDPARAMS := -type f -not -name ".*" -and -not -path "*.svn*" +DEP_FINDPARAMS := -type f -not -name ".*" -and -not -path "*.svn*" define rdep - $(foreach file,$(shell find $(1) $(FINDPARAMS) -and -not -path "*:*" $(4)), + $(foreach file,$(shell find $(1) $(DEP_FINDPARAMS) -and -not -path "*:*" $(4)), $(2): $(file) $(file): ; ) - ifneq ($(shell find $(1) $(FINDPARAMS) $(4) 2>/dev/null | md5s),$(shell cat $(3) 2>/dev/null)) - $(2): $(3) - endif + ifneq ($(3),) + ifneq ($$(shell find $(1) $(DEP_FINDPARAMS) $(4) 2>/dev/null | md5s),$(if $(3),$(shell cat $(3) 2>/dev/null))) + $(2): $(3) + endif - $(3): FORCE - @-find $(1) $(FINDPARAMS) $(4) 2>/dev/null | md5s > $$@ - + $(3): FORCE + @-find $(1) $(DEP_FINDPARAMS) $(4) 2>/dev/null | md5s > $$@ + endif endef diff --git a/include/host-build.mk b/include/host-build.mk index 591a36bd38..83d80bedd5 100644 --- a/include/host-build.mk +++ b/include/host-build.mk @@ -9,9 +9,9 @@ include $(INCLUDE_DIR)/host.mk include $(INCLUDE_DIR)/unpack.mk include $(INCLUDE_DIR)/depends.mk -STAMP_PREPARED=$(PKG_BUILD_DIR)/.prepared -STAMP_CONFIGURED=$(PKG_BUILD_DIR)/.configured -STAMP_BUILT=$(PKG_BUILD_DIR)/.built +STAMP_PREPARED:=$(PKG_BUILD_DIR)/.prepared_$(shell find ${CURDIR} $(PKG_FILE_DEPEND) $(DEP_FINDPARAMS) | md5s) +STAMP_CONFIGURED:=$(PKG_BUILD_DIR)/.configured +STAMP_BUILT:=$(PKG_BUILD_DIR)/.built ifneq ($(strip $(PKG_UNPACK)),) define Build/Prepare/Default @@ -80,7 +80,7 @@ endif ifneq ($(CONFIG_AUTOREBUILD),) define HostBuild/Autoclean $(PKG_BUILD_DIR)/.dep_files: $(STAMP_PREPARED) - $(call rdep,${CURDIR} $(PKG_FILE_DEPEND),$(STAMP_PREPARED),$(TMP_DIR)/.packagedir_$(shell echo "${CURDIR}" | md5s)) + $(call rdep,${CURDIR} $(PKG_FILE_DEPEND),$(STAMP_PREPARED)) $(call rdep,$(PKG_BUILD_DIR),$(STAMP_BUILT),$(PKG_BUILD_DIR)/.dep_files, -and -not -path "/.*" -and -not -path "*/ipkg*") endef endif diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk index 20d1326133..597f5f87c3 100644 --- a/include/package-ipkg.mk +++ b/include/package-ipkg.mk @@ -78,7 +78,7 @@ ifeq ($(DUMP),) clean: $(1)-clean - $(PKG_BUILD_DIR)/.version-$(1)_$(VERSION)_$(PKGARCH): $(PKG_BUILD_DIR)/.prepared + $(PKG_BUILD_DIR)/.version-$(1)_$(VERSION)_$(PKGARCH): $(STAMP_PREPARED) -@rm -f $(PKG_BUILD_DIR)/.version-$(1)_* 2>/dev/null @touch $$@ diff --git a/include/package.mk b/include/package.mk index fe6a7617c8..f228de2bcf 100644 --- a/include/package.mk +++ b/include/package.mk @@ -18,7 +18,7 @@ include $(INCLUDE_DIR)/package-defaults.mk include $(INCLUDE_DIR)/package-dumpinfo.mk include $(INCLUDE_DIR)/package-ipkg.mk -STAMP_PREPARED:=$(PKG_BUILD_DIR)/.prepared +STAMP_PREPARED:=$(PKG_BUILD_DIR)/.prepared_$(shell find ${CURDIR} $(PKG_FILE_DEPEND) $(DEP_FINDPARAMS) | md5s) STAMP_CONFIGURED:=$(PKG_BUILD_DIR)/.configured STAMP_BUILT:=$(PKG_BUILD_DIR)/.built export CONFIG_SITE:=$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME) @@ -26,7 +26,7 @@ export CONFIG_SITE:=$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME) ifneq ($(CONFIG_AUTOREBUILD),) define Build/Autoclean $(PKG_BUILD_DIR)/.dep_files: $(STAMP_PREPARED) - $(call rdep,${CURDIR} $(PKG_FILE_DEPEND),$(STAMP_PREPARED),$(TMP_DIR)/.packagedir_$(shell echo "${CURDIR}" | md5s)) + $(call rdep,${CURDIR} $(PKG_FILE_DEPEND),$(STAMP_PREPARED)) $(call rdep,$(PKG_BUILD_DIR),$(STAMP_BUILT),$(PKG_BUILD_DIR)/.dep_files, -and -not -path "/.*" -and -not -path "*/ipkg*") endef endif