
ifeq ($(KERNEL_MIXED_BUILD_SUPPORT),true)
include $(KERNEL_MIXED_BUILD_PATH)/Kbuild.common
endif

CONFIG_DEBUG_DIR_NAME := debug
CONFIG_LOG_DIR_NAME := log
CONFIG_ALP_DIR_NAME := parser
CONFIG_ATSC30_DIR_NAME := adapter
CONFIG_VPAS_DIR_NAME := mvd
CONFIG_AUDIO_DIR_NAME := mad
CONFIG_STC_DIR_NAME := stc

# general options for demux2
ifneq ($(MIDEMO_BUILD), true)
ccflags-y += -Wall -Werror
endif
ccflags-y += -I$(src)/demux2
ccflags-y += -I$(src)/demux2/mvd
ccflags-y += -I$(src)/demux2/mad
ccflags-y += -I$(src)/demux2/stc
ccflags-y += -I$(src)/coda_regs
ifeq ($(KERNEL_MIXED_BUILD_SUPPORT),true)
ccflags-y += -I$(KERNEL_MIXED_BUILD_PATH)/drivers/iommu/mtk_iommu_dtv
ccflags-y += -I$(KERNEL_MIXED_BUILD_PATH)/drivers/soc/mediatek/mtk-memory
ccflags-y += -I$(KERNEL_MIXED_BUILD_PATH)/drivers/clk/mediatek
ifneq ($(filter 5.15%,$(subst linux-,,$(KERNEL_VER))),)
ccflags-y += -I$(KERNEL_MIXED_BUILD_PATH)/drivers/soc/mediatek/mtk-tee/tee_5.15
else
ccflags-y += -I$(KERNEL_MIXED_BUILD_PATH)/drivers/soc/mediatek/mtk-tee/tee_6.6
endif
else
ccflags-y += -I$(srctree)/drivers/iommu/mtk_iommu_dtv
ccflags-y += -I$(srctree)/drivers/soc/mediatek/mtk-memory
ccflags-y += -I$(srctree)/drivers/clk/mediatek
endif
ccflags-y += -I$(srctree)/drivers/staging/android/uapi
ccflags-y += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/dvb_adapter
ccflags-y += -I$(src)/demux2/$(CONFIG_DEBUG_DIR_NAME)
ccflags-y += -I$(src)/demux2/log
ccflags-y += -I$(src)/demux2/atsc3_sw_parser/$(CONFIG_ALP_DIR_NAME)
ccflags-y += -I$(src)/demux2/atsc3_sw_parser/$(CONFIG_ATSC30_DIR_NAME)
ccflags-y += -I$(src)/dscmb
ccflags-y += -I$(src)/scrambler
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

# temporary solution to get frontend pad information
ifeq ($(KERNEL_MIXED_BUILD_SUPPORT),true)
ccflags-y += -I$(KERNEL_MIXED_BUILD_PATH)/drivers/media/dvb-frontends/cfm
ccflags-y += -I$(KERNEL_MIXED_BUILD_PATH)/drivers/media/dvb-frontends/mtk-merak-demod
ccflags-y += -I$(KERNEL_MIXED_BUILD_PATH)/../mtktv-modules/drivers/media/dvb-frontends/mtk-merak-demod
else
ccflags-y += -I$(srctree)/drivers/media/dvb-frontends/cfm
ccflags-y += -I$(srctree)/drivers/media/dvb-frontends/mtk-merak-demod
ccflags-y += -I$(srctree)/../mtktv-modules/drivers/media/dvb-frontends/mtk-merak-demod
endif

# add to use mtk-tv-atrace.h
ccflags-y += -I$(srctree)/include/linux

DEBUG_DIR := $(src)/demux2/$(CONFIG_DEBUG_DIR_NAME)/
LOG_DIR := $(src)/demux2/log/
ATSC3_SW_DIR := $(src)/demux2/atsc3_sw_parser/
MVD_DIR := $(src)/demux2/mvd/
MAD_DIR := $(src)/demux2/mad/
STC_DIR := $(src)/demux2/stc/

