########################################################################################################################################
#                                                                                                                                      #
# This file contains global environment variables for FIVE. Please set the according to                                                #
# your environment and project settings. It used in QuickBuild for build and integrate FIVE TA into firmware. It defines:              #
#                                                                                                                                      #
# 1) Target platform (refer to teamcity_defconfig.mk for details). For example:                                                        #
# CONFIG_TEEGRIS_EXYNOS7570_SDK_PATH := /opt/Blowfish_SDK/Teegris-SDK_2018-10-30/toolchains/arm-secureos-gnueabi-gcc_6_3-linux-x86     #
#                                                                                                                                      #
# 2) Targets to build and integrate FIVE TA:                                                                                           #
# deliver_five, deliver_signed, deliver_unsigned                                                                                       #
#                                                                                                                                      #
# Used variables, defined by QuickBuild/extarnally:                                                                                    #
# QB_COMMAND_EXECUTOR_SESSION, SEC_RIL_CHIPNAME                                                                                        #
# (Teegris only) TEEGRIS_TA_DIST_PATH, TOP                                                                                             #
# (QSee only)    QSEE_TA_BASE_PATH, SSROOT, QSEE_TA_DST_PATH                                                                           #
# (TBase only)   TBASE_TA_DIST_PATH, TBASE_SDK_PATH                                                                                    #
#    TODO: TBase is still under development                                                                                            #
#          select minimal set of external variables                                                                                    #
# Used variables, defined by FIVE/Multibuild:                                                                                          #
# _local_output   path to signed trustlet                                                                                              #
# _local_input    path to unsigned trustlet                                                                                            #
# _local_build_id (QSee only)                                                                                                          #
########################################################################################################################################

# This variable not used, but expected to be defined
CONFIG_ANDROID_NDK_PATH := JustDefineSomething

ifndef QB_COMMAND_EXECUTOR_SESSION
  $(error This makefile may be used only in QuickBuild)
endif

# Only releases are built at QuickBuild
CONFIG_RELEASE := y

ifeq ($(SEC_RIL_CHIPNAME),)
  $(error SEC_RIL_CHIPNAME undefined)
endif

SEC_RIL_CHIPNAME_UPPER:=$(shell echo $(SEC_RIL_CHIPNAME) | tr a-z A-Z)

ifneq ($(TEEGRIS_TA_DIST_PATH),)
    include ../../build/teegris_config.mk
    export SIGNCLIENT_JAR=$(CONFIG_SIGN_CLIENT)
    export CONFIG_SIGNCLIENT_ARG=$(CONFIG_SIGN_CLIENT_ARG)
    CONFIG_TEEGRIS_$(shell echo $(TEEGRIS_BUILD_MODEL) | tr a-z A-Z)_SDK_PATH := $(CONFIG_SW_COMPILER_PATH)
    TA_DESTINATION_DIR:=$(TEEGRIS_TA_DIST_PATH)
    DELIVER_FIVE:=deliver_signed
else ifneq ($(QSEE_TA_BASE_PATH),)
    CONFIG_QSEE_$(SEC_RIL_CHIPNAME_UPPER)_SDK_PATH := $(SSROOT)/nhlos
    TA_BASE_DIR:=$(QSEE_TA_BASE_PATH)
    DELIVER_FIVE:=deliver_unsigned
else ifneq ($(TBASE_TA_DIST_PATH),)
    CONFIG_TBASE_$(SEC_RIL_CHIPNAME_UPPER)_SDK_PATH := $(TBASE_SDK_PATH)
    TA_DESTINATION_DIR:=$(TBASE_TA_DIST_PATH)
    DELIVER_FIVE:=deliver_signed
else
  $(error Cannot identify platform)
endif

.PHONY: deliver_five
deliver_five: $(DELIVER_FIVE)

# Used for Teegris and TBase
.PHONY: deliver_signed
deliver_signed: five_trusted_app-sign $(_local_output)
	@echo [FIVE] Copy $(_local_output) $(TA_DESTINATION_DIR)
	cp -f $(_local_output) $(TA_DESTINATION_DIR)

### Used for QSee
ifeq ($(QSEE_TA_DST_PATH),)
  QSEE_TA_DST_PATH=$(TA_BASE_DIR)/bin/$(_local_build_id)/unsigned/
endif

.PHONY: deliver_unsigned
deliver_unsigned: five_trusted_app $(_local_input)
	@echo [FIVE] Copy $(dir $(_local_input))five_trusted_app.mbn $(dir $(_local_input))five_app.mbn
	cp -f $(dir $(_local_input))five_trusted_app.mbn $(dir $(_local_input))five_app.mbn
	@echo [FIVE] Copy unsigned $(_local_input)  $(QSEE_TA_DST_PATH)
	cp -f $(_local_input) $(QSEE_TA_DST_PATH)
# End of file
