include $(_sdk_dir)/tbase-utils.mk

##########################
# Strip input parameters #
##########################

LOCAL_NAME := $(strip $(LOCAL_NAME))
LOCAL_UUID := $(strip $(LOCAL_UUID))
LOCAL_KEYFILE := $(strip $(LOCAL_KEYFILE))
LOCAL_SDK_PATH := $(strip $(LOCAL_SDK_PATH))

####################################
# Check necessary input parameters #
####################################

ifeq ($(LOCAL_NAME),)
  $(error LOCAL_NAME is not specified)
endif

ifeq ($(LOCAL_UUID),)
  $(error LOCAL_UUID is not specified)
endif

#####################################
# Set defaut keyfile if not present #
#####################################

ifeq ($(LOCAL_KEYFILE),)
LOCAL_KEYFILE := $(realpath $(_sdk_dir)/../tools/tbase-keys/pair-vendor-tl-sign.pem)
endif

####################################
# Set up trustlet build parameters #
####################################

ifeq ($(LOCAL_API_LEVEL),)
  LOCAL_API_LEVEL := 3
  # LOCAL_API_LEVEL <= 3 is not supported since Kinibi500.
  ifeq ($(call get-tbase-version,$(LOCAL_SDK_PATH)),5xx)
    LOCAL_API_LEVEL := 11
  endif
endif

OUTPUT_NAME := $(LOCAL_NAME)
TRUSTLET_UUID := $(LOCAL_UUID)
TRUSTLET_KEYFILE := $(LOCAL_KEYFILE)

# 2: ERAM
ifeq ($(LOCAL_MEMTYPE),)
  TRUSTLET_MEMTYPE := 2
else
  TRUSTLET_MEMTYPE := $(LOCAL_MEMTYPE)
endif

# min = 1; max = 8
ifeq ($(LOCAL_NUM_OF_THREADS),)
  TRUSTLET_NO_OF_THREADS := 1
else
  TRUSTLET_NO_OF_THREADS := $(LOCAL_NUM_OF_THREADS)
endif

# 1: driver; 2: service provider trustlet; 3: system trustlet
ifeq ($(LOCAL_SERVICE_TYPE),)
  TRUSTLET_SERVICE_TYPE := 3
else
  TRUSTLET_SERVICE_TYPE := $(LOCAL_SERVICE_TYPE)
endif

ifeq ($(LOCAL_INSTANCES),)
  TRUSTLET_INSTANCES := 1
else
  TRUSTLET_INSTANCES := $(LOCAL_INSTANCES)
endif

ifeq ($(LOCAL_SIGN_FLAGS),)
  TRUSTLET_FLAGS:= 0
else
  TRUSTLET_FLAGS:= $(LOCAL_SIGN_FLAGS)
endif
