Merge tag 'nfs-for-4.9-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
[cascardo/linux.git] / scripts / mod / Makefile
1 OBJECT_FILES_NON_STANDARD := y
2
3 hostprogs-y     := modpost mk_elfconfig
4 always          := $(hostprogs-y) empty.o
5
6 modpost-objs    := modpost.o file2alias.o sumversion.o
7
8 devicetable-offsets-file := devicetable-offsets.h
9
10 define sed-y
11         "/^->/{s:->#\(.*\):/* \1 */:; \
12         s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
13         s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
14         s:->::; p;}"
15 endef
16
17 quiet_cmd_offsets = GEN     $@
18 define 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" ) > $@
32 endef
33
34 $(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s
35         $(call if_changed,offsets)
36
37 targets += $(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
44 quiet_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
50 targets += elfconfig.h