include $(TEEGRIS_TA_BUILD_ROOT)/build/teegris_config.mk

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), exynos2100),)
  ifneq ($(filter r9s%, $(TARGET_PRODUCT)),)
    CONFIG_TARGET_TUI_MODEL := r9s
  else
    CONFIG_TARGET_TUI_MODEL := n2s
  endif
endif

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), MT6853),)
  CONFIG_TARGET_TUI_MODEL := a32x
endif

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), MT6769T),)
  CONFIG_TARGET_TUI_MODEL := a32
endif

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), s5e9925),)
  CONFIG_TARGET_TUI_MODEL := g0s
  CONFIG_USE_ECDSA_SIGNING := y
endif

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), MT6833),)
  CONFIG_TARGET_TUI_MODEL := a13x
endif

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), s5e8825),)
  CONFIG_TARGET_TUI_MODEL := papaya
  CONFIG_USE_ECDSA_SIGNING := y
endif

ifneq ($(filter $(TEEGRIS_BUILD_MODEL), MT6877),)
  CONFIG_TARGET_TUI_MODEL := m53x
  CONFIG_USE_ECDSA_SIGNING := y
endif

include ./tui_default_all.mk

$(info ****** TARGET_TUI_MODEL=$(TUI_MODEL) ******)
$(info ****** TARGET_TUI_CPU=$(TUI_CPU) ******)
$(info ****** TARGET_TUI_RES=$(TUI_RESOLUTION) ******)
$(info ****** TARGET_TUI_TOUCH=$(TUI_TOUCH) ******)
$(info ****** TARGET_PRODUCT=$(TARGET_PRODUCT) ******)
$(info ****** SEC_BUILD_OPTION_TYPE=$(SEC_BUILD_OPTION_TYPE) ******)
$(info $(shell pwd))

TUI_DRIVERS_SRC_DIR := ./
SYS_HEADERS_DIR := ./sys

TUI_DRIVERS_SRC_CPU_REL := bsp/devices/$(TUI_CPU)

ifneq ($(TUI_CPU), $(filter $(TUI_CPU), 3250 6757 7420 8895))
CONFIG_USE_REE_CANCEL_LISTENER=y
endif

#***** display driver sources *******

SRC_TUI_DISPLAY_DRV_TA := \
  display_driver/display_driver_TA.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/lcd.c \
  bsp/devices/disp_core.c

ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
SRC_TUI_DISPLAYLL_DRV_TA := \
  display_drv/tuill_display_drv.c \
  display_drv/display_drv_engine.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/lcd.c \
  bsp/devices/disp_core.c \
  common/tuill_drv.c \
  common/tuill_common.c \
  common/tuill_client_drv.c \
  common/tuill_socket_lib.c \

endif

ifeq ($(CONFIG_TUILL_DEBUG),y)
SRC_TUI_DISPLAYLL_DRV_TA += common/tuill_log.c
endif

SRC_TUI_DISPLAY_HAL_TA := 

ifeq ($(TUI_CPU),6757)
SRC_TUI_DISPLAY_HAL_TA += \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/disp_regs.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/disp_core.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/disp_panel.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_log.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_generic.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_buffer.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_dapc.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_display.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_board.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/mpu/DrApiEmiMpu.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/cmdq/cmdq_sec_record.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/cmdq/cmdq_sec_core.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/cmdq/cmdq_sec_platform.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/display_tui.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_drv.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_info.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_debug.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_path.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_rdma.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_dsi.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_dump.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_color_format.c

endif

ifeq ($(TUI_CPU), $(filter $(TUI_CPU), 6853 6769 6833 6877))
SRC_TUI_DISPLAY_HAL_TA += \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_board.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_buffer.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_display.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_log.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/cmdq/cmdq_sec_core.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/cmdq/cmdq_sec_platform.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/cmdq/cmdq_sec_record.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_color_format.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_debug.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_drv.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_dsi.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_dump.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_info.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_ovl.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_path.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/ddp_rdma.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/display/display_tui.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/platform/mpu/emi_mpu_v1.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/disp_core.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/disp_regs.c

endif

ifeq ($(TUI_CPU),8895)
SRC_TUI_DISPLAY_HAL_TA += \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/decon_regs.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/decon_core.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/dpp_regs.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/decon_panel.c

