On Thu, May 12, 2022 at 01:45:13AM +0900, Masahiro Yamada wrote: > Separate out the command execution part of if_changed, as we did > for if_changed_dep. > > This allows us to reuse it in if_changed_rule. > > define rule_foo > $(call cmd_and_savecmd,foo) > $(call cmd,bar) > endef > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> > --- > > (no changes since v4) > > Changes in v4: > - New. > Resent of my previous submission. > https://lore.kernel.org/all/20210831074004.3195284-10-masahiroy@xxxxxxxxxx/ > > scripts/Kbuild.include | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include > index 455a0a6ce12d..ece44b735061 100644 > --- a/scripts/Kbuild.include > +++ b/scripts/Kbuild.include > @@ -142,9 +142,11 @@ check-FORCE = $(if $(filter FORCE, $^),,$(warning FORCE prerequisite is missing) > if-changed-cond = $(newer-prereqs)$(cmd-check)$(check-FORCE) > > # Execute command if command has changed or prerequisite(s) are updated. > -if_changed = $(if $(if-changed-cond), \ > +if_changed = $(if $(if-changed-cond),$(cmd_and_savecmd),@:) > + > +cmd_and_savecmd = \ > $(cmd); \ > - printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd, @:) > + printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd > > # Execute the command and also postprocess generated .d dependencies file. > if_changed_dep = $(if $(if-changed-cond),$(cmd_and_fixdep),@:) > -- > 2.32.0 > Reviewed-by: Nicolas Schier <n.schier@xxxxxx>