summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2007-05-09 22:47:01 +0000
committerFelix Fietkau <nbd@openwrt.org>2007-05-09 22:47:01 +0000
commit56cdcf23a35f80615b40df3481151764aac30089 (patch)
treeead23976c513e2e4f763ed30ba0ef78caf22ffbe /include
parent76184df0e655ad06980fbc72961e9103b188d3eb (diff)
downloadmaster-31e0f0ae-56cdcf23a35f80615b40df3481151764aac30089.tar.gz
master-31e0f0ae-56cdcf23a35f80615b40df3481151764aac30089.tar.bz2
master-31e0f0ae-56cdcf23a35f80615b40df3481151764aac30089.zip
fix recursive dependencies on build directories - should lead to fewer spontaneous rebuilds
SVN-Revision: 7151
Diffstat (limited to 'include')
-rw-r--r--include/depends.mk17
-rw-r--r--include/host-build.mk8
-rw-r--r--include/package-ipkg.mk2
-rw-r--r--include/package.mk4
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