ifeq ($(LOCAL_SDK_PATH),)
  $(error LOCAL_SDK_PATH is not specified)
endif

_local_path := $(call my-dir)
_local_tbase_system_app := $(LOCAL_SYSTEM_APP)

# _local_module should be initialized only when old non-target build is used,
# because it breaks  new target build. In order to detect old non-target build
# LOCAL_TARGET_NAME variable is checked - it is not initialized in case of old
# non-target build.
ifeq ($(LOCAL_TARGET_NAME),)
  _local_module := $(LOCAL_MODULE)
endif

include $(_local_path)/tbase-utils.mk

ifeq ($(_global_$(TARGET_ARCH_ABI)_tbase_platform),)
  include $(CLEAR_VARS)

  LOCAL_MODULE := $(TARGET_ARCH_ABI)_tbase_platform_libs
  LOCAL_EXPORT_C_INCLUDES := \
    $(_local_path) \
    $(call get-tbase-include-paths,$(LOCAL_SDK_PATH))

  ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
    LOCAL_SRC_FILES := $(call get-tbase-aarch64-nwd-libs,$(LOCAL_SDK_PATH),platform)
  else
    LOCAL_SRC_FILES := $(call get-tbase-armv7-nwd-libs,$(LOCAL_SDK_PATH),platform)
  endif

  include $(PREBUILT_SHARED_LIBRARY)

  _global_$(TARGET_ARCH_ABI)_tbase_platform := included
endif

ifeq ($(_global_$(TARGET_ARCH_ABI)_tbase_system),)
  ifeq ($(_local_tbase_system_app),y)
    include $(CLEAR_VARS)

    LOCAL_MODULE := $(TARGET_ARCH_ABI)_tbase_system_platform_libs
    LOCAL_EXPORT_C_INCLUDES := \
      $(_local_path) \
      $(call get-tbase-include-paths,$(LOCAL_SDK_PATH))

    ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
      LOCAL_SRC_FILES := $(call get-tbase-aarch64-nwd-libs,$(LOCAL_SDK_PATH),system)
    else
      LOCAL_SRC_FILES := $(call get-tbase-armv7-nwd-libs,$(LOCAL_SDK_PATH),system)
    endif

    include $(PREBUILT_SHARED_LIBRARY)

    _global_$(TARGET_ARCH_ABI)_tbase_system := included
  endif
endif

include $(CLEAR_VARS)
LOCAL_MODULE := $(_target_prefix:%=%_)$(_local_module:%=%_)tbase_gp_client
LOCAL_SRC_FILES += \
  $(_local_path)/../source/gp-api/client/tees_client_log_android.c \
  $(_local_path)/../source/gp-api/client/teec_common_tbase.c \
  $(_local_path)/../source/gp-api/client/tee_client_api.c \
  $(_local_path)/../source/gp-api/client/teec_callback_handler.c \
  $(_local_path)/../source/gp-api/protocol/teec_param_utils.c \
  $(_local_path)/../source/gp-api/filesystem/fs_po.c \
  $(_local_path)/../source/gp-api/filesystem/fs_utils.c

LOCAL_C_INCLUDES += \
  $(_local_path)/../include/gp-api \
  $(_local_path)/../include/gp-mb \
  $(_local_path)/../source/gp-api/client \
  $(_local_path)/../source/gp-api/protocol \
  $(_local_path)/../source/gp-api/filesystem \
  $(call get-tbase-include-paths,$(LOCAL_SDK_PATH))

LOCAL_CFLAGS += -Wall -Werror

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
ifeq ($(_local_tbase_system_app),y)
  LOCAL_SHARED_LIBRARIES += $(TARGET_ARCH_ABI)_tbase_system_platform_libs
else
  LOCAL_SHARED_LIBRARIES := $(TARGET_ARCH_ABI)_tbase_platform_libs
endif

ifeq ($(LOCAL_SHRINK_PROTOCOL_BUFFER),y)
  LOCAL_CFLAGS += -DSHRINK_PROTOCOL_BUFFER
endif

include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)
ifeq ($(_local_tbase_system_app),y)
  LOCAL_SHARED_LIBRARIES += $(TARGET_ARCH_ABI)_tbase_system_platform_libs
else
  LOCAL_SHARED_LIBRARIES := $(TARGET_ARCH_ABI)_tbase_platform_libs
endif
LOCAL_STATIC_LIBRARIES := $(_local_module:%=%_)tbase_gp_client

# in case of old non-target build it is needed to restore original value 
# of LOCAL_MODULE and reset _local_module
ifneq ($(_local_module),)
  LOCAL_MODULE := $(_local_module)
  _local_module :=
endif

LOCAL_LDLIBS := -llog
# WARNING: Below client's Android module will start. Don't clear variables after this line.
