diff options
author | Robert Richter <rrichter@cavium.com> | 2014-09-03 18:17:02 +0400 |
---|---|---|
committer | Robert Richter <rrichter@cavium.com> | 2014-10-21 20:06:59 +0400 |
commit | 323a028d39cd8df37b1c6a62ac04987647ae4b67 (patch) | |
tree | e32837f0e55dce07e785dd70dc1730921f87509a | |
parent | d38726c485d3fd6e9f2ebd1adaef0c3ead48a5ac (diff) | |
download | linux-323a028d39cd8df37b1c6a62ac04987647ae4b67.tar.xz |
dts, kbuild: Implement support for dtb vendor subdirs
This patch adds support of vendor sub directories for dtb files.
Subdirectories can be specified in $(dts-dirs). Kbuild traverses over
all directories while building and installing dtb files. The directory
tree is also reflected in the install path.
Tested-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Robert Richter <rrichter@cavium.com>
-rw-r--r-- | arch/arm64/boot/dts/Makefile | 1 | ||||
-rw-r--r-- | scripts/Makefile.dtbinst | 23 |
2 files changed, 19 insertions, 5 deletions
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index aa28902c3582..77130bdf14b4 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile @@ -3,4 +3,5 @@ dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb always := $(dtb-y) +subdir-y := $(dts-dirs) clean-files := *.dtb diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst index 54286cccc289..909ed7a2ac61 100644 --- a/scripts/Makefile.dtbinst +++ b/scripts/Makefile.dtbinst @@ -6,6 +6,7 @@ # # $INSTALL_PATH/dtbs/$KERNELRELEASE # +# Traverse through subdirectories listed in $(dts-dirs). # ========================================================================== src := $(obj) @@ -13,26 +14,38 @@ src := $(obj) PHONY := __dtbs_install __dtbs_install: +export dtbinst-root ?= $(obj) + include include/config/auto.conf include scripts/Kbuild.include include $(srctree)/$(obj)/Makefile PHONY += __dtbs_install_prep __dtbs_install_prep: +ifeq ("$(dtbinst-root)", "$(obj)") $(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi $(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi $(Q)mkdir -p $(INSTALL_DTBS_PATH) +endif dtbinst-files := $(dtb-y) +dtbinst-dirs := $(dts-dirs) # Helper targets for Installing DTBs into the boot directory quiet_cmd_dtb_install = INSTALL $< - cmd_dtb_install = cp $< $(2) + cmd_dtb_install = mkdir -p $(2); cp $< $(2) + +install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj)) + +$(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep + +$(dtbinst-files): %.dtb: $(obj)/%.dtb + $(call cmd,dtb_install,$(install-dir)) -$(dtbinst-files): %.dtb: $(obj)/%.dtb | __dtbs_install_prep - $(call cmd,dtb_install,$(INSTALL_DTBS_PATH)) +$(dtbinst-dirs): + $(Q)$(MAKE) $(dtbinst)=$(obj)/$@ -PHONY += $(dtbinst-files) -__dtbs_install: $(dtbinst-files) +PHONY += $(dtbinst-files) $(dtbinst-dirs) +__dtbs_install: $(dtbinst-files) $(dtbinst-dirs) .PHONY: $(PHONY) |