diff options
author | Felix Fietkau <nbd@openwrt.org> | 2007-05-09 22:47:01 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2007-05-09 22:47:01 +0000 |
commit | a8f4a1bdbbd75ab3d4449a6cb6787462c0a9568b (patch) | |
tree | 41917889bf96430f85a70fd6fc426ecec2ab23a8 /include | |
parent | c9f05e78203374b3830cfd836c4af4425efb997e (diff) | |
download | upstream-a8f4a1bdbbd75ab3d4449a6cb6787462c0a9568b.tar.gz upstream-a8f4a1bdbbd75ab3d4449a6cb6787462c0a9568b.tar.bz2 upstream-a8f4a1bdbbd75ab3d4449a6cb6787462c0a9568b.zip |
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
Diffstat (limited to 'include')
-rw-r--r-- | include/depends.mk | 17 | ||||
-rw-r--r-- | include/host-build.mk | 8 | ||||
-rw-r--r-- | include/package-ipkg.mk | 2 | ||||
-rw-r--r-- | 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 |