From: Ahmad Fatoum <[email protected]> The normal cmd can not be used in foreach, because it's prefixed by @. Add an optional loopable variant as well as a noop_cmd that's suitable for use in nesten $(call ...) invocations that would otherwise lead to Make aborting due to perceived cycles in log_print.
Signed-off-by: Ahmad Fatoum <[email protected]> --- scripts/Kbuild.include | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index e905b54663713beae56b46e4c91079fab9d06c66..a23d27cba315f51082fcf38d6b3e011a541fabd1 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include @@ -158,6 +158,12 @@ delete-on-interrupt = \ # print and execute commands cmd = @$(if $(cmd_$(1)),set -e; $($(quiet)log_print) $(delete-on-interrupt) $(cmd_$(1)),:) +# The normal 'cmd' above is not *loopable* +loop_cmd = $(if $(cmd_$(1)),set -e; $($(quiet)log_print) $(cmd_$(1)),:) || exit; + +# Like loop_cmd, but without printing +noop_cmd = $(if $(cmd_$(1)),$(cmd_$(1)),:) + ### # if_changed - execute command if any prerequisite is newer than # target, or command line has changed -- 2.39.5
