ifeq ($(LOCAL_SDK_PATH),)
  $(error LOCAL_SDK_PATH is not specified)
endif

_local_path := $(call my-dir)

# _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

ifeq ($(_local_blowfish_platform),)
  _local_blowfish_platform := blowfish
endif

include $(_local_path)/blowfish-utils.mk

ifeq ($(_global_$(TARGET_ARCH_ABI)_$(_local_blowfish_platform)_so),)
  include $(CLEAR_VARS)

  LOCAL_MODULE := $(TARGET_ARCH_ABI)_$(_local_blowfish_platform)_platform_libs
  LOCAL_EXPORT_C_INCLUDES := \
    $(_local_path) \
    $(call get-blowfish-nwd-include-paths,$(LOCAL_SDK_PATH),$(_local_blowfish_platform))

  ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
    LOCAL_SRC_FILES := $(call get-blowfish-aarch64-nwd-libs,$(LOCAL_SDK_PATH),$(_local_blowfish_platform))
  else
    LOCAL_SRC_FILES := $(call get-blowfish-armv7-nwd-libs,$(LOCAL_SDK_PATH),$(_local_blowfish_platform))
  endif

  _global_$(TARGET_ARCH_ABI)_$(_local_blowfish_platform)_so := included

  include $(PREBUILT_SHARED_LIBRARY)
endif

include $(CLEAR_VARS)
LOCAL_MODULE := $(_target_prefix:%=%_)$(_local_module:%=%_)gp_client
LOCAL_SRC_FILES += \
  $(_local_path)/../source/gp-api/client/tees_shared_memory_blowfish.c \
  $(_local_path)/../source/gp-api/client/tees_client_log_android.c

LOCAL_C_INCLUDES += \
  $(_local_path)/../include/gp-mb \
  $(call get-blowfish-nwd-include-paths,$(LOCAL_SDK_PATH),$(_local_blowfish_platform))

LOCAL_CFLAGS += -Wall -Werror

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
LOCAL_SHARED_LIBRARIES := $(TARGET_ARCH_ABI)_$(_local_blowfish_platform)_platform_libs

ifeq ($(LOCAL_SHRINK_PROTOCOL_BUFFER),y)
  LOCAL_CFLAGS += -DSHRINK_PROTOCOL_BUFFER
endif

ifeq ($(_global_$(TARGET_ARCH_ABI)_$(LOCAL_MODULE)_$(_local_blowfish_platform)_so),)
  _global_$(TARGET_ARCH_ABI)_$(LOCAL_MODULE)_$(_local_blowfish_platform)_so := included
else
  $(error IMPORT_BLOWFISH_GP_CLIENT was manually included more than once. \
          In order to fix this error set variable LOCAL_MODULE before the \
          include or use new target build.)
endif

include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_SHARED_LIBRARIES := $(TARGET_ARCH_ABI)_$(_local_blowfish_platform)_platform_libs
LOCAL_STATIC_LIBRARIES := $(_local_module:%=%_)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.
