4819d6dfc1c4015e651d7d5b9c33e160e4c04587
[openwrt-10.03/.git] / include / depends.mk
1
2 # Copyright (C) 2007 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # define a dependency on a subtree
8 # parameters:
9 #       1: directory
10 #       2: directory dependency
11 #       3: tempfile for file listings
12 #       4: find options
13
14 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 "*\\\#*"
15 define rdep
16   $(foreach file,$(shell find $(1) $(DEP_FINDPARAMS) $(4)),
17     $(2): $(file)
18     $(file): ;
19   )
20
21   ifneq ($(3),)
22     ifneq ($$(shell find $(1) $(DEP_FINDPARAMS) $(4) 2>/dev/null | md5s),$(if $(3),$(shell cat $(3) || touch $(3) 2>/dev/null)))
23       $(2): $(3)
24     endif
25   
26   endif
27
28   $(3): FORCE
29           @-find $(1) $(DEP_FINDPARAMS) $(4) 2>/dev/null | md5s > $$@
30   .PRECIOUS: $(3)
31 endef