提交 5396a018 编写于 作者: L Linus Torvalds

Merge tag 'kbuild-fixes-v4.12' of...

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
...@@ -1172,7 +1172,7 @@ headers_check_all: headers_install_all ...@@ -1172,7 +1172,7 @@ headers_check_all: headers_install_all
PHONY += headers_check PHONY += headers_check
headers_check: headers_install headers_check: headers_install
$(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1 $(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1
$(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/ $(hdr-dst) HDRCHECK=1 $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi $(hdr-dst) HDRCHECK=1
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# Kernel selftest # Kernel selftest
......
...@@ -8,6 +8,29 @@ ...@@ -8,6 +8,29 @@
# #
# ========================================================================== # ==========================================================================
PHONY := __headers
__headers:
include scripts/Kbuild.include
srcdir := $(srctree)/$(obj)
subdirs := $(patsubst $(srcdir)/%/.,%,$(wildcard $(srcdir)/*/.))
# caller may set destination dir (when installing to asm/)
_dst := $(if $(dst),$(dst),$(obj))
# Recursion
__headers: $(subdirs)
.PHONY: $(subdirs)
$(subdirs):
$(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@
# Skip header install/check for include/uapi and arch/$(hdr-arch)/include/uapi.
# We have only sub-directories there.
skip-inst := $(if $(filter %/uapi,$(obj)),1)
ifeq ($(skip-inst),)
# generated header directory # generated header directory
gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj)))
...@@ -15,21 +38,14 @@ gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) ...@@ -15,21 +38,14 @@ gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj)))
kbuild-file := $(srctree)/$(obj)/Kbuild kbuild-file := $(srctree)/$(obj)/Kbuild
-include $(kbuild-file) -include $(kbuild-file)
# called may set destination dir (when installing to asm/)
_dst := $(if $(dst),$(dst),$(obj))
old-kbuild-file := $(srctree)/$(subst uapi/,,$(obj))/Kbuild old-kbuild-file := $(srctree)/$(subst uapi/,,$(obj))/Kbuild
ifneq ($(wildcard $(old-kbuild-file)),) ifneq ($(wildcard $(old-kbuild-file)),)
include $(old-kbuild-file) include $(old-kbuild-file)
endif endif
include scripts/Kbuild.include
installdir := $(INSTALL_HDR_PATH)/$(subst uapi/,,$(_dst)) installdir := $(INSTALL_HDR_PATH)/$(subst uapi/,,$(_dst))
srcdir := $(srctree)/$(obj)
gendir := $(objtree)/$(gen) gendir := $(objtree)/$(gen)
subdirs := $(patsubst $(srcdir)/%/.,%,$(wildcard $(srcdir)/*/.))
header-files := $(notdir $(wildcard $(srcdir)/*.h)) header-files := $(notdir $(wildcard $(srcdir)/*.h))
header-files += $(notdir $(wildcard $(srcdir)/*.agh)) header-files += $(notdir $(wildcard $(srcdir)/*.agh))
header-files := $(filter-out $(no-export-headers), $(header-files)) header-files := $(filter-out $(no-export-headers), $(header-files))
...@@ -88,11 +104,9 @@ quiet_cmd_check = CHECK $(printdir) ($(words $(all-files)) files) ...@@ -88,11 +104,9 @@ quiet_cmd_check = CHECK $(printdir) ($(words $(all-files)) files)
$(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH); \ $(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH); \
touch $@ touch $@
PHONY += __headersinst __headerscheck
ifndef HDRCHECK ifndef HDRCHECK
# Rules for installing headers # Rules for installing headers
__headersinst: $(subdirs) $(install-file) __headers: $(install-file)
@: @:
targets += $(install-file) targets += $(install-file)
...@@ -104,7 +118,7 @@ $(install-file): scripts/headers_install.sh \ ...@@ -104,7 +118,7 @@ $(install-file): scripts/headers_install.sh \
$(call if_changed,install) $(call if_changed,install)
else else
__headerscheck: $(subdirs) $(check-file) __headers: $(check-file)
@: @:
targets += $(check-file) targets += $(check-file)
...@@ -113,11 +127,6 @@ $(check-file): scripts/headers_check.pl $(output-files) FORCE ...@@ -113,11 +127,6 @@ $(check-file): scripts/headers_check.pl $(output-files) FORCE
endif endif
# Recursion
.PHONY: $(subdirs)
$(subdirs):
$(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@
targets := $(wildcard $(sort $(targets))) targets := $(wildcard $(sort $(targets)))
cmd_files := $(wildcard \ cmd_files := $(wildcard \
$(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd)) $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
...@@ -126,6 +135,8 @@ ifneq ($(cmd_files),) ...@@ -126,6 +135,8 @@ ifneq ($(cmd_files),)
include $(cmd_files) include $(cmd_files)
endif endif
endif # skip-inst
.PHONY: $(PHONY) .PHONY: $(PHONY)
PHONY += FORCE PHONY += FORCE
FORCE: ; FORCE: ;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册