##############################################################################
#MediaTek Inc. (C) 2020. All rights reserved.
#Copyright Statement:
#This software/firmware and related documentation ("MediaTek Software") are
#protected under relevant copyright laws. The information contained herein is
#confidential and proprietary to MediaTek Inc. and/or its licensors. Without
#the prior written permission of MediaTek inc. and/or its licensors, any
#reproduction, modification, use or disclosure of MediaTek Software, and
#information contained herein, in whole or in part, shall be strictly
#prohibited.
#BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
#THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
#RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
#ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
#WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
#WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
#NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH
#RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
#INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES
#TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
#RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
#OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MEDIATEK
#SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE
#RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
#STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S
#ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE
#RELEASED HEREUNDER WILL BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE
#MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
#CHARGE PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
#The following software/firmware and/or related documentation ("MediaTek
#Software") have been modified by MediaTek Inc. All revisions are subject to
#any receiver's applicable license agreements with MediaTek Inc.
##############################################################################
LOCAL_PATH ?= $(M)

export CONFIG_VIDEO_MEDIATEK_SOURCE_CAPTURE=m

#ifeq ($(CONFIG_VIDEO_MEDIATEK_SRCCAP_MERAK),y)
#SUB_FOLDER = merak
#else
#SUB_FOLDER = mt5870
#endif

ifeq ($(CONFIG_VIDEO_MEDIATEK_SRCCAP_LEGACY),y)
SUB_FOLDER = mt5870
else
SUB_FOLDER = merak
endif

#MTK_SRCCAP_PATH=$(src)
ccflags-y := -DMSOS_TYPE_LINUX_KERNEL
ccflags-y += -DSTI_PLATFORM_BRING_UP
ccflags-y += -I$(srctree)/drivers/soc/mediatek/mtk-memory
ccflags-y += -I$(srctree)/drivers/soc/mediatek/realtime
ifeq ($(ANDROID_VTS_LTPKTF), yes)
ccflags-y      +=  -DAN_VTS_LTPKTF_BUILD
endif

ifeq ($(MTK_LTP_BUILD),true)
ccflags-y += -DLTP_BUILD
endif

ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/include
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-adc
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-avd
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-common
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-pattern
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-dscl
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-hdmirx
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-memout
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-mux
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-timingdetect
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-vbi
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/mtk-srccap-dv

ccflags-y += -I$(HWREG_HEADER_PATH)
ccflags-y += -I$(HWREG_HEADER_PATH)/common
ccflags-y += -I$(HWREG_HEADER_PATH)/srccap/adc
ccflags-y += -I$(HWREG_HEADER_PATH)/srccap/avd
ccflags-y += -I$(HWREG_HEADER_PATH)/srccap/common
ccflags-y += -I$(HWREG_HEADER_PATH)/srccap/dscl
ccflags-y += -I$(HWREG_HEADER_PATH)/srccap/hdmirx
ccflags-y += -I$(HWREG_HEADER_PATH)/srccap/memout
ccflags-y += -I$(HWREG_HEADER_PATH)/srccap/mux
ccflags-y += -I$(HWREG_HEADER_PATH)/srccap/timingdetect
ccflags-y += -I$(HWREG_HEADER_PATH)/srccap/dv
#ccflags-y += -I$(MDRV_MTKDRV_HWREG_SRC_DIR)/include
#ccflags-y += -I$(MDRV_MTKDRV_HWREG_SRC_DIR)/drv/vbi

#temp
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/common
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/srccap/adc
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/srccap/avd
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/srccap/common
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/srccap/dscl
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/srccap/hdmirx
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/srccap/memout
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/srccap/mux
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/srccap/timingdetect
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/srccap/vbi
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/srccap/dv
#ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/hwreg/include
#ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/hwreg/drv/vbi
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/meta_utility
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/pqmap_utility
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/xc_alg
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/xc_alg/reg
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/pixelmonitor
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/scriptmgt
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/mtktv-public-if/hwreg
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/pqu

ccflags-y += -I$(srctree)/drivers/iommu/mtk_iommu_dtv
#ccflags-y += -I$(MDRV_MTKDRV_SCRIPTMGT_SRC_DIR)/include

ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/common
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/common/linux_kernel
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/utp
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/utp/drv/hdmirx/include
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/utp/drv/hdmirx
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/utp/drv/avd/include
ccflags-y += -I$(LOCAL_PATH)/$(SUB_FOLDER)/utp/drv/avd
#ccflags-y += -I$(LOCAL_PATH)/utp/hal/$(CONFIG_MSTAR_CHIP_NAME)/avd/include
#ccflags-y += -I$(LOCAL_PATH)/utp/hal/$(CONFIG_MSTAR_CHIP_NAME)/avd

