xref: /linux/scripts/mod/Makefile (revision b6ebbac51bedf9e98e837688bc838f400196da5e)
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
51