Loading...
1# SPDX-License-Identifier: GPL-2.0
2CFLAGS_REMOVE_empty.o += $(CC_FLAGS_LTO)
3
4hostprogs-always-y += modpost mk_elfconfig
5always-y += empty.o
6
7modpost-objs := modpost.o file2alias.o sumversion.o symsearch.o
8
9devicetable-offsets-file := devicetable-offsets.h
10
11$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s FORCE
12 $(call filechk,offsets,__DEVICETABLE_OFFSETS_H__)
13
14targets += $(devicetable-offsets-file) devicetable-offsets.s
15
16# dependencies on generated files need to be listed explicitly
17
18$(obj)/modpost.o $(obj)/file2alias.o $(obj)/sumversion.o $(obj)/symsearch.o: $(obj)/elfconfig.h
19$(obj)/file2alias.o: $(obj)/$(devicetable-offsets-file)
20
21quiet_cmd_elfconfig = MKELF $@
22 cmd_elfconfig = $(obj)/mk_elfconfig < $< > $@
23
24$(obj)/elfconfig.h: $(obj)/empty.o $(obj)/mk_elfconfig FORCE
25 $(call if_changed,elfconfig)
26
27targets += elfconfig.h
1OBJECT_FILES_NON_STANDARD := y
2
3hostprogs-y := modpost mk_elfconfig
4always := $(hostprogs-y) empty.o
5
6modpost-objs := modpost.o file2alias.o sumversion.o
7
8devicetable-offsets-file := devicetable-offsets.h
9
10define sed-y
11 "/^->/{s:->#\(.*\):/* \1 */:; \
12 s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
13 s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
14 s:->::; p;}"
15endef
16
17quiet_cmd_offsets = GEN $@
18define cmd_offsets
19 (set -e; \
20 echo "#ifndef __DEVICETABLE_OFFSETS_H__"; \
21 echo "#define __DEVICETABLE_OFFSETS_H__"; \
22 echo "/*"; \
23 echo " * DO NOT MODIFY."; \
24 echo " *"; \
25 echo " * This file was generated by Kbuild"; \
26 echo " *"; \
27 echo " */"; \
28 echo ""; \
29 sed -ne $(sed-y) $<; \
30 echo ""; \
31 echo "#endif" ) > $@
32endef
33
34$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s
35 $(call if_changed,offsets)
36
37targets += $(devicetable-offsets-file) devicetable-offsets.s
38
39# dependencies on generated files need to be listed explicitly
40
41$(obj)/modpost.o $(obj)/file2alias.o $(obj)/sumversion.o: $(obj)/elfconfig.h
42$(obj)/file2alias.o: $(obj)/$(devicetable-offsets-file)
43
44quiet_cmd_elfconfig = MKELF $@
45 cmd_elfconfig = $(obj)/mk_elfconfig < $< > $@
46
47$(obj)/elfconfig.h: $(obj)/empty.o $(obj)/mk_elfconfig FORCE
48 $(call if_changed,elfconfig)
49
50targets += elfconfig.h