4819d6dfc1c4015e651d7d5b9c33e160e4c04587
[openwrt/openwrt.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