fix a rebuild bug related to quilt
[openwrt/svn-archive/archive.git] / include / depends.mk
index 07345a3..4819d6d 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*" -type f -not -name ".*" -and -not -path "*.svn*" -and -not -path "*:*" -and -not -path "*!*" -and -not -path "* *" -and -not -path "*\\\#*"
 define rdep
-  $(foreach file,$(shell find $(1) $(FINDPARAMS) -and -not -path "*:*" $(4)),
+  $(foreach file,$(shell find $(1) $(DEP_FINDPARAMS) $(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) || touch $(3) 2>/dev/null)))
+      $(2): $(3)
+    endif
   
-  $(3): FORCE
-       @-find $(1) $(FINDPARAMS) $(4) 2>/dev/null | md5s > $$@
+  endif
 
+  $(3): FORCE
+         @-find $(1) $(DEP_FINDPARAMS) $(4) 2>/dev/null | md5s > $$@
+  .PRECIOUS: $(3)
 endef