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 5*c53aeca0SSam Ravnborg# 2) Check for missing system calls 686feeaa8SSam Ravnborg 786feeaa8SSam Ravnborg##### 886feeaa8SSam Ravnborg# 1) Generate asm-offsets.h 986feeaa8SSam Ravnborg# 1086feeaa8SSam Ravnborg 1186feeaa8SSam Ravnborgoffsets-file := include/asm-$(ARCH)/asm-offsets.h 1286feeaa8SSam Ravnborg 1386feeaa8SSam Ravnborgalways := $(offsets-file) 1486feeaa8SSam Ravnborgtargets := $(offsets-file) 1586feeaa8SSam Ravnborgtargets += arch/$(ARCH)/kernel/asm-offsets.s 1686feeaa8SSam Ravnborg 17048eb582SSam Ravnborg# Default sed regexp - multiline due to syntax constraints 18048eb582SSam Ravnborgdefine sed-y 19048eb582SSam Ravnborg "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}" 20048eb582SSam Ravnborgendef 21048eb582SSam Ravnborg# Override default regexp for specific architectures 220947640fSAtsushi Nemotosed-$(CONFIG_MIPS) := "/^@@@/{s/^@@@//; s/ \#.*\$$//; p;}" 23048eb582SSam Ravnborg 2486feeaa8SSam Ravnborgquiet_cmd_offsets = GEN $@ 2586feeaa8SSam Ravnborgdefine cmd_offsets 2686feeaa8SSam Ravnborg (set -e; \ 2786feeaa8SSam Ravnborg echo "#ifndef __ASM_OFFSETS_H__"; \ 2886feeaa8SSam Ravnborg echo "#define __ASM_OFFSETS_H__"; \ 2986feeaa8SSam Ravnborg echo "/*"; \ 3086feeaa8SSam Ravnborg echo " * DO NOT MODIFY."; \ 3186feeaa8SSam Ravnborg echo " *"; \ 3265ff22eeSOlaf Hering echo " * This file was generated by Kbuild"; \ 3386feeaa8SSam Ravnborg echo " *"; \ 3486feeaa8SSam Ravnborg echo " */"; \ 3586feeaa8SSam Ravnborg echo ""; \ 36ac448afbSBrian Gerst sed -ne $(sed-y) $<; \ 3786feeaa8SSam Ravnborg echo ""; \ 3886feeaa8SSam Ravnborg echo "#endif" ) > $@ 3986feeaa8SSam Ravnborgendef 4086feeaa8SSam Ravnborg 4186feeaa8SSam Ravnborg# We use internal kbuild rules to avoid the "is up to date" message from make 4286feeaa8SSam Ravnborgarch/$(ARCH)/kernel/asm-offsets.s: arch/$(ARCH)/kernel/asm-offsets.c FORCE 4386feeaa8SSam Ravnborg $(Q)mkdir -p $(dir $@) 4486feeaa8SSam Ravnborg $(call if_changed_dep,cc_s_c) 4586feeaa8SSam Ravnborg 468d36a623SSam Ravnborg$(obj)/$(offsets-file): arch/$(ARCH)/kernel/asm-offsets.s Kbuild 47ac448afbSBrian Gerst $(Q)mkdir -p $(dir $@) 4886feeaa8SSam Ravnborg $(call cmd,offsets) 4986feeaa8SSam Ravnborg 50*c53aeca0SSam Ravnborg##### 51*c53aeca0SSam Ravnborg# 2) Check for missing system calls 52*c53aeca0SSam Ravnborg# 53*c53aeca0SSam Ravnborg 54*c53aeca0SSam Ravnborgquiet_cmd_syscalls = CALL $< 55*c53aeca0SSam Ravnborg cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) 56*c53aeca0SSam Ravnborg 57*c53aeca0SSam RavnborgPHONY += missing-syscalls 58*c53aeca0SSam Ravnborgmissing-syscalls: scripts/checksyscalls.sh FORCE 59*c53aeca0SSam Ravnborg $(call cmd,syscalls) 60