DEMUX_DEBUG_SRCS := $(notdir $(wildcard $(DEBUG_DIR)/*.c))
DEMUX_DEBUG_OBJS := $(patsubst %.c, %.o, $(DEMUX_DEBUG_SRCS))
DEMUX_LOG_SRCS := $(notdir $(wildcard $(LOG_DIR)/*.c))
DEMUX_LOG_OBJS := $(patsubst %.c, %.o, $(DEMUX_LOG_SRCS))
DEMUX_ALP_SRCS := $(notdir $(wildcard $(ATSC3_SW_DIR)$(CONFIG_ALP_DIR_NAME)/*.c))
DEMUX_ALP_OBJS := $(patsubst %.c, %.o, $(DEMUX_ALP_SRCS))
DEMUX_VPAS_SRCS := $(notdir $(wildcard $(MVD_DIR)/*.c))
DEMUX_VPAS_OBJS := $(patsubst %.c, %.o, $(DEMUX_VPAS_SRCS))
DEMUX_ATSC30_SRCS := $(notdir $(wildcard $(ATSC3_SW_DIR)$(CONFIG_ATSC30_DIR_NAME)/*.c))
DEMUX_ATSC30_OBJS := $(patsubst %.c, %.o, $(DEMUX_ATSC30_SRCS))
DEMUX_AUDIO_SRCS := $(notdir $(wildcard $(MAD_DIR)/*.c))
DEMUX_AUDIO_OBJS := $(patsubst %.c, %.o, $(DEMUX_AUDIO_SRCS))
DEMUX_STC_SRCS := $(notdir $(wildcard $(STC_DIR)/*.c))
DEMUX_STC_OBJS := $(patsubst %.c, %.o, $(DEMUX_STC_SRCS))

ifeq ($(AUDIO_ARCH), lapaf)
ccflags-y += -DAUDIO_MERAK20_FLAG
endif

ifeq ($(BUILD_UTOPIA3K), true)
ccflags-y += -DDMX2LITE
mtk_dmx-objs =	demux2/mtk_dmx_core.o		\
		demux2/mtk_dmx_pm.o		\
		demux2/mtk_dmx_rm.o
else
mtk_dmx-objs =	demux2/mtk_dmx_core.o		\
		demux2/mtk_dmx_dev.o		\
		demux2/mtk_dmx_drv.o		\
		demux2/mtk_dmx_dvrdrv.o		\
		demux2/mtk_dmx_m2ts.o		\
		demux2/mtk_dmx_isdb3.o		\
		demux2/mtk_dmx_atsc3.o		\
		demux2/mtk_dmx_rm.o			\
		demux2/mtk_dmx_tm.o			\
		demux2/mtk_dmx_pm.o			\
		demux2/mtk_dmx_bufctrl.o	\
		demux2/mtk_dmx_sysfs.o		\
		demux2/mtk_dmx_filter.o		\
		demux2/mtk_dmx_pvr.o		\
		demux2/mtk_dmx_riu.o 		\
		demux2/mtk_dmx_ctrl.o		\
		demux2/mtk_dmx_io.o			\
		demux2/mtk_dmx_alp.o		\
		demux2/mtk_dmx_tee_comm.o	\
		demux2/mtk_dmx_tee_if.o		\
		demux2/mtk_dmx_io.o			\
		demux2/mtk_dmx_internal_if.o	\
		demux2/mtk_dmx_mediactrl.o	\
		demux2/mtk_dmx_tsodev.o	\
		demux2/mtk_dmx_tso.o	\
		$(addprefix demux2/$(CONFIG_DEBUG_DIR_NAME)/,$(DEMUX_DEBUG_OBJS))  \
		$(addprefix demux2/$(CONFIG_LOG_DIR_NAME)/,$(DEMUX_LOG_OBJS))  \
		$(addprefix demux2/atsc3_sw_parser/$(CONFIG_ALP_DIR_NAME)/,$(DEMUX_ALP_OBJS))  \
		$(addprefix demux2/$(CONFIG_VPAS_DIR_NAME)/,$(DEMUX_VPAS_OBJS))  \
		$(addprefix demux2/atsc3_sw_parser/$(CONFIG_ATSC30_DIR_NAME)/,$(DEMUX_ATSC30_OBJS))  \
		$(addprefix demux2/$(CONFIG_AUDIO_DIR_NAME)/,$(DEMUX_AUDIO_OBJS))  \
		$(addprefix demux2/$(CONFIG_STC_DIR_NAME)/,$(DEMUX_STC_OBJS))

mtk_dmx-objs += \
	dscmb/mtk_dscmb.o \
	dscmb/drvDSCMB.o

mtk_dmx-objs += \
	scrambler/mtk_scrambler_core.o
endif

# For customized config
CUS_CONFIG_FILE := $(src)/Kbuild.cus
ifeq ($(CUS_CONFIG_FILE), $(wildcard $(CUS_CONFIG_FILE)))
	include $(CUS_CONFIG_FILE)
endif

obj-m := mtk_dmx.o
