ignore filenames that can cause problems for the recursive dependency handling
[openwrt/staging/florian.git] / include / depends.mk
index b74e535506a382f128b996342f730cc6f09048ff..be58ed1cf08105931b589bb45d6c53c36731d488 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) 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