16a44d806SMasahiro Yamada# 26a44d806SMasahiro Yamada# Kbuild for top-level directory of U-Boot 36a44d806SMasahiro Yamada# This file takes care of the following: 46a44d806SMasahiro Yamada# 1) Generate generic-asm-offsets.h 56a44d806SMasahiro Yamada# 2) Generate asm-offsets.h 66a44d806SMasahiro Yamada 76a44d806SMasahiro Yamada##### 86a44d806SMasahiro Yamada# 1) Generate generic-asm-offsets.h 96a44d806SMasahiro Yamada 106a44d806SMasahiro Yamadageneric-offsets-file := include/generated/generic-asm-offsets.h 116a44d806SMasahiro Yamada 126a44d806SMasahiro Yamadaalways := $(generic-offsets-file) 136a44d806SMasahiro Yamadatargets := $(generic-offsets-file) lib/asm-offsets.s 146a44d806SMasahiro Yamada 156a44d806SMasahiro Yamadaquiet_cmd_generic-offsets = GEN $@ 166a44d806SMasahiro Yamadadefine cmd_generic-offsets 176a44d806SMasahiro Yamada (set -e; \ 186a44d806SMasahiro Yamada echo "#ifndef __GENERIC_ASM_OFFSETS_H__"; \ 196a44d806SMasahiro Yamada echo "#define __GENERIC_ASM_OFFSETS_H__"; \ 206a44d806SMasahiro Yamada echo "/*"; \ 216a44d806SMasahiro Yamada echo " * DO NOT MODIFY."; \ 226a44d806SMasahiro Yamada echo " *"; \ 236a44d806SMasahiro Yamada echo " * This file was generated by Kbuild"; \ 246a44d806SMasahiro Yamada echo " *"; \ 256a44d806SMasahiro Yamada echo " */"; \ 266a44d806SMasahiro Yamada echo ""; \ 276a44d806SMasahiro Yamada sed -ne $(sed-y) $<; \ 286a44d806SMasahiro Yamada echo ""; \ 296a44d806SMasahiro Yamada echo "#endif" ) > $@ 306a44d806SMasahiro Yamadaendef 316a44d806SMasahiro Yamada 326a44d806SMasahiro Yamada# We use internal kbuild rules to avoid the "is up to date" message from make 336a44d806SMasahiro Yamadalib/asm-offsets.s: lib/asm-offsets.c FORCE 346a44d806SMasahiro Yamada $(Q)mkdir -p $(dir $@) 356a44d806SMasahiro Yamada $(call if_changed_dep,cc_s_c) 366a44d806SMasahiro Yamada 376a44d806SMasahiro Yamada$(obj)/$(generic-offsets-file): lib/asm-offsets.s Kbuild 386a44d806SMasahiro Yamada $(Q)mkdir -p $(dir $@) 396a44d806SMasahiro Yamada $(call cmd,generic-offsets) 406a44d806SMasahiro Yamada 416a44d806SMasahiro Yamada##### 426a44d806SMasahiro Yamada# 2) Generate asm-offsets.h 436a44d806SMasahiro Yamada# 446a44d806SMasahiro Yamada 45*254d68b6SMasahiro Yamadaifneq ($(wildcard $(srctree)/arch/$(ARCH)/lib/asm-offsets.c),) 466a44d806SMasahiro Yamadaoffsets-file := include/generated/asm-offsets.h 476a44d806SMasahiro Yamadaendif 486a44d806SMasahiro Yamada 496a44d806SMasahiro Yamadaalways += $(offsets-file) 506a44d806SMasahiro Yamadatargets += $(offsets-file) 51*254d68b6SMasahiro Yamadatargets += arch/$(ARCH)/lib/asm-offsets.s 526a44d806SMasahiro Yamada 536a44d806SMasahiro Yamada 546a44d806SMasahiro Yamada# Default sed regexp - multiline due to syntax constraints 556a44d806SMasahiro Yamadadefine sed-y 566a44d806SMasahiro Yamada "/^->/{s:->#\(.*\):/* \1 */:; \ 576a44d806SMasahiro Yamada s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ 586a44d806SMasahiro Yamada s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ 596a44d806SMasahiro Yamada s:->::; p;}" 606a44d806SMasahiro Yamadaendef 616a44d806SMasahiro Yamada 626a44d806SMasahiro YamadaCFLAGS_asm-offsets.o := -DDO_DEPS_ONLY 636a44d806SMasahiro Yamada 646a44d806SMasahiro Yamadaquiet_cmd_offsets = GEN $@ 656a44d806SMasahiro Yamadadefine cmd_offsets 666a44d806SMasahiro Yamada (set -e; \ 676a44d806SMasahiro Yamada echo "#ifndef __ASM_OFFSETS_H__"; \ 686a44d806SMasahiro Yamada echo "#define __ASM_OFFSETS_H__"; \ 696a44d806SMasahiro Yamada echo "/*"; \ 706a44d806SMasahiro Yamada echo " * DO NOT MODIFY."; \ 716a44d806SMasahiro Yamada echo " *"; \ 726a44d806SMasahiro Yamada echo " * This file was generated by Kbuild"; \ 736a44d806SMasahiro Yamada echo " *"; \ 746a44d806SMasahiro Yamada echo " */"; \ 756a44d806SMasahiro Yamada echo ""; \ 766a44d806SMasahiro Yamada sed -ne $(sed-y) $<; \ 776a44d806SMasahiro Yamada echo ""; \ 786a44d806SMasahiro Yamada echo "#endif" ) > $@ 796a44d806SMasahiro Yamadaendef 806a44d806SMasahiro Yamada 816a44d806SMasahiro Yamada# We use internal kbuild rules to avoid the "is up to date" message from make 82*254d68b6SMasahiro Yamadaarch/$(ARCH)/lib/asm-offsets.s: arch/$(ARCH)/lib/asm-offsets.c FORCE 836a44d806SMasahiro Yamada $(Q)mkdir -p $(dir $@) 846a44d806SMasahiro Yamada $(call if_changed_dep,cc_s_c) 856a44d806SMasahiro Yamada 86*254d68b6SMasahiro Yamada$(obj)/$(offsets-file): arch/$(ARCH)/lib/asm-offsets.s Kbuild 876a44d806SMasahiro Yamada $(call cmd,offsets) 88