1 # SPDX-License-Identifier: GPL-2.0-only
3 # Copyright (C) 2007-2020 OpenWrt.org
5 # define a dependency on a subtree
8 # 2: directory dependency
9 # 3: tempfile for file listings
12 DEP_FINDPARAMS
:= -x
"*/.svn*" -x
".*" -x
"*:*" -x
"*\!*" -x
"* *" -x
"*\\\#*" -x
"*/.*_check" -x
"*/.*.swp" -x
"*/.pkgdir*"
14 find_md5
=find
$(wildcard $(1)) -type f
$(patsubst -x
,-and
-not
-path
,$(DEP_FINDPARAMS
) $(2)) -printf
"%p%T@\n" |
sort |
$(MKHASH
) md5
21 check-depends
: $(2)_check
23 ifneq ($(wildcard $(2)),)
26 $(call find_md5
,$(1),$(4)) > $(3).1; \
27 { [ \
! -f
"$(3)" ] || diff
$(3) $(3).1 >/dev
/null
; } && \
30 [ -f
"$(2)_check.1" ] && mv
"$(2)_check.1"; \
31 $(TOPDIR
)/scripts
/timestamp.pl
$(DEP_FINDPARAMS
) $(4) -n
$(2) $(1) && { \
32 $(call debug_eval
,$(SUBDIR
),r
,echo
"No need to rebuild $(2)";) \
33 touch
-r
"$(2)" "$(2)_check"; \
36 $(call debug_eval
,$(SUBDIR
),r
,echo
"Need to rebuild $(2)";) \
39 $(if
$(3), mv
$(3).1 $(3))
42 $(if
$(3), rm -f
$(3) $(3).1)
43 $(call debug_eval
,$(SUBDIR
),r
,echo
"Target $(2) not built")
48 ifeq ($(filter .
%,$(MAKECMDGOALS
)),$(if
$(MAKECMDGOALS
),$(MAKECMDGOALS
),x
))