endif

ifeq ($(TUI_CPU),3250)
SRC_TUI_DISPLAY_HAL_TA += \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/fimd.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/decon_core3250.c

endif

ifeq ($(TUI_CPU),7420)
SRC_TUI_DISPLAY_HAL_TA += \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/decon_regs7420.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/decon_core7420.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/decon_panel.c

endif

ifeq ($(TUI_CPU), $(filter $(TUI_CPU), 7885 9610 9630 9820 9830 3830 2100))
SRC_TUI_DISPLAY_HAL_TA += \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/disp_core.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/decon_reg.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/dpp_reg.c

endif

ifeq ($(TUI_CPU), $(filter $(TUI_CPU), 9925 8825))
SRC_TUI_DISPLAY_HAL_TA += \
  $(TUI_DRIVERS_SRC_CPU_REL)/disp_core.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/decon_reg.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/dpp_reg.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/dqe_reg.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/dsim_reg.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/video/secure_dpu_drv.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/include/cal_common/exynos_drm_format.c
endif

#***** touch driver sources *******

SRC_TUI_TOUCH_DRV_TA := \
  touch_driver/touch_driver_TA.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/touch_gpio.c \
  bsp/devices/touch_gpio.c \
  bsp/devices/i2c.c \
  bsp/peripherals/touch_queue.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/board.c

ifeq ($(CONFIG_USE_REE_CANCEL_LISTENER),y)
SRC_TUI_TOUCH_DRV_TA += touch_driver/ree_cancel_listener.c
endif

ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
SRC_TUI_TOUCHLL_DRV_TA := \
  touch_drv/tuill_touch_drv.c \
  touch_drv/touch_drv_engine.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/touch_gpio.c \
  bsp/devices/touch_gpio.c \
  bsp/devices/i2c.c \
  bsp/peripherals/touch_queue.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/board.c \
  common/tuill_drv.c \
  common/tuill_common.c \
  common/tuill_client_drv.c \
  common/tuill_socket_lib.c \

endif

ifeq ($(CONFIG_TUILL_DEBUG),y)
SRC_TUI_TOUCHLL_DRV_TA += common/tuill_log.c
endif

SRC_TUI_TOUCH_HAL_TA := 

ifeq ($(TUI_TOUCH),USE_TOUCH_CYPRESS)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/cypress/cypress_main.c \
  bsp/peripherals/cypress/cypress_driver.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_FTS)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/fts/fts_driver.c \
  bsp/peripherals/fts/fts_main.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_SEC)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/sec_ts/sec_driver.c \
  bsp/peripherals/sec_ts/sec_main.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_STM)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/stm/stm_driver.c \
  bsp/peripherals/stm/stm_main.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_STM_SPI)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/stm/stm_driver_spi.c \
  bsp/peripherals/stm/stm_main.c
endif

ifeq ($(TUI_TOUCH),USE_TOUCH_MELFAS)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/melfas/melfas_driver.c \
  bsp/peripherals/melfas/melfas_main.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_ZINITIX)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/zinitix/zinitix_driver.c \
  bsp/peripherals/zinitix/zinitix_main.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_ZT7650)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/zinitix/zt7650_driver.c \
  bsp/peripherals/zinitix/zinitix_main.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_HIMAX)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/himax/himax_driver.c \
  bsp/peripherals/himax/himax_main.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_IMAGIS)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/imagis/ist40xx_driver.c \
  bsp/peripherals/imagis/ist40xx_main.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_RMI4)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/rmi/rmi.c \
  bsp/peripherals/rmi/rmi_driver.c \
  bsp/peripherals/rmi/rmi_bus.c \
  bsp/peripherals/rmi/rmi_f01.c \
  bsp/peripherals/rmi/rmi_f11.c \
  bsp/peripherals/rmi/rmi_f12.c \
  bsp/peripherals/rmi/rmi_i2c.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_NOVATEK)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/novatek/novatek_driver.c \
  bsp/peripherals/novatek/novatek_main.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_NOVATEK_SPI)
SRC_TUI_TOUCH_DRV_TA += \
  bsp/peripherals/novatek/novatek_driver_spi.c \
  bsp/peripherals/novatek/novatek_main_spi.c
endif

