Loading...
1# SPDX-License-Identifier: GPL-2.0
2OBJECT_FILES_NON_STANDARD := y
3CFLAGS_REMOVE_empty.o += $(CC_FLAGS_LTO)
4
5hostprogs-always-y += modpost mk_elfconfig
6always-y += empty.o
7
8modpost-objs := modpost.o file2alias.o sumversion.o
9
10devicetable-offsets-file := devicetable-offsets.h
11
12$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s FORCE
13 $(call filechk,offsets,__DEVICETABLE_OFFSETS_H__)
14
15targets += $(devicetable-offsets-file) devicetable-offsets.s
16
17# dependencies on generated files need to be listed explicitly
18
19$(obj)/modpost.o $(obj)/file2alias.o $(obj)/sumversion.o: $(obj)/elfconfig.h
20$(obj)/file2alias.o: $(obj)/$(devicetable-offsets-file)
21
22quiet_cmd_elfconfig = MKELF $@
23 cmd_elfconfig = $(obj)/mk_elfconfig < $< > $@
24
25$(obj)/elfconfig.h: $(obj)/empty.o $(obj)/mk_elfconfig FORCE
26 $(call if_changed,elfconfig)
27
28targets += elfconfig.h
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 __DEVICETABLE_OFFSETS_H__"; \
19 echo "#define __DEVICETABLE_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$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s
33 $(call if_changed,offsets)
34
35targets += $(devicetable-offsets-file) devicetable-offsets.s
36
37# dependencies on generated files need to be listed explicitly
38
39$(obj)/modpost.o $(obj)/file2alias.o $(obj)/sumversion.o: $(obj)/elfconfig.h
40$(obj)/file2alias.o: $(obj)/$(devicetable-offsets-file)
41
42quiet_cmd_elfconfig = MKELF $@
43 cmd_elfconfig = $(obj)/mk_elfconfig < $< > $@
44
45$(obj)/elfconfig.h: $(obj)/empty.o $(obj)/mk_elfconfig FORCE
46 $(call if_changed,elfconfig)
47
48targets += elfconfig.h