_sdk_dir := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))

_local_blowfish_platform := $(strip $(_local_blowfish_platform))

ifeq ($(_local_blowfish_platform),)
  _local_blowfish_platform := blowfish
endif

include $(_sdk_dir)/blowfish-utils.mk

##########################
# Strip input parameters #
##########################

LOCAL_NAME := $(strip $(LOCAL_NAME))
LOCAL_UUID := $(strip $(LOCAL_UUID))
LOCAL_OUT := $(strip $(LOCAL_OUT))
LOCAL_SIGNCLIENT_JAR := $(strip $(LOCAL_SIGNCLIENT_JAR))

####################################
# Check necessary input parameters #
####################################

ifeq ($(LOCAL_NAME),)
  $(error LOCAL_NAME is not specified)
endif

ifeq ($(LOCAL_UUID),)
  $(error LOCAL_UUID is not specified)
endif

ifeq ($(LOCAL_OUT),)
  LOCAL_OUT := $(abspath ./out)
endif

ifeq ($(LOCAL_SIGNCLIENT_JAR),)
  # If path to signclient.jar is not set use default
  LOCAL_SIGNCLIENT_JAR := $(_sdk_dir)/../tools/signclient.jar
endif

####################################
# Check of user input parameters   #
####################################

include $(_sdk_dir)/rules-utils.mk
$(call blowfish-sign-rules)

####################################

_local_output_dir := $(strip $(call get-absolute-path,$(LOCAL_OUT)/$(LOCAL_TARGET_NAME:=/)$(_local_blowfish_platform)/$(LOCAL_NAME)))

_local_input := $(_local_output_dir)/$(LOCAL_NAME)
_local_output := $(_local_output_dir)/$(strip $(call get-blowfish-local-sign-output-name,$(LOCAL_UUID)))

# Execute fixed command line according to goal.
$(_local_output): $(_local_input)
	$($(<)_sign)