ifeq ($(TUI_TOUCH),USE_TOUCH_ILITEK_SPI)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/ilitek/ilitek_driver_spi.c  \
  bsp/peripherals/ilitek/ilitek_main_spi.c

endif

ifeq ($(TUI_TOUCH),USE_A32X_TOUCH_SPI)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/ilitek/ilitek_driver_spi.c \
  bsp/peripherals/novatek/novatek_driver_spi.c \
  bsp/peripherals/multi_panel/a32x_tsp_main.c
endif

ifeq ($(TUI_TOUCH),USE_TOUCH_SYNAP)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/synap/synap_driver.c \
  bsp/peripherals/synap/synap_main.c
endif

ifeq ($(TUI_TOUCH),USE_TOUCH_SYNAPTICS)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/synaptics/synaptics_driver.c \
  bsp/peripherals/synaptics/synaptics_main.c
endif

ifeq ($(TUI_TOUCH),USE_A22_TOUCH)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/stm/stm_driver.c \
  bsp/peripherals/melfas/melfas_driver.c \
  bsp/peripherals/multi_panel/a22_tsp_main.c

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_GOODIX)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/goodix/goodix_driver.c \
  bsp/peripherals/goodix/goodix_main.c
endif

ifeq ($(TUI_TOUCH),USE_TOUCH_PAPAYA)
SRC_TUI_TOUCH_HAL_TA += \
  bsp/peripherals/goodix/goodix_driver.c \
  bsp/peripherals/focaltech/ft820x_driver.c \
  bsp/peripherals/novatek/novatek_driver_spi.c \
  bsp/peripherals/multi_panel/a53x_tsp_main.c
endif

ifeq ($(TUI_CPU),6757 6853)
SRC_TUI_TOUCH_HAL_TA += \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_log.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_generic.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_dapc.c \
  $(TUI_DRIVERS_SRC_CPU_REL)/generic/mtk_board.c

endif

#***** common driver sources *******

SRC_TUI_COMMON := \
  bsp/public/bsp_common.c \
  bsp/public/secmap.c \
  bsp/devices/protect.c

#***** common variables *******

TUI_SIGNING_TYPE := samsung

CFLAGS_TUI_COMMON := \
 -I$(TUI_DRIVERS_SRC_DIR) \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/devices \
 -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL) \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/public \
 -D$(TUI_MODEL)

CFLAGS_TUI_DRIVERS_TA := \
  -DTUI_SIGN_TYPE=\"$(TUI_SIGNING_TYPE)\"

LDFLAGS_TUI_DRIVERS_TA := \
  $(LDFLAGS_SWD_TA_RELRO)

ifeq ($(BUILD_WITH_TA_GCOV),y)
  CFLAGS_TUI_DRIVERS_TA += $(CFLAGS_GCOV)
  LDFLAGS_TUI_DRIVERS_TA += $(LDFLAGS_GCOV)
endif

ifeq ($(CONFIG_LOADING_DRIVER_TA),y)
  CFLAGS_TUI_DRIVERS_TA += -DCONFIG_LOADING_DRIVER_TA
endif

#***** display driver variables *******

CFLAGS_TUI_DISPLAY_DRV_TA := \
  $(CONFIG_CFLAGS_SW) \
  $(CFLAGS_TUI_COMMON) \
  $(CFLAGS_TUI_DRIVERS_TA) \
  -I$(TUI_DRIVERS_SRC_DIR)/display_driver \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/video

ifeq ($(TUI_CPU),9925)
CFLAGS_TUI_DISPLAY_DRV_TA += \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/include \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/include/cal_common \
  -DTUI_FOR_EXYNOS9925=1
endif

ifeq ($(TUI_CPU),8825)
CFLAGS_TUI_DISPLAY_DRV_TA += \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/include \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/include/cal_common \
  -DTUI_FOR_EXYNOS8825=1
endif

#***********************************************************
ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
CFLAGS_TUILL_COMMON := 

ifeq ($(CONFIG_TUILL_DEBUG),y)
  CFLAGS_TUILL_COMMON += -DCONFIG_TUILL_DEBUG
endif
ifeq ($(CONFIG_TUILL_INFO),y)
  CFLAGS_TUILL_COMMON += -DCONFIG_TUILL_INFO
