diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index 0168d6c..d774b0e 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include @@ -79,7 +79,7 @@ echo-cmd = $(if $($(quiet)cmd_$(1)), \ # >'< substitution is for echo to work, >$< substitution to preserve $ when reloading .cmd file # note: when using inline perl scripts [perl -e '...$$t=1;...'] in $(cmd_xxx) double $$ your perl vars # -if_changed = $(if $(strip $? $(call arg-check, $(cmd_$(1)), $(cmd_$@)) ), \ +if_changed = $(if $(strip $(filter-out FORCE, $?) $(call arg-check, $(cmd_$(1)), $(cmd_$@)) ), \ @set -e; \ $(echo-cmd) \ $(cmd_$(1)); \ @@ -87,7 +87,7 @@ if_changed = $(if $(strip $? $(call arg- # execute the command and also postprocess generated .d dependencies # file -if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\ +if_changed_dep = $(if $(strip $(filter-out FORCE, $?) $(filter-out FORCE $(wildcard $^),$^)\ $(call arg-check, $(cmd_$(1)), $(cmd_$@)) ), \ @set -e; \ $(echo-cmd) \ @@ -99,6 +99,6 @@ if_changed_dep = $(if $(strip $? $(filte # Usage: $(call if_changed_rule,foo) # will check if $(cmd_foo) changed, or any of the prequisites changed, # and if so will execute $(rule_foo) -if_changed_rule = $(if $(strip $? $(call arg-check, $(cmd_$(1)), $(cmd_$@)) ),\ +if_changed_rule = $(if $(strip $(filter-out FORCE, $?) $(call arg-check, $(cmd_$(1)), $(cmd_$@)) ),\ @set -e; \ $(rule_$(1)))