_local_path := $(call my-dir)
_local_prebuild_path := $(abspath $(_local_path)/../prebuilt)
ifeq ($(LOCAL_QSEE_SYSTEM_APP),y)
  $(warning LOCAL_QSEE_SYSTEM_APP is depricated, please use LOCAL_SYSTEM_APP instead with same behavior)
  LOCAL_SYSTEM_APP := $(LOCAL_QSEE_SYSTEM_APP)
endif
_local_qsee_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)/qsee-utils.mk

ifeq ($(_global_$(TARGET_ARCH_ABI)_qsee),)
  include $(CLEAR_VARS)

  LOCAL_MODULE := $(TARGET_ARCH_ABI)_qsee_platform_libs
  LOCAL_EXPORT_C_INCLUDES := \
    $(_local_path) \
    $(call get-qsee-nwd-include-paths,$(_local_prebuild_path))

  ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
    LOCAL_SRC_FILES := $(call get-qsee-aarch64-nwd-libs,$(_local_prebuild_path),platform)
  else
    LOCAL_SRC_FILES := $(call get-qsee-armv7-nwd-libs,$(_local_prebuild_path),platform)
  endif

  include $(PREBUILT_SHARED_LIBRARY)

  include $(CLEAR_VARS)

  LOCAL_MODULE := $(TARGET_ARCH_ABI)_qsee_system_platform_libs
  LOCAL_EXPORT_C_INCLUDES := \
    $(_local_path) \
    $(call get-qsee-nwd-include-paths,$(_local_prebuild_path))

  ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
    LOCAL_SRC_FILES := $(call get-qsee-aarch64-nwd-libs,$(_local_prebuild_path),system)
  else
    LOCAL_SRC_FILES := $(call get-qsee-armv7-nwd-libs,$(_local_prebuild_path),system)
  endif

  include $(PREBUILT_SHARED_LIBRARY)

  _global_$(TARGET_ARCH_ABI)_qsee := included
endif

include $(CLEAR_VARS)
LOCAL_MODULE := $(_target_prefix:%=%_)$(_local_module:%=%_)qsee_gp_client
LOCAL_SRC_FILES += \
  $(_local_path)/../source/gp-api/client/tees_client_log_android.c \
  $(_local_path)/../source/gp-api/client/teec_common_qsee.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/custom_alloc/custom_alloc.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/custom_alloc \
  $(_local_path)/../source/gp-api/filesystem \
  $(call get-qsee-nwd-include-paths,$(_local_prebuild_path))

LOCAL_CFLAGS += -Wall -Werror

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
ifeq ($(_local_qsee_system_app),y)
  LOCAL_SHARED_LIBRARIES += $(TARGET_ARCH_ABI)_qsee_system_platform_libs
else
  LOCAL_SHARED_LIBRARIES += $(TARGET_ARCH_ABI)_qsee_platform_libs
endif

ifeq ($(LOCAL_SHRINK_PROTOCOL_BUFFER),y)
  LOCAL_CFLAGS += -DSHRINK_PROTOCOL_BUFFER
endif

ifeq ($(LOCAL_QSEE_DISABLE_INTERNAL_LISTENER),y)
  $(warning "TEESDK internal listener is disabled. \
  The following functions will not work properly: \
  1. Peristent objects API \
  2. TEE_GetREETime \
  3. TEE_Wait \
  4. TEE_GetCancelationFlag")
  LOCAL_CFLAGS += -DQSEE_DISABLE_INTERNAL_LISTENER
endif

include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)
ifeq ($(_local_qsee_system_app),y)
  LOCAL_SHARED_LIBRARIES += $(TARGET_ARCH_ABI)_qsee_system_platform_libs
else
  LOCAL_SHARED_LIBRARIES += $(TARGET_ARCH_ABI)_qsee_platform_libs
endif

LOCAL_STATIC_LIBRARIES := $(_local_module:%=%_)qsee_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.
