##########################
##### user set space #####
##########################

CURRENT_PATH = $(PWD)

$(info ydp $(CURRENT_PATH))
TRUSTEDAPPS_ROOT_PATH = $(PWD)/../../../../..

## 1. Set SDK / NDK PATH

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), exynos2100),)
CONFIG_SW_TOOLCHAIN_ROOT = ../../../../../SDK/TEEGRIS/4.X/4.2/
else
CONFIG_SW_TOOLCHAIN_ROOT = ../../../../../SDK/TEEGRIS/4.X/4.1/
endif

#Example valid option is: CLANG
SECURE_TOOLCHAIN = GCC

## 2. Target architecture in secure world to build for.
ifeq ($(CONFIG_TA_ARCH), 32)
CONFIG_SW_TARGET = ARM
else
  ifeq ($(CONFIG_SW_TARGET), 64)
    CONFIG_SW_TARGET = AARCH64
  endif
endif

$(info CONFIG_TA_ARCH($(CONFIG_SW_TARGET)) $(TA_NAME))

## 3. Set Debug ON/OFF
#CONFIG_DEBUG = ON
CONFIG_DEBUG = OFF

##########################
##### auto set space #####
##########################

#ifeq ($(filter /%, $(CONFIG_SW_TOOLCHAIN_ROOT)),)
#  $(error Relative paths in CONFIG_SW_TOOLCHAIN_ROOT not supported.)
#endif

include $(CONFIG_SW_TOOLCHAIN_ROOT)/platform.version

#for specific version please write: PLATFORM_NAME=TEEGRIS-2.0
ifneq ($(BF_PLATFORM_VERSION_MAJOR),)
  PLATFORM_NAME=TEEGRIS-${BF_PLATFORM_VERSION_MAJOR}.${BF_PLATFORM_VERSION_MINOR}
else
  PLATFORM_NAME=TEEGRIS-${TEEGRIS_PLATFORM_VERSION_MAJOR}.${TEEGRIS_PLATFORM_VERSION_MINOR}
endif
PLATFORM_ROOT=$(CONFIG_SW_TOOLCHAIN_ROOT)/platforms/${PLATFORM_NAME}

ifeq ($(SECURE_TOOLCHAIN),GCC)
ifeq ($(CONFIG_SW_TARGET),AARCH64)
  CONFIG_SW_COMPILER_PATH = ${CONFIG_SW_TOOLCHAIN_ROOT}/toolchains/aarch64-secureos-gnueabi-gcc_6_3-linux-x86
else
  CONFIG_SW_COMPILER_PATH = ${CONFIG_SW_TOOLCHAIN_ROOT}/toolchains/arm-secureos-gnueabi-gcc_6_3-linux-x86
endif
else
  $(error No such toolchain, please set SECURE_TOOLCHAIN option properly)
endif

## SW toolchain prefix
ifeq ($(CONFIG_SW_TARGET),AARCH64)
  CONFIG_SW_TOOLCHAIN_PREFIX = $(CONFIG_SW_COMPILER_PATH)/bin/aarch64-secureos-gnueabi-
  CONFIG_SW_SYSROOT = $(PLATFORM_ROOT)/swd/arch-arm64
else
  CONFIG_SW_TOOLCHAIN_PREFIX = $(CONFIG_SW_COMPILER_PATH)/bin/arm*-secureos-gnueabi-
  CONFIG_SW_SYSROOT = $(PLATFORM_ROOT)/swd/arch-arm
endif

## SW flags
CONFIG_CFLAGS_SW = -lteesl -ltzsl
CONFIG_LDFLAGS_SW =

## Signing command
CONFIG_SIGN_CLIENT = $(TRUSTEDAPPS_ROOT_PATH)/TOOLS/samsungTAsigner.jar

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), exynos990),)
  TEEGRIS_BUILD_MODEL = exynos9830
endif

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), exynos980),)
  TEEGRIS_BUILD_MODEL = exynos9630
endif

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), exynos850),)
  TEEGRIS_BUILD_MODEL = exynos3830
endif

CONFIG_MODEL_NAME = TEEGRIS_$(shell echo $(TEEGRIS_BUILD_MODEL) | tr [a-z] [A-Z])_SAMSUNG_TA

CONFIG_SIGN_TYPE = ss_teegris_ta

test_TA_with_keys = $(TA)
signing_command = java -jar $(CONFIG_SIGN_CLIENT) -runtype $(CONFIG_SIGN_TYPE) \
                  -model $(CONFIG_MODEL_NAME) -input $< -output $@

##################################################################################

## Options for compiler and linker

CONFIG_CFLAGS_COMMON := -Wall -Werror -Wextra -fPIE -pie
CONFIG_CFLAGS_SECURITY := -fstack-protector-all
CONFIG_CFLAGS_OPTIMIZATION := -O2

CONFIG_LDFLAGS_COMMON :=
CONFIG_LDFLAGS_SECURITY := -Wl,-z,relro,-z,now

ifeq ($(CONFIG_DEBUG), ON)
  CONFIG_CFLAGS_COMMON += -DDEBUG
endif

CONFIG_CFLAGS_SW := \
	--sysroot=$(CONFIG_SW_SYSROOT) \
	$(CONFIG_CFLAGS_COMMON) \
	$(CONFIG_CFLAGS_SECURITY) \
	$(CONFIG_CFLAGS_OPTIMIZATION)

CONFIG_LDFLAGS_SW := \
	$(CONFIG_LDFLAGS_COMMON) \
	$(CONFIG_LDFLAGS_SECURITY)

ifeq ($(SECURE_TOOLCHAIN),GCC)
  CONFIG_CC_SW := $(CONFIG_SW_TOOLCHAIN_PREFIX)gcc
  CONFIG_CXX_SW := $(CONFIG_SW_TOOLCHAIN_PREFIX)g++
endif
CONFIG_LD_SW := $(CONFIG_SW_TOOLCHAIN_PREFIX)ld
CONFIG_OBJCOPY_SW := $(CONFIG_SW_TOOLCHAIN_PREFIX)objcopy
CONFIG_STRIP_SW = $(CONFIG_SW_TOOLCHAIN_PREFIX)strip

ifeq ($(CONFIG_SW_TARGET),AARCH64)
  OBJCOPY_FLAGS_SW := -O elf64-littleaarch64 -B aarch64
else
  OBJCOPY_FLAGS_SW := -O elf32-littlearm -B arm
endif
STRIP_FLAGS_SW = -R .note -R .comment -s

MKDIR := -mkdir -p
RM := rm -rf
CP := cp -f

