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 | 56cdcf23a35f80615b40df3481151764aac30089 (patch) | |
tree | ead23976c513e2e4f763ed30ba0ef78caf22ffbe /include | |
parent | 76184df0e655ad06980fbc72961e9103b188d3eb (diff) | |
download | mtk-20170518-56cdcf23a35f80615b40df3481151764aac30089.zip mtk-20170518-56cdcf23a35f80615b40df3481151764aac30089.tar.gz mtk-20170518-56cdcf23a35f80615b40df3481151764aac30089.tar.bz2 |
fix recursive dependencies on build directories - should lead to fewer spontaneous rebuilds
SVN-Revision: 7151
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 07345a3..1e01d35 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 591a36b..83d80be 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 20d1326..597f5f8 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 fe6a761..f228de2 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 |