-search-tbase-subsdk = \
  $(eval _tbase_sdk_path := $(strip $(1))) \
  $(eval _subsdk_name := $(2)) \
  $(eval _subsdk_file := $(3)) \
  $(eval _subsdk_path_options := \
    $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/$(_subsdk_name)/Out \
    $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/$(_subsdk_name) \
    $(_tbase_sdk_path)/$(_subsdk_name)/Out) \
  $(eval _subsdk_choosen_path := \
    $(foreach _path,$(_subsdk_path_options), \
      $(if $(wildcard $(_path)/$(_subsdk_file)), \
        $(_path)))) \
  $(word 1,$(_subsdk_choosen_path))

get-tbase-tlsdk-path = \
  $(eval _tbase_sdk_path := $(1)) \
  $(call -search-tbase-subsdk,$(_tbase_sdk_path),TlSdk,trustlet.mk)

get-tbase-drsdk-path = \
  $(eval _tbase_sdk_path := $(1)) \
  $(call -search-tbase-subsdk,$(_tbase_sdk_path),DrSdk,driver.mk)

get-tbase-include-paths = \
  $(eval _tbase_sdk_path := $(1)) \
  $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlcSdk/Public \
  $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlcSdk/Out/Public \
  $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlSdk/Public \
  $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlSdk/Out/Public \
  $(_tbase_sdk_path)/TlSdk/Out/Public \
  $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlSdk/Public/MobiCore/inc \
  $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlSdk/Public/MobiCore/Out/inc \
  $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/DrSdk/Out/Public/ \
  $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/DrSdk/Out/Public/MobiCore/inc \
  $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlSdk/Out/Public/ \
  $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlSdk/Out/Public/MobiCore/inc \
  $(_tbase_sdk_path)/DrSdk/Out/Public \
  $(_tbase_sdk_path)/MobiCore/Out/inc \
  $(_tbase_sdk_path)/MobiCoreDriverLib/Out/Public

get-tbase-armv7-nwd-libs = \
  $(eval _tbase_sdk_path := $(1)) \
  $(eval _tbase_system_app := $(2)) \
  $(eval _tbase_lib_name := \
    $(if $(filter $(_tbase_system_app),system), \
      libTeeClient.so, \
      libMcClient.so)) \
  $(eval _libs_options := \
    $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlcSdk/Bin/Generic/Debug/$(_tbase_lib_name) \
    $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlcSdk/Bin/armeabi-v7a/Debug/$(_tbase_lib_name) \
    $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlcSdk/Out/Bin/armeabi-v7a/Debug/$(_tbase_lib_name) \
    $(_tbase_sdk_path)/MobiCoreDriverLib/Out/Bin/Generic/Debug/$(_tbase_lib_name)) \
  $(eval _choosen_libs := \
    $(foreach _lib,$(_libs_options), \
      $(if $(wildcard $(_lib)), \
        $(_lib)))) \
  $(strip $(word 1,$(_choosen_libs)))

get-tbase-aarch64-nwd-libs = \
  $(eval _tbase_sdk_path := $(1)) \
  $(eval _tbase_system_app := $(2)) \
  $(eval _tbase_lib_name := \
    $(if $(filter $(_tbase_system_app),system), \
      libTeeClient.so, \
      libMcClient.so)) \
  $(eval _libs_options := \
    $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlcSdk/Bin/arm64-v8a/Debug/$(_tbase_lib_name) \
    $(_tbase_sdk_path)/t-base-dev-kit/t-sdk/TlcSdk/Out/Bin/arm64-v8a/Debug/$(_tbase_lib_name)) \
  $(eval _choosen_libs := \
    $(foreach _lib,$(_libs_options), \
      $(if $(wildcard $(_lib)), \
        $(_lib)))) \
  $(strip $(word 1,$(_choosen_libs)))

-search-arm-build-tool = \
  $(eval _arm_path := $(strip $(1))) \
  $(eval _search_tool := $(strip $(2))) \
  $(eval _tool_options := \
    $(_arm_path)/bin/arm-linux-gnueabihf-$(_search_tool) \
    $(_arm_path)/bin/arm-none-linux-gnueabi-$(_search_tool) \
    $(_arm_path)/sw/gcc/bin/arm-linux-gnueabihf-$(_search_tool) \
    $(_arm_path)/sw/gcc/bin/arm-none-linux-gnueabi-$(_search_tool)) \
    $(eval _tool_chosen := \
    $(foreach _path,$(_tool_options), \
      $(if $(wildcard $(_path)), \
        $(_path)))) \
  $(word 1,$(_tool_chosen))

get-tbase-version = \
  $(if $(wildcard $(call get-tbase-tlsdk-path,$(1))/Bin/ARM_V7A_STD/TlEntry/PIE/TlEntry.lib),5xx,4xx)
