X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=blobdiff_plain;f=Kbuild;h=e2e3b2995f16ef68abaef1d15acd8d4aa1ef6eb4;hp=1d897613dea3af17438f7f71206fb9195c541d7c;hb=0db69c20c2e42945cb1e91729fa46111a86b4a9b;hpb=eeb72e67619b98d2502fe634a3a5d9953de92ad0 diff --git a/Kbuild b/Kbuild index 1d897613de..e2e3b2995f 100644 --- a/Kbuild +++ b/Kbuild @@ -4,84 +4,65 @@ # 1) Generate generic-asm-offsets.h # 2) Generate asm-offsets.h -##### -# 1) Generate generic-asm-offsets.h - -generic-offsets-file := include/generated/generic-asm-offsets.h - -always := $(generic-offsets-file) -targets := $(generic-offsets-file) lib/asm-offsets.s +# Default sed regexp - multiline due to syntax constraints +define sed-y + "s:[[:space:]]*\.ascii[[:space:]]*\"\(.*\)\":\1:; \ + /^->/{s:->#\(.*\):/* \1 */:; \ + s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ + s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ + s:->::; p;}" +endef -quiet_cmd_generic-offsets = GEN $@ -define cmd_generic-offsets +# Use filechk to avoid rebuilds when a header changes, but the resulting file +# does not +define filechk_offsets (set -e; \ - echo "#ifndef __GENERIC_ASM_OFFSETS_H__"; \ - echo "#define __GENERIC_ASM_OFFSETS_H__"; \ + echo "#ifndef $2"; \ + echo "#define $2"; \ echo "/*"; \ echo " * DO NOT MODIFY."; \ echo " *"; \ echo " * This file was generated by Kbuild"; \ - echo " *"; \ echo " */"; \ echo ""; \ - sed -ne $(sed-y) $<; \ + sed -ne $(sed-y); \ echo ""; \ - echo "#endif" ) > $@ + echo "#endif" ) endef +##### +# 1) Generate generic-asm-offsets.h + +generic-offsets-file := include/generated/generic-asm-offsets.h + +always := $(generic-offsets-file) +targets := lib/asm-offsets.s + # We use internal kbuild rules to avoid the "is up to date" message from make lib/asm-offsets.s: lib/asm-offsets.c FORCE $(Q)mkdir -p $(dir $@) $(call if_changed_dep,cc_s_c) -$(obj)/$(generic-offsets-file): lib/asm-offsets.s Kbuild - $(Q)mkdir -p $(dir $@) - $(call cmd,generic-offsets) +$(obj)/$(generic-offsets-file): lib/asm-offsets.s FORCE + $(call filechk,offsets,__GENERIC_ASM_OFFSETS_H__) ##### # 2) Generate asm-offsets.h # -ifneq ($(wildcard $(srctree)/$(CPUDIR)/$(SOC)/asm-offsets.c),) +ifneq ($(wildcard $(srctree)/arch/$(ARCH)/lib/asm-offsets.c),) offsets-file := include/generated/asm-offsets.h endif always += $(offsets-file) -targets += $(offsets-file) -targets += $(CPUDIR)/$(SOC)/asm-offsets.s - - -# Default sed regexp - multiline due to syntax constraints -define sed-y - "/^->/{s:->#\(.*\):/* \1 */:; \ - s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ - s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ - s:->::; p;}" -endef +targets += arch/$(ARCH)/lib/asm-offsets.s CFLAGS_asm-offsets.o := -DDO_DEPS_ONLY -quiet_cmd_offsets = GEN $@ -define cmd_offsets - (set -e; \ - echo "#ifndef __ASM_OFFSETS_H__"; \ - echo "#define __ASM_OFFSETS_H__"; \ - echo "/*"; \ - echo " * DO NOT MODIFY."; \ - echo " *"; \ - echo " * This file was generated by Kbuild"; \ - echo " *"; \ - echo " */"; \ - echo ""; \ - sed -ne $(sed-y) $<; \ - echo ""; \ - echo "#endif" ) > $@ -endef - # We use internal kbuild rules to avoid the "is up to date" message from make -$(CPUDIR)/$(SOC)/asm-offsets.s: $(CPUDIR)/$(SOC)/asm-offsets.c FORCE +arch/$(ARCH)/lib/asm-offsets.s: arch/$(ARCH)/lib/asm-offsets.c FORCE $(Q)mkdir -p $(dir $@) $(call if_changed_dep,cc_s_c) -$(obj)/$(offsets-file): $(CPUDIR)/$(SOC)/asm-offsets.s - $(call cmd,offsets) +$(obj)/$(offsets-file): arch/$(ARCH)/lib/asm-offsets.s FORCE + $(call filechk,offsets,__ASM_OFFSETS_H__)