Commit 323a028d39cd8df37b1c6a62ac04987647ae4b67
1 parent
d38726c485
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
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>
Showing 2 changed files with 19 additions and 5 deletions Side-by-side Diff
arch/arm64/boot/dts/Makefile
scripts/Makefile.dtbinst
... | ... | @@ -6,6 +6,7 @@ |
6 | 6 | # |
7 | 7 | # $INSTALL_PATH/dtbs/$KERNELRELEASE |
8 | 8 | # |
9 | +# Traverse through subdirectories listed in $(dts-dirs). | |
9 | 10 | # ========================================================================== |
10 | 11 | |
11 | 12 | src := $(obj) |
12 | 13 | |
13 | 14 | |
14 | 15 | |
15 | 16 | |
16 | 17 | |
17 | 18 | |
... | ... | @@ -13,27 +14,39 @@ |
13 | 14 | PHONY := __dtbs_install |
14 | 15 | __dtbs_install: |
15 | 16 | |
17 | +export dtbinst-root ?= $(obj) | |
18 | + | |
16 | 19 | include include/config/auto.conf |
17 | 20 | include scripts/Kbuild.include |
18 | 21 | include $(srctree)/$(obj)/Makefile |
19 | 22 | |
20 | 23 | PHONY += __dtbs_install_prep |
21 | 24 | __dtbs_install_prep: |
25 | +ifeq ("$(dtbinst-root)", "$(obj)") | |
22 | 26 | $(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi |
23 | 27 | $(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi |
24 | 28 | $(Q)mkdir -p $(INSTALL_DTBS_PATH) |
29 | +endif | |
25 | 30 | |
26 | 31 | dtbinst-files := $(dtb-y) |
32 | +dtbinst-dirs := $(dts-dirs) | |
27 | 33 | |
28 | 34 | # Helper targets for Installing DTBs into the boot directory |
29 | 35 | quiet_cmd_dtb_install = INSTALL $< |
30 | - cmd_dtb_install = cp $< $(2) | |
36 | + cmd_dtb_install = mkdir -p $(2); cp $< $(2) | |
31 | 37 | |
32 | -$(dtbinst-files): %.dtb: $(obj)/%.dtb | __dtbs_install_prep | |
33 | - $(call cmd,dtb_install,$(INSTALL_DTBS_PATH)) | |
38 | +install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj)) | |
34 | 39 | |
35 | -PHONY += $(dtbinst-files) | |
36 | -__dtbs_install: $(dtbinst-files) | |
40 | +$(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep | |
41 | + | |
42 | +$(dtbinst-files): %.dtb: $(obj)/%.dtb | |
43 | + $(call cmd,dtb_install,$(install-dir)) | |
44 | + | |
45 | +$(dtbinst-dirs): | |
46 | + $(Q)$(MAKE) $(dtbinst)=$(obj)/$@ | |
47 | + | |
48 | +PHONY += $(dtbinst-files) $(dtbinst-dirs) | |
49 | +__dtbs_install: $(dtbinst-files) $(dtbinst-dirs) | |
37 | 50 | |
38 | 51 | .PHONY: $(PHONY) |