endif
ifeq ($(CONFIG_TUILL_EXTRA),y)
  CFLAGS_TUILL_COMMON += -DCONFIG_TUILL_EXTRA
endif

CFLAGS_TUILL_COMMON += -DCONFIG_SYSLOG_LIMIT=1024 \
                       -DTUI_SIGN_TYPE=\"$(TUI_SIGNING_TYPE)\"

CFLAGS_TUI_DISPLAYLL_DRV_TA := \
  $(CFLAGS_TUILL_COMMON) \
  $(CFLAGS_TUI_DISPLAY_DRV_TA) \
  -I$(SYS_HEADERS_DIR) \
  -I$(TUI_DRIVERS_SRC_DIR)/lib \
  -I$(TUI_DRIVERS_SRC_DIR)/common \
  -I$(TUI_DRIVERS_SRC_DIR)/display_drv \
  -DTUI_COLOR_MODE=$(TUI_COLOR_MODE) \
  -DMODULE_TAG="\"[tuill_dispdrv] \""

ifeq ($(USE_NON_CACHED_FB),y)
CFLAGS_TUI_DISPLAYLL_DRV_TA += -DUSE_NON_CACHED_FB
endif
endif
#***********************************************************

CFLAGS_TUI_DISPLAY_HAL_TA := 

ifeq ($(USE_NON_CACHED_FB),y)
CFLAGS_TUI_DISPLAY_DRV_TA += -DUSE_NON_CACHED_FB
endif

ifeq ($(TUI_CPU),6757)
CFLAGS_TUI_DISPLAY_HAL_TA += \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/generic \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/platform/mpu \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/platform/cmdq \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/platform/display/include \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/platform/display \
  -DTUI_ENABLE_DISPLAY=1 \
  -DTUI_ENABLE_MPU=1 \
  -DTUI_ENABLE_DAPC=1 \
  -fno-strict-aliasing

endif

ifeq ($(TUI_CPU), $(filter $(TUI_CPU), 6853 6769 6833 6877))
CFLAGS_TUI_DISPLAY_HAL_TA += \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/generic \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/platform/cmdq \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/platform/dapc \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/platform/display/include \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/platform/display \
  -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/platform/mpu

endif

ifeq ($(TUI_CPU), $(filter $(TUI_CPU), 6853 6769 6833 6877))
CFLAGS_TUI_DISPLAY_HAL_TA += \
 -fno-strict-aliasing \
 -DTUI_FOR_MTK_PLATFORM=1 \
 -DTUI_ENABLE_DISPLAY=1 \
 -DTUI_ENABLE_MPU=1 \
 -DTUI_ENABLE_DAPC=1 \
 -DTUI_USER_BUILD=1

endif

CFLAGS_TUI_DISPLAY_DRV_TA += $(CFLAGS_TUI_DISPLAY_HAL_TA)

BIN_TUI_DISPLAY_DRV_TA := $(TUI_DISPLAY_DRV_OBJ_DIR)/$(TUI_DISPLAY_DRV_NAME)

#***** touch driver variables *******

CFLAGS_TUI_TOUCH_DRV_TA := \
  $(CONFIG_CFLAGS_SW) \
  $(CFLAGS_TUI_COMMON) \
  $(CFLAGS_TUI_DRIVERS_TA) \
  -I$(TUI_DRIVERS_SRC_DIR) \
  -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals \
  -D$(TUI_TOUCH)

#***********************************************************
ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
CFLAGS_TUI_TOUCHLL_DRV_TA := \
  $(CONFIG_CFLAGS_SW) \
  $(CFLAGS_TUI_COMMON) \
  $(CFLAGS_TUILL_COMMON) \
  $(CFLAGS_TUI_DRIVERS_TA) \
  -I$(SYS_HEADERS_DIR) \
  -I$(TUI_DRIVERS_SRC_DIR)/lib \
  -I$(TUI_DRIVERS_SRC_DIR)/common \
  -I$(TUI_DRIVERS_SRC_DIR)/touch_drv \
  -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals \
  -D$(TUI_TOUCH) \
  -DMODULE_TAG="\"[tuill_touchdrv] \""

endif
#***********************************************************

CFLAGS_TUI_TOUCH_HAL_TA := 

ifeq ($(TUI_TOUCH),USE_TOUCH_CYPRESS)
CFLAGS_TUI_TOUCH_HAL_TA += -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/cypress
endif

