Makefile 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. hostprogs-y := modpost mk_elfconfig
  2. always := $(hostprogs-y) empty.o
  3. modpost-objs := modpost.o file2alias.o sumversion.o
  4. devicetable-offsets-file := devicetable-offsets.h
  5. define sed-y
  6. "/^->/{s:->#\(.*\):/* \1 */:; \
  7. s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
  8. s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
  9. s:->::; p;}"
  10. endef
  11. quiet_cmd_offsets = GEN $@
  12. define cmd_offsets
  13. (set -e; \
  14. echo "#ifndef __DEVICEVTABLE_OFFSETS_H__"; \
  15. echo "#define __DEVICEVTABLE_OFFSETS_H__"; \
  16. echo "/*"; \
  17. echo " * DO NOT MODIFY."; \
  18. echo " *"; \
  19. echo " * This file was generated by Kbuild"; \
  20. echo " *"; \
  21. echo " */"; \
  22. echo ""; \
  23. sed -ne $(sed-y) $<; \
  24. echo ""; \
  25. echo "#endif" ) > $@
  26. endef
  27. # We use internal kbuild rules to avoid the "is up to date" message from make
  28. scripts/mod/devicetable-offsets.s: scripts/mod/devicetable-offsets.c FORCE
  29. $(Q)mkdir -p $(dir $@)
  30. $(call if_changed_dep,cc_s_c)
  31. $(obj)/$(devicetable-offsets-file): scripts/mod/devicetable-offsets.s
  32. $(call cmd,offsets)
  33. # dependencies on generated files need to be listed explicitly
  34. $(obj)/modpost.o $(obj)/file2alias.o $(obj)/sumversion.o: $(obj)/elfconfig.h
  35. $(obj)/file2alias.o: $(obj)/$(devicetable-offsets-file)
  36. quiet_cmd_elfconfig = MKELF $@
  37. cmd_elfconfig = $(obj)/mk_elfconfig < $< > $@
  38. $(obj)/elfconfig.h: $(obj)/empty.o $(obj)/mk_elfconfig FORCE
  39. $(call if_changed,elfconfig)
  40. targets += elfconfig.h