OpenWrt – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 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: directories/files |
||
10 | # 2: directory dependency |
||
11 | # 3: tempfile for file listings |
||
12 | # 4: find options |
||
13 | |||
14 | DEP_FINDPARAMS := -x "*/.svn*" -x ".*" -x "*:*" -x "*\!*" -x "* *" -x "*\\\#*" -x "*/.*_check" -x "*/.*.swp" -x "*/.pkgdir*" |
||
15 | |||
16 | find_md5=find $(wildcard $(1)) -type f $(patsubst -x,-and -not -path,$(DEP_FINDPARAMS) $(2)) | mkhash md5 |
||
17 | |||
18 | define rdep |
||
19 | .PRECIOUS: $(2) |
||
20 | .SILENT: $(2)_check |
||
21 | |||
22 | $(2): $(2)_check |
||
23 | check-depends: $(2)_check |
||
24 | |||
25 | ifneq ($(wildcard $(2)),) |
||
26 | $(2)_check:: |
||
27 | $(if $(3), \ |
||
28 | $(call find_md5,$(1),$(4)) > $(3).1; \ |
||
29 | { [ \! -f "$(3)" ] || diff $(3) $(3).1 >/dev/null; } && \ |
||
30 | ) \ |
||
31 | { \ |
||
32 | [ -f "$(2)_check.1" ] && mv "$(2)_check.1"; \ |
||
33 | $(TOPDIR)/scripts/timestamp.pl $(DEP_FINDPARAMS) $(4) -n $(2) $(1) && { \ |
||
34 | $(call debug_eval,$(SUBDIR),r,echo "No need to rebuild $(2)";) \ |
||
35 | touch -r "$(2)" "$(2)_check"; \ |
||
36 | } \ |
||
37 | } || { \ |
||
38 | $(call debug_eval,$(SUBDIR),r,echo "Need to rebuild $(2)";) \ |
||
39 | touch "$(2)_check"; \ |
||
40 | } |
||
41 | $(if $(3), mv $(3).1 $(3)) |
||
42 | else |
||
43 | $(2)_check:: |
||
44 | $(if $(3), rm -f $(3) $(3).1) |
||
45 | $(call debug_eval,$(SUBDIR),r,echo "Target $(2) not built") |
||
46 | endif |
||
47 | |||
48 | endef |
||
49 | |||
50 | ifeq ($(filter .%,$(MAKECMDGOALS)),$(if $(MAKECMDGOALS),$(MAKECMDGOALS),x)) |
||
51 | define rdep |
||
52 | $(2): $(2)_check |
||
53 | endef |
||
54 | endif |