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 586feeaa8SSam Ravnborg 686feeaa8SSam Ravnborg##### 786feeaa8SSam Ravnborg# 1) Generate asm-offsets.h 886feeaa8SSam Ravnborg# 986feeaa8SSam Ravnborg 1086feeaa8SSam Ravnborgoffsets-file := include/asm-$(ARCH)/asm-offsets.h 1186feeaa8SSam Ravnborg 1286feeaa8SSam Ravnborgalways := $(offsets-file) 1386feeaa8SSam Ravnborgtargets := $(offsets-file) 1486feeaa8SSam Ravnborgtargets += arch/$(ARCH)/kernel/asm-offsets.s 1586feeaa8SSam Ravnborg 16*048eb582SSam Ravnborg# Default sed regexp - multiline due to syntax constraints 17*048eb582SSam Ravnborgdefine sed-y 18*048eb582SSam Ravnborg "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}" 19*048eb582SSam Ravnborgendef 20*048eb582SSam Ravnborg# Override default regexp for specific architectures 21*048eb582SSam Ravnborgsed-$(CONFIG_MIPS) := "/^@@@/s///p" 22*048eb582SSam Ravnborg 2386feeaa8SSam Ravnborgquiet_cmd_offsets = GEN $@ 2486feeaa8SSam Ravnborgdefine cmd_offsets 2586feeaa8SSam Ravnborg cat $< | \ 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 " *"; \ 3286feeaa8SSam Ravnborg echo " * This file was generated by $(srctree)/Kbuild"; \ 3386feeaa8SSam Ravnborg echo " *"; \ 3486feeaa8SSam Ravnborg echo " */"; \ 3586feeaa8SSam Ravnborg echo ""; \ 36*048eb582SSam Ravnborg 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 4686feeaa8SSam Ravnborg$(srctree)/$(offsets-file): arch/$(ARCH)/kernel/asm-offsets.s Kbuild 4786feeaa8SSam Ravnborg $(call cmd,offsets) 4886feeaa8SSam Ravnborg 49