# SPDX-License-Identifier: GPL-2.0
__dtbo := $(sort $(dtbo-y))

dtbo-base	:= $(sort $(foreach m,$(__dtbo),$($(m)-base)))
dtbo := $(foreach m,$(__dtbo),$(if $($(m)-base),$(m)))

__dtbo     := $(addprefix $(obj)/,$(__dtbo))
dtbo-base	:= $(addprefix $(obj)/,$(dtbo-base))
dtbo	:= $(addprefix $(obj)/,$(dtbo))

ifneq ($(DTC_OVERLAY_TEST_EXT),)
DTC_OVERLAY_TEST = $(DTC_OVERLAY_TEST_EXT)
quiet_cmd_dtbo_verify	= VERIFY  $@
cmd_dtbo_verify = $(foreach m,\
	$(addprefix $(obj)/,$($(@F)-base)),\
		$(if $(m),\
			$(DTC_OVERLAY_TEST) $(m) $@ \
			$(dot-target).$(patsubst $(obj)/%.dtb,%,$(m)).tmp;))\
			true
else
cmd_dtbo_verify = true
endif

$(obj)/%.dtbo: $(src)/%.dts FORCE
	$(call if_changed_dep,dtc)
	$(call if_changed,dtbo_verify)

$(call multi_depend, $(dtbo), , -base)

always +=  $(dtbo)
