186feeaa8SSam Ravnborg# 286feeaa8SSam Ravnborg# Kbuild for top-level directory of the kernel 386feeaa8SSam Ravnborg# This file takes care of the following: 486feeaa8SSam Ravnborg# 1) Generate asm-offsets.h 5c53aeca0SSam Ravnborg# 2) Check for missing system calls 686feeaa8SSam Ravnborg 786feeaa8SSam Ravnborg##### 886feeaa8SSam Ravnborg# 1) Generate asm-offsets.h 986feeaa8SSam Ravnborg# 1086feeaa8SSam Ravnborg 11*96a388deSThomas Gleixneroffsets-file := include/asm-$(SRCARCH)/asm-offsets.h 1286feeaa8SSam Ravnborg 1386feeaa8SSam Ravnborgalways := $(offsets-file) 1486feeaa8SSam Ravnborgtargets := $(offsets-file) 156752ed90SThomas Gleixnertargets += arch/$(SRCARCH)/kernel/asm-offsets.s 16f241182bSSam Ravnborgclean-files := $(addprefix $(objtree)/,$(targets)) 1786feeaa8SSam Ravnborg 18048eb582SSam Ravnborg# Default sed regexp - multiline due to syntax constraints 19048eb582SSam Ravnborgdefine sed-y 20048eb582SSam Ravnborg "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}" 21048eb582SSam Ravnborgendef 22048eb582SSam Ravnborg# Override default regexp for specific architectures 230947640fSAtsushi Nemotosed-$(CONFIG_MIPS) := "/^@@@/{s/^@@@//; s/ \#.*\$$//; p;}" 24048eb582SSam Ravnborg 2586feeaa8SSam Ravnborgquiet_cmd_offsets = GEN $@ 2686feeaa8SSam Ravnborgdefine cmd_offsets 2786feeaa8SSam Ravnborg (set -e; \ 2886feeaa8SSam Ravnborg echo "#ifndef __ASM_OFFSETS_H__"; \ 2986feeaa8SSam Ravnborg echo "#define __ASM_OFFSETS_H__"; \ 3086feeaa8SSam Ravnborg echo "/*"; \ 3186feeaa8SSam Ravnborg echo " * DO NOT MODIFY."; \ 3286feeaa8SSam Ravnborg echo " *"; \ 3365ff22eeSOlaf Hering echo " * This file was generated by Kbuild"; \ 3486feeaa8SSam Ravnborg echo " *"; \ 3586feeaa8SSam Ravnborg echo " */"; \ 3686feeaa8SSam Ravnborg echo ""; \ 37ac448afbSBrian Gerst sed -ne $(sed-y) $<; \ 3886feeaa8SSam Ravnborg echo ""; \ 3986feeaa8SSam Ravnborg echo "#endif" ) > $@ 4086feeaa8SSam Ravnborgendef 4186feeaa8SSam Ravnborg 4286feeaa8SSam Ravnborg# We use internal kbuild rules to avoid the "is up to date" message from make 436752ed90SThomas Gleixnerarch/$(SRCARCH)/kernel/asm-offsets.s: arch/$(SRCARCH)/kernel/asm-offsets.c FORCE 4486feeaa8SSam Ravnborg $(Q)mkdir -p $(dir $@) 4586feeaa8SSam Ravnborg $(call if_changed_dep,cc_s_c) 4686feeaa8SSam Ravnborg 476752ed90SThomas Gleixner$(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s Kbuild 48ac448afbSBrian Gerst $(Q)mkdir -p $(dir $@) 4986feeaa8SSam Ravnborg $(call cmd,offsets) 5086feeaa8SSam Ravnborg 51c53aeca0SSam Ravnborg##### 52c53aeca0SSam Ravnborg# 2) Check for missing system calls 53c53aeca0SSam Ravnborg# 54c53aeca0SSam Ravnborg 55c53aeca0SSam Ravnborgquiet_cmd_syscalls = CALL $< 56c53aeca0SSam Ravnborg cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) 57c53aeca0SSam Ravnborg 58c53aeca0SSam RavnborgPHONY += missing-syscalls 59c53aeca0SSam Ravnborgmissing-syscalls: scripts/checksyscalls.sh FORCE 60c53aeca0SSam Ravnborg $(call cmd,syscalls) 61