[PATCH 1/4] kbuild: add phony targets to ./Kbuild

From: Masahiro Yamada
Date: Sat Aug 20 2022 - 05:16:52 EST


missing-syscalls and old-atomics are meant to be phony targets.
Adding them to always-y is odd. (always-y should generate something).

Add a new phony target 'prepare', which depends on all the other.

Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
---

Kbuild | 26 +++++++++++++-------------
Makefile | 2 +-
2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/Kbuild b/Kbuild
index fa441b98c9f6..e122d93cee32 100644
--- a/Kbuild
+++ b/Kbuild
@@ -2,18 +2,18 @@
#
# Kbuild for top-level directory of the kernel

-#####
+# Prepare global headers and check sanity before descending into sub-directories
+# ---------------------------------------------------------------------------
+
# Generate bounds.h

bounds-file := include/generated/bounds.h

-always-y := $(bounds-file)
targets := kernel/bounds.s

$(bounds-file): kernel/bounds.s FORCE
$(call filechk,offsets,__LINUX_BOUNDS_H__)

-#####
# Generate timeconst.h

timeconst-file := include/generated/timeconst.h
@@ -23,12 +23,10 @@ filechk_gentimeconst = echo $(CONFIG_HZ) | bc -q $<
$(timeconst-file): kernel/time/timeconst.bc FORCE
$(call filechk,gentimeconst)

-#####
# Generate asm-offsets.h

offsets-file := include/generated/asm-offsets.h

-always-y += $(offsets-file)
targets += arch/$(SRCARCH)/kernel/asm-offsets.s

arch/$(SRCARCH)/kernel/asm-offsets.s: $(timeconst-file) $(bounds-file)
@@ -36,24 +34,26 @@ arch/$(SRCARCH)/kernel/asm-offsets.s: $(timeconst-file) $(bounds-file)
$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s FORCE
$(call filechk,offsets,__ASM_OFFSETS_H__)

-#####
# Check for missing system calls

-always-y += missing-syscalls
-
quiet_cmd_syscalls = CALL $<
cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags)

-missing-syscalls: scripts/checksyscalls.sh $(offsets-file) FORCE
+PHONY += missing-syscalls
+missing-syscalls: scripts/checksyscalls.sh $(offsets-file)
$(call cmd,syscalls)

-#####
# Check atomic headers are up-to-date

-always-y += old-atomics
-
quiet_cmd_atomics = CALL $<
cmd_atomics = $(CONFIG_SHELL) $<

-old-atomics: scripts/atomic/check-atomics.sh FORCE
+PHONY += old-atomics
+old-atomics: scripts/atomic/check-atomics.sh
$(call cmd,atomics)
+
+# A phony target that depends on all the preparation targets
+
+PHONY += prepare
+prepare: $(offsets-file) missing-syscalls old-atomics
+ @:
diff --git a/Makefile b/Makefile
index 697ab397fe31..4fcced0d3907 100644
--- a/Makefile
+++ b/Makefile
@@ -1202,7 +1202,7 @@ archprepare: outputmakefile archheaders archscripts scripts include/config/kerne

prepare0: archprepare
$(Q)$(MAKE) $(build)=scripts/mod
- $(Q)$(MAKE) $(build)=.
+ $(Q)$(MAKE) $(build)=. prepare

# All the preparing..
prepare: prepare0
--
2.34.1