change the recursive dependency template to use more make evaluation - the shell command got so long that it triggered "Argument list too long" on some systems (#8231)

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24131 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Felix Fietkau 2010-11-24 14:07:12 +00:00
parent 62c721aac1
commit 438fd77049
1 changed files with 22 additions and 21 deletions

View File

@ -20,28 +20,29 @@ define rdep
.SILENT: $(2)_check .SILENT: $(2)_check
$(2): $(2)_check $(2): $(2)_check
ifneq ($(wildcard $(2)),)
$(2)_check:: $(2)_check::
if [ -f "$(2)" ]; then \ $(if $(3), \
$(if $(3), \ $(call find_md5,$(1),$(4)) > $(3).1; \
$(call find_md5,$(1),$(4)) > $(3).1; \ { [ \! -f "$(3)" ] || diff $(3) $(3).1 >/dev/null; } && \
{ [ \! -f "$(3)" ] || diff $(3) $(3).1 >/dev/null; } && \ ) \
) \ { \
{ \ [ -f "$(2)_check.1" ] && mv "$(2)_check.1"; \
[ -f "$(2)_check.1" ] && mv "$(2)_check.1"; \ $(TOPDIR)/scripts/timestamp.pl $(DEP_FINDPARAMS) $(4) -n $(2) $(1) && { \
$(TOPDIR)/scripts/timestamp.pl $(DEP_FINDPARAMS) $(4) -n $(2) $(1) && { \ $(call debug_eval,$(SUBDIR),r,echo "No need to rebuild $(2)";) \
$(call debug_eval,$(SUBDIR),r,echo "No need to rebuild $(2)";) \ touch -r "$(2)" "$(2)_check"; \
touch -r "$(2)" "$(2)_check"; \ } \
} \ } || { \
} || { \ $(call debug_eval,$(SUBDIR),r,echo "Need to rebuild $(2)";) \
$(call debug_eval,$(SUBDIR),r,echo "Need to rebuild $(2)";) \ touch "$(2)_check"; \
touch "$(2)_check"; \ }
}; \ $(if $(3), mv $(3).1 $(3))
$(if $(3), mv $(3).1 $(3);) \ else
else \ $(2)_check::
$(if $(3), rm -f $(3) $(3).1;) \ $(if $(3), rm -f $(3) $(3).1)
$(call debug_eval,$(SUBDIR),r,echo "Target $(2) not built";) \ $(call debug_eval,$(SUBDIR),r,echo "Target $(2) not built")
true; \ endif
fi
endef endef