fix recursive dependencies on build directories - should lead to fewer spontaneous...
authorFelix Fietkau <nbd@openwrt.org>
Wed, 9 May 2007 22:47:01 +0000 (22:47 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Wed, 9 May 2007 22:47:01 +0000 (22:47 +0000)
SVN-Revision: 7151

include/depends.mk
include/host-build.mk
include/package-ipkg.mk
include/package.mk

index 07345a3..1e01d35 100644 (file)
 #      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
index 591a36b..83d80be 100644 (file)
@@ -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
index 20d1326..597f5f8 100644 (file)
@@ -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 $$@
 
index fe6a761..f228de2 100644 (file)
@@ -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