summaryrefslogtreecommitdiffstats
path: root/include/depends.mk
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-04-15 18:28:24 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-04-15 18:28:24 +0000
commit9beaac95cfdcdb47053000686efe036e3d402795 (patch)
tree7473586bebff65d00f756649fd3d0746a1e11769 /include/depends.mk
parentf4c4e94a1678918dd59a19df7edcf83cac550318 (diff)
clean up dependency handling for autorebuilds
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6956 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'include/depends.mk')
-rw-r--r--include/depends.mk28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/depends.mk b/include/depends.mk
new file mode 100644
index 000000000..b74e53550
--- /dev/null
+++ b/include/depends.mk
@@ -0,0 +1,28 @@
+#
+# Copyright (C) 2007 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# define a dependency on a subtree
+# parameters:
+# 1: directory
+# 2: directory dependency
+# 3: tempfile for file listings
+# 4: find options
+
+FINDPARAMS := -type f -not -name ".*" -and -not -path "*.svn*"
+define rdep
+ $(foreach file,$(shell find $(1) $(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
+
+ $(3): FORCE
+ @find $(1) $(FINDPARAMS) $(4) 2>/dev/null | md5s > $$@
+
+endef