uboot/Kbuild
<<
>>
Prefs
   1#
   2# Kbuild for top-level directory of U-Boot
   3# This file takes care of the following:
   4# 1) Generate generic-asm-offsets.h
   5# 2) Generate asm-offsets.h
   6
   7# Default sed regexp - multiline due to syntax constraints
   8define sed-y
   9        "s:[[:space:]]*\.ascii[[:space:]]*\"\(.*\)\":\1:; \
  10        /^->/{s:->#\(.*\):/* \1 */:; \
  11        s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
  12        s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
  13        s:->::; p;}"
  14endef
  15
  16# Use filechk to avoid rebuilds when a header changes, but the resulting file
  17# does not
  18define filechk_offsets
  19        (set -e; \
  20         echo "#ifndef $2"; \
  21         echo "#define $2"; \
  22         echo "/*"; \
  23         echo " * DO NOT MODIFY."; \
  24         echo " *"; \
  25         echo " * This file was generated by Kbuild"; \
  26         echo " */"; \
  27         echo ""; \
  28         sed -ne $(sed-y); \
  29         echo ""; \
  30         echo "#endif" )
  31endef
  32
  33#####
  34# 1) Generate generic-asm-offsets.h
  35
  36generic-offsets-file := include/generated/generic-asm-offsets.h
  37
  38always  := $(generic-offsets-file)
  39targets := lib/asm-offsets.s
  40
  41# We use internal kbuild rules to avoid the "is up to date" message from make
  42lib/asm-offsets.s: lib/asm-offsets.c FORCE
  43        $(Q)mkdir -p $(dir $@)
  44        $(call if_changed_dep,cc_s_c)
  45
  46$(obj)/$(generic-offsets-file): lib/asm-offsets.s FORCE
  47        $(call filechk,offsets,__GENERIC_ASM_OFFSETS_H__)
  48
  49#####
  50# 2) Generate asm-offsets.h
  51#
  52
  53ifneq ($(wildcard $(srctree)/arch/$(ARCH)/lib/asm-offsets.c),)
  54offsets-file := include/generated/asm-offsets.h
  55endif
  56
  57always  += $(offsets-file)
  58targets += arch/$(ARCH)/lib/asm-offsets.s
  59
  60CFLAGS_asm-offsets.o := -DDO_DEPS_ONLY
  61
  62# We use internal kbuild rules to avoid the "is up to date" message from make
  63arch/$(ARCH)/lib/asm-offsets.s: arch/$(ARCH)/lib/asm-offsets.c FORCE
  64        $(Q)mkdir -p $(dir $@)
  65        $(call if_changed_dep,cc_s_c)
  66
  67$(obj)/$(offsets-file): arch/$(ARCH)/lib/asm-offsets.s FORCE
  68        $(call filechk,offsets,__ASM_OFFSETS_H__)
  69