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