# 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 $(src)/Makefile

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 $< $@

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

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

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

.PHONY: $(PHONY)
