1*86feeaa8SSam Ravnborg# 2*86feeaa8SSam Ravnborg# Kbuild for top-level directory of the kernel 3*86feeaa8SSam Ravnborg# This file takes care of the following: 4*86feeaa8SSam Ravnborg# 1) Generate asm-offsets.h 5*86feeaa8SSam Ravnborg 6*86feeaa8SSam Ravnborg##### 7*86feeaa8SSam Ravnborg# 1) Generate asm-offsets.h 8*86feeaa8SSam Ravnborg# 9*86feeaa8SSam Ravnborg 10*86feeaa8SSam Ravnborgoffsets-file := include/asm-$(ARCH)/asm-offsets.h 11*86feeaa8SSam Ravnborg 12*86feeaa8SSam Ravnborgalways := $(offsets-file) 13*86feeaa8SSam Ravnborgtargets := $(offsets-file) 14*86feeaa8SSam Ravnborgtargets += arch/$(ARCH)/kernel/asm-offsets.s 15*86feeaa8SSam Ravnborg 16*86feeaa8SSam Ravnborgquiet_cmd_offsets = GEN $@ 17*86feeaa8SSam Ravnborgdefine cmd_offsets 18*86feeaa8SSam Ravnborg cat $< | \ 19*86feeaa8SSam Ravnborg (set -e; \ 20*86feeaa8SSam Ravnborg echo "#ifndef __ASM_OFFSETS_H__"; \ 21*86feeaa8SSam Ravnborg echo "#define __ASM_OFFSETS_H__"; \ 22*86feeaa8SSam Ravnborg echo "/*"; \ 23*86feeaa8SSam Ravnborg echo " * DO NOT MODIFY."; \ 24*86feeaa8SSam Ravnborg echo " *"; \ 25*86feeaa8SSam Ravnborg echo " * This file was generated by $(srctree)/Kbuild"; \ 26*86feeaa8SSam Ravnborg echo " *"; \ 27*86feeaa8SSam Ravnborg echo " */"; \ 28*86feeaa8SSam Ravnborg echo ""; \ 29*86feeaa8SSam Ravnborg sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; \ 30*86feeaa8SSam Ravnborg echo ""; \ 31*86feeaa8SSam Ravnborg echo "#endif" ) > $@ 32*86feeaa8SSam Ravnborgendef 33*86feeaa8SSam Ravnborg 34*86feeaa8SSam Ravnborg# We use internal kbuild rules to avoid the "is up to date" message from make 35*86feeaa8SSam Ravnborgarch/$(ARCH)/kernel/asm-offsets.s: arch/$(ARCH)/kernel/asm-offsets.c FORCE 36*86feeaa8SSam Ravnborg $(Q)mkdir -p $(dir $@) 37*86feeaa8SSam Ravnborg $(call if_changed_dep,cc_s_c) 38*86feeaa8SSam Ravnborg 39*86feeaa8SSam Ravnborg$(srctree)/$(offsets-file): arch/$(ARCH)/kernel/asm-offsets.s Kbuild 40*86feeaa8SSam Ravnborg $(call cmd,offsets) 41*86feeaa8SSam Ravnborg 42