## to execute single make use syntax "make -f Makefile.Single"
include ../config.mk

## Path to root directory of android ndk

TARGET_CA_NAME = tee_crypto_samples
TARGET_TA_NAME = 00000000-0000-0000-0000-000000000067
#TARGET_DRV_NAME = 11111111-0000-0000-6472-697665727461

OBJ_DIR := ./dist/obj
DIST_DIR := ./dist
TA_DIR := ./swd/ta
CA_DIR := ./nwd/ca
#DRV_DIR := ./swd_driver/ta

CONFIG_CFLAGS_SW += -ggdb -std=gnu99
CONFIG_CFLAGS_NW += -I./swd

SRC_TA := $(wildcard $(TA_DIR)/*.c)
OBJ_TA := $(patsubst $(TA_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRC_TA))

#SRC_DRV := $(wildcard $(DRV_DIR)/*.c)
#OBJ_DRV := $(patsubst $(DRV_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRC_DRV))

SRC_CA := $(wildcard $(CA_DIR)/*.c)

ELF := $(OBJ_DIR)/$(TARGET_CA_NAME)
TA := $(OBJ_DIR)/unsigned_TA
SIGNED_TA := $(OBJ_DIR)/$(TARGET_TA_NAME)

#DRV := $(OBJ_DIR)/unsigned_DRV_TA
#SIGNED_DRV := $(OBJ_DIR)/$(TARGET_DRV_NAME)

.PHONY: all
all : make_dist $(SIGNED_TA) $(ELF) copy_dist build_done
#all: make_dist $(SIGNED_TA) $(SIGNED_DRV)  $(ELF) copy_dist

.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:
	@echo 'Clean Done.'
	@$(RM) $(DIST_DIR)

.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)

#$(SIGNED_DRV): $(DRV)
#	$(CONFIG_DRV_SIGN) $< $@

$(ELF): info_ca $(SRC_CA) make_dist
	@$(CONFIG_CC_NW) $(CONFIG_CFLAGS_NW) -o $@ $(SRC_CA)

$(TA) : info_ta $(SRC_TA) make_dist
	@$(CONFIG_CC_SW) $(CONFIG_CFLAGS_SW) -o $@ $(SRC_TA)

$(OBJ_DIR)/%.o : $(TA_DIR)/%.c
	@$(CONFIG_CC_SW) $(CONFIG_CFLAGS_SW) -c -o $@ $<

#$(DRV) : $(OBJ_DRV)
#	$(CONFIG_CC_SW) $(CONFIG_CFLAGS_SW) -o $@ $(OBJ_DRV)

#$(OBJ_DIR)/%.o : $(DRV_DIR)/%.c
#	$(CONFIG_CC_SW) $(CONFIG_CFLAGS_SW) -c -o $@ $<