ifeq ($(PRODUCT_OUT),)
ccflags-y += -I$(MISDK_DIR)/utopia/utpa2-secure/build/bsp/TEE_HEADER
else
ccflags-y += -I$(ANDROID_TOP)/$(PRODUCT_OUT)/obj/SECURE_UTOPIA/TEE_HEADER
endif
ccflags-y += -I$(MTK_OBJ_DIR)/misdk/utopia/utpa2-secure/obj/SECURE_UTOPIA/TEE_HEADER

CONFIG_MSTAR_CHIP_NAME := $(subst ",,$(CONFIG_MSTAR_CHIP_NAME))

mtk-srccap-objs := $(SUB_FOLDER)/mtk_srccap.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-adc/mtk_srccap_adc.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-avd/mtk_srccap_avd.o \
					$(SUB_FOLDER)/mtk-srccap-avd/show_param.o \
					$(SUB_FOLDER)/mtk-srccap-avd/mtk_srccap_avd_avd.o \
					$(SUB_FOLDER)/mtk-srccap-avd/mtk_srccap_avd_mux.o \
					$(SUB_FOLDER)/mtk-srccap-avd/mtk_srccap_avd_colorsystem.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-common/mtk_srccap_common.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-common/mtk_srccap_common_irq.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-common/mtk_srccap_common_pqmap.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-common/mtk_srccap_common_ca.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-hdmirx/mtk_srccap_hdmirx.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-mux/mtk_srccap_mux.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-timingdetect/mtk_srccap_timingdetect.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-dscl/mtk_srccap_dscl.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-memout/mtk_srccap_memout.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-pattern/mtk_srccap_pattern.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-memout/mtk_srccap_memout_svp.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-vbi/mtk_srccap_vbi.o $(SUB_FOLDER)/mtk-srccap-vbi/mtk_drv_vbi.o $(SUB_FOLDER)/mtk-srccap-vbi/show_param_vbi.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_common.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_descrb.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_dma.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_sd.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_meta.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_utility.o

#ifeq ($(CONFIG_VIDEO_MEDIATEK_SRCCAP_MERAK),y)
ifneq ($(CONFIG_VIDEO_MEDIATEK_SRCCAP_LEGACY),y)
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-hdmirx/mtk_srccap_hdmirx_phy.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-hdmirx/mtk_srccap_hdmirx_sysfs.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-hdmirx/mtk_srccap_hdmirx_packetreceiver.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-hdmirx/mtk_srccap_hdmirx_dsc.o
mtk-srccap-objs += $(SUB_FOLDER)/mtk-srccap-hdmirx/mtk_srccap_hdmirx_mux.o
endif

mtk-srccap-objs += $(SUB_FOLDER)/utp/sti_msos.o
mtk-srccap-objs += $(SUB_FOLDER)/utp/drv/avd/drvAVD.o $(SUB_FOLDER)/utp/drv/avd/AVD.o
mtk-srccap-objs += $(SUB_FOLDER)/utp/drv/hdmirx/mdrv_hdmi.o

ifneq ($(MIDEMO_BUILD), true)
#Workaround -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_meta.o = -Wno-format
ifneq ($(ANDROID_VERSION),)
CFLAGS_$(SUB_FOLDER)/mtk-srccap-hdmirx/mtk_srccap_hdmirx.o = -Wno-frame-larger-than=
endif
#End of Workaround -Werror

CFLAGS_$(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_descrb.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_dv_meta.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_utility.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_common.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_dma.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-dv/mtk_srccap_dv_sd.o = -Werror
endif

obj-$(CONFIG_VIDEO_MEDIATEK_SOURCE_CAPTURE)+= mtk-srccap.o

ifneq ($(MIDEMO_BUILD), true)
CFLAGS_$(SUB_FOLDER)/mtk_srccap.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-adc/mtk_srccap_adc.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-common/mtk_srccap_common.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-common/mtk_srccap_common_irq.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-common/mtk_srccap_common_pqmap.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-common/mtk_srccap_common_ca.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-mux/mtk_srccap_mux.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-timingdetect/mtk_srccap_timingdetect.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-dscl/mtk_srccap_dscl.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-memout/mtk_srccap_memout.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-memout/mtk_srccap_memout_svp.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-pattern/mtk_srccap_pattern.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-vbi/mtk_srccap_vbi.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-vbi/mtk_drv_vbi.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-vbi/show_param_vbi.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-avd/mtk_srccap_avd.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-avd/show_param.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-avd/mtk_srccap_avd_avd.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-avd/mtk_srccap_avd_mux.o = -Werror
CFLAGS_$(SUB_FOLDER)/mtk-srccap-avd/mtk_srccap_avd_colorsystem.o = -Werror
CFLAGS_$(SUB_FOLDER)/utp/drv/avd/drvAVD.o = -Werror
CFLAGS_$(SUB_FOLDER)/utp/drv/avd/AVD.o = -Werror
endif
