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 16048eb582SSam Ravnborg# Default sed regexp - multiline due to syntax constraints 17048eb582SSam Ravnborgdefine sed-y 18048eb582SSam Ravnborg "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}" 19048eb582SSam Ravnborgendef 20048eb582SSam Ravnborg# Override default regexp for specific architectures 210947640fSAtsushi Nemotosed-$(CONFIG_MIPS) := "/^@@@/{s/^@@@//; s/ \#.*\$$//; p;}" 22048eb582SSam Ravnborg 2386feeaa8SSam Ravnborgquiet_cmd_offsets = GEN $@ 2486feeaa8SSam Ravnborgdefine cmd_offsets 2586feeaa8SSam Ravnborg (set -e; \ 2686feeaa8SSam Ravnborg echo "#ifndef __ASM_OFFSETS_H__"; \ 2786feeaa8SSam Ravnborg echo "#define __ASM_OFFSETS_H__"; \ 2886feeaa8SSam Ravnborg echo "/*"; \ 2986feeaa8SSam Ravnborg echo " * DO NOT MODIFY."; \ 3086feeaa8SSam Ravnborg echo " *"; \ 31*65ff22eeSOlaf Hering echo " * This file was generated by Kbuild"; \ 3286feeaa8SSam Ravnborg echo " *"; \ 3386feeaa8SSam Ravnborg echo " */"; \ 3486feeaa8SSam Ravnborg echo ""; \ 35ac448afbSBrian Gerst sed -ne $(sed-y) $<; \ 3686feeaa8SSam Ravnborg echo ""; \ 3786feeaa8SSam Ravnborg echo "#endif" ) > $@ 3886feeaa8SSam Ravnborgendef 3986feeaa8SSam Ravnborg 4086feeaa8SSam Ravnborg# We use internal kbuild rules to avoid the "is up to date" message from make 4186feeaa8SSam Ravnborgarch/$(ARCH)/kernel/asm-offsets.s: arch/$(ARCH)/kernel/asm-offsets.c FORCE 4286feeaa8SSam Ravnborg $(Q)mkdir -p $(dir $@) 4386feeaa8SSam Ravnborg $(call if_changed_dep,cc_s_c) 4486feeaa8SSam Ravnborg 458d36a623SSam Ravnborg$(obj)/$(offsets-file): arch/$(ARCH)/kernel/asm-offsets.s Kbuild 46ac448afbSBrian Gerst $(Q)mkdir -p $(dir $@) 4786feeaa8SSam Ravnborg $(call cmd,offsets) 4886feeaa8SSam Ravnborg 49