|
@@ -1,19 +1,54 @@
|
|
|
#
|
|
|
# Kbuild for top-level directory of the kernel
|
|
|
# This file takes care of the following:
|
|
|
-# 1) Generate asm-offsets.h
|
|
|
-# 2) Check for missing system calls
|
|
|
+# 1) Generate bounds.h
|
|
|
+# 2) Generate asm-offsets.h (may need bounds.h)
|
|
|
+# 3) Check for missing system calls
|
|
|
|
|
|
#####
|
|
|
-# 1) Generate asm-offsets.h
|
|
|
+# 1) Generate bounds.h
|
|
|
+
|
|
|
+bounds-file := include/linux/bounds.h
|
|
|
+
|
|
|
+always := $(bounds-file)
|
|
|
+targets := $(bounds-file) kernel/bounds.s
|
|
|
+
|
|
|
+quiet_cmd_bounds = GEN $@
|
|
|
+define cmd_bounds
|
|
|
+ (set -e; \
|
|
|
+ echo "#ifndef __LINUX_BOUNDS_H__"; \
|
|
|
+ echo "#define __LINUX_BOUNDS_H__"; \
|
|
|
+ echo "/*"; \
|
|
|
+ echo " * DO NOT MODIFY."; \
|
|
|
+ echo " *"; \
|
|
|
+ echo " * This file was generated by Kbuild"; \
|
|
|
+ echo " *"; \
|
|
|
+ echo " */"; \
|
|
|
+ echo ""; \
|
|
|
+ sed -ne $(sed-y) $<; \
|
|
|
+ echo ""; \
|
|
|
+ echo "#endif" ) > $@
|
|
|
+endef
|
|
|
+
|
|
|
+# We use internal kbuild rules to avoid the "is up to date" message from make
|
|
|
+kernel/bounds.s: kernel/bounds.c FORCE
|
|
|
+ $(Q)mkdir -p $(dir $@)
|
|
|
+ $(call if_changed_dep,cc_s_c)
|
|
|
+
|
|
|
+$(obj)/$(bounds-file): kernel/bounds.s Kbuild
|
|
|
+ $(Q)mkdir -p $(dir $@)
|
|
|
+ $(call cmd,bounds)
|
|
|
+
|
|
|
+#####
|
|
|
+# 2) Generate asm-offsets.h
|
|
|
#
|
|
|
|
|
|
offsets-file := include/asm-$(SRCARCH)/asm-offsets.h
|
|
|
|
|
|
-always := $(offsets-file)
|
|
|
-targets := $(offsets-file)
|
|
|
+always += $(offsets-file)
|
|
|
+targets += $(offsets-file)
|
|
|
targets += arch/$(SRCARCH)/kernel/asm-offsets.s
|
|
|
-clean-files := $(addprefix $(objtree)/,$(targets))
|
|
|
+
|
|
|
|
|
|
# Default sed regexp - multiline due to syntax constraints
|
|
|
define sed-y
|
|
@@ -40,7 +75,8 @@ define cmd_offsets
|
|
|
endef
|
|
|
|
|
|
# We use internal kbuild rules to avoid the "is up to date" message from make
|
|
|
-arch/$(SRCARCH)/kernel/asm-offsets.s: arch/$(SRCARCH)/kernel/asm-offsets.c FORCE
|
|
|
+arch/$(SRCARCH)/kernel/asm-offsets.s: arch/$(SRCARCH)/kernel/asm-offsets.c \
|
|
|
+ $(obj)/$(bounds-file) FORCE
|
|
|
$(Q)mkdir -p $(dir $@)
|
|
|
$(call if_changed_dep,cc_s_c)
|
|
|
|
|
@@ -49,7 +85,7 @@ $(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s Kbuild
|
|
|
$(call cmd,offsets)
|
|
|
|
|
|
#####
|
|
|
-# 2) Check for missing system calls
|
|
|
+# 3) Check for missing system calls
|
|
|
#
|
|
|
|
|
|
quiet_cmd_syscalls = CALL $<
|
|
@@ -58,3 +94,7 @@ quiet_cmd_syscalls = CALL $<
|
|
|
PHONY += missing-syscalls
|
|
|
missing-syscalls: scripts/checksyscalls.sh FORCE
|
|
|
$(call cmd,syscalls)
|
|
|
+
|
|
|
+# Delete all targets during make clean
|
|
|
+clean-files := $(addprefix $(objtree)/,$(targets))
|
|
|
+
|