ifeq ($(TUI_TOUCH),USE_TOUCH_FTS)
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/fts \
 -DUSE_TOUCH_FTS

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_SEC)
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/sec_ts \
 -DUSE_TOUCH_SEC

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_STM)
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/stm \
 -DUSE_TOUCH_STM

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_STM_SPI)
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/stm \
 -DUSE_TOUCH_STM_SPI \
 -DTUI_FOR_EXYNOS9925=1
endif

ifeq ($(TUI_TOUCH),USE_TOUCH_GOODIX)
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/goodix \
 -DUSE_TOUCH_GOODIX \
 -DTUI_FOR_EXYNOS8825=1
endif

ifeq ($(TUI_TOUCH),USE_TOUCH_MELFAS)
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/melfas \
 -DUSE_TOUCH_MELFAS

endif

ifeq ($(TUI_TOUCH),USE_TOUCH_RMI4)
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/rmi \
 -DUSE_TOUCH_RMI4

endif

ifeq ($(TUI_TOUCH),USE_A32X_TOUCH_SPI)
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/ilitek \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/novatek \
 -DUSE_TOUCH_A32X
 
endif

ifeq ($(TUI_TOUCH),USE_A22_TOUCH)
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/melfas \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/stm \
 -DUSE_TOUCH_A22
endif

ifeq ($(TUI_TOUCH),USE_TOUCH_PAPAYA)
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/goodix \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/novatek \
 -I$(TUI_DRIVERS_SRC_DIR)/bsp/peripherals/focaltech \
 -DTUI_FOR_EXYNOS8825
endif

ifeq ($(TUI_CPU), $(filter $(TUI_CPU), 6757 6853 6769 6833 6877))
CFLAGS_TUI_TOUCH_HAL_TA += \
 -I$(TUI_DRIVERS_SRC_DIR)/$(TUI_DRIVERS_SRC_CPU_REL)/generic \
 -DTUI_FOR_MTK_PLATFORM=1

endif

ifeq ($(USE_MULTI_TOUCH),y)
CFLAGS_TUI_TOUCH_HAL_TA += -DUSE_MULTI_TOUCH
endif

ifeq ($(CONFIG_USE_REE_CANCEL_LISTENER),y)
CFLAGS_TUI_TOUCH_HAL_TA += -DUSE_REE_CANCEL_LISTENER
endif

CFLAGS_TUI_TOUCH_DRV_TA += $(CFLAGS_TUI_TOUCH_HAL_TA)

LDFLAGS_TUI_TOUCH_DRV_TA := \
  $(CONFIG_LDFLAGS_SW) \
  $(LDFLAGS_TUI_DRIVERS_TA) \
  -lpthread

LDFLAGS_TUI_DISPLAY_DRV_TA := \
  $(CONFIG_LDFLAGS_SW) \
  $(LDFLAGS_TUI_DRIVERS_TA) \
  -lpthread

TARGET_TOUCH_TA_NAME = 00000000-0000-0000-0000-000000010081
TARGET_DISPLAY_TA_NAME = 00000000-0000-0000-0000-000000020081

OBJ_DIR := $(TEEGRIS_TA_BUILD_ROOT)/teegris_source/TUI/dist/obj
DIST_DIR := $(TEEGRIS_TA_BUILD_ROOT)/teegris_source/TUI/dist

TOUCH_TA := $(OBJ_DIR)/unsigned_touch_TA
DISPLAY_TA := $(OBJ_DIR)/unsigned_display_TA
STRIPPED_TA := $(OBJ_DIR)/stripped_TA
STRIPPED_TOUCH_TA := $(OBJ_DIR)/stripped_touch_TA
STRIPPED_DISPLAY_TA := $(OBJ_DIR)/stripped_display_TA
SIGNED_TOUCH_TA = $(DIST_DIR)/$(TARGET_TOUCH_TA_NAME)
SIGNED_DISPLAY_TA = $(DIST_DIR)/$(TARGET_DISPLAY_TA_NAME)
ifeq ($(CONFIG_USE_ECDSA_SIGNING),y)
RESOURCES = $(TUI_DRIVERS_SRC_DIR)/resolution_common/resources/release_new_ecdsa/ID00000100
else
RESOURCES = $(TUI_DRIVERS_SRC_DIR)/resolution_common/ID00000100
endif

