## to execute single make use syntax "make -f Makefile.Single"
include ../config.mk

## Path to root directory of android ndk

TARGET_CA_NAME = test_tee_sort
TARGET_TA_NAME = 216be399-f2a9-43d8-80d4-abb2c3172b12 

SRC_TA := test_TA_sort.cpp
SRC_CA := tee_test_sort.c

CONFIG_CFLAGS_SW += -std=c++11 -Weffc++
CONFIG_CFLAGS_SW += -I$(CONFIG_SW_SYSROOT)/usr/include/c++/v1/
CONFIG_CFLAGS_SW += -L$(CONFIG_SW_SYSROOT)/usr/lib/
CONFIG_CFLAGS_SW += -fno-exceptions -fno-rtti
CONFIG_CFLAGS_SW += -lc++ -lpthread -lmath

OBJ_DIR:= ./dist/obj
DIST_DIR := ./dist

TA := $(OBJ_DIR)/unsigned_TA
SIGNED_TA := $(OBJ_DIR)/$(TARGET_TA_NAME)
ELF := $(OBJ_DIR)/$(TARGET_CA_NAME)

.PHONY: all
all: make_dist $(SIGNED_TA) $(ELF) copy_dist build_done

.PHONY: build_done
build_done: make_dist $(SIGNED_TA) $(ELF) copy_dist
	@echo 'Build Done.'

.PHONY: info_ta
info_ta:
	@echo 'Building TA: $(TARGET_TA_NAME)'

.PHONY: info_ca
info_ca:
	@echo 'Building CA: $(TARGET_CA_NAME)'

.PHONY: clean
clean:
	@$(RM) $(DIST_DIR)
	@echo 'Clean Done.'

.PHONY: make_dist
make_dist:
	@$(MKDIR) $(OBJ_DIR)

.PHONY: copy_dist
copy_dist: make_dist $(SIGNED_TA) $(ELF)
	@$(CP) $(SIGNED_TA) $(DIST_DIR)
	@$(CP) $(ELF) $(DIST_DIR)

$(SIGNED_TA): $(TA) make_dist $(test_TA_with_keys)
	@$(signing_command)

$(ELF): info_ca $(SRC_CA) make_dist
	@$(CONFIG_CC_NW) $(CONFIG_CFLAGS_NW) -o $@ $(SRC_CA)

$(TA): info_ta $(SRC_TA) make_dist
	@$(CONFIG_CXX_SW) $(CONFIG_CFLAGS_SW) -o $@ $(SRC_TA)
