############################################################################################################################################
#                                                                                                                                          #
# This file contains global environment variables for ACTIVATION. Please set the according to                                              #
# your environment and project settings. It used in QuickBuild for build and integrate ACTIVATION 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 ACTIVATION TA:                                                                                         #
# deliver_chnactiv, 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 ACTIVATION/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
Release := yes

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),)
  TA_DESTINATION_DIR:=$(TEEGRIS_TA_DIST_PATH)
  CONFIG_TA_ARCH:=64

  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)

  DELIVER_CHNACTIV:=deliver_signed
else ifneq ($(QSEE_TA_BASE_PATH),)
#  export CHNACTIV_TZ_SCRYPTO_LIB:=$(TZ_SCRYPTO_LIB$(if $(findstring _32,$(SEC_RIL_CHIPNAME)),32,64))
#  export CHNACTIV_TZ_SCRYPTO_HEADER_PATH=$(TZ_SCRYPTO_HEADER_PATH)
#  export CHNACTIV_TZ_SCRYPTO_TOOLS_IMPRINT=$(TZ_SCRYPTO_TOOLS_IMPRINT)
  CONFIG_QSEE_$(SEC_RIL_CHIPNAME_UPPER)_SDK_PATH := $(SSROOT)/nhlos
  TA_BASE_DIR:=$(QSEE_TA_BASE_PATH)
  DELIVER_CHNACTIV:=deliver_unsigned
else ifneq ($(TBASE_TA_DIST_PATH),)
  export SIGNCLIENT_JAR=$(TA_BUILD_ROOT)/tools/signclient.jar
  CONFIG_TBASE_$(SEC_RIL_CHIPNAME_UPPER)_SDK_PATH := $(TBASE_SDK_PATH)
  TA_DESTINATION_DIR:=$(TBASE_TA_DIST_PATH)
  DELIVER_CHNACTIV:=deliver_signed
else
  $(error Cannot identify platform)
endif

.PHONY: deliver_chnactiv
deliver_chnactiv: $(DELIVER_CHNACTIV)

# Used for Teegris and TBase
.PHONY: deliver_signed
deliver_signed: chnactiv-sign $(_local_output)
	@echo [CHNACTIV] Copy $(_local_output) $(TA_DESTINATION_DIR)
	mkdir -p $(TA_DESTINATION_DIR)
	cp -f $(_local_output) $(TA_DESTINATION_DIR)

### Used for QSee
ifeq ($(QSEE_TA_DST_PATH),)
  ifeq ($(QTEE_TAS_BUILD_ENABLED),true)
    QSEE_TA_DST_PATH=$(TA_BASE_DIR)/build/ms/bin/$(_local_build_id)/
  else
    QSEE_TA_DST_PATH=$(TA_BASE_DIR)/bin/$(_local_build_id)/unsigned/
  endif
endif

.PHONY: deliver_unsigned
deliver_unsigned: chnactiv $(_local_input)
	@echo [CHNACTIV] Copy unsigned ${TA_SRC_DIR} to $(QSEE_TA_DST_PATH)
	cp -f ${TA_SRC_DIR}/Activation/out/sm8450/qsee/sm8450_A53_64/chnactiv/chnactiv.mbn $(QSEE_TA_DST_PATH)