#************************************************************************
ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)

CFLAGS_TUILL_LIBS := \
  $(CONFIG_CFLAGS_SW) \
  $(CFLAGS_TUI_COMMON) \
  $(CFLAGS_TUILL_COMMON) \
  $(CFLAGS_TUI_DRIVERS_TA) \
  -I$(SYS_HEADERS_DIR) \
  -I$(TUI_DRIVERS_SRC_DIR)/lib \
  -I$(TUI_DRIVERS_SRC_DIR)/common \

CFLAGS_TUI_TOUCHLL_DRV_TA += $(CFLAGS_TUI_TOUCH_HAL_TA)
CFLAGS_TUI_DISPLAYLL_DRV_TA += $(CFLAGS_TUI_DISPLAY_HAL_TA)

LDFLAGS_TUI_TOUCHLL_DRV_TA := $(LDFLAGS_TUI_TOUCH_DRV_TA)
LDFLAGS_TUI_DISPLAYLL_DRV_TA := $(LDFLAGS_TUI_DISPLAY_DRV_TA)

TARGET_TOUCHLL_TA_NAME = 00000000-0000-0000-0000-544974684c6c
TARGET_DISPLAYLL_TA_NAME = 00000000-0000-0000-0000-54496473706c

OBJLL_DIR := $(TEEGRIS_TA_BUILD_ROOT)/teegris_source/TUILL/dist/obj
DISTLL_DIR := $(TEEGRIS_TA_BUILD_ROOT)/teegris_source/TUILL/dist

TOUCHLL_TA := $(OBJLL_DIR)/unsigned_touchll_TA
DISPLAYLL_TA := $(OBJLL_DIR)/unsigned_displayll_TA
STRIPPEDLL_TA := $(OBJLL_DIR)/stripped_ll_TA
STRIPPED_TOUCHLL_TA := $(OBJLL_DIR)/stripped_touchll_TA
STRIPPED_DISPLAYLL_TA := $(OBJLL_DIR)/stripped_displayll_TA
SIGNED_TOUCHLL_TA = $(DISTLL_DIR)/$(TARGET_TOUCHLL_TA_NAME)
SIGNED_DISPLAYLL_TA = $(DISTLL_DIR)/$(TARGET_DISPLAYLL_TA_NAME)

endif
#************************************************************************

#***** Test TUI client *******

ifeq ($(SEC_BUILD_OPTION_TYPE),eng)
SRC_TUI_TEST_TA := \
  test_tui_ta/process_requests.c \
  test_tui_ta/ta_tui_default.c

CFLAGS_TUI_TEST_TA := \
  -D$(TUI_MODEL) \
  $(CONFIG_CFLAGS_SW) \

LDFLAGS_TUI_TEST_TA := \
  $(CONFIG_LDFLAGS_SW) \
  -ltui

TARGET_TEST_TA_NAME = 00000000-0000-0000-0000-000000020205
TEST_TA := $(OBJ_DIR)/unsigned_test_TA
STRIPPED_TEST_TA := $(OBJ_DIR)/stripped_test_TA
SIGNED_TEST_TA = $(DIST_DIR)/$(TARGET_TEST_TA_NAME)
endif

.PHONY: all
all: STRIPPED_TAs SIGNED_TAs build_done

.PHONY: build_done
build_done: make_dist SIGNED_TAs
	@$(CP) $(SIGNED_TOUCH_TA) $(TEEGRIS_TA_DIST_PATH)
	@echo 'Copy $(SIGNED_TOUCH_TA) $(TEEGRIS_TA_DIST_PATH)'
	@$(CP) $(SIGNED_DISPLAY_TA) $(TEEGRIS_TA_DIST_PATH)
	@echo 'Copy $(SIGNED_DISPLAY_TA) $(TEEGRIS_TA_DIST_PATH)'
	@$(MKDIR) $(TEEGRIS_TA_DIST_PATH)/tui/resolution_common
	@echo 'Copy $(RESOURCES) $(TEEGRIS_TA_DIST_PATH)/tui/resolution_common/'
	@$(CP) $(RESOURCES) $(TEEGRIS_TA_DIST_PATH)/tui/resolution_common/
ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
	@$(CP) $(SIGNED_TOUCHLL_TA) $(TEEGRIS_TA_DIST_PATH)
	@echo 'Copy $(SIGNED_TOUCHLL_TA) $(TEEGRIS_TA_DIST_PATH)'
	@$(CP) $(SIGNED_DISPLAYLL_TA) $(TEEGRIS_TA_DIST_PATH)
	@echo 'Copy $(SIGNED_DISPLAYLL_TA) $(TEEGRIS_TA_DIST_PATH)'
