## to execute single make use syntax "make -f Makefile.Single"

#Arch
ifneq ($(filter $(TEEGRIS_BUILD_MODEL), s5e8825),)
  CONFIG_TA_ARCH = 64
  SECURE_TOOLCHAIN = CLANG
else
  CONFIG_TA_ARCH = 32
  SECURE_TOOLCHAIN = GCC
endif

include ./../../build/teegris_config.mk

##############
### CONFIG ###
OS_TYPE           = android
ifeq ($(BUILD_MODE),dbg)
CONFIG_LDFLAGS_SW += -DUSE_DEBUG_MESSAGE
endif
CONFIG_LDFLAGS_SW += -Dv$(TEEGRIS_PLATFORM_VERSION_MAJOR)_$(TEEGRIS_PLATFORM_VERSION_MINOR)

#################
### DIR & SRC ###

TARGET_DRV_NAME = 00000000-0000-0000-0000-42494f415448
OBJ_DIR := $(CURRENT_PATH)/dist/obj
OUTPUT_DIR := $(CURRENT_PATH)/dist
OUTPUTDRV_DIR := $(TEEGRIS_TA_DIST_PATH)/driver
DRV_DIR := $(CURRENT_PATH)/src
SRC_DRV := $(wildcard $(DRV_DIR)/*.c)

DRV := $(OBJ_DIR)/unsigned_TA
STRIPPED_DRV := $(DRV).stripped
SIGNED_DRV := $(OBJ_DIR)/$(TARGET_DRV_NAME)

################
### COMMANDS ###
# PHONY
.PHONY: all build_done clean make_dist copy_dist
all: make_dist build_done

build_done: copy_dist
	@echo 'Build Done.'

clean:
	@$(RM) $(OUTPUT_DIR)

make_dist:
	@$(MKDIR) $(OBJ_DIR)

copy_dist: $(SIGNED_DRV)
	@echo Copy $(SIGNED_DRV) $(OUTPUTDRV_DIR)
	@$(CP) $(SIGNED_DRV) $(OUTPUTDRV_DIR)

$(SIGNED_DRV): $(STRIPPED_DRV)
	@echo 'Signing'
	@$(signing_command_drv)

$(DRV): $(SRC_DRV) | make_dist
	@echo 'Building'
	@$(CONFIG_CC_SW) $(CONFIG_CFLAGS_SW) $(CONFIG_LDFLAGS_SW) -o $@ $(SRC_DRV)

$(STRIPPED_DRV): $(DRV)
	@echo 'Stripping'
	@$(CONFIG_STRIP_SW) $(CONFIG_STRIP_FLAGS_SW) $< -o $@