From 5c30e741059c2e2fe0c0ee747dd01a2f91569b87 Mon Sep 17 00:00:00 2001 From: nbd Date: Wed, 9 May 2007 22:47:01 +0000 Subject: [PATCH] fix recursive dependencies on build directories - should lead to fewer spontaneous rebuilds git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7151 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- 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 07345a399..1e01d35f8 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 591a36bd3..83d80bedd 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 20d132613..597f5f87c 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 fe6a7617c..f228de2bc 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 -- 2.20.1