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 7*490cf5f0SMasahiro Yamada# Default sed regexp - multiline due to syntax constraints 8*490cf5f0SMasahiro Yamadadefine sed-y 9*490cf5f0SMasahiro Yamada "s:[[:space:]]*\.ascii[[:space:]]*\"\(.*\)\":\1:; \ 10*490cf5f0SMasahiro Yamada /^->/{s:->#\(.*\):/* \1 */:; \ 11*490cf5f0SMasahiro Yamada s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ 12*490cf5f0SMasahiro Yamada s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ 13*490cf5f0SMasahiro Yamada s:->::; p;}" 14*490cf5f0SMasahiro Yamadaendef 156a44d806SMasahiro Yamada 16*490cf5f0SMasahiro Yamadaquiet_cmd_offsets = GEN $@ 17*490cf5f0SMasahiro Yamadadefine cmd_offsets 186a44d806SMasahiro Yamada (set -e; \ 19*490cf5f0SMasahiro Yamada echo "#ifndef $2"; \ 20*490cf5f0SMasahiro Yamada echo "#define $2"; \ 216a44d806SMasahiro Yamada echo "/*"; \ 226a44d806SMasahiro Yamada echo " * DO NOT MODIFY."; \ 236a44d806SMasahiro Yamada echo " *"; \ 246a44d806SMasahiro Yamada echo " * This file was generated by Kbuild"; \ 256a44d806SMasahiro Yamada echo " *"; \ 266a44d806SMasahiro Yamada echo " */"; \ 276a44d806SMasahiro Yamada echo ""; \ 286a44d806SMasahiro Yamada sed -ne $(sed-y) $<; \ 296a44d806SMasahiro Yamada echo ""; \ 306a44d806SMasahiro Yamada echo "#endif" ) > $@ 316a44d806SMasahiro Yamadaendef 326a44d806SMasahiro Yamada 33*490cf5f0SMasahiro Yamada##### 34*490cf5f0SMasahiro Yamada# 1) Generate generic-asm-offsets.h 35*490cf5f0SMasahiro Yamada 36*490cf5f0SMasahiro Yamadageneric-offsets-file := include/generated/generic-asm-offsets.h 37*490cf5f0SMasahiro Yamada 38*490cf5f0SMasahiro Yamadaalways := $(generic-offsets-file) 39*490cf5f0SMasahiro Yamadatargets := $(generic-offsets-file) lib/asm-offsets.s 40*490cf5f0SMasahiro Yamada 416a44d806SMasahiro Yamada# We use internal kbuild rules to avoid the "is up to date" message from make 426a44d806SMasahiro Yamadalib/asm-offsets.s: lib/asm-offsets.c FORCE 436a44d806SMasahiro Yamada $(Q)mkdir -p $(dir $@) 446a44d806SMasahiro Yamada $(call if_changed_dep,cc_s_c) 456a44d806SMasahiro Yamada 466a44d806SMasahiro Yamada$(obj)/$(generic-offsets-file): lib/asm-offsets.s Kbuild 476a44d806SMasahiro Yamada $(Q)mkdir -p $(dir $@) 48*490cf5f0SMasahiro Yamada $(call cmd,offsets,__GENERIC_ASM_OFFSETS_H__) 496a44d806SMasahiro Yamada 506a44d806SMasahiro Yamada##### 516a44d806SMasahiro Yamada# 2) Generate asm-offsets.h 526a44d806SMasahiro Yamada# 536a44d806SMasahiro Yamada 54254d68b6SMasahiro Yamadaifneq ($(wildcard $(srctree)/arch/$(ARCH)/lib/asm-offsets.c),) 556a44d806SMasahiro Yamadaoffsets-file := include/generated/asm-offsets.h 566a44d806SMasahiro Yamadaendif 576a44d806SMasahiro Yamada 586a44d806SMasahiro Yamadaalways += $(offsets-file) 596a44d806SMasahiro Yamadatargets += $(offsets-file) 60254d68b6SMasahiro Yamadatargets += arch/$(ARCH)/lib/asm-offsets.s 616a44d806SMasahiro Yamada 626a44d806SMasahiro YamadaCFLAGS_asm-offsets.o := -DDO_DEPS_ONLY 636a44d806SMasahiro Yamada 646a44d806SMasahiro Yamada# We use internal kbuild rules to avoid the "is up to date" message from make 65254d68b6SMasahiro Yamadaarch/$(ARCH)/lib/asm-offsets.s: arch/$(ARCH)/lib/asm-offsets.c FORCE 666a44d806SMasahiro Yamada $(Q)mkdir -p $(dir $@) 676a44d806SMasahiro Yamada $(call if_changed_dep,cc_s_c) 686a44d806SMasahiro Yamada 69254d68b6SMasahiro Yamada$(obj)/$(offsets-file): arch/$(ARCH)/lib/asm-offsets.s Kbuild 70*490cf5f0SMasahiro Yamada $(call cmd,offsets,__ASM_OFFSETS_H__) 71