endif
ifeq ($(SEC_BUILD_OPTION_TYPE),eng)
	@$(CP) $(SIGNED_TEST_TA) $(TEEGRIS_TA_DIST_PATH)
	@echo 'Copy $(SIGNED_TEST_TA) $(TEEGRIS_TA_DIST_PATH)'
endif
	@echo 'Build Done.'

.PHONY: info_ta
info_ta:
	@echo 'Building TAs: $(TARGET_TOUCH_TA_NAME) and $(TARGET_DISPLAY_TA_NAME)'
ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
	@echo 'Building TAs: $(TARGET_TOUCHLL_TA_NAME) and $(TARGET_DISPLAYLL_TA_NAME)'
endif

.PHONY: clean
clean:
	@$(RM) $(DIST_DIR)
ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
	@$(RM) $(DISTLL_DIR)
endif
	@echo 'Clean Done.'

.PHONY: make_dist
make_dist:
	@$(MKDIR) $(OBJ_DIR)
ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
	@$(MKDIR) $(OBJLL_DIR)
endif

STRIPPED_TAs: TAs
	@echo 'Stripped TAs'
	@$(CONFIG_STRIP_SW) $(STRIP_FLAGS_SW) $(TOUCH_TA) -o $(STRIPPED_TOUCH_TA)
	@$(CONFIG_STRIP_SW) $(STRIP_FLAGS_SW) $(DISPLAY_TA) -o $(STRIPPED_DISPLAY_TA)
ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
	@$(CONFIG_STRIP_SW) $(STRIP_FLAGS_SW) $(TOUCHLL_TA) -o $(STRIPPED_TOUCHLL_TA)
	@$(CONFIG_STRIP_SW) $(STRIP_FLAGS_SW) $(DISPLAYLL_TA) -o $(STRIPPED_DISPLAYLL_TA)
endif
ifeq ($(SEC_BUILD_OPTION_TYPE),eng)
	@$(CONFIG_STRIP_SW) $(STRIP_FLAGS_SW) $(TEST_TA) -o $(STRIPPED_TEST_TA)
endif

ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)

ifeq ($(SEC_BUILD_OPTION_TYPE),eng)
SIGNED_TAs: $(SIGNED_TOUCH_TA) $(SIGNED_DISPLAY_TA) $(SIGNED_TOUCHLL_TA) $(SIGNED_DISPLAYLL_TA) $(SIGNED_TEST_TA)
else
SIGNED_TAs: $(SIGNED_TOUCH_TA) $(SIGNED_DISPLAY_TA) $(SIGNED_TOUCHLL_TA) $(SIGNED_DISPLAYLL_TA)
endif

else
ifeq ($(SEC_BUILD_OPTION_TYPE),eng)
SIGNED_TAs: $(SIGNED_TOUCH_TA) $(SIGNED_DISPLAY_TA) $(SIGNED_TEST_TA)
else
SIGNED_TAs: $(SIGNED_TOUCH_TA) $(SIGNED_DISPLAY_TA)
endif
endif

ifeq ($(TUI_CPU), $(filter $(TUI_CPU), 6853 6769 6833 6877))
$(SIGNED_TOUCH_TA): $(STRIPPED_TOUCH_TA)
	@$(MKDIR) $(DIST_DIR)/$(SIGNED_TOUCH_TA)
	@echo 'Signing cmd: $(signing_command_lsi_wv)'
	$(signing_command_lsi_wv)

$(SIGNED_DISPLAY_TA): $(STRIPPED_DISPLAY_TA)
	@$(MKDIR) $(DIST_DIR)/$(SIGNED_DISPLAY_TA)
	@echo 'Signing cmd: $(signing_command_lsi_wv)'
	$(signing_command_lsi_wv)

ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
$(SIGNED_TOUCHLL_TA): $(STRIPPED_TOUCHLL_TA)
	@$(MKDIR) $(DISTLL_DIR)/$(SIGNED_TOUCHLL_TA)
	@echo 'Signing cmd: $(signing_command_lsi_wv)'
	$(signing_command_lsi_wv)

