# # Kbuild for top-level directory of the kernel # This file takes care of the following: # 1) Generate asm-offsets.h ##### # 1) Generate asm-offsets.h # offsets-file := include/asm-$(ARCH)/asm-offsets.h always := $(offsets-file) targets := $(offsets-file) targets += arch/$(ARCH)/kernel/asm-offsets.s # Default sed regexp - multiline due to syntax constraints define sed-y "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}" endef # Override default regexp for specific architectures sed-$(CONFIG_MIPS) := "/^@@@/s///p" quiet_cmd_offsets = GEN $@ define cmd_offsets cat $< | \ (set -e; \ echo "#ifndef __ASM_OFFSETS_H__"; \ echo "#define __ASM_OFFSETS_H__"; \ echo "/*"; \ echo " * DO NOT MODIFY."; \ echo " *"; \ echo " * This file was generated by $(srctree)/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 arch/$(ARCH)/kernel/asm-offsets.s: arch/$(ARCH)/kernel/asm-offsets.c FORCE $(Q)mkdir -p $(dir $@) $(call if_changed_dep,cc_s_c) $(srctree)/$(offsets-file): arch/$(ARCH)/kernel/asm-offsets.s Kbuild $(call cmd,offsets)