# Copyright 2017 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT

MDI_BIN := $(BUILDDIR)/mdi.bin
GEN_HEADER_DIR := $(BUILDDIR)/gen/global/include
MDI_HEADER_DIR := $(GEN_HEADER_DIR)/mdi
MDI_HEADER := $(MDI_HEADER_DIR)/mdi-defs.h

ifneq ($(MDI_SRCS),)
# rule for building MDI binary blob
$(MDI_BIN): $(MDIGEN) $(MDI_SRCS) $(MDI_INCLUDES)
	$(call BUILDECHO,generating $@)
	@$(MKDIR)
	$(NOECHO)$(MDIGEN) -o $@ $(MDI_SRCS)

GENERATED += $(MDI_BIN)
EXTRA_BUILDDEPS += $(MDI_BIN)
ADDITIONAL_BOOTDATA_ITEMS += $(MDI_BIN)
endif

ifneq ($(MDI_INCLUDES),)
# rule for generating MDI header file for C/C++ code
$(MDI_HEADER): $(MDIGEN) $(MDI_INCLUDES)
	$(call BUILDECHO,generating $@)
	@$(MKDIR)
	$(NOECHO)$(MDIGEN) $(MDI_INCLUDES) -h $@

GENERATED += $(MDI_HEADER)
EXTRA_BUILDDEPS += $(MDI_HEADER)

# Make sure $(MDI_HEADER) is generated before it is included by any source files
TARGET_MODDEPS += $(MDI_HEADER)
GLOBAL_INCLUDES += $(GEN_HEADER_DIR)
endif
