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