diff options
| author | Ilias Apalodimas <ilias.apalodimas@linaro.org> | 2025-05-20 08:21:22 +0300 |
|---|---|---|
| committer | Tom Rini <trini@konsulko.com> | 2025-05-29 18:42:37 -0600 |
| commit | cc571e29a8ecbba909cbb04ba062db026f70ae8b (patch) | |
| tree | eaf0dc53ae3aefbbeeaa9620865f5fde8c6c8340 /scripts | |
| parent | 47a4770c7a2f6dab7ada9ba77b12bd41939db551 (diff) | |
kbuild: let fixdep directly write to .*.cmd files
Backport from kernel
commit 392885ee82d3 ("kbuild: let fixdep directly write to .*.cmd files")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Kbuild.include | 5 | ||||
| -rw-r--r-- | scripts/Makefile.build | 11 |
2 files changed, 9 insertions, 7 deletions
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index 2ef687ea895..6ef66c451eb 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include @@ -274,9 +274,8 @@ if_changed_dep = $(if $(strip $(any-prereq) $(arg-check) ), \ cmd_and_fixdep = \ $(echo-cmd) $(cmd_$(1)); \ - scripts/basic/fixdep $(depfile) $@ '$(make-cmd)' > $(dot-target).tmp;\ - rm -f $(depfile); \ - mv -f $(dot-target).tmp $(dot-target).cmd; + scripts/basic/fixdep $(depfile) $@ '$(make-cmd)' > $(dot-target).cmd;\ + rm -f $(depfile) # Usage: $(call if_changed_rule,foo) # Will check if $(cmd_foo) or any of the prerequisites changed, diff --git a/scripts/Makefile.build b/scripts/Makefile.build index d90b0b7aa6a..2f2d5d4afc2 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -410,14 +410,17 @@ FORCE: # optimization, we don't need to read them if the target does not # exist, we will rebuild anyway in that case. -cmd_files := $(wildcard $(foreach f,$(sort $(targets)),$(dir $(f)).$(notdir $(f)).cmd)) +existing-targets := $(wildcard $(sort $(targets))) -ifneq ($(cmd_files),) - include $(cmd_files) -endif +-include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd) # Create directories for object files if they do not exist obj-dirs := $(sort $(obj) $(patsubst %/,%, $(dir $(targets)))) +# If targets exist, their directories apparently exist. Skip mkdir. +existing-dirs := $(sort $(patsubst %/,%, $(dir $(existing-targets)))) +obj-dirs := $(strip $(filter-out $(existing-dirs), $(obj-dirs))) +ifneq ($(obj-dirs),) $(shell mkdir -p $(obj-dirs)) +endif .PHONY: $(PHONY) |
