aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/mod/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/mod/Makefile')
-rw-r--r--scripts/mod/Makefile35
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/mod/Makefile b/scripts/mod/Makefile
index ff954f8168c1..9415b5663364 100644
--- a/scripts/mod/Makefile
+++ b/scripts/mod/Makefile
@@ -3,9 +3,44 @@ always := $(hostprogs-y) empty.o
3 3
4modpost-objs := modpost.o file2alias.o sumversion.o 4modpost-objs := modpost.o file2alias.o sumversion.o
5 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
6# dependencies on generated files need to be listed explicitly 40# dependencies on generated files need to be listed explicitly
7 41
8$(obj)/modpost.o $(obj)/file2alias.o $(obj)/sumversion.o: $(obj)/elfconfig.h 42$(obj)/modpost.o $(obj)/file2alias.o $(obj)/sumversion.o: $(obj)/elfconfig.h
43$(obj)/file2alias.o: $(obj)/$(devicetable-offsets-file)
9 44
10quiet_cmd_elfconfig = MKELF $@ 45quiet_cmd_elfconfig = MKELF $@
11 cmd_elfconfig = $(obj)/mk_elfconfig < $< > $@ 46 cmd_elfconfig = $(obj)/mk_elfconfig < $< > $@