$(SIGNED_DISPLAYLL_TA): $(STRIPPED_DISPLAYLL_TA)
	@$(MKDIR) $(DISTLL_DIR)/$(SIGNED_DISPLAYLL_TA)
	@echo 'Signing cmd: $(signing_command_lsi_wv)'
	$(signing_command_lsi_wv)
endif

endif

ifeq ($(TUI_CPU), $(filter $(TUI_CPU), 2100 9925 8825))
$(SIGNED_TOUCH_TA): $(STRIPPED_TOUCH_TA)
	@$(MKDIR) $(DIST_DIR)/$(SIGNED_TOUCH_TA)
	@echo 'Signing cmd: $(signing_command_drv)'
	$(signing_command_drv)

$(SIGNED_DISPLAY_TA): $(STRIPPED_DISPLAY_TA)
	@$(MKDIR) $(DIST_DIR)/$(SIGNED_DISPLAY_TA)
	@echo 'Signing cmd: $(signing_command_drv)'
	$(signing_command_drv)

ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
$(SIGNED_TOUCHLL_TA): $(STRIPPED_TOUCHLL_TA)
	@$(MKDIR) $(DISTLL_DIR)/$(SIGNED_TOUCHLL_TA)
	@echo 'Signing cmd: $(signing_command_drv)'
	$(signing_command_drv)

$(SIGNED_DISPLAYLL_TA): $(STRIPPED_DISPLAYLL_TA)
	@$(MKDIR) $(DISTLL_DIR)/$(SIGNED_DISPLAYLL_TA)
	@echo 'Signing cmd: $(signing_command_drv)'
	$(signing_command_drv)
endif

endif

ifeq ($(SEC_BUILD_OPTION_TYPE),eng)
$(SIGNED_TEST_TA): $(STRIPPED_TEST_TA)
	@$(MKDIR) $(DIST_DIR)/$(SIGNED_TEST_TA)
	@echo 'Signing cmd: $(signing_command)'
	$(signing_command)
endif

TAs: info_ta | make_dist
	@echo 'compile TAs'
	$(CONFIG_CC_SW) $(CFLAGS_TUI_TOUCH_DRV_TA) $(LDFLAGS_TUI_TOUCH_DRV_TA) -o $(TOUCH_TA) $(SRC_TUI_TOUCH_DRV_TA) $(SRC_TUI_TOUCH_HAL_TA) $(SRC_TUI_COMMON)
	$(CONFIG_CC_SW) $(CFLAGS_TUI_DISPLAY_DRV_TA) $(LDFLAGS_TUI_DISPLAY_DRV_TA) -o $(DISPLAY_TA) $(SRC_TUI_DISPLAY_DRV_TA) $(SRC_TUI_DISPLAY_HAL_TA) $(SRC_TUI_COMMON)
ifeq ($(CONFIG_ENABLE_TUI_LOW_LEVEL),y)
	$(CONFIG_CC_SW) $(CFLAGS_TUI_TOUCHLL_DRV_TA) $(LDFLAGS_TUI_TOUCHLL_DRV_TA) -o $(TOUCHLL_TA) $(SRC_TUI_TOUCHLL_DRV_TA) $(SRC_TUI_TOUCH_HAL_TA) $(SRC_TUI_COMMON)
	$(CONFIG_CC_SW) $(CFLAGS_TUI_DISPLAYLL_DRV_TA) $(LDFLAGS_TUI_DISPLAYLL_DRV_TA) -o $(DISPLAYLL_TA) $(SRC_TUI_DISPLAYLL_DRV_TA) $(SRC_TUI_DISPLAY_HAL_TA) $(SRC_TUI_COMMON)
endif
ifeq ($(SEC_BUILD_OPTION_TYPE),eng)
	$(CONFIG_CC_SW) $(CFLAGS_TUI_TEST_TA) $(LDFLAGS_TUI_TEST_TA) -o $(TEST_TA) $(SRC_TUI_TEST_TA)
endif

