diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-05-18 14:17:34 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-05-18 14:17:34 -0400 |
commit | 5396a018f3e0793204985c205622711f61afadfd (patch) | |
tree | b95af4ec1347efa179519ce5c491c7b4ba0fa51e | |
parent | 16d95c43965d287987505bbd875e59e5b3c9b131 (diff) | |
parent | 05d8cba4a1e8c7e2d1f91a24a2f3d26852938a04 (diff) |
Merge tag 'kbuild-fixes-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild fix from Masahiro Yamada:
"Fix headers_install to not delete pre-existing headers in the install
destination"
* tag 'kbuild-fixes-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
kbuild: skip install/check of headers right under uapi directories
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | scripts/Makefile.headersinst | 43 |
2 files changed, 28 insertions, 17 deletions
@@ -1172,7 +1172,7 @@ headers_check_all: headers_install_all | |||
1172 | PHONY += headers_check | 1172 | PHONY += headers_check |
1173 | headers_check: headers_install | 1173 | headers_check: headers_install |
1174 | $(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1 | 1174 | $(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1 |
1175 | $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/ $(hdr-dst) HDRCHECK=1 | 1175 | $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi $(hdr-dst) HDRCHECK=1 |
1176 | 1176 | ||
1177 | # --------------------------------------------------------------------------- | 1177 | # --------------------------------------------------------------------------- |
1178 | # Kernel selftest | 1178 | # Kernel selftest |
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst index 6ba97a1f9c5a..ce753a408c56 100644 --- a/scripts/Makefile.headersinst +++ b/scripts/Makefile.headersinst | |||
@@ -8,6 +8,29 @@ | |||
8 | # | 8 | # |
9 | # ========================================================================== | 9 | # ========================================================================== |
10 | 10 | ||
11 | PHONY := __headers | ||
12 | __headers: | ||
13 | |||
14 | include scripts/Kbuild.include | ||
15 | |||
16 | srcdir := $(srctree)/$(obj) | ||
17 | subdirs := $(patsubst $(srcdir)/%/.,%,$(wildcard $(srcdir)/*/.)) | ||
18 | # caller may set destination dir (when installing to asm/) | ||
19 | _dst := $(if $(dst),$(dst),$(obj)) | ||
20 | |||
21 | # Recursion | ||
22 | __headers: $(subdirs) | ||
23 | |||
24 | .PHONY: $(subdirs) | ||
25 | $(subdirs): | ||
26 | $(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@ | ||
27 | |||
28 | # Skip header install/check for include/uapi and arch/$(hdr-arch)/include/uapi. | ||
29 | # We have only sub-directories there. | ||
30 | skip-inst := $(if $(filter %/uapi,$(obj)),1) | ||
31 | |||
32 | ifeq ($(skip-inst),) | ||
33 | |||
11 | # generated header directory | 34 | # generated header directory |
12 | gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) | 35 | gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) |
13 | 36 | ||
@@ -15,21 +38,14 @@ gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) | |||
15 | kbuild-file := $(srctree)/$(obj)/Kbuild | 38 | kbuild-file := $(srctree)/$(obj)/Kbuild |
16 | -include $(kbuild-file) | 39 | -include $(kbuild-file) |
17 | 40 | ||
18 | # called may set destination dir (when installing to asm/) | ||
19 | _dst := $(if $(dst),$(dst),$(obj)) | ||
20 | |||
21 | old-kbuild-file := $(srctree)/$(subst uapi/,,$(obj))/Kbuild | 41 | old-kbuild-file := $(srctree)/$(subst uapi/,,$(obj))/Kbuild |
22 | ifneq ($(wildcard $(old-kbuild-file)),) | 42 | ifneq ($(wildcard $(old-kbuild-file)),) |
23 | include $(old-kbuild-file) | 43 | include $(old-kbuild-file) |
24 | endif | 44 | endif |
25 | 45 | ||
26 | include scripts/Kbuild.include | ||
27 | |||
28 | installdir := $(INSTALL_HDR_PATH)/$(subst uapi/,,$(_dst)) | 46 | installdir := $(INSTALL_HDR_PATH)/$(subst uapi/,,$(_dst)) |
29 | 47 | ||
30 | srcdir := $(srctree)/$(obj) | ||
31 | gendir := $(objtree)/$(gen) | 48 | gendir := $(objtree)/$(gen) |
32 | subdirs := $(patsubst $(srcdir)/%/.,%,$(wildcard $(srcdir)/*/.)) | ||
33 | header-files := $(notdir $(wildcard $(srcdir)/*.h)) | 49 | header-files := $(notdir $(wildcard $(srcdir)/*.h)) |
34 | header-files += $(notdir $(wildcard $(srcdir)/*.agh)) | 50 | header-files += $(notdir $(wildcard $(srcdir)/*.agh)) |
35 | header-files := $(filter-out $(no-export-headers), $(header-files)) | 51 | header-files := $(filter-out $(no-export-headers), $(header-files)) |
@@ -88,11 +104,9 @@ quiet_cmd_check = CHECK $(printdir) ($(words $(all-files)) files) | |||
88 | $(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH); \ | 104 | $(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH); \ |
89 | touch $@ | 105 | touch $@ |
90 | 106 | ||
91 | PHONY += __headersinst __headerscheck | ||
92 | |||
93 | ifndef HDRCHECK | 107 | ifndef HDRCHECK |
94 | # Rules for installing headers | 108 | # Rules for installing headers |
95 | __headersinst: $(subdirs) $(install-file) | 109 | __headers: $(install-file) |
96 | @: | 110 | @: |
97 | 111 | ||
98 | targets += $(install-file) | 112 | targets += $(install-file) |
@@ -104,7 +118,7 @@ $(install-file): scripts/headers_install.sh \ | |||
104 | $(call if_changed,install) | 118 | $(call if_changed,install) |
105 | 119 | ||
106 | else | 120 | else |
107 | __headerscheck: $(subdirs) $(check-file) | 121 | __headers: $(check-file) |
108 | @: | 122 | @: |
109 | 123 | ||
110 | targets += $(check-file) | 124 | targets += $(check-file) |
@@ -113,11 +127,6 @@ $(check-file): scripts/headers_check.pl $(output-files) FORCE | |||
113 | 127 | ||
114 | endif | 128 | endif |
115 | 129 | ||
116 | # Recursion | ||
117 | .PHONY: $(subdirs) | ||
118 | $(subdirs): | ||
119 | $(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@ | ||
120 | |||
121 | targets := $(wildcard $(sort $(targets))) | 130 | targets := $(wildcard $(sort $(targets))) |
122 | cmd_files := $(wildcard \ | 131 | cmd_files := $(wildcard \ |
123 | $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd)) | 132 | $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd)) |
@@ -126,6 +135,8 @@ ifneq ($(cmd_files),) | |||
126 | include $(cmd_files) | 135 | include $(cmd_files) |
127 | endif | 136 | endif |
128 | 137 | ||
138 | endif # skip-inst | ||
139 | |||
129 | .PHONY: $(PHONY) | 140 | .PHONY: $(PHONY) |
130 | PHONY += FORCE | 141 | PHONY += FORCE |
131 | FORCE: ; | 142 | FORCE: ; |