# 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
# ==========================================================================

src := $(obj)

PHONY := __dtbs_install
__dtbs_install:

include include/config/auto.conf
include $(srctree)/scripts/Kbuild.include
include $(kbuild-file)

dtbs    := $(addprefix $(dst)/, $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS),$(dtb-)))
subdirs := $(addprefix $(obj)/, $(subdir-y) $(subdir-m))

__dtbs_install: $(dtbs) $(subdirs)
	@:

quiet_cmd_dtb_install = INSTALL $@
      cmd_dtb_install = install -D -m 0644 $< $@

$(dst)/%.dtb: $(obj)/%.dtb
	$(call cmd,dtb_install)

$(dst)/%.dtbo: $(obj)/%.dtbo
	$(call cmd,dtb_install)

PHONY += $(subdirs)
$(subdirs):
	$(Q)$(MAKE) $(dtbinst)=$@ dst=$(if $(CONFIG_ARCH_WANT_FLAT_DTB_INSTALL),$(dst),$(patsubst $(obj)/%,$(dst)/%,$@))

.PHONY: $(PHONY)
