linux/scripts/Makefile.dtbinst
Masahiro Yamada 8f66864cee kbuild: simplify dtbs_install by reading the list of compiled DTBs
Retrieve the list of *.dtb(o) files from arch/*/boot/dts/dtbs-list
instead of traversing the directory tree again.

Please note that 'make dtbs_install' installs *.dtb(o) files directly
added to dtb-y because scripts/Makefile.dtbinst installs $(dtb-y)
without expanding the -dtbs suffix.

This commit preserves this behavior.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2024-02-19 18:20:39 +09:00

44 lines
1.0 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0
# ==========================================================================
# Installing dtb files
#
# Installs all dtb files listed in $(dtb-y) either in the
# INSTALL_DTBS_PATH directory or the default location:
#
# $INSTALL_PATH/dtbs/$KERNELRELEASE
# ==========================================================================
PHONY := __dtbs_install
__dtbs_install:
include include/config/auto.conf
include $(srctree)/scripts/Kbuild.include
dst := $(INSTALL_DTBS_PATH)
quiet_cmd_dtb_install = INSTALL $@
cmd_dtb_install = install -D $< $@
$(dst)/%: $(obj)/%
$(call cmd,dtb_install)
dtbs := $(patsubst $(obj)/%,%,$(call read-file, $(obj)/dtbs-list))
ifdef CONFIG_ARCH_WANT_FLAT_DTB_INSTALL
define gen_install_rules
$(dst)/%: $(obj)/$(1)%
$$(call cmd,dtb_install)
endef
$(foreach d, $(sort $(dir $(dtbs))), $(eval $(call gen_install_rules,$(d))))
dtbs := $(notdir $(dtbs))
endif # CONFIG_ARCH_WANT_FLAT_DTB_INSTALL
__dtbs_install: $(addprefix $(dst)/, $(dtbs))
@:
.PHONY: $(PHONY)