[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/make/common/Custom.bld b/mcu/make/common/Custom.bld
new file mode 100644
index 0000000..a293b0e
--- /dev/null
+++ b/mcu/make/common/Custom.bld
@@ -0,0 +1,35 @@
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+#
+#
+# Please don't edit the line, even space etc.
+CUSTOM_RELEASE = FALSE
\ No newline at end of file
diff --git a/mcu/make/common/build.mak b/mcu/make/common/build.mak
new file mode 100644
index 0000000..adc3bc0
--- /dev/null
+++ b/mcu/make/common/build.mak
@@ -0,0 +1,2778 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+#
+# *************************************************************************
+# build.mak - MOLY build script
+#
+# USAGE:
+# ./tools/make -f[make file] [build_flag] <CUSTOMER> <PROJECT> <ACTION>
+#
+# Example:
+# ./tools/make -fmake/common/build.mak -r -R CUSTOMER=mtk PROJECT=gprs new
+#
+# IMPORTANT NOTES:
+#
+# *************************************************************************
+
+# *************************************************************************
+# Set SUFFIXES
+# *************************************************************************
+.SUFFIXES:
+.SUFFIXES: .lis
+
+# *************************************************************************
+# Set PHONY
+# *************************************************************************
+.PHONY : new cleanall emigen cmmgen asngen nvram_auto_gen codegen asnregen update genlog cleanbin genverno gencustominfo cksysdrv cksysdrv_slim cksysdrv_clean scan remake libs code_generate cleancodegen cleanmod done startbuildlibs gen_infolog drv_feature_check ckmake ckmemlayout ckmemlayout2 removecode genremoveinfo clean_codegen slim_codegen slim_mcddll slim_update ss_lcs_gen backup elfpatch cp_dsp_files FORCE nvram_edit_h_gen gen_gfh_cfg umts_gen asngen asngen_l4 asnregen copycmm copro_info_gen copro_injection gen_setup_env mcf_gen
+# *************************************************************************
+# Set DELETE_ON_ERROR
+# *************************************************************************
+.DELETE_ON_ERROR:
+# *************************************************************************
+# MediaTek is the default CUSTOMER.
+# *************************************************************************
+
+# *************************************************************************
+# Common macro definitions
+# *************************************************************************
+#$(call Upper,$(1)) ...... reference $(1) in upper-case letters
+Upper = $(subst z,Z,$(subst y,Y,$(subst x,X,$(subst w,W,$(subst v,V,$(subst u,U,$(subst t,T,$(subst s,S,$(subst r,R,$(subst q,Q,$(subst p,P,$(subst o,O,$(subst n,N,$(subst m,M,$(subst l,L,$(subst k,K,$(subst j,J,$(subst i,I,$(subst h,H,$(subst g,G,$(subst f,F,$(subst e,E,$(subst d,D,$(subst c,C,$(subst b,B,$(subst a,A,$(1)))))))))))))))))))))))))))
+Lower = $(subst Z,z,$(subst Y,y,$(subst X,x,$(subst W,w,$(subst V,v,$(subst U,u,$(subst T,t,$(subst S,s,$(subst R,r,$(subst Q,q,$(subst P,p,$(subst O,o,$(subst N,n,$(subst M,m,$(subst L,l,$(subst K,k,$(subst J,j,$(subst I,i,$(subst H,h,$(subst G,g,$(subst F,f,$(subst E,e,$(subst D,d,$(subst C,c,$(subst B,b,$(subst A,a,$(1)))))))))))))))))))))))))))
+# -----------------------------
+# Include scripts
+# -----------------------------
+include make/common/option.mak # Build option definitons
+-include make/common/internal_action.mak
+-include make/common/standalone_action.mak
+ifeq ($(strip $(OS_VERSION)),MSWin32)
+-include tools/NVRAMStatistic/nvram_edit_gen.mak
+endif
+
+ifneq ($(wildcard ./mtk_tools/CCACHE_SUPPORT.txt),)
+ifdef CCACHE_DIR
+-include make/common/ccache.mak
+endif
+endif
+
+ifdef DETERMINISTIC
+ ifeq ($(strip $(DETERMINISTIC)),TRUE)
+ DISABLE_PWD_PATH := TRUE
+ endif
+endif
+
+ifdef DISABLE_PWD_PATH
+ ifeq ($(strip $(DISABLE_PWD_PATH)),TRUE)
+ CFLAGS += -fdebug-prefix-map=$(PWD)=.
+ CPLUSFLAGS += -fdebug-prefix-map=$(PWD)=.
+ endif
+endif
+
+ifeq ($(strip $(COMPILER)),GCC)
+ ifneq ($(strip $(COMPOBJS)),)
+ LINK_OBJ_LIST =$(call sort,$(foreach lib,$(COMPOBJS),-l$(patsubst lib%,%,$(basename $(notdir $(lib))))))
+ endif
+ ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ LIBDIR_TEMP := $(CUS_MTK_LIB)
+ ifneq ($(strip $(CUS_REL_SRC_COMP) $(CUS_REL_MTK_COMP)),)
+ LINK_LIB_LIST = $(call sort,$(foreach lib,$(COMPLIST) $(CUS_REL_MTK_COMP),-l$(lib)))
+ endif
+ LINK_SEARCH_PATH += -L "$(COMPLIBDIR)" -L "$(CUS_MTK_LIB)"
+ LINK_SEARCH_PATH += $(foreach compobjs,$(COMPOBJS) $(BL_COMPOBJS),-L "$(dir $(compobjs))")
+ else
+ LIBDIR_TEMP := $(COMPLIBDIR)
+ ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ LINK_LIB_LIST = $(call sort,$(foreach lib,$(COMPLIST),-l$(lib)))
+ else
+ LINK_LIB_LIST = $(call sort,$(foreach lib,$(COMPLIST) $(CUS_REL_MTK_COMP),-l$(lib)))
+ endif
+ LINK_SEARCH_PATH += -L "$(COMPLIBDIR)"
+ LINK_SEARCH_PATH += $(foreach compobjs,$(COMPOBJS) $(BL_COMPOBJS),-L "$(dir $(compobjs))")
+ LINK_SEARCH_PATH += -L "$(CUS_MTK_LIB)"
+ endif
+ ifneq ($(filter __CHECK_SYMBOL_MULTIPLE_DEFINITION__,$(strip $(COM_DEFS))),)
+ LINK_FILTER_LIB := $(NO_WHOLE_ARCHIVE_LIB)
+ LINK_FILTER_LIB_LIST := $(call sort,$(foreach lib,$(LINK_FILTER_LIB),-l$(lib)))
+ LINK_LIB_LIST := $(filter-out -l $(LINK_FILTER_LIB_LIST), $(LINK_LIB_LIST))
+ LINK_OBJ_LIST := $(filter-out -l $(LINK_FILTER_LIB_LIST), $(LINK_OBJ_LIST))
+ WHOLE_ARCHIVE := $(strip $(LINK_OPTION_PREFIX))--whole-archive
+ NO_WHOLE_ARCHIVE := $(strip $(LINK_OPTION_PREFIX))--no-whole-archive
+ endif
+ LINK_SYS_LIB_LIST += -lnosys -lm -lc -lgcc
+ ifeq ($(strip $(MAIF_SUPPORT)),TRUE)
+ LINK_SYS_LIB_LIST += -lsupc++
+ endif
+ LNKOPT += $(strip $(LINK_OPTION_PREFIX))--start-group $(strip $(LINK_SYS_LIB_LIST)) $(WHOLE_ARCHIVE) $(sort $(strip $(LINK_OBJ_LIST) $(LINK_LIB_LIST))) $(NO_WHOLE_ARCHIVE) $(LINK_FILTER_LIB_LIST) $(strip $(LINK_OPTION_PREFIX))--end-group
+ LNKOPT := $(subst \,/,$(LNKOPT))
+ ADEFTrans = $(strip -defsym $(1)=$(strip $(2)))
+else
+ ADEFTrans = -pd "$(1) SETL {$(strip $(2))}"
+endif
+
+-include $(strip $(TMPDIR))/~cleanmod.tmp # Define clean modules
+ifndef DO_CLEAN_MODULE
+ # Default clean all
+ DO_CLEAN_MODULE = FALSE
+ CLEAN_MODS =
+else
+ ifneq ($(filter L1,$(call Upper,$(CLEAN_MODS))),)
+ NEED_CLEAN_CGENLST = TRUE
+ else
+ NEED_CLEAN_CGENLST = FALSE
+ endif
+ ifneq ($(filter GL1,$(call Upper,$(CLEAN_MODS))),)
+ CLEAN_MODS := $(CLEAN_MODS) l1_ext
+ endif
+ ifneq ($(filter EPHY,$(call Upper,$(CLEAN_MODS))),)
+ CLEAN_MODS := $(CLEAN_MODS) ephy_ext
+ endif
+ ifneq ($(filter EL1,$(call Upper,$(CLEAN_MODS))),)
+ CLEAN_MODS := $(CLEAN_MODS) el1d_ext
+ endif
+ ifneq ($(filter CL1,$(call Upper,$(CLEAN_MODS))),)
+ CLEAN_MODS := $(CLEAN_MODS) rfd
+ endif
+ ifneq ($(filter MML1_RF,$(call Upper,$(CLEAN_MODS))),)
+ CLEAN_MODS := $(CLEAN_MODS) mml1_rf_ext_pcore
+ endif
+ ifneq ($(filter NL1,$(call Upper,$(CLEAN_MODS))),)
+ CLEAN_MODS := $(CLEAN_MODS) nl1_ext
+ endif
+endif
+
+-include $(strip $(TMPDIR))/~updatemod.tmp # Define update modules
+ifndef DO_UPDATE_MODULE
+ # Default update all
+ DO_UPDATE_MODULE = FALSE
+ UPDATE_MODS =
+endif
+
+-include $(strip $(TMPDIR))/~remakemod.tmp # Define remake modules
+ifndef DO_REMAKE_MODULE
+ # Default remake all
+ DO_REMAKE_MODULE = FALSE
+ REMAKE_MODS =
+endif
+
+-include $(strip $(TMPDIR))/~scanmod.tmp # Define scan modules
+ifndef DO_SCAN_MODULE
+ # Default scan all
+ DO_SCAN_MODULE = FALSE
+ SCAN_MODS =
+endif
+
+# default mbis tempfile
+ifndef MBIS_BUILD_TIME_TMP
+ MBIS_BUILD_TIME_TMP = tmp
+endif
+ifndef MBIS_BUILD_INFO_LOG
+ MBIS_BUILD_INFO_LOG = tmp
+endif
+
+ifndef DUMMY_LIS
+ DUMMY_LIS = FALSE
+endif
+
+CHK_LTE_COMP = FALSE
+
+FULL_PRJ_NAME = $(strip $(PROJECT_NAME))($(strip $(FLAVOR)))
+
+####################################################################
+# End of alias build settings.
+####################################################################
+
+include make/common/xgeninc.mak
+
+COM_DEFS_TARGET := $(COM_DEFS)
+COMMINCDIRS_TARGET := $(COMMINCDIRS)
+RULESDIR_TARGET := $(RULESDIR)
+XGEN_INC_DIR_ORI := $(XGEN_INC_DIR)
+XGEN_INC_DIR_TARGET ?= $(XGEN_INC_DIR)
+
+#################
+# MoDIS setting #
+#################
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ include make/common/modisconfig.mak
+endif
+
+# *************************************************************************
+# Remove Repeated Common Include Path
+# *************************************************************************
+XGEN_INC_DIR += $(COMMINCDIRS)
+XGEN_INC_DIR_TARGET += $(COMMINCDIRS_TARGET)
+ifneq ($(call uc,$(strip $(ACTION))),CRIP)
+ COMMINCDIRS := $(call uniq,$(COMMINCDIRS))
+ XGEN_INC_DIR := $(call uniq,$(XGEN_INC_DIR))
+ COMMINCDIRS_TARGET := $(call uniq,$(COMMINCDIRS_TARGET))
+ XGEN_INC_DIR_TARGET := $(call uniq,$(XGEN_INC_DIR_TARGET))
+endif
+
+# *************************************************************************
+# Target Definitions
+# *************************************************************************
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ MTK_LIBS = $(foreach COMP,$(CUS_REL_MTK_COMP),$(CUS_MTK_LIB)/lib$(COMP).a)
+else
+ MTK_LIBS =
+endif
+
+ifeq ($(strip $(DO_UPDATE_MODULE)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(filter gl1,$(UPDATE_MODS)),)
+ UPDATE_MODS := $(UPDATE_MODS) l1_ext
+ endif
+ ifneq ($(filter ephy,$(UPDATE_MODS)),)
+ UPDATE_MODS := $(UPDATE_MODS) ephy_ext
+ endif
+ ifneq ($(filter el1d el1,$(UPDATE_MODS)),)
+ UPDATE_MODS := $(UPDATE_MODS) el1d_ext
+ endif
+ ifneq ($(filter mml1_rf,$(UPDATE_MODS)),)
+ UPDATE_MODS := $(UPDATE_MODS) mml1_rf_ext_pcore
+ endif
+ ifneq ($(filter nl1,$(UPDATE_MODS)),)
+ UPDATE_MODS := $(UPDATE_MODS) nl1_ext
+ endif
+ ifeq ($(filter cxif_check,$(UPDATE_MODS)),)
+ ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ UPDATE_MODS := $(UPDATE_MODS) cxif_check
+ endif
+ endif
+ ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ ifeq ($(filter dbinfo,$(UPDATE_MODS)),)
+ ifneq ($(TEST_LOAD_TYPE),BASIC)
+ UPDATE_MODS := $(UPDATE_MODS) dbinfo
+ endif
+ endif
+ endif
+ ifeq ($(filter verno,$(UPDATE_MODS)),)
+ UPDATE_MODS := $(UPDATE_MODS) verno
+ endif
+ endif
+ COMPLIBLIST = $(call sort,$(foreach comp,$(UPDATE_MODS),$(comp).a))
+else
+ ifeq ($(strip $(DO_REMAKE_MODULE)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(filter gl1,$(REMAKE_MODS)),)
+ REMAKE_MODS := $(REMAKE_MODS) l1_ext
+ endif
+ ifneq ($(filter ephy,$(REMAKE_MODS)),)
+ REMAKE_MODS := $(REMAKE_MODS) ephy_ext
+ endif
+ ifneq ($(filter el1d el1,$(REMAKE_MODS)),)
+ REMAKE_MODS := $(REMAKE_MODS) el1d_ext
+ endif
+ ifneq ($(filter mml1_rf,$(REMAKE_MODS)),)
+ REMAKE_MODS := $(REMAKE_MODS) mml1_rf_ext_pcore
+ endif
+ ifneq ($(filter nl1,$(REMAKE_MODS)),)
+ REMAKE_MODS := $(REMAKE_MODS) nl1_ext
+ endif
+ ifeq ($(filter cxif_check,$(REMAKE_MODS)),)
+ ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ REMAKE_MODS := $(REMAKE_MODS) cxif_check
+ endif
+ endif
+ ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ ifeq ($(filter dbinfo,$(REMAKE_MODS)),)
+ ifneq ($(TEST_LOAD_TYPE),BASIC)
+ REMAKE_MODS := $(REMAKE_MODS) dbinfo
+ endif
+ endif
+ endif
+ ifeq ($(filter verno,$(REMAKE_MODS)),)
+ REMAKE_MODS := $(REMAKE_MODS) verno
+ endif
+ endif
+ COMPLIBLIST = $(call sort,$(foreach comp,$(REMAKE_MODS),$(comp).a))
+ else
+ COMPLIBLIST = $(call sort,$(foreach comp,$(COMPLIST),$(comp).a))
+ endif
+endif
+
+ifeq ($(strip $(DO_UPDATE_MODULE)),TRUE)
+ COMPSCANLIST = $(UPDATE_MODS)
+else
+ ifeq ($(strip $(DO_SCAN_MODULE)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(filter gl1,$(SCAN_MODS)),)
+ SCAN_MODS := $(SCAN_MODS) l1_ext
+ endif
+ ifneq ($(filter ephy,$(SCAN_MODS)),)
+ SCAN_MODS := $(SCAN_MODS) ephy_ext
+ endif
+ ifneq ($(filter el1d el1,$(SCAN_MODS)),)
+ SCAN_MODS := $(SCAN_MODS) el1d_ext
+ endif
+ ifneq ($(filter mml1_rf,$(SCAN_MODS)),)
+ SCAN_MODS := $(SCAN_MODS) mml1_rf_ext_pcore
+ endif
+ ifneq ($(filter nl1,$(SCAN_MODS)),)
+ SCAN_MODS := $(SCAN_MODS) nl1_ext
+ endif
+ endif
+ COMPSCANLIST = $(SCAN_MODS)
+ else
+ COMPSCANLIST = $(COMPLIST)
+ endif
+endif
+
+CHK_COMPLIST = $(filter-out $(foreach comp,$(COMPLIST),$(comp).a),$(call lc,$(COMPLIBLIST)))
+ifneq ($(words $(CHK_COMPLIST)),0)
+ ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ $(error $(foreach comp,$(CHK_COMPLIST),"$(comp)") NOT in CUS_REL_SRC_COMP or NOT in CUS_REL_PAR_SRC_COMP)
+ else
+ $(error $(foreach comp,$(CHK_COMPLIST),"$(comp)") NOT in COMPLIST)
+ endif
+endif
+
+ALL_MODULELIS := $(foreach comp,$(sort $(call uniq,$(COMPLIST) $(CUS_REL_MTK_COMP))),$(comp).lis)
+ALL_MODULEDEF := $(foreach mod,$(sort $(call uniq,$(COMPLIST) $(CUS_REL_MTK_COMP))),$(strip $(MODULEINFODIR))/$(mod)/$(mod).def)
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ MODULELIS := $(foreach comp,$(sort $(COMPLIST)),$(comp).lis)
+else
+ ifndef MODULELIS
+ MODULELIS := $(foreach comp,$(call lc,$(COMPLIBLIST)),$(subst .a,.lis,$(comp)))
+ endif
+endif
+
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ALL_MODULELIS := $(MODULELIS)
+ ALL_MODULEDEF := $(foreach mod,$(sort $(call uniq,$(COMPLIST))),$(strip $(MODULEINFODIR))/$(mod)/$(mod).def)
+endif
+
+CHK_SCANLIST = $(filter-out $(foreach comp,$(COMPLIST),$(comp)),$(COMPSCANLIST))
+ifneq ($(words $(CHK_SCANLIST)),0)
+ $(error $(CHK_SCANLIST) NOT in COMPLIST)
+endif
+
+COMP_DEP_LIST = $(foreach comp,$(sort $(COMPSCANLIST)),$(comp).dep)
+
+# *************************************************************************
+# Search Paths
+# *************************************************************************
+vpath
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+vpath %.dep $(subst \,/,$(strip $(RULESDIR)))
+vpath %.a $(strip $(COMPLIBDIR))
+vpath %.bin $(strip $(TARGDIR))
+endif
+
+# *************************************************************************
+# Debug
+# *************************************************************************
+ifndef CUSTOM_DEBUG_MODULES
+ CUSTOM_DEBUG_MODULES :=
+else
+ ifneq ($(filter ALL,$(call Upper,$(CUSTOM_DEBUG_MODULES))),)
+ CUSTOM_DEBUG_MODULES := $(call Upper,$(COMPLIST))
+ else
+ ifneq ($(strip $(CUSTOM_DEBUG_MODULES)),NONE)
+ CUSTOM_DEBUG_MODULES := $(filter-out NONE,$(call Upper,$(CUSTOM_DEBUG_MODULES)))
+ endif
+ endif
+endif
+
+ifndef CUSTOM_NON_DEBUG_MODULES
+ CUSTOM_NON_DEBUG_MODULES :=
+else
+ ifneq ($(filter ALL,$(call Upper,$(CUSTOM_NON_DEBUG_MODULES))),)
+ CUSTOM_NON_DEBUG_MODULES := $(call Upper,$(COMPLIST))
+ else
+ ifneq ($(strip $(CUSTOM_NON_DEBUG_MODULES)),NONE)
+ CUSTOM_NON_DEBUG_MODULES := $(filter-out NONE,$(call Upper,$(CUSTOM_NON_DEBUG_MODULES)))
+ endif
+ endif
+endif
+
+#************************************************************************
+# Dependency check
+#************************************************************************
+# default AUTO_CHECK_DEPEND value depends on the build action, if it is not passed by make command from make.pl
+ifndef SMART_CHECK
+ SMART_CHECK := FALSE
+endif
+
+ifeq ($(SMART_CHECK), TRUE)
+ AUTO_CHECK_DEPEND := TRUE
+endif
+
+ifndef AUTO_CHECK_DEPEND
+ AUTO_CHECK_DEPEND := FALSE
+endif
+ifneq ($(filter $(MAKECMDGOALS),remake cgen),)
+ AUTO_CHECK_CGEN := TRUE
+else
+ AUTO_CHECK_CGEN := $(AUTO_CHECK_DEPEND)
+endif
+
+# NEED_CHECK_DEPEND_LIST: the . files that affect all actions
+RULE_DEF_FOLDER = $(wildcard make/common/rule_def/*.mak)
+NEED_CHECK_DEPEND_LIST := $(PROJECT_MAKEFILE)
+NEED_CHECK_DEPEND_LIST += make/common/build.mak
+NEED_CHECK_DEPEND_LIST += make/common/buildconfig.mak
+NEED_CHECK_DEPEND_LIST += make/common/option.mak
+NEED_CHECK_DEPEND_LIST += make/common/codegen.mak
+NEED_CHECK_DEPEND_LIST += $(strip $(RULE_DEF_FOLDER))
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ NEED_CHECK_DEPEND_LIST += make/common/modisconfig.mak
+ NEED_CHECK_MODIS_LIST := make/common/modisbuild.mak
+endif
+
+# AUTO_CHECK_DEBUG = TRUE will not delete temp file for gen dep
+AUTO_CHECK_DEBUG := FALSE
+
+define ckMemLayoutProcess
+ckMemLayout_$(1).det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,ckMemLayout_$(1).det,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$$(IF_EXIST) $$(FIXPATH)/tools/ckMemLayout.pl $$(THEN)\
+ $$(IF_EXIST) $$(strip $(TARGDIR))/$(2) $$(THEN)\
+ $$(IF_EXIST) $$(strip $(TARGDIR))/$(3) $$(THEN)\
+ (perl $$(FIXPATH)/tools/ckMemLayout.pl 2 TRUE $(4) "$$(strip $(TARGDIR))/$(2)" $$(TMPDIR)/~flash_cfg_tmp.c "$$(strip $$(PROJECT_MAKEFILE))" $$(strip $$(BUILD_SYSDIR)) $$(strip $$(INSIDE_MTK)) $(strip $(INFOMAKELOG)) > $$(strip $$(COMPLOGDIR))/ckmemlayout2_$(1).log 2>&1)$$(WITH) \
+ ($$(IF_ERR_TRUE) $$(THEN) (echo Error: Failed in ckMemLayout.pl. Please check $$(strip $$(COMPLOGDIR))/ckmemlayout2_$(1).log $$(WITH) exit 1) $$(CMD_END))\
+ $$(CMD_END)\
+ $$(CMD_END)\
+ $$(CMD_END)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,ckMemLayout_$(1).det,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endef
+ifeq ($(strip $(COMPILER)),GCC)
+$(eval $(call ckMemLayoutProcess,target,$(MAP_FILE),$(SYM_FILE),$(SCATTERFILE)))
+else
+$(eval $(call ckMemLayoutProcess,target,$(LIS_FILE),$(SYM_FILE),$(SCATTERFILE)))
+endif
+#*************************************************************************
+# PCIBT check
+#*************************************************************************
+ifneq ($(strip $(NO_PCIBT)),TRUE)
+ -include make/common/comp_pcibt.mak
+endif
+
+# *************************************************************************
+# New Build
+# *************************************************************************
+ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+# [TATAKA Migrate] multi-mode skip sysgen asngen asnregen
+# multi-mode
+ ifneq ($(strip $(FIVEG_MODE_SUPPORT)),NONE)
+new : backup cleanall genlog sysgen cleancodegen cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen nras_gen asngen umts_gen codegen asnregen
+ else
+new : backup cleanall genlog sysgen cleancodegen cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen asngen umts_gen codegen asnregen
+ endif
+ else
+# HSPA, TDD128HSPA
+new : backup cleanall genlog sysgen cleancodegen cp_mddata mspm_gen icd_ac_gen mipc_gen asngen umts_gen codegen asnregen
+ endif
+else
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+# GSM, GPRS
+new : backup cleanall genlog sysgen cleancodegen cp_mddata mspm_gen icd_ac_gen mipc_gen asngen codegen asnregen
+ else
+# single-mode
+# [TATAKA Migrate] single-mode skip sysgen asngen asnregen
+new : backup cleanall genlog sysgen cleancodegen cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen asngen codegen
+ endif
+endif
+
+else #mpd swrd
+
+ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+# multi-mode
+new : backup cleanall genlog sysgen cleancodegen cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen codegen
+ else
+# HSPA, TDD128HSPA
+new : backup cleanall genlog sysgen cleancodegen cp_mddata mspm_gen icd_ac_gen mipc_gen codegen
+ endif
+else
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+# GSM, GPRS
+new : backup cleanall genlog sysgen cleancodegen cp_mddata mspm_gen icd_ac_gen mipc_gen codegen
+ else
+new : backup cleanall genlog sysgen cleancodegen cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen codegen
+ endif
+endif
+
+endif
+
+# *************************************************************************
+# concatenate new and update
+# *************************************************************************
+new : update
+
+# *************************************************************************
+# Update Build
+# *************************************************************************
+ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+# HSPA, TDD128HSPA, multi-mode
+ ifneq ($(strip $(FIVEG_MODE_SUPPORT)),NONE)
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen nras_gen umts_gen codegen
+ else
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen umts_gen codegen
+ endif
+ else
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+# GSM, GPRS
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen codegen
+ else
+# single-mode
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen codegen
+ endif
+ endif
+ else
+# CUSTOM_RELEASE = FALSE
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+# HSPA, TDD128HSPA, multi-mode
+ ifneq ($(strip $(FIVEG_MODE_SUPPORT)),NONE)
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen nras_gen umts_gen codegen
+ else
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen umts_gen codegen
+ endif
+ else
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+# GSM, GPRS
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen codegen
+ else
+# single-mode
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen codegen
+ endif
+ endif
+ endif
+
+else # new swrd
+
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+# HSPA, TDD128HSPA, multi-mode
+ ifneq ($(strip $(FIVEG_MODE_SUPPORT)),NONE)
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen nras_gen nvram_edit_h_gen nvram_auto_gen genmoduleinfo
+ else
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen
+ endif
+ else
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+# GSM, GPRS
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen
+ else
+# single-mode
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen
+ endif
+ endif
+else
+# CUSTOM_RELEASE = FALSE
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+# HSPA, TDD128HSPA, multi-mode
+ ifneq ($(strip $(FIVEG_MODE_SUPPORT)),NONE)
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen nras_gen genmoduleinfo
+ else
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen
+ endif
+ else
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+# GSM, GPRS
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen
+ else
+# single-mode
+update : backup genlog sysgen cleanbin cp_mddata mspm_gen icd_ac_gen mipc_gen eas_gen
+ endif
+ endif
+endif
+
+endif
+
+
+# *************************************************************************
+# concatenate mcddll
+# *************************************************************************
+ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ifneq ($(strip $(ACTION)),slim_update)
+# [TATAKA Migrate] only NON single-mode need to build mcddll_update
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+update : mcddll_update
+ endif
+endif
+endif
+
+# *************************************************************************
+# copy L1 headers for xl1r
+# *************************************************************************
+ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ifeq ($(strip $(FPGA_L1_ROUTER_SUPPORT)),TRUE)
+update : xl1r_gen
+endif
+endif
+
+# *************************************************************************
+# concatenate errc_gen
+# *************************************************************************
+ifeq ($(strip $(MPD_SOURCE_4G_BUILD)),TRUE)
+update : errc_gen
+endif
+
+# *************************************************************************
+# Gen caband tbl
+# *************************************************************************
+update : caband_gen
+
+# *************************************************************************
+# concatenate update and remake
+# *************************************************************************
+update : cksysdrv_slim remake
+
+# *************************************************************************
+# Remake Build
+# *************************************************************************
+ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+remake : rcdb_gen
+endif
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ remake : backup genlog cleanbin genverno sysgen libs $(BIN_FILE) end
+else
+ remake : genlog cleanbin genverno sysgen
+endif
+
+include make/common/codegen.mak
+
+# *************************************************************************
+# update dsp Build flow
+# *************************************************************************
+update_dsp: sysgen dsp_process genverno update_cgen_dsp libs $(BIN_FILE) end
+
+
+# *************************************************************************
+# Target: cp_mddata
+# copy custom/service/cacerts/ to build/$proj/$flavor/cacerts/
+# *************************************************************************
+cp_mddata: FORCE
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $(strip $(PROJDIR))/mddata/ $(THEN) ($(DEL_DIR) $(strip $(PROJDIR))/mddata/) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/mddata/cacerts/ $(THEN) ($(MKDIR) $(strip $(PROJDIR))/mddata/cacerts/) $(CMD_END)
+ @$(COPY_DIR) ./custom/service/cacerts/ $(strip $(PROJDIR))/mddata/cacerts
+ @$(COPY_DIR) ./custom/service/apncfg/ $(strip $(PROJDIR))/mddata/apncfg
+ @$(COPY_DIR) ./custom/service/plmn/ $(strip $(PROJDIR))/mddata/plmn
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: LINK_BIN_FILE
+# Executable Targets
+# *************************************************************************
+ifeq ($(strip $(COMPILER)),GCC)
+LINK_BIN_FILE: AUTOADJUST_SCATTERFILE GCC_LINK_BIN_FILE
+endif
+
+# *************************************************************************
+# TARGET: AUTOADJUST_SCATTERFILE(Only exists under GCC)
+# *************************************************************************
+AUTOADJUST_SCATTERFILE :
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_EXIST) ./tools/AutoAdjustInputSection.pl $(THEN) \
+ perl ./tools/AutoAdjustInputSection.pl "$(CROSS)" "$(strip $(PROJECT_MAKEFILE))" $(strip $(INFOMAKELOG)) $(SCATTERFILE) > $(strip $(COMPLOGDIR))/AutoAdjustInputSection.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in AutoAdjustInputSection.pl. Please check $(strip $(COMPLOGDIR))/AutoAdjustInputSection.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+ @$(IF_EXIST) ./tools/AutoAdjustL2CacheLockSection.pl $(THEN) \
+ perl ./tools/AutoAdjustL2CacheLockSection.pl "$(CROSS)" $(SCATTERFILE) $(strip $(TMPDIR))/ > $(strip $(COMPLOGDIR))/AutoAdjustL2CacheLockSection.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in AutoAdjustL2CacheLockSection.pl. Please check $(strip $(COMPLOGDIR))/AutoAdjustL2CacheLockSection.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: GCC_LINK_BIN_FILE
+# Executable Targets
+# *************************************************************************
+GCC_LINK_BIN_FILE: $(strip $(TMPDIR))/~customIncDef.tmp
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_EXIST) ./tools/NVRAMStatistic/src/ckSySDrv_flash_cfg_preproc.c $(THEN)\
+ $(CC) $(VIA)$(strip $(TMPDIR))/~customIncDef.tmp -E ./tools/NVRAMStatistic/src/ckSySDrv_flash_cfg_preproc.c > $(strip $(TMPDIR))/~flash_cfg_tmp.c \
+ $(CMD_END)
+
+ @$(ECHO) -n Linking $(strip $(NEWTARGNAME)) ...
+ @$(CHK_TIME)
+
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/ckImgSize.log $(THEN) ($(DEL_FILE) $(strip $(COMPLOGDIR))/ckImgSize.log) $(CMD_END)
+
+ ifeq ($(strip $(SSS_SUPPORT)),SSS_SOURCE)
+ @$(COPY_FILE) $(strip $(COMPLIBDIR))/libsss.a $(SSS_SOURCE_COPY_DST)
+ endif
+ @$(ECHO) -n "$(LNKOPT)" > $(strip $(TMPDIR))/~libs.tmp
+ @$(IF_EXIST) $(strip $(TMPDIR))/~libs.tmp $(THEN) ($(COPY_FILE) $(strip $(TMPDIR))/~libs.tmp $(strip $(COMPLOGDIR))/link_option.log) $(CMD_END)
+
+ @perl ./tools/link.pl $(strip $(LINK)) $(strip $(SCATTERFILE)) $(TARGDIR)/link.log $(strip $(TMPDIR))/~libs.tmp "$(strip $(PROJECT_MAKEFILE))" $(strip $(TARGDIR))/$(MAP_FILE) > $(strip $(COMPLOGDIR))/link_info.log $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ (echo Error: link failed. Please check $(TARGDIR)/link.log) $(WITH) \
+ ($(COPY_FILE) $(TARGDIR)/link.log $(strip $(TMPDIR))/aapmc_link.log) $(WITH) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(IMG_FILE)) $(CMD_END))\
+ $(CMD_END))
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN)\
+ $(strip $(DUMP)) -x $(strip $(TARGDIR))/$(IMG_FILE) > $(strip $(TARGDIR))/$(SYM_FILE) 2>&1 \
+ $(CMD_END)
+ # mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: FROMELF_BIN_FILE:
+# Executable Targets
+# *************************************************************************
+FROMELF_BIN_FILE:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_NOT_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) \
+ (echo $(strip $(TARGDIR))/$(IMG_FILE) is not existed!Please check $(TARGDIR)/link.log. $(WITH) exit 1) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) \
+ (perl ./tools/iv_copy_process.pl $(strip $(TARGDIR))/$(IMG_FILE) $(strip $(TARGDIR))/$(SYM_FILE) > $(strip $(COMPLOGDIR))/iv_copy_process.log) 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in iv_copy_process.pl. Please check $(strip $(COMPLOGDIR))/iv_copy_process.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+
+ifneq ($(strip $(TCM_ONLY_LOAD)),TRUE)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) \
+ (perl ./tools/AutoGen/postBuild/update_mpu_table.pl $(strip $(TARGDIR))/$(IMG_FILE) $(strip $(TARGDIR))/$(SYM_FILE) $(strip $(SCATTERFILE)) "$(strip $(PROJECT_MAKEFILE))" > $(strip $(COMPLOGDIR))/update_mpu_table.log) 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in update_mpu_table.pl. Please check $(strip $(COMPLOGDIR))/update_mpu_table.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+endif
+
+ifeq ($(strip $(AMMS_DRDI_SUPPORT)),TRUE)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) \
+ (perl ./tools/AutoGen/postBuild/update_drdi_table.pl $(strip $(TARGDIR))/$(IMG_FILE) $(strip $(TARGDIR))/$(SYM_FILE) > $(strip $(COMPLOGDIR))/update_drdi_table.log) 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in update_drdi_table.pl. Please check $(strip $(COMPLOGDIR))/update_drdi_table.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+endif
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) \
+ (python ./tools/memdumptablegen.py "$(strip $(TMPDIR))/memdump_profile.bin" "$(CROSS)" "./service/mdmp/mdmp_profile.c" "$(strip $(TARGDIR))/$(IMG_FILE)" "$(strip $(TMPDIR))/~inc_def.tmp" > $(strip $(COMPLOGDIR))/memdumptablegen.log) 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in memdumptablegen.py. Please check $(strip $(COMPLOGDIR))/memdumptablegen.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) \
+ (perl ./tools/AutoGen/postBuild/update_dump_table.pl $(strip $(TARGDIR))/$(IMG_FILE) $(strip $(TARGDIR))/$(SYM_FILE) $(strip $(TMPDIR))/memdump_profile.bin "$(strip $(PROJECT_MAKEFILE))" > $(strip $(COMPLOGDIR))/update_dump_table.log) 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in update_dump_table.pl. Please check $(strip $(COMPLOGDIR))/update_dump_table.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+
+# -----------------------------
+# Create gdb-index elf file for speepup dubugger
+# -----------------------------
+ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ @$(ECHO) -n Creating gdb index file $(GDB_FILE)
+ @$(ECHO) -n "$(strip $(GDB_CREATE)) -ex file $(strip $(TARGDIR))/$(IMG_FILE) -ex save gdb-index $(strip $(TMPDIR)) -ex quit" > $(strip $(COMPLOGDIR))/gdb_index.log
+ @$(strip $(GDB_CREATE)) -ex "file $(strip $(TARGDIR))/$(IMG_FILE)" -ex "save gdb-index $(strip $(TMPDIR))" -ex "quit" >> $(strip $(COMPLOGDIR))/gdb_index.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed to create gdb index temporarily file. Please check $(strip $(COMPLOGDIR))/gdb_index.log $(WITH) exit 1) $(CMD_END))
+
+ @$(ECHO) -n "$(strip $(BIN_CREATE)) --add-section .gdb_index=$(strip $(TMPDIR))/$(strip $(GDB_TMP_FILE)) --set-section-flags .gdb_index=readonly $(strip $(TARGDIR))/$(IMG_FILE) $(strip $(TARGDIR))/$(strip $(GDB_FILE))" >> $(strip $(COMPLOGDIR))/gdb_index.log
+ @$(strip $(BIN_CREATE)) --add-section .gdb_index=$(strip $(TMPDIR))/$(strip $(GDB_TMP_FILE)) --set-section-flags .gdb_index=readonly $(strip $(TARGDIR))/$(IMG_FILE) $(strip $(TARGDIR))/$(strip $(GDB_FILE)) >> $(strip $(COMPLOGDIR))/gdb_index.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed to create gdb index file: $(strip $(GDB_FILE)). Please check $(strip $(COMPLOGDIR))/gdb_index.log $(WITH) exit 1) $(CMD_END))
+
+ @$(MOVE) $(strip $(TARGDIR))/$(strip $(IMG_FILE)) $(strip $(TMPDIR))/$(IMG_FILE)_ori
+ @$(MOVE) $(strip $(TARGDIR))/$(strip $(GDB_FILE)) $(strip $(TARGDIR))/$(IMG_FILE)
+endif
+
+# -----------------------------
+# The size of the binary image depends on the available memory on the target
+# platform.
+# -----------------------------
+ @$(ECHO) -n Creating binary file $(BIN_FILE)
+ifeq ($(strip $(COMPILER)),GCC)
+ @perl ./tools/gen_bin_from_elf.pl $(strip $(BIN_CREATE)) $(strip $(SCATTERFILE)) $(strip $(TARGDIR))/$(IMG_FILE) $(strip $(TARGDIR))/$(BIN_FILE) > $(strip $(COMPLOGDIR))/gen_bin_from_elf.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in gen_bin_from_elf.pl. Please check $(strip $(COMPLOGDIR))/gen_bin_from_elf.log $(WITH) exit 1) $(CMD_END))
+endif
+
+ifneq ($(filter $(strip $(SV5_PLATFORM)),$(PLATFORM)),)
+ @$(LIST_DIR) "$(strip $(TARGDIR))/$(strip $(BIN_FILE))/*_GFH" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ perl ./tools/get_gfh_files.pl $(strip $(TARGDIR))/$(strip $(BIN_FILE)) GFH > $(strip $(COMPLOGDIR))/get_gfh_files.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in get_gfh_files.pl. Please check $(strip $(COMPLOGDIR))/get_gfh_files.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+endif
+
+ifneq ($(filter __VI_ENABLED__,$(strip $(COM_DEFS))),)
+ @perl .\tools\vivaProcess.pl $(strip $(TARGDIR))\$(strip $(BIN_FILE)) $(strip $(PROJECT_MAKEFILE)) >$(strip $(TARGDIR))\log\vivaProcess.log & \
+ (if ERRORLEVEL 1 (echo Error in vivaProcess.pl. Please check $(strip $(TARGDIR))\log\vivaProcess.log & exit 1))
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(BIN_FILE) and LINK
+# *************************************************************************
+$(BIN_FILE): LINK POSTBUILD
+
+LINK: LINK_BIN_FILE FROMELF_BIN_FILE
+
+# *************************************************************************
+# TARGET: POSTBUILD
+# *************************************************************************
+ifeq ($(strip $(COMPILER)),GCC)
+POSTBUILD:
+endif
+POSTBUILD:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(MAKE) -fmake/common/build.mak -r -R --no-print-directory $(CMD_ARGU) GCC_POSTBUILD
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: GEN_META_DATABASE
+# *************************************************************************
+gen_meta_db:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ifneq ($(TEST_LOAD_TYPE),BASIC)
+ @$(MAKE) -fmake/common/build.mak -r -R --no-print-directory gen_sfini
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ @$(IF_EXIST) $(CODEGEN_DATABASE_OUT) $(THEN) ($(CGEN) $(strip $(GEN_DB_OPTION)) -sf $(CODEGEN_DATABASE_OUT) $(MODISBUILD_TST_DB)/sf.ini) $(CMD_END)
+else
+ @$(IF_EXIST) $(CODEGEN_DATABASE_OUT) $(THEN) ($(CGEN) $(strip $(GEN_DB_OPTION)) -sfcm $(CODEGEN_DATABASE_OUT) $(MODISBUILD_TST_DB)/sf.ini) $(CMD_END)
+endif
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: GCC_POSTBUILD
+# *************************************************************************
+ifeq ($(NO_DSP),FALSE)
+GCC_POSTBUILD: ckMemLayout_target.det dsp_process copy_mcddll gen_meta_db
+else
+GCC_POSTBUILD: ckMemLayout_target.det copy_mcddll gen_meta_db
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+#=== SBC
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) \
+ (perl ./tools/gfh_cfg_flash.pl $(strip $(FLASHFILE)) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(call Upper,$(strip $(PROJECT_NAME))_$(strip $(SUB_BOARD_VER))_$(strip $(PLATFORM))_$(strip $(CHIP_VER))).$(strip $(PURE_VERNO)).bin $(VERNO) "$(strip $(PROJECT_MAKEFILE))" "$(strip $(BUILD_DATE_TIME))" $(strip $(TMPDIR)) > $(strip $(COMPLOGDIR))/gfh_cfg_flash.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: gfh_cfg_flash.pl Failed!! Please check $(strip $(COMPLOGDIR))/gfh_cfg_flash.log) $(CMD_END))) \
+ $(CMD_END)
+
+ @$(MAKE) -f$(strip ${MAKE_COMMON})/build.mak -r -R gen_gfh_cfg
+ @$(IF_EXIST) $(strip $(TMPDIR))/~gfh_cfg_flash.tmp $(THEN) ($(CAT) $(strip $(TMPDIR))/~gfh_cfg_flash.tmp >> $(strip $(TMPDIR))/~gfh_cfg.tmp) $(CMD_END)
+
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/backup $(THEN) ($(DEL_DIR) $(strip $(TARGDIR))/backup) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) \
+ (perl ./tools/gfh_process.pl $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(strip $(TMPDIR))/~gfh_cfg.tmp "$(strip $(PROJECT_MAKEFILE))" $(strip $(TARGDIR))/$(SYM_FILE) $(strip $(COMPLOGDIR))/gfh_process.log) > $(strip $(COMPLOGDIR))/gfh_process.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in gfh_process.pl. Please check $(strip $(COMPLOGDIR))/gfh_process.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+
+ifeq ($(strip $(AMMS_DRDI_SUPPORT)),TRUE)
+ @perl ./tools/strip_drdi_bin.pl $(strip $(TARGDIR))/$(IMG_FILE) $(strip $(TARGDIR))/$(BIN_FILE) $(strip $(TARGDIR))/$(DRDI_BIN_FILE) $(DUMP)> $(strip $(COMPLOGDIR))/strip_drdi_bin.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Failed in strip_drdi_bin.pl Please check $(strip $(COMPLOGDIR))/strip_drdi_bin.log $(WITH) exit 1) $(CMD_END))
+endif
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) \
+ (perl ./tools/append2.pl $(strip $(FLASHFILE)) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(call Upper,$(strip $(PROJECT_NAME))_$(strip $(SUB_BOARD_VER))_$(strip $(PLATFORM))_$(strip $(CHIP_VER))).$(strip $(PURE_VERNO)).bin $(VERNO) "$(strip $(PROJECT_MAKEFILE))" "$(strip $(BUILD_DATE_TIME))" $(strip $(TMPDIR)) $(strip $(SCATTERFILE)) $(SYM_FILE) $(L1CORE_SYM_FILE) $(strip $(INFOMAKELOG)) $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE))> $(strip $(COMPLOGDIR))/append2.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: append2.pl Failed!! Please check $(strip $(COMPLOGDIR))/append2.log) $(CMD_END))) \
+ $(CMD_END)
+#=== SBC
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE))/ROM $(THEN) \
+ ($(COPY_FILE) $(SCATTERFILE_FLASHTOOL) $(strip $(TARGDIR))/$(strip $(BIN_FILE))/$(strip $(SCATTERFILE_FLASHTOOL_NAME))) \
+ $(ELSE) \
+ ($(COPY_FILE) $(SCATTERFILE_FLASHTOOL) $(strip $(TARGDIR))/$(strip $(SCATTERFILE_FLASHTOOL_NAME))) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/"$(subst ~,,$(strip $(notdir $(PROJECT_MAKEFILE))))" $(THEN) $(DEL_FILE) $(strip $(TARGDIR))/"$(subst ~,,$(strip $(notdir $(PROJECT_MAKEFILE))))" $(CMD_END)
+ @$(IF_EXIST) "make/$(subst ~,,$(notdir $(strip $(PROJECT_MAKEFILE))))" $(THEN) ($(COPY_FILE) "make/$(subst ~,,$(notdir $(strip $(PROJECT_MAKEFILE))))" $(strip $(TARGDIR)) > $(DEV_NUL)) $(CMD_END)
+
+# mkimage
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) \
+ (echo "[MCU MK IMAGE] Generate mk image - Begin" $(AND) \
+ $(MOVE) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(strip $(TARGDIR))/$(strip $(BIN_FILE))_ori $(AND) \
+ $(MCU_MK_IMAGE_TOOL) $(strip $(TARGDIR))/$(strip $(BIN_FILE))_ori $(MCU_MK_IMAGE_CFG) > $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(AND) \
+ echo "[MCU MK IMAGE] Generate mk image - End")\
+ $(CMD_END)
+ifeq ($(strip $(AMMS_DRDI_SUPPORT)),TRUE)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE)) $(THEN) \
+ (echo "[MCU MK IMAGE] Generate mk image - Begin" $(AND) \
+ $(MOVE) $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE)) $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE))_ori $(AND) \
+ $(MCU_MK_IMAGE_TOOL) $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE))_ori $(MCU_DRDI_MK_IMAGE_CFG) > $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE)) $(AND) \
+ echo "[MCU MK IMAGE] Generate mk image - End") \
+ $(CMD_END)
+endif
+
+ifneq ($(filter _SIMULATION __PALLADIUM__,$(strip $(COM_DEFS))),)
+ ifeq ($(filter REL_CR_%,$(strip $(RELEASE_PACKAGE))),)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE))_ori $(THEN) \
+ $(IF_EXIST) $(strip $(TARGDIR))/sim $(THEN) ($(DEL_DIR) $(strip $(TARGDIR))/sim) $(CMD_END) $(AND) \
+ $(IF_NOT_EXIST) $(strip $(TARGDIR))/sim $(THEN) ($(MKDIR) $(strip $(TARGDIR))/sim) $(CMD_END) $(AND) \
+ $(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE))_ori $(THEN) ($(MOVE) $(strip $(TARGDIR))/$(strip $(BIN_FILE))_ori $(strip $(TARGDIR))/sim/MD_IMAGE) $(CMD_END) \
+ $(CMD_END)
+ endif
+endif
+# mkimage end
+
+ifeq ($(strip $(AMMS_DRDI_SUPPORT)),TRUE)
+# merge main.bin and drdi.bin
+ @$(MOVE) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(strip $(TARGDIR))/$(strip $(BIN_FILE))_ori
+ @$(MOVE) $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE)) $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE))_ori
+ @$(CAT) $(strip $(TARGDIR))/$(strip $(BIN_FILE))_ori $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE))_ori > $(strip $(TARGDIR))/$(strip $(BIN_FILE))
+endif
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE))_ori $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(strip $(BIN_FILE))_ori) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE))_ori $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(strip $(DRDI_BIN_FILE))_ori) $(CMD_END)
+
+
+# To support DBG Info Gen.
+ @$(IF_NOT_EXIST) $(strip $(BUILD_TST_DB)) $(THEN) ($(MKDIR) $(strip $(BUILD_TST_DB))) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TMPDIR))/~DbgInfoGen.cfg $(THEN) ($(DEL_FILE) $(strip $(TMPDIR))/~DbgInfoGen.cfg) $(CMD_END)
+ @perl ./tools/echoLongString4.pl $(strip $(TMPDIR))/~DbgInfoGen.cfg ELF=$(strip $(TARGDIR))/$(IMG_FILE) HW=$(strip $(PLATFORM))_$(strip $(CHIP_VER)) SW=$(strip $(VERNO))
+ @perl ./tools/lnitem.pl $(strip $(TMPDIR))/~DbgInfoGen.cfg
+ @$(ECHO) -n PRJ=$(strip $(BRANCH)) >> $(strip $(TMPDIR))/~DbgInfoGen.cfg
+ @$(ECHO) -n TIME=$(strip $(BUILD_DATE_TIME)) >> $(strip $(TMPDIR))/~DbgInfoGen.cfg
+ @$(ECHO) -n DBNAME=MCU_PCORE >> $(strip $(TMPDIR))/~DbgInfoGen.cfg
+ @$(ECHO) -n DB=$(strip $(BUILD_TST_DB))/DbgInfo_$(strip $(SLIM_BRANCH))_$(strip $(PROJECT_NAME))_$(strip $(DBG_INFO_VERNO))_$(strip $(DBG_BUILD_DATE_TIME)) >> $(strip $(TMPDIR))/~DbgInfoGen.cfg
+ @perl ./tools/echoLongString4.pl $(strip $(TMPDIR))/~DbgInfoGen.cfg LNKOPT="$(strip $(LNKOPT))"
+ @$(ECHO) -n DWARFADDR=TRUE >> $(strip $(TMPDIR))/~DbgInfoGen.cfg
+
+ @$(LIST_DIR) "$(strip $(TARGDIR))/DbgInfo_$(strip $(SLIM_BRANCH))*" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(TARGDIR))/DbgInfo_$(strip $(SLIM_BRANCH))* $(CMD_END)
+ @$(LIST_DIR) "$(strip $(BUILD_TST_DB))/DbgInfo_*" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(BUILD_TST_DB))/DbgInfo_* $(CMD_END)
+ @$(LIST_DIR) "$(strip $(BUILD_TST_DB))/_DbgInfo_*" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(BUILD_TST_DB))/_DbgInfo_* $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(IMG_FILE)) $(THEN) \
+ (echo Generating DbgInfo Database... $(WITH) \
+ $(DBG_INFOGEN) -CFG-"$(strip $(TMPDIR))/~DbgInfoGen.cfg" 2>$(strip $(COMPLOGDIR))/DbgInfoGen.log $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo DbgInfoGen Error. Please check $(strip $(COMPLOGDIR))/DbgInfoGen.log $(WITH) exit 1) $(CMD_END)))\
+ $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(BUILD_TST_DB))/DbgInfo_$(strip $(SLIM_BRANCH))_$(strip $(PROJECT_NAME))_$(strip $(DBG_INFO_VERNO))_$(strip $(DBG_BUILD_DATE_TIME)) $(THEN) \
+ ($(COPY_FILE) $(strip $(BUILD_TST_DB))/DbgInfo_$(strip $(SLIM_BRANCH))_$(strip $(PROJECT_NAME))_$(strip $(DBG_INFO_VERNO))_$(strip $(DBG_BUILD_DATE_TIME))* $(strip $(TARGDIR))) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(BUILD_SYSDIR))/$(strip $(BOARD_VER)).cfg $(THEN) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) \
+ ($(COPY_FILE) $(strip $(BUILD_SYSDIR))/$(strip $(BOARD_VER)).cfg $(strip $(TARGDIR))/$(strip $(BOARD_VER)).cfg) \
+ $(CMD_END))\
+ $(CMD_END)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: genverno
+# Generate VersionNo
+# *************************************************************************
+ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+genverno: gen_cxif_checksum
+endif
+genverno:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN)\
+ ($(ECHO) "$@ START TIME=" >>$(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME)>>$(strip $(TARGDIR))/build.log) $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(VERNODIR) $(THEN) ($(MKDIR) $(VERNODIR)) $(CMD_END)
+ @$(IF_EXIST) $(strip $(VERNODIR))/verno.c $(THEN) ($(DEL_FILE) $(strip $(VERNODIR))/verno.c) $(CMD_END)
+
+ @perl ./tools/genverno.pl "$(strip $(VERNODIR))" "$(strip $(VERNO))" "$(strip $(BUILD_DATE_TIME))" "$(strip $(BRANCH))" "$(strip $(HAL_VERNO))" "$(strip $(HW_VER))" "$(strip $(BUILD))" "$(strip $(FLAVOR))" "$(strip $(PLATFORM))" "$(strip $(DSP_PROJECT))" "$(strip $(DSP_FLAVOR))" "$(strip $(PROJECT_NAME))" "$(call lc,$(strip $(MTK_MODEM_ARCH)))"
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN)\
+ ($(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME) >> $(strip $(TARGDIR))/build.log) $(CMD_END)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: gen_cxif_checksum
+# Generate cxifchksum.c
+# *************************************************************************
+gen_cxif_checksum:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN)\
+ ($(ECHO) "$@ START TIME=" >>$(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME)>>$(strip $(TARGDIR))/build.log) $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(PROJ_INTERNAL_DIR)/auto_cxif $(THEN) ($(MKDIR) $(PROJ_INTERNAL_DIR)/auto_cxif) $(CMD_END)
+ @$(IF_EXIST) $(PROJ_INTERNAL_DIR)/auto_cxif/cxifchksum.c $(THEN) ($(DEL_FILE) $(PROJ_INTERNAL_DIR)/auto_cxif/cxifchksum.c) $(CMD_END)
+
+ @perl ./tools/gencxifchksum.pl "$(strip $(PROJECT_NAME))" "$(strip $(FLAVOR))" "$(call lc,$(strip $(MTK_MODEM_ARCH)))" "$(PROJ_INTERNAL_DIR)/auto_cxif"
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN)\
+ ($(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME) >> $(strip $(TARGDIR))/build.log) $(CMD_END)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: drv_feature_check
+# Check DRV Feature Files
+# *************************************************************************
+drv_feature_check: gencustominfo gen_infolog $(PREGEN_DEP)/drv_feature_check.det
+
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./drv_feature_check.det)
+else
+$(PREGEN_DEP)/drv_feature_check.det: FORCE
+endif
+$(PREGEN_DEP)/drv_feature_check.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN)\
+ ($(ECHO) "$@ START TIME=" >>$(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME)>>$(strip $(TARGDIR))/build.log) \
+ $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/drv_check.log $(THEN) ($(DEL_FILE) $(strip $(COMPLOGDIR))/drv_check.log) $(CMD_END)
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/drv_features_option.log $(THEN) ($(DEL_FILE) $(strip $(COMPLOGDIR))/drv_features_option.log) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TARGDIR))/MMI_DRV_DEFS.mak $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/MMI_DRV_DEFS.mak) $(CMD_END)
+
+ifeq ($(MODIS_COMPILER),CLANG)
+ @perl ./tools/drv_feature_check.pl $(subst \,/,$(strip $(PROJDIR))) $(subst \,/,$(strip $(PROJECT_NAME))) $(firstword $(strip $(CC_MODIS))) $(subst \,/,$(strip $(VIA))) interface/driver/drv_def/drv_features.h $(subst \,/,$(strip $(TARGDIR))/drv_features_option.h) FALSE 0 $(subst \,/,$(strip $(TARGDIR))\MMI_DRV_DEFS.mak) DRV $(MODIS_COMPILER) 2>>$(strip $(TARGDIR))/log/drv_check.log
+else
+ @perl ./tools/drv_feature_check.pl $(subst \,/,$(strip $(PROJDIR))) $(subst \,/,$(strip $(PROJECT_NAME))) $(firstword $(strip $(CC))) $(subst \,/,$(strip $(VIA))) interface/driver/drv_def/drv_features.h $(subst \,/,$(strip $(TARGDIR))/drv_features_option.h) FALSE 0 $(subst \,/,$(strip $(TARGDIR))\MMI_DRV_DEFS.mak) DRV $(MODIS_COMPILER) 2>>$(strip $(TARGDIR))/log/drv_check.log
+endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >>$(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN) \
+ ($(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME) >> $(strip $(TARGDIR))/build.log) \
+ $(CMD_END)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Set the CKSYSDRV_DEP
+# *************************************************************************
+CKSYSDRV_DEP := tools/NVRAMStatistic/src/ckSySDrv_flash_cfg_preproc.c $(strip $(BUILD_SYSDIR))/custom_MemoryDevice.h ./custom/driver/common/flash_opt.h
+
+# *************************************************************************
+# TARGET: $(PREGEN_DEP)/ckSysDrv.det :
+# Check if system drive space is enough or not
+# *************************************************************************
+$(PREGEN_DEP)/ckSysDrv.det: $(strip $(CKSYSDRV_DEP))
+
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./ckSysDrv.det)
+else
+$(PREGEN_DEP)/ckSysDrv.det: FORCE
+endif
+$(PREGEN_DEP)/ckSysDrv.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# If building for basic, l1s, don't run cksysdrv.pl
+# If module "custom" is released to customer with .a only, don't run cksysdrv.pl
+ifneq ($(filter __FS_ON__,$(strip $(COM_DEFS))),)
+ @$(ECHO) -n checking system drive space ...
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~customIncDef.tmp $(foreach def,$(COM_DEFS),-D$(def))
+ @$(ECHO) -n -D__NULL_DEF__ >> $(strip $(TMPDIR))/~customIncDef.tmp
+ ifeq ($(strip $(COMPILER)),GCC)
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~customInc.tmp $(foreach inc,$(subst \,/,$(COMMINCDIRS)),-I$(inc))
+ else
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~customInc.tmp $(foreach inc,$(COMMINCDIRS),-I$(inc))
+ endif
+ @($(CAT) $(strip $(TMPDIR))/~customInc.tmp >> $(strip $(TMPDIR))/~customIncDef.tmp) $(AND) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TARGDIR))/module/custom/custom.def `$(DO) \
+ ($(ECHO) -n "-D$(PRE_VAR)i" >> $(strip $(TMPDIR))/~customIncDef.tmp) \
+ $(DONE)) $(AND) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TARGDIR))/module/custom/custom.inc` $(DO) \
+ ($(ECHO) -n "-I$(PRE_VAR)i" >> $(strip $(TMPDIR))/~customIncDef.tmp) \
+ $(DONE)) $(AND)\
+ ($(CC) $(VIA)$(strip $(TMPDIR))/~customIncDef.tmp -E tools/NVRAMStatistic/src/ckSySDrv_flash_cfg_preproc.c > $(TMPDIR)/~flash_cfg_tmp.c)
+
+ @perl ./tools/ckSysDrv.pl $(TMPDIR)/~flash_cfg_tmp.c $(strip $(PROJDIR))/cksysdrv/~fs_quota_usage.log $(strip $(PROJDIR))/nvram_auto_gen/~nvram_lid_size.log $(strip $(FEATURE_OVERLOAD)) $(strip $(SYSTEM_DRIVE_ON_NAND)) $(strip $(NVRAM_PSEUDO_MERGE)) $@> $(strip $(COMPLOGDIR))/ckSysDrv.log
+
+endif
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: cksysdrv_slim
+# Check operator setting Files (An independent target)
+# *************************************************************************
+ifeq ($(MODIS_CONFIG),FALSE)
+cksysdrv_slim: $(PREGEN_DEP)/ckSysDrv.det
+ @$(ECHO) -n cksysdrv was done.
+else
+cksysdrv_slim:
+endif
+
+cksysdrv: cksysdrv_clean nvram_auto_gen $(PREGEN_DEP)/ckSysDrv.det
+ @$(ECHO) -n cksysdrv was done.
+
+cksysdrv_clean:
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/cksysdrv.log $(THEN) \
+ ($(DEL_FILE) $(strip $(COMPLOGDIR))/cksysdrv.log) $(CMD_END)
+
+# *************************************************************************
+# Target: errc_gen
+# gen some files by excel table setting
+# *************************************************************************
+errc_gen: $(PREGEN_DEP)/errc_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./errc_gen.det)
+else
+$(PREGEN_DEP)/errc_gen.det: FORCE
+endif
+$(PREGEN_DEP)/errc_gen.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(IF_EXIST) protocol/lte_sec/errc/gen_evt_tbl/gen_evt_tbl.pl $(THEN) \
+ ((perl protocol/lte_sec/errc/gen_evt_tbl/gen_evt_tbl.pl "$(strip $(PROJECT_MAKEFILE))" TARGET $(PROJDIR) $(strip $(COMPLOGDIR)) $@> $(strip $(COMPLOGDIR))/errc_gen_tbl.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate errc files Failed. Please check $(strip $(COMPLOGDIR))/errc_gen_tbl.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+else
+ @$(IF_EXIST) protocol/lte_sec/errc/gen_evt_tbl/gen_evt_tbl.pl $(THEN) \
+ ((perl protocol/lte_sec/errc/gen_evt_tbl/gen_evt_tbl.pl "$(strip $(PROJECT_MAKEFILE))" MODIS $(MODISPROJDIR)/_BUILD_XGEN $(strip $(MODISPROJDIR))/_BUILD_LOG $@ > $(strip $(MODISPROJDIR))/_BUILD_LOG/errc_gen_tbl.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate errc files Failed. Please check $(strip $(MODISPROJDIR))/_BUILD_LOG/errc_gen_tbl.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >>$(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Target: xl1r_gen
+# gen el1 header files
+# *************************************************************************
+xl1r_gen: $(PREGEN_DEP)/xl1r_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./xl1r_gen.det)
+else
+$(PREGEN_DEP)/xl1r_gen.det: FORCE
+endif
+$(PREGEN_DEP)/xl1r_gen.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(IF_EXIST) protocol/smt/xl1r/cgen/gen_l1_header.pl $(THEN) \
+ ((perl protocol/smt/xl1r/cgen/gen_l1_header.pl $(PROJDIR) $(strip $(COMPLOGDIR)) $@> $(strip $(COMPLOGDIR))/xl1r_gen_tbl.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate xl1r files Failed. Please check $(strip $(COMPLOGDIR))/xl1r_gen_tbl.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+else
+ @$(IF_EXIST) protocol/smt/xl1r/cgen/gen_l1_header.pl $(THEN) \
+ ((perl protocol/smt/xl1r/cgen/gen_l1_header.pl $(MODISPROJDIR)/_BUILD_XGEN $(strip $(MODISPROJDIR))/_BUILD_LOG $@ > $(strip $(MODISPROJDIR))/_BUILD_LOG/xl1r_gen_tbl.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate xl1r files Failed. Please check $(strip $(MODISPROJDIR))/_BUILD_LOG/xl1r_gen_tbl.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >>$(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Target: caband_gen
+# gen some files by excel table setting
+# *************************************************************************
+caband_gen: $(PREGEN_DEP)/caband_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./caband_gen.det)
+else
+$(PREGEN_DEP)/caband_gen.det: FORCE
+endif
+$(PREGEN_DEP)/caband_gen.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(IF_EXIST) ./tools/gen_ca_band_tbl.pl $(THEN) \
+ ((perl ./tools/gen_ca_band_tbl.pl "$(strip $(PROJECT_MAKEFILE))" TARGET $(PROJDIR) $(strip $(COMPLOGDIR)) $@ > $(strip $(COMPLOGDIR))/gen_ca_band_tbl.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate eas_caband_tbl_v2 files Failed. Please check $(strip $(COMPLOGDIR))/gen_ca_band_tbl.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+else
+ @$(IF_EXIST) ./tools/gen_ca_band_tbl.pl $(THEN) \
+ ((perl ./tools/gen_ca_band_tbl.pl "$(strip $(PROJECT_MAKEFILE))" MODIS $(MODISPROJDIR)/_BUILD_XGEN $(strip $(MODISPROJDIR))/_BUILD_LOG $@ > $(strip $(MODISPROJDIR))/_BUILD_LOG/gen_ca_band_tbl.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate eas_caband_tbl_v2 files Failed. Please check $(strip $(MODISPROJDIR))/_BUILD_LOG/gen_ca_band_tbl.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >>$(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Target: ckmemlayout
+# check scatter file and memory device consistency
+# *************************************************************************
+ckmemlayout: $(PREGEN_DEP)/ckmemlayout.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./ckmemlayout.det)
+else
+$(PREGEN_DEP)/ckmemlayout.det: FORCE
+endif
+$(PREGEN_DEP)/ckmemlayout.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_EXIST) $(FIXPATH)/tools/ckMemLayout.pl $(THEN)\
+ (perl $(FIXPATH)/tools/ckMemLayout.pl 1 TRUE $(SCATTERFILE) $(strip $(TMPDIR))/~lis_temp $(TMPDIR)/~flash_cfg_tmp.c "$(strip $(PROJECT_MAKEFILE))" $(strip $(BUILD_SYSDIR)) $(strip $(INSIDE_MTK)) $(strip $(INFOMAKELOG)) $@ > $(strip $(COMPLOGDIR))/ckmemlayout1.log) $(CMD_END)
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ckmemlayout2: ckMemLayout_target.det
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) -n Done for ckmemlayout2
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: copycmm
+# Generate cmm files for different SUB_BOARD_VER
+# *************************************************************************
+ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ RUN_CMMGEN_HQ = TRUE
+else
+ RUN_CMMGEN_HQ = FALSE
+endif
+
+copycmm: $(POSTGEN_DEP)/copycmm.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(POSTGEN_DEP)/./copycmm.det)
+else
+$(POSTGEN_DEP)/copycmm.det: FORCE
+endif
+$(POSTGEN_DEP)/copycmm.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/cmm $(THEN) ($(MKDIR) $(strip $(PROJDIR))/cmm) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(POSTGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(POSTGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+#delete files
+ @($(LIST_DIR) -n -b "./tools/DebuggingSuite/Scripts/*.*" > $(strip $(TMPDIR))/debuggin_suite_scripts_list.tmp 2> $(DEV_NUL) $(WITH) \
+ $(IF_ERR_FALSE) $(THEN)\
+ $(IF_EXIST) $(strip $(TMPDIR))/debuggin_suite_scripts_list.tmp $(THEN) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TMPDIR))/debuggin_suite_scripts_list.tmp` $(DO) \
+ ($(IF_EXIST) $(strip $(PROJDIR))/cmm/$(PRE_VAR)i $(THEN) $(DEL_FILE) $(strip $(PROJDIR))/cmm/$(PRE_VAR)i $(CMD_END)) \
+ $(DONE))\
+ $(CMD_END)\
+ $(CMD_END))
+
+ @($(LIST_DIR) -n -b "./tools/DebuggingSuite/Scripts/ChipDependent/$(strip $(PLATFORM))/*" > $(strip $(TMPDIR))/debuggin_suite_scripts_chip_list.tmp 2> $(DEV_NUL) $(WITH) \
+ $(IF_ERR_FALSE) $(THEN)\
+ $(IF_EXIST) $(strip $(TMPDIR))/debuggin_suite_scripts_chip_list.tmp $(THEN) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TMPDIR))/debuggin_suite_scripts_chip_list.tmp` $(DO) \
+ ($(IF_EXIST) $(strip $(PROJDIR))/cmm/$(PRE_VAR)i $(THEN) $(DEL_DIR) $(strip $(PROJDIR))/cmm/$(PRE_VAR)i $(CMD_END)) \
+ $(DONE))\
+ $(CMD_END)\
+ $(CMD_END))
+
+ @($(LIST_DIR) -n -b "./tools/DebuggingSuite/Scripts/*.*" > $(strip $(TMPDIR))/debuggin_suite_scripts_list.tmp 2> $(DEV_NUL) $(WITH) \
+ $(IF_ERR_FALSE) $(THEN)\
+ $(IF_EXIST) $(strip $(TMPDIR))/debuggin_suite_scripts_list.tmp $(THEN) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TMPDIR))/debuggin_suite_scripts_list.tmp` $(DO) \
+ ($(IF_EXIST) $(strip $(PROJDIR))/cmm/$(PRE_VAR)i $(THEN) $(DEL_FILE) $(strip $(PROJDIR))/cmm/$(PRE_VAR)i $(CMD_END)) \
+ $(DONE))\
+ $(CMD_END)\
+ $(CMD_END))
+
+ @($(LIST_DIR) -n -b "./tools/DebuggingSuite/Scripts/ChipDependent/$(strip $(PLATFORM))/*" > $(strip $(TMPDIR))/debuggin_suite_scripts_chip_list.tmp 2> $(DEV_NUL) $(WITH) \
+ $(IF_ERR_FALSE) $(THEN)\
+ $(IF_EXIST) $(strip $(TMPDIR))/debuggin_suite_scripts_chip_list.tmp $(THEN) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TMPDIR))/debuggin_suite_scripts_chip_list.tmp` $(DO) \
+ ($(IF_EXIST) $(strip $(PROJDIR))/cmm/$(PRE_VAR)i $(THEN) $(DEL_DIR) $(strip $(PROJDIR))/cmm/$(PRE_VAR)i $(CMD_END)) \
+ $(DONE))\
+ $(CMD_END)\
+ $(CMD_END))
+
+#copy files
+ @$(IF_EXIST) ./tools/DebuggingSuite/Scripts $(THEN) \
+ ($(COPY_FILE) ./tools/DebuggingSuite/Scripts/*.* $(strip $(PROJDIR))/cmm/) \
+ $(CMD_END)
+
+ @$(IF_EXIST) ./tools/DebuggingSuite/Scripts/ChipDependent/$(strip $(PLATFORM)) $(THEN)\
+ ($(COPY_DIR) ./tools/DebuggingSuite/Scripts/ChipDependent/$(strip $(PLATFORM))/ $(strip $(PROJDIR))/cmm/) \
+ $(CMD_END)
+
+ @$(IF_EXIST) ./tools/DebuggingSuite/Scripts $(THEN) \
+ ($(COPY_FILE) ./tools/DebuggingSuite/Scripts/*.* $(strip $(PROJDIR))/cmm/) \
+ $(CMD_END)
+
+ @$(IF_EXIST) ./tools/DebuggingSuite/Scripts/ChipDependent/$(strip $(PLATFORM)) $(THEN) \
+ ($(COPY_DIR) ./tools/DebuggingSuite/Scripts/ChipDependent/$(strip $(PLATFORM))/ $(strip $(PROJDIR))/cmm/) \
+ $(CMD_END)
+
+ @$(IF_EXIST) ./tools/DebuggingSuite/Scripts/ChipDependent/$(strip $(PLATFORM)) $(THEN) \
+ ($(RECURSIVE_DIR) -f "./tools/DebuggingSuite/Scripts/ChipDependent/$(strip $(PLATFORM))" > $(strip $(TMPDIR))/copycmm.det.tmp 2> $(DEV_NUL)) \
+ $(CMD_END)
+ @$(IF_EXIST) ./tools/DebuggingSuite $(THEN) \
+ ($(RECURSIVE_DIR) -f "./tools/DebuggingSuite/" >> $(strip $(TMPDIR))/copycmm.det.tmp 2> $(DEV_NUL)) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(TMPDIR))/copycmm.det.tmp $(THEN)\
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TMPDIR))/copycmm.det.tmp` $(DO) \
+ ($(IF_EXIST) $(PRE_VAR)i $(THEN) $(ECHO) -n $@: $(PRE_VAR)i >> $@ $(CMD_END)) \
+ $(DONE)) \
+ $(CMD_END)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: cmmgen
+# Generate cmm files for different SUB_BOARD_VER
+# *************************************************************************
+cmmgen: $(POSTGEN_DEP)/cmmgen.det
+$(POSTGEN_DEP)/cmmgen.det: $(strip $(TMPDIR))/~customIncDef.tmp copycmm
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(POSTGEN_DEP)/./cmmgen.det)
+else
+$(POSTGEN_DEP)/cmmgen.det: FORCE
+endif
+$(POSTGEN_DEP)/cmmgen.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(POSTGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(POSTGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) \
+ ((echo $(strip $(TARGDIR))/$(strip $(BIN_FILE)) does not exist. Please check it.) $(WITH) (exit 2)) \
+ $(CMD_END)
+
+ @$(ECHO) -n Generate cmm files
+ @$(IF_EXIST) ./tools/CMMAutoGen.pl $(THEN) \
+ ((perl ./tools/CMMAutoGen.pl 0 $(strip $(PROJDIR))/cmm/$(strip $(TARGNAME))_nocode.cmm ../bin/$(IMG_FILE) "$(strip $(PROJECT_MAKEFILE))" $(strip $(BIN_FILE)) $(strip $(TARGDIR))/$(SYM_FILE) $(L1CORE_SYM_FILE) "$(CC)" "$(VIA)" $(strip $(TMPDIR))/~customIncDef.tmp $(strip $(TMPDIR)) $(strip $(INFOMAKELOG)) $(strip $(TMPDIR))/cp_dsp_info.tmp "$(MD_VER_FOLDER)" $@> $(strip $(COMPLOGDIR))/cmmgen_nocode.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate CMM file Failed. Please check $(strip $(COMPLOGDIR))/cmmgen_nocode.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+ ifeq ($(strip $(RUN_CMMGEN_HQ)),TRUE)
+ @$(IF_EXIST) ./tools/CMMAutoGen.pl $(THEN) \
+ ((perl ./tools/CMMAutoGen.pl 1 $(strip $(PROJDIR))/cmm/$(strip $(TARGNAME))_HQ_Only.cmm ../bin/$(IMG_FILE) "$(strip $(PROJECT_MAKEFILE))" $(strip $(BIN_FILE)) $(strip $(TARGDIR))/$(SYM_FILE) $(L1CORE_SYM_FILE) "$(CC)" "$(VIA)" $(strip $(TMPDIR))/~customIncDef.tmp $(strip $(TMPDIR)) $(strip $(INFOMAKELOG)) $(strip $(TMPDIR))/cp_dsp_info.tmp "$(MD_VER_FOLDER)" $@> $(strip $(COMPLOGDIR))/cmmgen_hqonly.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate CMM file Failed. Please check $(strip $(COMPLOGDIR))/cmmgen_hqonly.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+ endif
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: dsp_process
+# *************************************************************************
+dsp_process: cp_dsp_files
+
+# *************************************************************************
+# TARGET: cp_dsp_fils
+# *************************************************************************
+cp_dsp_files: $(POSTGEN_DEP)/cp_dsp_files.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(POSTGEN_DEP)/cp_dsp_files.det)
+else
+$(POSTGEN_DEP)/cp_dsp_files.det: FORCE
+endif
+$(POSTGEN_DEP)/cp_dsp_files.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_NOT_EXIST) $(strip $(POSTGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(POSTGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_postcgen.log
+ endif
+
+ @perl ./tools/cp_dsp_files.pl $(strip $(DSPDIR)) $(strip $(BUILD_DSPDIR)) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) "$(strip $(PROJECT_MAKEFILE))" "$(strip $(DSP_VER))" $(strip $(PARTIAL_SOURCE)) $(strip $(TMPDIR))/cp_dsp_info.tmp > $(strip $(COMPLOGDIR))/cp_dsp_files.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) echo Error: ./tools/cp_dsp_files.pl failed. Please check $(strip $(COMPLOGDIR))/cp_dsp_files.log $(WITH) exit 1 $(CMD_END))
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common,internal >>$(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common,internal\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+else
+ @$(GEN_TARGET_FILE) $(strip $(ORIGINAL_PROJECT_NAME)) $(strip $(ORIGINAL_FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >>$(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(ORIGINAL_PROJECT_NAME)) $(strip $(ORIGINAL_FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: copy_mcddll
+# *************************************************************************
+copy_mcddll: FORCE
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+# @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" > $@
+ endif
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ @$(IF_EXIST) $(strip $(CUS_MTK_REL))/dhl/database/mcddll.dll $(THEN) ($(COPY_FILE) $(strip $(CUS_MTK_REL))/dhl/database/mcddll.dll $(strip $(MODISBUILD_TST_DB))/mcddll.dll > $(DEV_NUL)) $(CMD_END)
+ endif
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(strip $(TMPDIR))/~customIncDef.tmp:
+# *************************************************************************
+$(strip $(TMPDIR))/~customIncDef.tmp:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~customIncDef.tmp $(foreach def,$(COM_DEFS),-D$(def))
+ @$(ECHO) -n -D__NULL_DEF__ >> $(strip $(TMPDIR))/~customIncDef.tmp
+ ifeq ($(strip $(COMPILER)),GCC)
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~customInc.tmp $(foreach inc,$(subst \,/,$(COMMINCDIRS)),-I$(inc))
+ else
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~customInc.tmp $(foreach inc,$(COMMINCDIRS),-I$(inc))
+ endif
+ @$(CAT) $(strip $(TMPDIR))/~customInc.tmp >> $(strip $(TMPDIR))/~customIncDef.tmp
+ @$(IF_NOT_EXIST) $(TARGDIR)/module/custom $(THEN) \
+ ($(MAKE) -fmake/common/build.mak -r -R PROJECT_NAME=$(strip $(PROJECT_NAME)) PROJECT_MAKEFILE="$(strip $(PROJECT_MAKEFILE))" FLAVOR=$(strip $(FLAVOR)) ALL_MODULELIS=custom.lis genmoduleinfo) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/module/custom $(THEN) \
+ (($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TARGDIR))/module/custom/custom.def` \
+ $(DO) \
+ (echo -D$(PRE_VAR)i >> $(strip $(TMPDIR))/~customIncDef.tmp) $(DONE)) \
+ $(AND) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TARGDIR))/module/custom/custom.inc` \
+ $(DO) \
+ (echo -I$(PRE_VAR)i >> $(strip $(TMPDIR))/~customIncDef.tmp) $(DONE))) \
+ $(CMD_END)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+# *************************************************************************
+# Library Targets
+# *************************************************************************
+ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ifneq ($(filter $(MAKECMDGOALS),remake),)
+ifneq ($(strip $(REMAKE_WITH_CGEN)),FALSE)
+libs: cgen
+endif
+endif
+endif
+endif
+
+ifneq ($(strip $(PARALLEL)),TRUE)
+ifneq ($(strip $(UPDATE_DSP)),TRUE)
+libs: cleanlib startbuildlibs $(COMPLIBLIST)
+else
+libs: cleanlib startbuildlibs parallel_lib
+endif
+else
+libs: cleanlib startbuildlibs parallel_lib
+endif
+parallel_lib:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) -n "================== Start Parallel build =================="
+ @$(CHK_TIME)
+ @$(IF_NOT_EXIST) $(strip $(COMPLIBDIR)) $(THEN) ($(MKDIR) $(COMPLIBDIR)) $(CMD_END)
+ @$(IF_EXIST) $(strip $(COMPLOGDIR)/mbis_parallel.log) $(THEN) $(DEL_FILE) $(strip $(COMPLOGDIR)/mbis_parallel.log) $(CMD_END)
+ifeq ($(strip $(call Upper,$(BM_NEW))),TRUE)
+ @-$(MAKE) -f$(strip ${MAKE_COMMON})/parallel.mak -r -R $(strip $(CMD_ARGU)) --no-print-directory PARALLEL_CORE=. COMPLIBLIST="$(COMPLIBLIST)" TMPDIR=$(strip $(TMPDIR)) PROJECT_NAME=$(strip $(PROJECT_NAME)) PROJECT_MAKEFILE="$(strip $(PROJECT_MAKEFILE))" FLAVOR=$(strip $(FLAVOR)) MBIS_EN=$(strip $(MBIS_EN))
+else
+ @$(MAKE) -f$(strip ${MAKE_COMMON})/parallel.mak -r -R $(strip $(CMD_ARGU)) --no-print-directory PARALLEL_CORE=. COMPLIBLIST="$(COMPLIBLIST)" TMPDIR=$(strip $(TMPDIR)) PROJECT_NAME=$(strip $(PROJECT_NAME)) PROJECT_MAKEFILE="$(strip $(PROJECT_MAKEFILE))" FLAVOR=$(strip $(FLAVOR)) MBIS_EN=$(strip $(MBIS_EN))
+endif
+ @$(ECHO) -n ""
+ @$(ECHO) -n "----------------------------------------------------------------------"
+ @$(ECHO) -n " module time(min:sec) warning found result"
+ @$(ECHO) -n "----------------------------------------------------------------------"
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(basename $(COMPLIBLIST)) $(DO) \
+ (grep -A2 "Pass O" $(strip $(COMPLOGDIR)/$(PRE_VAR)i.log)) $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) ($(ECHO) -n "") $(CMD_END) \
+ $(DONE)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(basename $(COMPLIBLIST)) $(DO) \
+ (grep -A2 "Fail X" $(strip $(COMPLOGDIR)/$(PRE_VAR)i.log)) $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) ($(ECHO) -n "") $(CMD_END) \
+ $(DONE)
+ @$(IF_EXIST) $(strip $(COMPLOGDIR)/mbis_parallel.log) $(THEN) $(CAT) $(strip $(COMPLOGDIR)/mbis_parallel.log)| sort -k1.4 -k1.3r >> $(MBIS_BUILD_TIME_TMP) $(CMD_END)
+ @$(ECHO) -n "================== End Parallel build =================="
+ @$(CHK_TIME)
+ @$(ECHO) -n ""
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+libs:
+ @$(ECHO) -n "All modules built done"
+
+# *************************************************************************
+# TARGET: startbuildlibs
+# *************************************************************************
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ startbuildlibs: gencompbld
+else
+ startbuildlibs:
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) -n Start to build $(COMPLIBLIST)
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @($(LIST_DIR) "$(strip $(PROJDIR))/custom/system_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(LIST_DIR) -n -b "$(strip $(PROJDIR))/custom/system_bak/*.*"` $(DO) \
+ $(IF_NOT_EXIST) $(strip $(PROJDIR))/custom/system/$(PRE_VAR)i $(THEN) \
+ (mv $(strip $(PROJDIR))/custom/system_bak/$(PRE_VAR)i $(strip $(PROJDIR))/custom/system/$(PRE_VAR)i) $(AND) \
+ (echo $(strip $(PROJDIR))/custom/system/$(PRE_VAR)i is moved from $(strip $(PROJDIR))/custom/system_bak/$(PRE_VAR)i!) \
+ $(ELSE) \
+ (($(COMPARE) $(strip $(PROJDIR))/custom/system/$(PRE_VAR)i $(strip $(PROJDIR))/custom/system_bak/$(PRE_VAR)i >$(DEV_NUL) 2>&1) $(WITH) \
+ ($(IF_ERR_FALSE) $(THEN) \
+ (touch -r $(strip $(PROJDIR))/custom/system_bak/$(PRE_VAR)i $(strip $(PROJDIR))/custom/system/$(PRE_VAR)i >$(DEV_NUL)) $(AND) \
+ (echo $(strip $(PROJDIR))/custom/system/$(PRE_VAR)i timestamp is changed from $(strip $(PROJDIR))/custom/system_bak/$(PRE_VAR)i!) \
+ $(CMD_END))) \
+ $(CMD_END) \
+ $(DONE)) \
+ $(CMD_END))
+endif
+ @$(IF_EXIST) $(strip $(PROJDIR))/custom/modem_bak $(THEN) ($(DEL_DIR) $(strip $(PROJDIR))/custom/modem_bak) $(CMD_END)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: cleanlib
+# *************************************************************************
+cleanlib:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+# can be moved to genlog
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(strip $(IMG_FILE))) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(LIS_FILE)) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(strip $(LIS_FILE))) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(SYM_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(strip $(SYM_FILE))) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(TARGNAME).htm $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(strip $(TARGNAME)).htm) $(CMD_END)
+
+ @$(ECHO) -n "Clean $(COMPLIBLIST) under $(strip $(COMPLIBDIR))"
+ @$(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(GET_FNAME) $(COMPLIBLIST)` $(DO) \
+ ($(IF_EXIST) $(strip $(COMPLIBDIR))/lib$(PRE_VAR)i".a" $(THEN) \
+ $(IF_NOT_EXIST) $(strip $(OBJSDIR))/$(PRE_VAR)i $(THEN) $(MKDIR) $(strip $(OBJSDIR))/$(PRE_VAR)i $(CMD_END) \
+ $(CMD_END))\
+ $(DONE)
+
+ifneq ($(strip $(UPDATE_DSP)),TRUE)
+ifneq ($(SMART_CHECK),TRUE)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(COMPLIBLIST) $(DO) \
+ ($(IF_EXIST) $(strip $(COMPLIBDIR))/lib$(PRE_VAR)i $(THEN) ($(DEL_FILE) $(strip $(COMPLIBDIR))/lib$(PRE_VAR)i) $(CMD_END)) \
+ $(DONE)
+endif
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: %.a
+# *************************************************************************
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+%.a: FORCE
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$(@F),L," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF) "$(strip $(MBIS_EN_OBJ_LOG))" $(EQU) "TRUE" $(THEN) \
+ ($(IF_NOT_EXIST) $(TARGDIR)/log/mbis/$* $(THEN) \
+ ($(MKDIR) $(TARGDIR)/log/mbis/$*) \
+ $(CMD_END) $(AND) \
+ ($(LIST_DIR) "$(TARGDIR)/log/mbis/$*/*.mbis" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ ($(DEL_FILE) $(TARGDIR)/log/mbis/$*/*.mbis)\
+ $(CMD_END)))\
+ $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(strip $(COMPLIBDIR)) $(THEN) \
+ ($(MKDIR) $(COMPLIBDIR)) \
+ $(CMD_END)
+
+ @perl ./tools/time.pl
+ @$(ECHO) -n Building $*
+ @$(ECHO) -n " LOG: $(strip $(COMPLOGDIR))/$*.log"
+
+ifneq ($(strip $(SMART_CHECK)),TRUE)
+ @$(IF_NOT_EXIST) $(strip $(OBJSDIR))/$* $(THEN) \
+ ($(MKDIR) $(strip $(OBJSDIR))/$*) \
+ $(CMD_END)
+ @$(IF) "$(ACTION)" $(EQU) "new" $(THEN) \
+ $(IF_EXIST) $(strip $(RULESDIR))/$*.dep $(THEN) \
+ $(DEL_FILE) $(strip $(RULESDIR))/$*.dep \
+ $(CMD_END) \
+ $(CMD_END)
+ @$(IF) "$(ACTION)" $(EQU) "bm_new" $(THEN) \
+ $(IF_EXIST) $(strip $(RULESDIR))/$*.dep $(THEN) \
+ $(DEL_FILE) $(strip $(RULESDIR))/$*.dep \
+ $(CMD_END)\
+ $(CMD_END)
+ @$(IF_NOT) "$(ACTION)" $(EQU) "remake" $(THEN) \
+ $(IF_NOT_EXIST) $(strip $(RULESDIR))/$* $(THEN) \
+ $(MKDIR) $(strip $(RULESDIR))/$* \
+ $(CMD_END)\
+ $(CMD_END)
+ @$(IF) "$(ACTION)" $(EQU) "new" $(THEN) \
+ ($(LIST_DIR) "$(strip $(RULESDIR))/$*/*.det" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(RULESDIR))/$*/*.det $(CMD_END)) \
+ $(CMD_END)
+ @$(IF) "$(ACTION)" $(EQU) "bm_new" $(THEN) \
+ ($(LIST_DIR) "$(strip $(RULESDIR))/$*/*.det" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(RULESDIR))/$*/*.det $(CMD_END)) \
+ $(CMD_END)
+
+ @$(LIST_DIR) "*.via" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) *.via $(CMD_END)
+ @$(LIST_DIR) "*.d" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) *.d $(CMD_END)
+endif
+
+ @$(ECHO) "$* START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(MAKE) -fmake/common/comp.mak -k -r -R SMART_CHECK=$(strip $(SMART_CHECK)) TMPDIR=$(strip $(TMPDIR)) $(strip $(CMD_ARGU)) --no-print-directory COMPONENT=$* setup_env > $(strip $(COMPLOGDIR))/$*_setEnv.log 2>&1
+
+ ifeq ($(strip $(call Upper,$(BM_NEW))),TRUE)
+ @$(IF_NOT_EXIST) $(strip $(COMPLOGDIR))/$* $(THEN) $(MKDIR) $(strip $(COMPLOGDIR))/$* $(CMD_END)
+
+ @($(MAKE) -fmake/common/comp.mak -k -r -R TMPDIR=$(strip $(TMPDIR)) $(strip $(CMD_ARGU)) COMPONENT=$* update_lib > $(strip $(COMPLOGDIR))/$*.log 2>&1) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN)\
+ (perl ./tools/get_log.pl $(strip $(COMPLOGDIR))/$*.log $(strip $(COMPLOGDIR))/$* $(HTOGETHER) $(strip $(HEADER_TEMP))) $(AND) \
+ ($(DEL_DIR) $(strip $(COMPLOGDIR))/$*) $(AND) \
+ ($(IF_EXIST) $(MODIS_RULESDIR) $(THEN) perl ./tools/pack_dep_gcc.pl $(MODIS_RULESDIR)/$*.dep $(MODIS_RULESDIR) $(HTOGETHER) $(strip $(HEADER_TEMP)) $(CMD_END)) $(AND) \
+ (exit 1) \
+ $(ELSE) \
+ (perl ./tools/get_log.pl $(strip $(COMPLOGDIR))/$*.log $(strip $(COMPLOGDIR))/$* $(HTOGETHER) $(strip $(HEADER_TEMP))) $(AND) \
+ ($(DEL_DIR) $(strip $(COMPLOGDIR))/$*) \
+ $(CMD_END))
+ else
+ @$(IF_NOT_EXIST) $(strip $(COMPLOGDIR))/$* $(THEN) \
+ $(MKDIR) $(strip $(COMPLOGDIR))/$* \
+ $(CMD_END)
+
+ @($(MAKE) -fmake/common/comp.mak -r -R SMART_CHECK=$(strip $(SMART_CHECK)) TMPDIR=$(strip $(TMPDIR)) $(strip $(CMD_ARGU)) COMPONENT=$* update_lib > $(strip $(COMPLOGDIR))/$*.log 2>&1) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ (perl ./tools/get_log.pl $(strip $(COMPLOGDIR))/$*.log $(strip $(COMPLOGDIR))/$* $(HTOGETHER) $(strip $(HEADER_TEMP))) $(AND) \
+ ($(DEL_DIR) $(strip $(COMPLOGDIR))/$*) $(AND) \
+ ($(IF_EXIST) $(MODIS_RULESDIR) $(THEN) perl ./tools/pack_dep_gcc.pl $(MODIS_RULESDIR)/$*.dep $(MODIS_RULESDIR)/$* $(HTOGETHER) $(strip $(HEADER_TEMP)) $(CMD_END)) $(AND) \
+ ($(IF_EXIST) $(strip $(COMPLIBDIR))/lib$*.a $(THEN) $(DEL_FILE) $(strip $(COMPLIBDIR))/lib$*.a $(CMD_END)) $(AND) \
+ (exit 1) \
+ $(ELSE) \
+ (perl ./tools/get_log.pl $(strip $(COMPLOGDIR))/$*.log $(strip $(COMPLOGDIR))/$* $(HTOGETHER) $(strip $(HEADER_TEMP))) $(AND) \
+ ($(DEL_DIR) $(strip $(COMPLOGDIR))/$*) \
+ $(CMD_END))
+ endif
+
+ @perl ./tools/chk_lib_err_warn.pl $(strip $(COMPLOGDIR))/$*.log
+ @$(ECHO) "$* END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+# mbis time probe
+ @$(IF) "$(strip $(MBIS_EN_OBJ_LOG))" $(EQU) "TRUE" $(THEN) \
+ ($(LIST_DIR) "$(TARGDIR)/log/mbis/$*/*.mbis" 1>$(DEV_NUL) 2>&1 || exit 0 $(AND) (perl ./tools/mbis.pl -o $(TARGDIR)/log/mbis/$*)) \
+ $(CMD_END)
+ @$(LIST_DIR) "$(TARGDIR)/log/mbis/$*/*.mbis" 1>$(DEV_NUL) 2>&1 || exit 0 $(AND) (($(DEL_FILE) $(TARGDIR)/log/mbis/$*/*.mbis) $(AND) ($(DEL_DIR) $(TARGDIR)/log/mbis/$*))
+ ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$(@F),L," >> $(MBIS_BUILD_TIME_TMP)
+ endif
+endif #ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+
+# *************************************************************************
+# Scan Target For Scanning Header Dependencies
+# *************************************************************************
+ifeq ($(strip $(CHECK_SCAN)),TRUE)
+scan: $(COMP_DEP_LIST)
+else
+scan: cleandep $(COMP_DEP_LIST)
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) -n Scanning Header Dependencies finished.
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+cleandep:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(COMPSCANLIST) $(DO) \
+ (echo clean $(PRE_VAR)i.dep) $(WITH) \
+ ($(IF_EXIST) $(strip $(RULESDIR))/$(PRE_VAR)i.dep $(THEN) $(DEL_FILE) $(strip $(RULESDIR))/$(PRE_VAR)i.dep $(CMD_END)) \
+ $(DONE)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+%.dep: gencompbld
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) -n scan $* dependency ...
+ @$(IF_NOT_EXIST) $(strip $(RULESDIR))/$@ $(THEN)\
+ ($(MAKE) -fmake/common/comp.mak -k -r -R --no-print-directory TMPDIR=$(strip $(TMPDIR)) $(strip $(CMD_ARGU)) COMPONENT=$* setup_env > $(strip $(COMPLOGDIR))/$*_setEnv.log 2>&1) $(AND) \
+ ($(MAKE) -fmake/common/comp.mak -k -r -R --no-print-directory TMPDIR=$(strip $(TMPDIR)) $(strip $(CMD_ARGU)) COMPONENT=$* update_dep > $(strip $(COMPLOGDIR))/$*_dep.log 2>&1) $(AND) \
+ ($(IF_EXIST) $(strip $(COMPLOGDIR))/$* $(THEN) ($(DEL_DIR) $(strip $(COMPLOGDIR))/$*)$(CMD_END)) $(AND) \
+ ($(LIST_DIR) "$(strip $(COMPLOGDIR))/$*_dep.log" > $(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) ($(DEL_FILE) $(strip $(COMPLOGDIR))/$*_dep.log) $(CMD_END)) \
+ $(CMD_END)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: cleanall
+# Standard "cleanall" Target
+# *************************************************************************
+cleanall:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(BUILDDIR) $(THEN) $(MKDIR) $(BUILDDIR) $(CMD_END)
+ @$(IF_NOT_EXIST) $(TARGDIR) $(THEN) $(MKDIR) $(TARGDIR) $(CMD_END)
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+# -----------------------------
+# Check build root, target, and project directories
+#
+# build ->
+# +-$(PROJECT_NAME)
+# +-$(FLAVOR)
+# +-dep - Dependency directory
+# +-ojb - Object directory
+# +-log - log directory
+# +-lib - libraries directory
+# -----------------------------
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n "Cleaning directories under $(strip $(PROJDIR)) ..."
+
+ -@$(IF_NOT_EXIST) $(TARGDIR) $(THEN) ($(MKDIR) $(TARGDIR)) \
+ $(ELSE) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(NEWTARGNAME).bin $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(NEWTARGNAME).bin) $(CMD_END)) $(AND) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(IMG_FILE)) $(CMD_END)) $(AND) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(strip $(LIS_FILE)) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(strip $(LIS_FILE))) $(CMD_END)) $(AND) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(SYM_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(SYM_FILE)) $(CMD_END)) $(AND) \
+ ($(LIST_DIR) "$(strip $(TARGDIR))/*.log" > $(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/*.log) $(CMD_END))\
+ $(CMD_END)
+
+else
+ ifeq ($(strip $(PROJDIR)),$(strip $(BUILDDIR))/$(strip $(PROJECT_NAME))/$(strip $(FLAVOR)))
+ # MoDIS is not separated from Target
+ @$(IF_EXIST) $(MODISPROJDIR)/_BUILD_XGEN $(THEN) $(DEL_DIR) $(MODISPROJDIR)/_BUILD_XGEN $(CMD_END)
+ endif
+endif #ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+
+ @$(IF_NOT_EXIST) $(COMPLOGDIR) $(THEN)($(MKDIR) $(COMPLOGDIR)) $(CMD_END)
+
+ifneq ($(strip $(AUTO_CHECK_DEPEND)),TRUE)
+# -----------------------------
+# Remove TST database files
+# -----------------------------
+ @$(IF_EXIST) $(CODE_GEN_LST) $(THEN)\
+ ($(COPY_FILE) $(CODE_GEN_LST) $(strip $(TMPDIR))/~codegenlis.tmp > $(DEV_NUL)) $(AND) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(CODE_GEN_LST)` $(DO) \
+ ($(IF_EXIST) $(PRE_VAR)i $(THEN) ($(DEL_FILE) $(PRE_VAR)i) $(CMD_END)) \
+ $(DONE)) $(AND) \
+ ($(IF_EXIST) $(CODE_GEN_LST) $(THEN) ($(DEL_FILE) $(CODE_GEN_LST)) $(CMD_END)) \
+ $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(PROJDIR) $(THEN) ($(MKDIR) $(PROJDIR)) $(CMD_END)
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+# -----------------------------
+# Check component directories
+# -----------------------------
+#
+ifneq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "Cleaning dep files under $(RULESDIR)"
+ @$(IF_EXIST) $(strip $(RULESDIR)) $(THEN) ($(DEL_DIR) $(strip $(RULESDIR))) $(CMD_END)
+ @$(IF_NOT_EXIST) $(RULESDIR) $(THEN) ($(MKDIR) $(RULESDIR)) $(CMD_END)
+ @$(ECHO) -n "Cleaning obj files under $(OBJSDIR)"
+ @$(IF_EXIST) $(strip $(OBJSDIR)) $(THEN) ($(DEL_DIR) $(strip $(OBJSDIR))) $(CMD_END)
+ @$(IF_NOT_EXIST) $(OBJSDIR) $(THEN) ($(MKDIR) $(OBJSDIR)) $(CMD_END)
+ @$(ECHO) -n "Cleaning lib files under $(COMPLIBDIR)"
+ @$(IF_EXIST) $(strip $(COMPLIBDIR)) $(THEN) ($(DEL_DIR) $(strip $(COMPLIBDIR))) $(CMD_END)
+ @$(IF_NOT_EXIST) $(COMPLIBDIR) $(THEN) ($(MKDIR) $(COMPLIBDIR)) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(COMPLIBDIR)) $(THEN) \
+ ($(MKDIR) $(COMPLIBDIR)) \
+ $(ELSE) \
+ ($(ECHO) -n Cleaning lib files under $(COMPLIBDIR)) $(AND) \
+ ($(LIST_DIR) "$(strip $(COMPLIBDIR))/*.a" > $(DEV_NUL) 2>&1 $(WITH) \
+ ($(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(COMPLIBDIR))/*.a $(CMD_END))) \
+ $(CMD_END)
+endif
+
+ifneq ($(strip $(SMART_CHECK)),TRUE)
+ @$(IF_EXIST) $(strip $(PROJDIR))/nvram_auto_gen $(THEN) ($(DEL_DIR) $(strip $(PROJDIR))/nvram_auto_gen) $(CMD_END)
+endif
+endif #ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+endif
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: cleanbin
+# Standard "cleanbin" Target
+# *************************************************************************
+cleanbin:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) ($(DEL_DIR) $(strip $(TARGDIR))/$(strip $(BIN_FILE))) $(CMD_END)
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(CHECKBINFILE))* $(THEN) ($(DEL_DIR) $(strip $(TARGDIR))/$(strip $(CHECKBINFILE))*) $(CMD_END)
+endif
+else
+ @$(IF_EXIST) $(MODISPROJDIR)/MoDIS/$(MODIS_MODE)/MoDIS.exe $(THEN) $(DEL_FILE) $(MODISPROJDIR)/MoDIS/$(MODIS_MODE)/MoDIS.exe $(CMD_END)
+ @$(IF_EXIST) $(MODISPROJDIR)/MoDIS/$(MODIS_MODE)/MoDIS.exe $(THEN) exit 2 $(CMD_END)
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME)>>$(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: genlog
+# Standard "genlog" Target
+# *************************************************************************
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(filter $(MAKECMDGOALS),new),)
+ genlog: gen_infolog drv_feature_check
+ endif
+ genlog: gen_infolog_modis gen_infomakelog
+else
+ genlog: gen_infolog gen_infomakelog drv_feature_check
+endif
+
+genlog:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ifneq ($(PCIBT_ACTION_LIST),)
+ @$(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) "make/common/rule_def/commincdirs_def.mak" $(INFOMAKELOG) $(PCIBT_ACTION_LIST) 2> $(strip $(TARGDIR))/GlobalIncCheck.log $(WITH) $(IF_ERR_TRUE) $(THEN) ($(CAT) $(strip $(TARGDIR))/GlobalIncCheck.log $(WITH) exit 1) $(CMD_END)
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Standard "cleanmod" Target
+# *************************************************************************
+cleanmod:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+# -----------------------------
+# Check build root, target, and project directories
+#
+# build ->
+# +-$(PROJECT_NAME)
+# +-$(FLAVOR)
+# +-dep - Dependency directory
+# +-ojb - Object directory
+# +-log - log directory
+# +-lib - libraries directory
+# -----------------------------
+ @$(ECHO) -n Cleaning directories under $(strip $(PROJDIR)) ...
+ @$(IF_NOT_EXIST) $(BUILDDIR) $(THEN) \
+ ($(MKDIR) $(BUILDDIR)) $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(TARGDIR) $(THEN) \
+ ($(MKDIR) $(TARGDIR)) \
+ $(ELSE) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(NEWTARGNAME).bin/NUL $(THEN) ($(DEL_DIR) $(strip $(TARGDIR))/$(NEWTARGNAME).bin) $(CMD_END)) $(WITH) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(NEWTARGNAME).bin $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(NEWTARGNAME).bin) $(CMD_END)) $(WITH) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(IMG_FILE)) $(CMD_END)) $(WITH) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(strip $(LIS_FILE)) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(strip $(LIS_FILE))) $(CMD_END)) $(WITH) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(SYM_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(SYM_FILE)) $(CMD_END)) $(WITH) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(TARGNAME).htm $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(TARGNAME).htm) $(CMD_END)) $(WITH) \
+ ($(LIST_DIR) "$(strip $(TARGDIR))/*.log" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ ($(DEL_FILE) $(strip $(TARGDIR))/*.log) \
+ $(CMD_END)) \
+ $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(COMPLOGDIR) $(THEN) \
+ ($(MKDIR) $(COMPLOGDIR)) \
+ $(ELSE) \
+ ($(FOR) $(DECLARE_VAR)i $(IN) $(CLEAN_MODS) $(DO) \
+ ($(IF_EXIST) $(strip $(COMPLOGDIR))/$(PRE_VAR)i.log $(THEN) ($(DEL_FILE) $(strip $(COMPLOGDIR))/$(PRE_VAR)i.log) $(CMD_END)) \
+ $(DONE)) \
+ $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(PROJDIR) $(THEN) ($(MKDIR) $(PROJDIR)) $(CMD_END)
+ @$(IF_NOT_EXIST) $(OBJSDIR) $(THEN) ($(MKDIR) $(OBJSDIR)) $(CMD_END)
+
+# -----------------------------
+# Check component directories
+# -----------------------------
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(CLEAN_MODS) $(DO) \
+ ($(IF_NOT_EXIST) $(strip $(OBJSDIR))/$(PRE_VAR)i $(THEN) ($(MKDIR) $(strip $(OBJSDIR))/$(PRE_VAR)i) \
+ $(ELSE) \
+ (echo Cleaning object files under $(PRE_VAR)i) $(WITH) \
+ ($(LIST_DIR) "$(OBJSDIR)/$(PRE_VAR)i/*.*" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ ($(DEL_FILE) $(OBJSDIR)/$(PRE_VAR)i/*.*) \
+ $(CMD_END)) \
+ $(CMD_END)) \
+ $(DONE)
+
+ @$(IF_NOT_EXIST) $(COMPLIBDIR) $(THEN) \
+ ($(MKDIR) $(COMPLIBDIR)) \
+ $(ELSE) \
+ (echo Cleaning library files $(CLEAN_MODS) under $(COMPLIBDIR)) $(WITH) \
+ ($(FOR) $(DECLARE_VAR)i $(IN) $(CLEAN_MODS) $(DO) \
+ ($(IF_EXIST) $(strip $(COMPLIBDIR))/lib$(PRE_VAR)i.a $(THEN) ($(DEL_FILE) $(strip $(COMPLIBDIR))/lib$(PRE_VAR)i.a) $(CMD_END))\
+ $(DONE)) \
+ $(CMD_END)
+
+ifeq ($(NEED_CLEAN_CGENLST),TRUE)
+ echo Cleaning code gen files
+ @$(IF_EXIST) $(CODE_GEN_LST) $(THEN) \
+ ($(FOR) $(DECLARE_VAR)i $(IN) $(CODE_GEN_LST) $(DO) \
+ ($(IF_EXIST) $(PRE_VAR)i $(THEN) ($(DEL_FILE) $(PRE_VAR)i) $(CMD_END)) \
+ $(DONE)) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(CODE_GEN_LST) $(THEN) \
+ (($(COPY_FILE) $(CODE_GEN_LST) $(strip $(TMPDIR))/~codegenlis.tmp >$(DEV_NUL)) $(AND) \
+ ($(DEL_FILE) $(CODE_GEN_LST)) \
+ $(CMD_END)
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: gen_infolog
+# dump the compile option & include path to $(INFOLOG)
+# *************************************************************************
+gen_infolog: $(PREGEN_DEP)/gen_infolog.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./gen_infolog.det)
+else
+$(PREGEN_DEP)/gen_infolog.det: FORCE
+endif
+$(PREGEN_DEP)/gen_infolog.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN) \
+ ($(ECHO) "$@ START TIME=" >>$(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME)>>$(strip $(TARGDIR))/build.log) \
+ $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(COMPLOGDIR) $(THEN) ($(MKDIR) $(COMPLOGDIR)) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TMPDIR))/~def.tmp $(THEN) $(DEL_FILE) $(strip $(TMPDIR))/~def.tmp $(CMD_END)
+ @$(IF_EXIST) $(strip $(TMPDIR))/~inc.tmp $(THEN) $(DEL_FILE) $(strip $(TMPDIR))/~inc.tmp $(CMD_END)
+
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~def.tmp $(foreach def,$(sort $(COM_DEFS_TARGET)),$(def))
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~inc.tmp $(foreach inc,$(COMMINCDIRS_TARGET),$(inc))
+ @perl ./tools/lnitem.pl $(strip $(TMPDIR))/~def.tmp
+ @perl ./tools/lnitem.pl $(strip $(TMPDIR))/~inc.tmp
+
+ @($(ECHO) -n "[ COMMON OPTION ]" > $(INFOLOG)) $(AND) \
+ ($(CAT) $(strip $(TMPDIR))/~def.tmp >> $(INFOLOG))
+ @($(ECHO) -n "[ COMMON INCLUDE PATH ]" >> $(INFOLOG)) $(AND) \
+ ($(CAT) $(strip $(TMPDIR))/~inc.tmp >> $(INFOLOG))
+
+ @$(ECHO) -n "$@: $(NEED_CHECK_DEPEND_LIST)" > $(PREGEN_DEP)/gen_infolog.det
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >>$(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) -n Generating infolog is done.
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN) \
+ ($(ECHO) "$@ END TIME=" >>$(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME)>>$(strip $(TARGDIR))/build.log) \
+ $(CMD_END)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: gen_infomakelog
+# dump details compile info, release info to $(INFOMAKELOG) for debugging or tracking
+# *************************************************************************
+gen_infomakelog: $(PREGEN_DEP)/gen_infomakelog.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./gen_infomakelog.det)
+else
+$(PREGEN_DEP)/gen_infomakelog.det: FORCE
+endif
+$(PREGEN_DEP)/gen_infomakelog.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(STRCMPEX) def def e $(INFOMAKELOG) COM_DEFS = $(call sort, $(foreach def,$(COM_DEFS),$(def)))
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~remove.tmp COMMINCDIRS = $(foreach inc,$(COMMINCDIRS),$(inc))
+ @perl ./tools/echoLongString5.pl $(INFOMAKELOG) XGEN_INC_DIR_ORI $(strip $(XGEN_INC_DIR_ORI))
+ @$(CAT) $(strip $(TMPDIR))/~remove.tmp >> $(INFOMAKELOG)
+ @perl ./tools/echoLongString.pl $(INFOMAKELOG) COMP_TRACE_DEFS_MODEM $(COMP_TRACE_DEFS_MODEM)
+ @perl ./tools/echoLongString.pl $(INFOMAKELOG) COMP_TRACE_DEFS $(COMP_TRACE_DEFS_MODEM)
+ @$(ECHO) -n COMPLIST = $(call sort, $(foreach def,$(COMPLIST),$(def))) >> $(INFOMAKELOG)
+ @$(ECHO) -n FOURG_COMP = $(call sort, $(foreach def,$(FOURG_COMP),$(def))) >> $(INFOMAKELOG)
+ @$(ECHO) -n FIVEG_COMP = $(call sort, $(foreach def,$(FIVEG_COMP),$(def))) >> $(INFOMAKELOG)
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @perl ./tools/echoLongString.pl $(INFOMAKELOG) COMPOBJS $(COMPOBJS)
+ @perl ./tools/echoLongString.pl $(INFOMAKELOG) CUS_REL_OBJ_LIST $(CUS_REL_OBJ_LIST)
+ @perl ./tools/echoLongString.pl $(INFOMAKELOG) CUS_REL_BASE_COMP $(CUS_REL_BASE_COMP)
+endif
+ @$(ECHO) -n CUS_REL_SRC_COMP = $(call sort, $(foreach def,$(CUS_REL_SRC_COMP),$(def))) >> $(INFOMAKELOG)
+ @$(ECHO) -n CUS_REL_MTK_COMP = $(call sort, $(foreach def,$(CUS_REL_MTK_COMP),$(def))) >> $(INFOMAKELOG)
+ifeq ($(MPD_SOURCE_FULL_BUILD), TRUE)
+ @$(ECHO) -n CUS_REL_SRC_COMP_SW = $(call sort, $(foreach def,$(CUS_REL_SRC_COMP_SW),$(def))) >> $(INFOMAKELOG)
+ @$(ECHO) -n CUS_REL_MTK_COMP_SW = $(call sort, $(foreach def,$(CUS_REL_MTK_COMP_SW),$(def))) >> $(INFOMAKELOG)
+ @$(ECHO) -n CUS_REL_SRC_COMP_CUST = $(call sort, $(foreach def,$(CUS_REL_SRC_COMP_CUST),$(def))) >> $(INFOMAKELOG)
+ @$(ECHO) -n CUS_REL_MTK_COMP_CUST = $(call sort, $(foreach def,$(CUS_REL_MTK_COMP_CUST),$(def))) >> $(INFOMAKELOG)
+endif
+
+ # NON_REL_XXX_LIST will be used in copy_cr in moly_release.mak
+ @$(ECHO) -n NON_REL_DIRS_LIST = $(call sort, $(foreach def,$(NON_REL_DIRS_LIST),$(def))) >> $(INFOMAKELOG)
+ @$(ECHO) -n NON_REL_FILES_LIST = $(call sort, $(foreach def,$(NON_REL_FILES_LIST),$(def))) >> $(INFOMAKELOG)
+ @$(ECHO) -n TST_DB = $(strip $(BUILD_TST_DB)) >> $(INFOMAKELOG)
+ @$(ECHO) -n LEVEL = $(strip $(LEVEL)) >> $(INFOMAKELOG)
+ @$(ECHO) -n CUSTOM_RELEASE = $(strip $(CUSTOM_RELEASE)) >> $(INFOMAKELOG)
+ @$(ECHO) -n VERNO = $(strip $(VERNO)) >> $(INFOMAKELOG)
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n CUSTOM_DEBUG_MODULES = $(strip $(CUSTOM_DEBUG_MODULES))>> $(INFOMAKELOG)
+ @$(ECHO) -n CUSTOM_NON_DEBUG_MODULES = $(strip $(CUSTOM_NON_DEBUG_MODULES))>> $(INFOMAKELOG)
+else
+ @$(ECHO) -n MODIS_EN_LIBS = $(strip $(MODIS_EN_LIBS)) >> $(INFOMAKELOG)
+ @$(ECHO) -n MODIS_DIS_LIBS = $(strip $(MODIS_DIS_LIBS)) >> $(INFOMAKELOG)
+ @$(ECHO) -n MODIS_MTK_LIBS = $(strip $(MODIS_MTK_LIBS)) >> $(INFOMAKELOG)
+ @$(ECHO) -n MODIS_EN_OBJS = $(strip $(MODIS_EN_OBJS)) >> $(INFOMAKELOG)
+ @$(ECHO) -n CUS_MODIS_LIB = $(strip $(CUS_MODIS_LIB)) >> $(INFOMAKELOG)
+ @$(ECHO) -n MODIS_MODE = $(strip $(MODIS_MODE)) >> $(INFOMAKELOG)
+ @$(ECHO) -n MODIS_MODE_DEFAULT = $(strip $(MODIS_MODE_DEFAULT)) >> $(INFOMAKELOG)
+ @$(ECHO) -n MODIS_INCREDIBUILD = $(strip $(MODIS_INCREDIBUILD)) >> $(INFOMAKELOG)
+ @$(ECHO) -n MODIS_UESIM = $(strip $(MODIS_UESIM)) >> $(INFOMAKELOG)
+ @$(ECHO) -n MODISDIR = $(MODISDIR) >>$(INFOMAKELOG)
+ @$(ECHO) -n MODISPROJDIR = $(MODISPROJDIR) >>$(INFOMAKELOG)
+ @$(ECHO) -n LLVM_ON_WINDOWS = $(LLVM_ON_WINDOWS) >>$(INFOMAKELOG)
+ ifeq ($(strip $(MODIS_COMPILER)),MINGW)
+ @$(ECHO) -n CFLAGS_MODIS = $(CFLAGS_MODIS) >>$(INFOMAKELOG)
+ @$(ECHO) -n LNKOPT_MODIS_START = $(LNKOPT_MODIS_START) >>$(INFOMAKELOG)
+ @$(ECHO) -n LNKOPT_MODIS_END = $(LNKOPT_MODIS_END) >>$(INFOMAKELOG)
+ endif
+endif
+ @$(ECHO) -n CUSTOM_SYSTEM_FOLDER = $(call CUSTOM_FLD_MAPPING,custom\system) >> $(INFOMAKELOG)
+ @$(ECHO) -n LOG2SD_CATCHER_FILTERS_FILE_LIST = $(LOG2SD_CATCHER_FILTERS_FILE_LIST) >> $(INFOMAKELOG)
+ @$(ECHO) -n CODEGEN_PREPROCESS_MODEM = $(CODEGEN_PREPROCESS_MODEM) >> $(INFOMAKELOG)
+ @$(ECHO) -n CODEGEN_DEPENDENCY_MODEM_SEC = $(CODEGEN_DEPENDENCY_MODEM_SEC) >> $(INFOMAKELOG)
+ @$(ECHO) -n CODEGEN_DEPENDENCY_MODEM = $(CODEGEN_DEPENDENCY_MODEM) >> $(INFOMAKELOG)
+ @$(ECHO) -n ALL_MODULELIS = $(ALL_MODULELIS) >> $(INFOMAKELOG)
+ @$(ECHO) -n ALL_MODULES_IN_PROJ = $(ALL_COMPLIST) >> $(INFOMAKELOG)
+
+ifdef TK_MD_CUS
+ @$(ECHO) -n TK_MD_CUS = $(TK_MD_CUS) >> $(INFOMAKELOG)
+endif
+
+ @$(ECHO) -n "$@: $(NEED_CHECK_DEPEND_LIST)" > $(PREGEN_DEP)/gen_infomakelog.det
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >>$(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) -n Generating infomakelog is done.
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN) \
+ ($(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME) >> $(strip $(TARGDIR))/build.log) \
+ $(CMD_END)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: end
+# *************************************************************************
+end:
+# -----------------------------
+# Clean temporary files in make directory
+# -----------------------------
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE))/ROM $(THEN) \
+ ($(LIST_DIR) "$(strip $(TARGDIR))/$(strip $(BIN_FILE))/*.cfg" > $(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ $(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE))/$(SCATTERFILE_FLASHTOOL_NAME) $(THEN) \
+ ($(DEL_FILE) $(strip $(TARGDIR))/$(strip $(BIN_FILE))/$(SCATTERFILE_FLASHTOOL_NAME)*) \
+ $(CMD_END) \
+ $(CMD_END)) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(strip $(TARGDIR))/*.cfg" > $(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ $(IF_EXIST) $(strip $(TARGDIR))/$(SCATTERFILE_FLASHTOOL_NAME) $(THEN) \
+ ($(DEL_FILE) $(strip $(TARGDIR))/$(SCATTERFILE_FLASHTOOL_NAME)*) \
+ $(CMD_END) \
+ $(CMD_END)) \
+ $(CMD_END)
+
+ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+ @$(ECHO) -n check system drive ....
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/ckSysDrv.log $(THEN) \
+ (perl ./tools/chk_sysdrv_log.pl $(strip $(COMPLOGDIR))/ckSysDrv.log $(strip $(TARGDIR))/$(strip $(BIN_FILE))) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: cksysdrv has errors. Delete the binary file. $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+endif
+
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ @$(ECHO) -n Check if any error happened during the build process .....
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) \
+ perl ./tools/parse_comp_err.pl $(strip $(PROJDIR)) $(MODIS_CONFIG) $(strip $(TMPDIR)) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TMPDIR))/comp_err.txt $(THEN) \
+ $(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) \
+ (echo Some error happened during the build process. Delete the binary file.) $(WITH) \
+ ($(DEL_DIR) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(WITH) exit 1) $(CMD_END) \
+ $(CMD_END)
+endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ifeq ($(NO_DSP),FALSE)
+ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN)\
+ $(strip .)/tools/md_all_in_one/img_list.sh "$(strip $(PROJECT_NAME))($(strip $(FLAVOR)))" \
+ $(CMD_END)
+endif
+endif
+endif
+# -----------------------------
+# remove dep and via folders under build folder
+# -----------------------------
+ @$(IF_EXIST) $(strip $(HEADER_TEMP)) $(THEN) ($(DEL_DIR) $(strip $(HEADER_TEMP))) $(CMD_END)
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_EXIST) $(FIXPATH)/nul $(THEN) $(DEL_FILE) $(FIXPATH)/nul $(CMD_END)
+ @$(IF_EXIST) $(FIXPATH)/NUL $(THEN) $(DEL_FILE) $(FIXPATH)/NUL $(CMD_END)
+endif
+
+ ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifdef CCACHE_DIR
+ @$(ECHO) -n "2nd ccache status" >> $(strip $(COMPLOGDIR))/ccache.log
+ @$(CCACHE) -s >> $(strip $(COMPLOGDIR))/ccache.log
+ endif
+ endif
+
+ @$(ECHO) -n Done.
+ @$(CHK_TIME)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: ckmake
+# *************************************************************************
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ifdef CCACHE_DIR
+ifdef CCACHE_SIZE
+ckmake: ccache
+endif
+endif
+endif
+ckmake:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN) \
+ ($(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME) >> $(strip $(TARGDIR))/build.log) \
+ $(CMD_END)
+
+ @perl ./tools/chk_verno.pl $(VERNO)
+ @$(IF_NOT_EXIST) $(strip $(COMPLOGDIR)) $(THEN) \
+ ($(MKDIR) $(strip $(COMPLOGDIR))) \
+ $(CMD_END)
+ @perl ./tools/chk_feature_option.pl "$(strip $(PROJECT_MAKEFILE))" $(strip $(COMPLOGDIR)) > $(strip $(COMPLOGDIR))/chk_feature_option.log
+
+ifeq ($(strip $(CHECK_FO_LICENSE)),TRUE)
+ @perl /mtkeda/wcpsm/mp_script/md_lic_feature_control/tool/chk_lic_for_feature_option.pl "$(strip $(PROJECT_MAKEFILE))" "$(strip $(LICENSE_INFO))" "$(strip $(CUST_LIC))" "$(strip $(COMPLOGDIR))" > $(strip $(COMPLOGDIR))/chk_lic_for_feature_option.log
+endif
+
+ifeq ($(strip $(OS_VERSION)),MSWin32)
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ @perl ./tools/chk_env.pl make "$(strip $(PROJECT_MAKEFILE))" -customer $(strip $(COMPLOGDIR))
+else
+ perl ./tools/chk_env.pl make "$(strip $(PROJECT_MAKEFILE))" -internal $(strip $(COMPLOGDIR))
+endif
+else
+ ifeq ($(strip $(call Upper,$(OS_VERSION))),LINUX)
+ ifeq ($(strip $(CHK_ENV_FLAG)),TRUE)
+ @perl ./tools/chk_env_linux.pl -chkenv "$(strip $(CC))" $(strip $(COMPILER_VER)) $(strip $(COMPILER_ISA)) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: current Build Env. is not recommendation. $(WITH) exit 1) $(CMD_END))
+ else
+ @perl ./tools/chk_env_linux.pl -no_chkenv "$(strip $(CC))" $(strip $(COMPILER_VER)) $(strip $(COMPILER_ISA)) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: current Build Env. is not recommendation. $(WITH) exit 1) $(CMD_END))
+ endif
+ endif
+endif
+
+ @$(ECHO) -n makefile check is done
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN) \
+ ($(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log $(AND) \
+ $(CHK_TIME) >> $(strip $(TARGDIR))/build.log) \
+ $(CMD_END)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: backup
+# *************************************************************************
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+backup : getoptions
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_EXIST) $(strip $(PROJDIR))/md_rename $(THEN) ($(DEL_DIR) $(strip $(PROJDIR))/md_rename)$(CMD_END)
+ @$(IF_EXIST) $(strip $(TARGDIR))/dummy_$(SYM_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/dummy_$(SYM_FILE)) $(CMD_END)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+else
+backup:
+endif
+
+# *************************************************************************
+# TARGET: getoptions
+# *************************************************************************
+getoptions:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+ @$(ECHO) -n "CFLAGS,$(CFLAGS)" >> $(MBIS_BUILD_INFO_LOG) $(AND) \
+ $(ECHO) -n "CPLUSFLAGS,$(CPLUSFLAGS)" >> $(MBIS_BUILD_INFO_LOG) $(AND) \
+ $(ECHO) -n "LIBOPT,$(LIBOPT)" >> $(MBIS_BUILD_INFO_LOG) $(AND) \
+ $(ECHO) -n "LNKOPT,$(LNKOPT)" >> $(MBIS_BUILD_INFO_LOG)
+endif
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~mbis_def.tmp $(foreach def,$(COM_DEFS),$(def))
+
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) "COM_DEFS," >>$(MBIS_BUILD_INFO_LOG) $(AND)\
+ $(CAT) $(strip $(TMPDIR))/~mbis_def.tmp >> $(MBIS_BUILD_INFO_LOG)
+endif
+ @$(IF_EXIST) $(strip $(TMPDIR))/~mbis_def.tmp $(THEN) $(DEL_FILE) $(strip $(TMPDIR))/~mbis_def.tmp $(CMD_END)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: gencompbld
+# Write required script variables to config file
+# *************************************************************************
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+gencompbld: gen_gfh_cfg
+endif
+gencompbld: gencategorymapping
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# mbis time probe for enable mbis time probe in comp.mak
+ @$(ECHO) -n "MBIS_EN_OBJ_LOG = $(strip $(MBIS_EN_OBJ_LOG))" > $(strip $(TMPDIR))/~compbld.tmp
+
+# Write the variable info to ~compbld.tmp for comp.mak
+ @$(ECHO) -n "ASM = $(strip $(ASM))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "LIB = $(strip $(LIB))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CC = $(strip $(CC))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CC32 = $(strip $(CC32))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CPPC = $(strip $(CPPC))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CPPC32 = $(strip $(CPPC32))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CFLAGS = $(strip $(CFLAGS))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CPLUSFLAGS = $(strip $(CPLUSFLAGS))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "VIA = $(VIA)" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CUS_MTK_LIB = $(strip $(CUS_MTK_LIB))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "NEED_BUILD_BOOTLOADER = $(strip $(NEED_BUILD_BOOTLOADER))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "COM_DEFS_FOR_$(strip $(PLATFORM)) = $(strip $(COM_DEFS_FOR_$(strip $(PLATFORM))))">> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "SV5_PLATFORM = $(strip $(SV5_PLATFORM))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "COMPLIST = $(strip $(COMPLIST))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CUS_REL_MTK_COMP = $(strip $(CUS_REL_MTK_COMP))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CHK_LTE_COMP = $(strip $(CHK_LTE_COMP))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "DWARF_FLAGS = $(strip $(DWARF_FLAGS))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "DSP_ASE_MODULES = $(strip $(DSP_ASE_MODULES))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "MD_VER_FOLDER = $(strip $(MD_VER_FOLDER))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "LTE_SRC_PATH = $(strip $(LTE_SRC_PATH))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "FIVEG_COMP = $(strip $(FIVEG_COMP))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "FOURG_COMP = $(strip $(FOURG_COMP))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "NO_DEP = $(strip $(NO_DEP))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "DETERMINISTIC = $(strip $(DETERMINISTIC))" >> $(strip $(TMPDIR))/~compbld.tmp
+
+# According to the custom_MemoryDevice.h, write the variable info to ~compbld.tmp for comp.mak
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n AFLAGS = $(strip $(AFLAGS)) >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n EXTRA_AFLAGS = $(strip $(EXTRA_AFLAGS)) >> $(strip $(TMPDIR))/~compbld.tmp
+
+ @$(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) "-cut=2" $(strip $(BUILD_SYSDIR))/custom_MemoryDevice.h` $(DO) \
+ ($(IF) "$(PRE_VAR)i" $(EQU) "NOR_LPSDRAM_MCP" $(THEN) \
+ (echo AFLAGS = $(strip $(AFLAGS)) $(call ADEFTrans,_NOR_LPSDRAM_MCP_, TRUE) >> $(strip $(TMPDIR))/~compbld.tmp) \
+ $(CMD_END)) $(AND) \
+ ($(IF) "$(PRE_VAR)i" $(EQU) "LPSDRAM" $(THEN) \
+ (echo AFLAGS = $(strip $(AFLAGS)) $(call ADEFTrans,_LPSDRAM_, TRUE) >> $(strip $(TMPDIR))/~compbld.tmp) \
+ $(CMD_END)) $(AND) \
+ ($(IF) "$(PRE_VAR)i" $(EQU) "NOR_RAM_MCP" $(THEN) \
+ (echo AFLAGS = $(strip $(AFLAGS)) $(call ADEFTrans,_NOR_RAM_MCP_, TRUE) >> $(strip $(TMPDIR))/~compbld.tmp) \
+ $(CMD_END)) \
+ $(DONE)
+endif
+
+ @$(STRCMPEX) abc abc e $(strip $(TMPDIR))/~compbld_2.tmp INCDIRS = $(strip $(COMMINCDIRS))
+ @$(CAT) $(strip $(TMPDIR))/~compbld_2.tmp >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(IF_EXIST) $(strip $(TMPDIR))/~compbld_2.tmp $(THEN) ($(DEL_FILE) $(strip $(TMPDIR))/~compbld_2.tmp) $(CMD_END)
+ @$(STRCMPEX) abc abc e $(strip $(TMPDIR))/~compbld_2.tmp DEFINES = $(strip $(COM_DEFS))
+ @$(CAT) $(strip $(TMPDIR))/~compbld_2.tmp >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(IF_EXIST) $(strip $(TMPDIR))/~compbld_2.tmp $(THEN) ($(DEL_FILE) $(strip $(TMPDIR))/~compbld_2.tmp) $(CMD_END)
+ @$(ECHO) -n "PROJECT_NAME = $(strip $(PROJECT_NAME))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "PROJECT_MAKEFILE = $(strip $(PROJECT_MAKEFILE))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "ARM9_PLATFORM = $(strip $(ARM9_PLATFORM))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "ARM11_PLATFORM = $(strip $(ARM11_PLATFORM))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CR4_PLATFORM = $(strip $(CR4_PLATFORM))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(IF_NOT) $(P_VAR)0$(COMPILER) == $(P_VAR)0 $(THEN) \
+ $(ECHO) -n "COMPILER = $(COMPILER)" >> $(strip $(TMPDIR))/~compbld.tmp $(CMD_END)
+ @$(IF_NOT) $(P_VAR)0$(HEADER_TEMP) == $(P_VAR)0 $(THEN) \
+ $(ECHO) -n "HEADER_TEMP = $(strip $(HEADER_TEMP))" >> $(strip $(TMPDIR))/~compbld.tmp $(CMD_END)
+ @$(ECHO) -n "AUTO_MERGE_PTH = $(AUTO_MERGE_PTH)" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "ACTION = $(strip $(ACTION))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CUSTOM_DEBUG_MODULES = $(strip $(CUSTOM_DEBUG_MODULES))" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "CUSTOM_NON_DEBUG_MODULES = $(strip $(CUSTOM_NON_DEBUG_MODULES))" >> $(strip $(TMPDIR))/~compbld.tmp
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n "MODIS_CONFIG = $(MODIS_CONFIG)" >> $(strip $(TMPDIR))/~compbld.tmp
+ @$(ECHO) -n "MODIS_MODE = $(MODIS_MODE)" >> $(strip $(TMPDIR))/~compbld.tmp
+endif
+
+ifdef NO_PCIBT
+ ifeq ($(strip $(NO_PCIBT)),TRUE)
+ @$(ECHO) -n "NO_PCIBT = TRUE" >> $(strip $(TMPDIR))/~compbld.tmp
+ endif
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: gen_gfh_cfg
+# *************************************************************************
+gen_gfh_cfg: $(PREGEN_DEP)/gen_gfh_cfg.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./gen_gfh_cfg.det)
+else
+$(PREGEN_DEP)/gen_gfh_cfg.det: FORCE
+endif
+$(PREGEN_DEP)/gen_gfh_cfg.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+# @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(IF_EXIST) $(strip $(TMPDIR))/~gfh_cfg.tmp $(THEN) ($(DEL_FILE) $(strip $(TMPDIR))/~gfh_cfg.tmp) $(CMD_END)
+ @$(ECHO) -n PROJECT_NAME = $(strip $(PROJECT_NAME)) > $(strip $(TMPDIR))/~gfh_cfg.tmp
+ @$(ECHO) -n PLATFORM_ID = $(strip $(BIN_FILE)) >> $(strip $(TMPDIR))/~gfh_cfg.tmp
+ @$(ECHO) -n PROJECT_ID = $(strip $(VERNO)) >> $(strip $(TMPDIR))/~gfh_cfg.tmp
+
+# @$(ECHO) -n $@: $(strip $(VERNOFILE)) >> $@
+# @$(ECHO) -n $@: "$(strip $(PROJECT_MAKEFILE))" >> $@
+
+# @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >>$(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *****************************************************************************************************
+# TARGET: gen_concatenate_proj
+# concatenate the project makefiles and the result is placed on build/$project/$flavorn/bin
+# Notice: the PROJECT_MAKEFILE should be the original project makefile in make folder. ext: make/XXX.mak
+# *****************************************************************************************************
+CONCATENATE_PROJ_MAK := $(strip $(TARGDIR))/~$(subst ~,,$(notdir $(strip $(PROJECT_MAKEFILE))))
+ORIGINAL_PROJ_MAK := make/projects/$(subst ~,,$(notdir $(strip $(PROJECT_MAKEFILE))))
+
+gen_concatenate_proj: $(strip $(CONCATENATE_PROJ_MAK))
+
+# *****************************************************************************************************
+# TARGET: $(CONCATENATE_PROJ_MAK)
+# concatenate the project makefiles and the result is placed on build/$project/$flavorn/bin
+# Notice: the PROJECT_MAKEFILE should be the original project makefile in make folder. ext: make/XXX.mak
+# *****************************************************************************************************
+$(CONCATENATE_PROJ_MAK): $(strip $(ORIGINAL_PROJ_MAK)) tools/cat_proj_mak.pl
+ifdef MODEM_SPEC
+ ifneq ($(strip $(MODEM_SPEC)),NONE)
+$(CONCATENATE_PROJ_MAK): make/common/modem_spec/$(strip $(MODEM_SPEC)).mak
+ endif
+endif
+
+ifdef VARIATION_PROJ
+ ifneq ($(strip $(VARIATION_PROJ)),)
+$(CONCATENATE_PROJ_MAK): $(strip ${MAKE_COMMON})/variation/$(strip $(VARIATION_PROJ)).mak mtk_tools/cat_vari_mak.pl
+ endif
+endif
+
+ifdef TK_MD_CUS
+ ifneq ($(strip $(TK_MD_CUS)),NONE)
+$(CONCATENATE_PROJ_MAK): make/projects/tk_md_cus/$(strip $(TK_MD_CUS)).mak tools/cat_tkmd_mak.pl
+ endif
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(strip $(TARGDIR)) $(THEN) ($(MKDIR) $(strip $(TARGDIR))) $(CMD_END)
+ @perl tools/cat_proj_mak.pl "$(strip $(ORIGINAL_PROJ_MAK))" "$(strip $(CONCATENATE_PROJ_MAK))" $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ($(DEL_FILE) "$(strip $(CONCATENATE_PROJ_MAK))" $(AND) \
+ echo "Error: concatenate project makefiles failed." $(WITH) exit 1) \
+ $(CMD_END))
+
+ifdef VARIATION_PROJ
+ifneq ($(strip $(VARIATION_PROJ)),)
+ @perl mtk_tools/cat_vari_mak.pl "$(strip ${MAKE_COMMON})/variation/$(strip $(VARIATION_PROJ)).mak" "$(strip $(CONCATENATE_PROJ_MAK))" $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ($(DEL_FILE) "$(strip $(CONCATENATE_PROJ_MAK))" $(AND) \
+ echo "Error: concatenate variation makefiles failed." $(WITH) exit 1) \
+ $(CMD_END))
+endif
+endif
+
+ifdef TK_MD_CUS
+ifneq ($(strip $(TK_MD_CUS)),NONE)
+ @perl tools/cat_tkmd_mak.pl "make/projects/tk_md_cus/$(strip $(TK_MD_CUS)).mak" "$(strip $(CONCATENATE_PROJ_MAK))" $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ($(DEL_FILE) "$(strip $(CONCATENATE_PROJ_MAK))" $(AND) \
+ echo "Error: concatenate variation makefiles failed." $(WITH) exit 1) \
+ $(CMD_END))
+endif
+endif
+
+ @$(IF_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(DEL_DIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $(strip $(POSTGEN_DEP)) $(THEN) ($(DEL_DIR) $(strip $(POSTGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $(strip $(MODIS_RULESDIR)/codegen_dep) $(THEN) ($(DEL_DIR) $(strip $(MODIS_RULESDIR)/codegen_dep)) $(CMD_END)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+###############################
+# Begin of MoDIS only actions #
+###############################
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+include make/common/modisbuild.mak
+endif #ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+#############################
+# End of MoDIS only actions #
+#############################
+
+# FORCE is a phony target, any target depending on it will run forcely
+FORCE:
+
diff --git a/mcu/make/common/build_warning_def.mak b/mcu/make/common/build_warning_def.mak
new file mode 100644
index 0000000..e5285fc
--- /dev/null
+++ b/mcu/make/common/build_warning_def.mak
@@ -0,0 +1,47 @@
+ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ WARNING_AS_ERROR := TRUE
+else
+ WARNING_AS_ERROR := FALSE
+endif
+
+ifeq ($(strip $(LTO_BUILD)),TRUE)
+ WARNING_AS_ERROR = FALSE
+endif
+
+ifeq ($(strip $(WARNING_AS_ERROR)),TRUE)
+ BUILD_WARNING_CFLAGS += -Werror=array-bounds
+ BUILD_WARNING_CFLAGS += -Werror=enum-compare
+ BUILD_WARNING_CFLAGS += -Werror=implicit-function-declaration
+ BUILD_WARNING_CFLAGS += -Werror=implicit-int
+ BUILD_WARNING_CFLAGS += -Werror=int-to-pointer-cast
+ BUILD_WARNING_CFLAGS += -Werror=maybe-uninitialized
+ BUILD_WARNING_CFLAGS += -Werror=overflow
+ BUILD_WARNING_CFLAGS += -Werror=pointer-sign
+ BUILD_WARNING_CFLAGS += -Werror=pointer-to-int-cast
+ BUILD_WARNING_CFLAGS += -Werror=return-type
+ BUILD_WARNING_CFLAGS += -Werror=sequence-point
+ BUILD_WARNING_CFLAGS += -Werror=sizeof-pointer-memaccess
+ BUILD_WARNING_CFLAGS += -Werror=switch
+ BUILD_WARNING_CFLAGS += -Werror=uninitialized
+ BUILD_WARNING_CFLAGS += -Werror=unknown-pragmas
+else ifeq ($(strip $(LTO_BUILD)),TRUE)
+ BUILD_WARNING_CFLAGS += -Warray-bounds
+ BUILD_WARNING_CFLAGS += -Wenum-compare
+ BUILD_WARNING_CFLAGS += -Wimplicit-function-declaration
+ BUILD_WARNING_CFLAGS += -Wimplicit-int
+ BUILD_WARNING_CFLAGS += -Wint-to-pointer-cast
+ BUILD_WARNING_CFLAGS += -Wmaybe-uninitialized
+ BUILD_WARNING_CFLAGS += -Woverflow
+ BUILD_WARNING_CFLAGS += -Wpointer-sign
+ BUILD_WARNING_CFLAGS += -Wpointer-to-int-cast
+ BUILD_WARNING_CFLAGS += -Wreturn-type
+ BUILD_WARNING_CFLAGS += -Wsequence-point
+ BUILD_WARNING_CFLAGS += -Wsizeof-pointer-memaccess
+ BUILD_WARNING_CFLAGS += -Wswitch
+ BUILD_WARNING_CFLAGS += -Wuninitialized
+ BUILD_WARNING_CFLAGS += -Wunknown-pragmas
+endif
+
+#hard code to filter out $project($flavor)
+CLOSE_WARNING_AS_ERROR_PROJECT :=
+CLOSE_WARNING_AS_ERROR_PROJECT += MT3967_SP_LWCTG_GCCV6
diff --git a/mcu/make/common/buildconfig.mak b/mcu/make/common/buildconfig.mak
new file mode 100644
index 0000000..4ea5a14
--- /dev/null
+++ b/mcu/make/common/buildconfig.mak
@@ -0,0 +1,337 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+SHELL:=/bin/bash
+# *************************************************************************
+# Build path, directories
+# *************************************************************************
+ifndef MODIS_CONFIG
+ MODIS_CONFIG := FALSE
+endif
+
+FIXPATH := .
+BUILDDIR := $(strip $(FIXPATH))/build
+RELDIR := $(strip $(FIXPATH))/mtk_rel
+UNIVERSAL_COMMON := ../common
+MAKE_COMMON := make/common
+CCACHE := ./mtk_tools/ccache/3.7.5/linux/ccache
+
+PROJDIR := $(strip $(BUILDDIR))/$(strip $(PROJECT_NAME))/$(strip $(FLAVOR))
+CUS_MTK_REL := $(strip $(RELDIR))/$(strip $(ORIGINAL_PROJECT_NAME))/$(strip $(ORIGINAL_FLAVOR))/TARGET
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(call uc,$(UE_SIMULATOR))),TRUE)
+ MODIS_UESIM := UESim
+ CUS_MTK_REL := $(strip $(RELDIR))/$(strip $(ORIGINAL_PROJECT_NAME))/$(strip $(ORIGINAL_FLAVOR))/UESIM
+ else
+ MODIS_UESIM := MoDIS
+ CUS_MTK_REL := $(strip $(RELDIR))/$(strip $(ORIGINAL_PROJECT_NAME))/$(strip $(ORIGINAL_FLAVOR))/MODIS
+ endif
+ TARGET_MODIS_UESIM := $(MODIS_UESIM)
+else
+ TARGET_MODIS_UESIM := target
+endif
+DSP_MTK_REL := $(strip $(RELDIR))/$(strip $(ORIGINAL_PROJECT_NAME))/$(strip $(ORIGINAL_FLAVOR))
+PROJ_INTERNAL_DIR := $(subst build/,build_internal/,$(PROJDIR))
+
+include $(strip $(PROJDIR))/Custom.bld
+
+TARGDIR := $(strip $(PROJDIR))/bin
+TMPDIR := $(strip $(PROJDIR))/tmp
+CUSTPACKDIR := $(strip $(PROJDIR))/custpack
+BUILD_RELDIR := $(strip $(PROJDIR))/rel
+
+OBJSDIR := $(strip $(TARGDIR))/obj
+RULESDIR := $(strip $(TARGDIR))/dep
+COMPLIBDIR := $(strip $(TARGDIR))/lib
+COMPLOGDIR := $(strip $(TARGDIR))/log
+MODULEINFODIR := $(strip $(TARGDIR))/module
+
+GEN_MCDDIR := $(strip $(PROJDIR))/modem/mcd
+GEN_SCSIDIR := $(strip $(PROJDIR))/modem/scsi
+GEN_L4DIR := $(strip $(BUILD_RELDIR))/L4
+GEN_MMIDIR := $(strip $(BUILD_RELDIR))/BASIC
+
+CUS_MTK_LIB := $(strip $(CUS_MTK_REL))/lib
+REL_L4DIR := $(strip $(CUS_MTK_REL))/L4
+REL_MMIDIR := $(strip $(CUS_MTK_REL))/BASIC
+REL_MCDDIR := $(strip $(CUS_MTK_REL))/modem/mcd
+REL_SCSIDIR := $(strip $(CUS_MTK_REL))/modem/scsi
+
+BUILD_L4DIR := $(strip $(GEN_L4DIR))
+
+PRE_CODEGEN_DIR := $(strip $(TMPDIR))/pre_codegen
+
+ALL_MOD_DIR := $(strip $(TARGDIR))
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ALL_MOD_DIR := $(strip $(CUS_MTK_REL))/BASIC
+ BUILD_L4DIR := $(strip $(REL_L4DIR))
+endif
+
+GEN_ASDIR := $(strip $(PROJDIR))
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ GEN_ASDIR := $(strip $(CUS_MTK_REL))
+endif
+
+GEN_SSDIR := $(strip $(PROJDIR))/rel/L4/csm/ss
+REL_SSDIR := $(strip $(CUS_MTK_REL))/L4/csm/ss
+BUILD_SSDIR := $(strip $(GEN_SSDIR))
+
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+BUILD_SSDIR := $(strip $(REL_SSDIR))
+endif
+
+TARGNAME := $(strip $(PROJECT_NAME))_$(strip $(SUB_BOARD_VER))_$(strip $(PLATFORM))_$(strip $(CHIP_VER))
+
+TSTDIR := service/dhl
+TSTDIR_SEC := protocol/lte_sec/dhl
+LOGGING_DATABASE := interface/service/logging_database
+BUILD_TSTDIR := $(strip $(PROJDIR))/dhl
+BUILD_TSTDIR_SEC := $(strip $(PROJDIR))/dhl/lte_sec
+BUILD_TSTDIR_4G := $(strip $(PROJDIR))/dhl/4g
+
+TST_DB := $(strip $(TSTDIR))/database
+TST_DB_SEC := $(strip $(TSTDIR_SEC))/database
+CODE_GEN_LOG := $(strip $(COMPLOGDIR))/codegen.log
+BUILD_TST_DB := $(BUILD_TSTDIR)/database
+BUILD_TST_DB_SEC := $(BUILD_TSTDIR_SEC)/database
+BUILD_TST_DB_4G := $(BUILD_TSTDIR_4G)/database
+
+MDDBINFOCUSTOMPREFIX := MDDB_$(strip $(PLATFORM))_$(strip $(CHIP_VER))
+MODIS_TST_DB := $(strip $(TST_DB))
+MODIS_TST_DB_SEC := $(strip $(TST_DB_SEC))
+MODISBUILD_TST_DB := $(strip $(BUILD_TST_DB))
+MODISBUILD_TST_DB_SEC := $(strip $(BUILD_TST_DB_SEC))
+MODISBUILD_TST_DB_4G := $(strip $(BUILD_TST_DB_4G))
+
+CUSTOMIZATION := $(LOGGING_DATABASE)/XDD/Customization
+DBFINI_DIR := $(LOGGING_DATABASE)/XDD/DSP
+ICDINI_DIR := $(LOGGING_DATABASE)/XDD/ICD
+DBF_INPUT_PATH := $(strip $(MODISBUILD_TST_DB))/dbf
+
+MODIS_RULESDIR := $(strip $(RULESDIR))
+ADT_RULESDIR := $(strip $(PROJ_INTERNAL_DIR))/l1ADT
+CGEN_L1_OUTDIR := $(strip $(PROJ_INTERNAL_DIR))/l1trace
+CODEGEN_DEP := $(MODIS_RULESDIR)/codegen_dep
+PREGEN_DEP := $(MODIS_RULESDIR)/pregen_dep
+POSTGEN_DEP := $(MODIS_RULESDIR)/postgen_dep
+DBG_INFO_VERNO := $(call uc,$(subst .,_,$(VERNO)))
+
+ifeq ($(strip $(COMPILER)),GCC)
+ CGEN_DEF_FILE = Tgt_Cnf_GCC
+else
+ CGEN_DEF_FILE = Tgt_Cnf
+endif
+
+BUILD_SYSDIR := $(strip $(PROJDIR))/custom/system
+BUILD_CODEGENDIR := $(strip $(PROJDIR))/custom/driver/drv_gen
+
+NOT_REMOVAL_DIR_FILE := $(strip $(MAKE_COMMON))/NotRemovalCodeDir.def
+
+# Settings for emigen
+FLASH_OPTIONS_HDR := custom/driver/common/flash_opt.h
+CUSTOM_FLASH_C := custom/driver/common/custom_flash.c
+CUSTOM_EMI_H := $(strip $(BUILD_SYSDIR))/custom_EMI.h
+CUSTOM_EMI_RELEASE_H := $(strip $(BUILD_SYSDIR))/custom_EMI_release.h
+CUSTOM_EMI_C := $(strip $(BUILD_SYSDIR))/custom_EMI.c
+CUSTOM_FLASH_NORFDM5_C := $(strip $(BUILD_SYSDIR))/custom_flash_norfdm5.c
+MEMORY_DEVICE_HDR := $(strip $(BUILD_SYSDIR))/custom_MemoryDevice.h
+
+EMI_GENERATOR := ./tools/emigenMD.pl
+FLASHFILE := $(strip $(TMPDIR))/~flash_cfg_tmp.c
+
+# Setting for MK IMAGE
+MCU_DRDI_MK_IMAGE_CFG := ./tools/MKImage/img_hdr_md1drdi.cfg
+MCU_MK_IMAGE_CFG := ./tools/MKImage/img_hdr_md1rom.cfg
+MCU_MK_IMAGE_TOOL := ./tools/MKImage/mkimage
+
+EAS_FOLDER := protocol/eas
+NRAS_FOLDER := protocol/nras
+UAS_FDD_FOLDER := protocol/3g/urr/urr_fdd
+UAS_TDD_FOLDER := protocol/3g/urr/urr_tdd
+LAS_FOLDER := protocol/2g/las
+GAS_FDD_FOLDER := protocol/2g/gas
+GAS_TDD_FOLDER := protocol/2g/gas_tdd
+FLC_FOLDER := protocol/l2_utility/flc2_v2
+PPP_FOLDER := middleware/ppp_v2
+SCSI_FOLDER := protocol/as_utility/scsi
+SLEEPDRV_FOLDER := driver/sleep_drv
+DVFSDRV_FOLDER := driver/dvfs_drv
+
+ifeq ($(strip $(call uc,$(UE_SIMULATOR))),TRUE)
+ifeq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+EL1_FOLDER := protocol/lte_sec/smt/u4gHlAdaptor/el1b
+else
+EL1_FOLDER := l1/el1/el1c
+endif
+else
+EL1_FOLDER := l1/el1/el1c
+endif
+
+# Do not support new mmi feature file architecture
+PURE_VERNO := $(subst .,_, $(call uc,$(VERNO)))
+
+MDDBMETA := MDDB.META_$(strip $(PLATFORM))_$(strip $(CHIP_VER))_$(strip $(PURE_VERNO)).EDB
+MDDBMETA_V12 := Internal_meta_db_v12_for_Debug.EDB
+MDDBMETADATABASEXML := MDDB.META.ODB_$(strip $(PLATFORM))_$(strip $(CHIP_VER))_$(strip $(PURE_VERNO)).XML
+MDDBINFOCUSTOMSRCP := MDDB_InfoCustomAppSrcP_$(strip $(PLATFORM))_$(strip $(CHIP_VER))_$(strip $(PURE_VERNO)).EDB
+NEWTARGNAME := $(strip $(PROJECT_NAME))_MDBIN_$(strip $(SUB_BOARD_VER))_$(strip $(PLATFORM))_$(strip $(CHIP_VER)).$(strip $(PURE_VERNO))
+CHECKBINFILE := $(strip $(PROJECT_NAME))_MDBIN_$(strip $(SUB_BOARD_VER))_$(strip $(PLATFORM))_$(strip $(CHIP_VER))
+
+VERNODIR := $(strip $(PROJDIR))/verno
+LOG := $(strip $(TARGDIR))/link.log
+COMPLOGDIR := $(strip $(TARGDIR))/log
+INFOLOG := $(strip $(COMPLOGDIR))/info.log
+INFOMAKELOG := $(strip $(COMPLOGDIR))/infomake.log
+MCDDLL_INFOLOG := $(strip $(COMPLOGDIR))/mcddll_info.log
+MCDDLL_UPDATE_LOG := $(strip $(COMPLOGDIR))/mcddll_update.log
+LTE_SRC_FDR := lte_src
+
+ifneq ($(wildcard $(LTE_SRC_FDR)),)
+LTE_SRC_PATH := $(strip $(LTE_SRC_FDR))
+else
+LTE_SRC_PATH := .
+endif
+
+ifeq ($(strip $(DEMO_PROJECT)),TRUE)
+VERNOFILE := $(strip $(MAKE_COMMON))/Verno.bld
+else
+VERNOFILE :=
+endif
+
+SLIM_BRANCH := $(call uc,$(strip $(BRANCH)))
+BRANCH += $(call uc,$(strip $(PROJECT_NAME)))
+# *************************************************************************
+# Set defaul value to eliminate "option not define" warning
+# *************************************************************************
+BM_NEW = FALSE
+
+INSIDE_MTK = 0
+ifeq ($(strip $(call uc,$(MTK_INTERNAL))),TRUE)
+ INSIDE_MTK = 1
+endif
+
+DEFAULT_CUSTOMER = MTK MTK_RF PLUTO
+ifneq ($(filter $(call uc,$(strip $(PROJECT_NAME))),$(strip $(DEFAULT_CUSTOMER))),)
+ SCATTERNAME = scat$(strip $(PLATFORM)).txt
+else
+ SCATTERNAME = scat$(strip $(PROJECT_NAME)).txt
+endif
+
+SCATTERFILE := $(subst scat,lds,$(strip $(BUILD_SYSDIR))/$(strip $(SCATTERNAME)))
+SCATTERFILE_PATH := $(subst scat,lds,$(strip $(FIXPATH))/custom/system/Specific_LDS)
+COPRO_SCATTERFILE := $(subst scat,lds,$(strip $(COPRO_SYSDIR))/$(strip $(SCATTERNAME)))
+BL_SCATTERFILE := $(subst scat,lds,$(strip $(BUILD_SYSDIR))/scatBL_$(strip $(PLATFORM)).txt)
+
+SCATTERFILE_FLASHTOOL := $(subst .txt,_flashtool.txt,$(strip $(SCATTERFILE)))
+SCATTERFILE_FLASHTOOL_NAME := $(filter %.txt,$(subst /, ,$(SCATTERFILE_FLASHTOOL)))
+
+# *************************************************************************
+# Implicit Rules and Compiler Options
+# *************************************************************************
+BIN_FILE = $(strip $(NEWTARGNAME)).bin
+IMG_FILE = $(strip $(TARGNAME)).elf
+GDB_TMP_FILE = $(strip $(TARGNAME)).elf.gdb-index
+GDB_FILE = $(strip $(TARGNAME)).elf.gdb-index.elf
+SYM_FILE = $(strip $(TARGNAME)).sym
+MAP_FILE = $(strip $(TARGNAME)).map
+ifeq ($(strip $(COMPILER)),GCC)
+LIS_FILE = $(strip $(TARGNAME)).map
+else
+LIS_FILE = $(strip $(TARGNAME)).lis
+endif
+DRDI_BIN_FILE := DRDI.bin
+
+# *************************************************************************
+# Settings for DSP
+# *************************************************************************
+DSPDIR := $(strip $(RELDIR))/$(strip $(ORIGINAL_PROJECT_NAME))/$(strip $(ORIGINAL_FLAVOR))/dsp_rel
+BUILD_DSPDIR := $(strip $(TARGDIR))/dsp
+ifeq ($(strip $(RELEASE_PACKAGE)),REL_INTERNAL)
+DSP_DEFAULT_DBF := DSP_Default.dbf
+else
+DSP_DEFAULT_DBF := DSP_Default_external.dbf
+endif
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+DSP_DBF := $(DSPDIR)/$(strip $(DSP_PROJECT))/$(strip $(DSP_FLAVOR))/final_bin/xml/$(strip $(DSP_DEFAULT_DBF))
+else
+DSP_DBF := $(strip $(MODISBUILD_TST_DB))/dbf/$(strip $(DSP_DEFAULT_DBF))
+endif
+DSP_INFO_FILE := label.ini
+DSP_VER := $(strip $(PLATFORM))_$(subst .,_,$(call uc,$(strip $(VERNO))))
+BUILD_DSPDIR := $(strip $(TARGDIR))/dsp
+DSP_REL_DIR := dsp_rel
+
+DSP_FINAL_BIN_NAME := $(strip $(DSP_PROJECT))_$(strip $(DSP_FLAVOR))_DSP_FINAL_BIN.zip
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+DBF_INPUT_PATH := $(DSPDIR)/$(strip $(DSP_PROJECT))/$(strip $(DSP_FLAVOR))/final_bin/xml
+endif
+
+# *************************************************************************
+# Settings for Guardian
+# *************************************************************************
+ifndef PARTIAL_SOURCE
+PARTIAL_SOURCE := FALSE
+endif
+
+# *************************************************************************
+# File setting for linux/win
+# *************************************************************************
+ifeq ($(strip $(OS_VERSION)),MSWin32)
+ CGEN := $(strip $(FIXPATH))\tools\CGenTool\Cgen.exe
+ POSTGEN := $(strip $(FIXPATH))\tools\PostGen\PostGen.exe
+ DB_CONVERTER := $(strip $(FIXPATH))\tools\PostGen\Converter\DBv12_Converter.exe
+ DRV_GEN := $(FIXPATH)\custom\driver\drv\Drv_Tool\DrvGen.exe
+ MBL_COMPOSER := .\tools\MBL_Composer.exe
+ DBG_INFOGEN := .\tools\DbgInfoGen.exe
+ UPDATE_IMG := .\tools\update_img.exe
+ HEADER_TEMP := $(subst /,\,$(strip $(PROJDIR)))\header_temp
+ HTOGETHER := .\tools\hTogether\htogether_list.bat
+ MinGWDir := .\mtk_tools\MinGW\win
+else
+ CGEN := $(strip $(FIXPATH))/tools/CGenTool/Cgen
+ POSTGEN := $(strip $(FIXPATH))/tools/PostGen/PostGen
+ DB_CONVERTER := $(strip $(FIXPATH))/tools/PostGen/Converter/DBv12_Converter
+ DRV_GEN := $(FIXPATH)/custom/driver/drv/Drv_Tool/DrvGen
+ MBL_COMPOSER := ./tools/MBL_Composer
+ DBG_INFOGEN := ./tools/DbgInfo/DbgInfoGen
+ UPDATE_IMG := ./tools/update_img
+ HEADER_TEMP := $(strip $(PROJDIR))/header_temp
+ HTOGETHER := ./tools/hTogether/htogether_list.sh
+ MinGWDir := /mtkoss/mingw/6.2.1
+endif
+
+# *************************************************************************
+# MD_OFFLOAD_COPRO settings
+# *************************************************************************
+L1CORE_SCATTERFILE := $(strip $(L1CORE_SYSDIR))/lds$(strip $(PROJECT_NAME))_$(strip $(FLAVOR)).txt
+L1CORE_MAP_FILE := $(strip $(L1CORE_TARGDIR))/$(strip $(L1CORE_TARGNAME_L)).map
+L1CORE_SYM_FILE := $(strip $(L1CORE_TARGDIR))/$(strip $(L1CORE_TARGNAME_L)).sym
diff --git a/mcu/make/common/cmd_cfg.mak b/mcu/make/common/cmd_cfg.mak
new file mode 100644
index 0000000..e617ee6
--- /dev/null
+++ b/mcu/make/common/cmd_cfg.mak
@@ -0,0 +1,114 @@
+#########################
+## . variable part ##
+##########################
+# script, tools, commands
+
+CAT = perl ./tools/init/cat.pl
+CHK_OS = perl ./tools/init/chkOS.pl
+CH_MOD = perl ./tools/init/chmod.pl
+COPY_FILE = perl ./tools/init/copy_files.pl -f
+COPY_DIR = perl ./tools/init/copy_files.pl -r
+COMPARE = perl ./tools/init/compare.pl
+DEL_FILE = perl ./tools/init/remove.pl -f
+DEL_DIR = perl ./tools/init/rmdir.pl -f
+ECHO = perl ./tools/init/echo.pl
+GET_FNAME = perl ./tools/init/get_filename.pl
+LIST_DIR = perl ./tools/init/dir.pl
+MKDIR = perl ./tools/init/mkdir.pl
+MOVE = perl ./tools/init/move.pl -f
+RECURSIVE_DIR = perl ./tools/init/recursive_dir.pl
+
+GEN_TARGET_FILE = python ./tools/genTargetFile/genTargetFile.py True
+
+
+CHK_TIME = perl ./tools/time.pl -n
+CHDIR = cd
+
+# others
+AND = &&
+
+
+OS_VERSION = $(shell perl ./tools/init/chkOS.pl)
+#####################
+## windows section ##
+#####################
+ifeq ($(strip $(OS_VERSION)),MSWin32)
+# script, tools, commands
+LINKER = "./mtk_tools/guardian/Linker.exe"
+SENDER = "./mtk_tools/guardian/Sender.exe"
+STRCMPEX = .\tools\init\strcmpex_window.exe
+MAKE = "./tools/make.exe"
+GREP_V = find /V
+
+# if-else command
+IF = if
+IF_EXIST = if exist
+IF_NOT = if not
+IF_NOT_EXIST = if not exist
+IF_ERR_TRUE = if ERRORLEVEL 1
+IF_ERR_FALSE = if not errorlevel 1
+THEN =
+ELSE = else
+CMD_END =
+
+# for loop command
+FOR = for
+F_OPT = /F usebackq
+IN = in (
+DO = ) do
+DONE =
+
+# condition
+EQU = EQU
+NEQ = NEQ
+
+# others
+DEV_NUL = NUL
+DECLARE_VAR = %%
+PRE_VAR = %%
+P_VAR = %
+WITH = &
+
+else
+###################
+## Linux section ##
+###################
+# script, tools
+LINKER = ./mtk_tools/guardian/Linker
+SENDER = ./mtk_tools/guardian/Sender
+STRCMPEX = ./tools/init/strcmpex_linux.exe
+MAKE = make
+GREP_V = grep -v
+
+# if-else command
+IF = if [
+IF_EXIST = if [ -e
+IF_NOT = if [ !
+IF_NOT_EXIST = if [ ! -e
+IF_ERR_TRUE = if [ $$? != 0
+IF_ERR_FALSE = if [ $$? == 0
+THEN = ]; then
+ELSE = ;else
+CMD_END = ;fi
+
+
+# for loop command
+FOR = for
+F_OPT =
+IN = in
+DO = ;do
+DONE = ;done
+
+# condition
+EQU = =
+NEQ = !=
+
+# others
+DEV_NUL = /dev/null
+DECLARE_VAR =
+PRE_VAR = $$
+P_VAR = $
+WITH = ;
+
+endif # OS_VERSION end
+
diff --git a/mcu/make/common/codegen.mak b/mcu/make/common/codegen.mak
new file mode 100644
index 0000000..f28c297
--- /dev/null
+++ b/mcu/make/common/codegen.mak
@@ -0,0 +1,3980 @@
+# ---------------------------------------------------------------
+# Variable declaration for asngen/asnregen/mcddll_update/umts_gen
+# ---------------------------------------------------------------
+RUN_ASNGEN := FALSE
+RUN_ASNGEN_L4 := FALSE
+RUN_ASNREGEN := FALSE
+RUN_MCDDLL_UPDATE := FALSE
+RUN_LTE_MCDDLL := FALSE
+RUN_MCDDLL_UPDATE_L4 := FALSE
+RUN_UMTS_GEN := FALSE
+RUN_EAS_GEN := FALSE
+RUN_NRAS_GEN := FALSE
+
+ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ RUN_MCDDLL_UPDATE := TRUE
+ RUN_LTE_MCDDLL := TRUE
+ RUN_ASNGEN := TRUE
+ RUN_ASNGEN_L4 := TRUE
+ RUN_ASNREGEN := TRUE
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ RUN_UMTS_GEN := TRUE
+ endif
+ ifeq ($(strip $(EUTRAN_MODE_SUPPORT)),EUTRAN_MODE)
+ RUN_UMTS_GEN := TRUE
+ RUN_EAS_GEN := TRUE
+ endif
+ ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+ RUN_NRAS_GEN := TRUE
+ endif
+ endif
+else
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ RUN_EAS_GEN := TRUE
+ ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+ RUN_NRAS_GEN := TRUE
+ endif
+ endif
+endif
+
+# --------------------------------------
+# Variable declaration for genmoduleinfo
+# --------------------------------------
+COM_DEF_PATH := $(ALL_MODULEDEF)
+
+# -----------------------------
+# Variable declaration for cgen
+# -----------------------------
+CGEN_CFG_MODEM := $(strip $(MODISBUILD_TST_DB))/cgenModem.cfg
+CGEN_CFG_MODEM_SEC := $(strip $(MODISBUILD_TST_DB_SEC))/cgenModem_sec.cfg
+CGEN_CFG_MODEM_4G := $(strip $(MODISBUILD_TST_DB_4G))/cgenModem_4g.cfg
+POSTGEN_CFG_MODEM := $(strip $(MODISBUILD_TST_DB))/postgenModem.cfg
+CODE_GEN_LST := $(strip $(MODISBUILD_TST_DB))/codegen.lis
+CGEN_ENC_ENABLE := FALSE
+
+# ------------------------------------------------------
+# Variable declaration for MCDDLL
+# filter-out unnecessary C2K XGEN_INC_DIR and COM_DEFS
+# ------------------------------------------------------
+Filter_Out = $(foreach input,$(2),$(if $(findstring $(1),$(input)),,$(input)))
+
+#ex: GenCusUtmd = CuStOm_StArT_EL1D $(EL1D_UTMD_FILES) CuStOm_EnD_EL1D
+GenCusUtmd = CuStOm_StArT_$(strip $(1)) $($(strip $(1))_UTMD_FILES) CuStOm_EnD_$(strip $(1))
+#[LTE cgen need to check]
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ UTMD_FILES := $(COMMON_UTMD_FILES) $(L1_UTMD_FILES)
+ else
+ ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ UTMD_FILES := $(COMMON_UTMD_FILES) $(L1_UTMD_FILES)
+ else
+ UTMD_FILES := $(COMMON_UTMD_FILES)
+ endif
+ endif
+ UTMD_FILES_SEC := $(L1_UTMD_FILES_LTE_SEC)
+ UTMD_FILES_4G := $(L1_UTMD_FILES_4G)
+ else
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ UTMD_FILES += $(foreach NEED_TMD_MODULE, $(filter $(CUS_REL_SRC_COMP),$(COMPLIST)), \
+ $(if $($(call Upper,$(strip $(NEED_TMD_MODULE)))_UTMD_FILES),$(call GenCusUtmd, $(call Upper,$(strip $(NEED_TMD_MODULE))))))
+ else
+ ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ UTMD_FILES += $(foreach NEED_TMD_MODULE, $(filter $(CUS_REL_SRC_COMP),$(COMPLIST)), \
+ $(if $($(call Upper,$(strip $(NEED_TMD_MODULE)))_UTMD_FILES),$(call GenCusUtmd, $(call Upper,$(strip $(NEED_TMD_MODULE))))))
+ else
+ UTMD_FILES += $(foreach NEED_TMD_MODULE, $(filter $(filter-out $(call Lower, $(MODIS_NO_NEED_MODULE)),$(CUS_REL_SRC_COMP)),$(COMPLIST)), \
+ $(if $($(call Upper,$(strip $(NEED_TMD_MODULE)))_UTMD_FILES),$(call GenCusUtmd, $(call Upper,$(strip $(NEED_TMD_MODULE))))))
+ endif
+ endif
+ endif
+else
+ UTMD_FILES :=
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ UTMD_FILES += $(foreach NEED_TMD_MODULE, $(filter $(CUS_REL_SRC_COMP),$(COMPLIST)), \
+ $(if $($(call Upper,$(strip $(NEED_TMD_MODULE)))_UTMD_FILES),$(call GenCusUtmd, $(call Upper,$(strip $(NEED_TMD_MODULE))))))
+ endif
+ COMP_TRACE_DEFS_MODEM += $(NEW_CUS_REL_TRACE_DEFS_MODEM)
+endif
+
+#[LTE cgen need to check]
+COMP_TRACE_DEFS_MODEM_TARGET := $(COMP_TRACE_DEFS_MODEM)
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(strip $(call Upper,$(UE_SIMULATOR))),TRUE)
+ COMP_TRACE_DEFS_MODEM := $(foreach trc,$(COMP_TRACE_DEFS_MODEM_TARGET),$(if $(filter L1%,$(call Upper,$(notdir $(trc)))),,$(trc)))
+ endif
+endif
+
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ MDDBINFOCUSTOM = $(notdir $(wildcard $(CUS_MTK_REL)/dhl/database/$(strip $(MDDBINFOCUSTOMPREFIX))*))
+ else
+ MDDBINFOCUSTOM = $(notdir $(wildcard $(CUS_MTK_REL)/tst/database/$(strip $(MDDBINFOCUSTOMPREFIX))*))
+ endif
+else
+ ifeq ($(MPD_SOURCE_FULL_BUILD),TRUE)
+ MDDBINFOCUSTOM = $(MDDBINFOCUSTOMPREFIX)_$(strip $(PURE_VERNO)).EDB
+ else
+ ifeq ($(strip $(NO_LTECGEN)),TRUE)
+ MDDBINFOCUSTOM = $(MDDBINFOCUSTOMPREFIX)_$(strip $(PURE_VERNO)).EDB
+ else
+ MDDBINFOCUSTOM = $(patsubst %_sec.EDB,%,$(notdir $(wildcard $(CUS_MTK_REL)/dhl/lte_sec/database/$(strip $(MDDBINFOCUSTOMPREFIX))*))).EDB
+ endif
+ endif
+endif
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ MDDBINFOCUSTOM = MDDB_pc.EDB
+endif
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ CODEGEN_RESULT = $(strip $(MODISBUILD_TST_DB))/MDDB.EDB
+ endif
+else
+ ifeq ($(strip $(SPLIT_SYSTEM)),TRUE)
+ CODEGEN_RESULT = $(strip $(MODISBUILD_TST_DB))/BPLGUSplitInfo
+ else
+ ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ CODEGEN_RESULT = $(strip $(MODISBUILD_TST_DB))/$(strip $(MDDBINFOCUSTOMSRCP))
+ else
+ CODEGEN_RESULT = $(strip $(MODISBUILD_TST_DB))/$(strip $(MDDBINFOCUSTOM))
+ endif
+ endif
+endif
+
+GV_FILES := $(wildcard $(strip $(TST_DB))/gv/*.gv)
+GV_FILES_C2K := $(wildcard $(strip $(TST_DB))/gv/ext/*.gv)
+GV_FILES_SEC := $(wildcard $(strip $(TST_DB_SEC))/gv/*.gv)
+GV_FILES_4G := $(wildcard $(strip $(TST_DB))/gv/4g/*.gv)
+
+ifndef RUN_CGEN_L1
+ RUN_CGEN_L1 := FALSE
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ RUN_CGEN_L1 := TRUE
+ else ifeq ($(strip $(call Upper,$(UE_SIMULATOR))),TRUE)
+ ifneq ($(filter $(MAKECMDGOALS),new),)
+ RUN_CGEN_L1 := TRUE
+ endif
+ else ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ RUN_CGEN_L1 := TRUE
+ endif
+endif
+
+CODEGEN_DEPENDENCY_MODEM :=
+CODEGEN_PREPROCESS_MODEM :=
+# CODEGEN_DATABASE_OUT is the output file name of cgen database
+# TODO: CODEGEN_RESULT <=> CODEGEN_DATABASE_OUT
+CODEGEN_DATABASE_MDDB_OUT = $(strip $(MODISBUILD_TST_DB))/MDDB*
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ CODEGEN_DATABASE_OUT = $(strip $(MODISBUILD_TST_DB))/$(strip $(MDDBINFOCUSTOM))
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ CODEGEN_DATABASE_OUT_SEC = $(subst .EDB,_sec.EDB,$(strip $(MODISBUILD_TST_DB_SEC))/$(strip $(MDDBINFOCUSTOM)))
+ endif
+ else
+ CODEGEN_DATABASE_OUT = $(strip $(MODISBUILD_TST_DB))/MDDB.EDB
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ CODEGEN_DATABASE_OUT_SEC = $(strip $(MODISBUILD_TST_DB_SEC))/MDDB_sec.EDB
+ endif
+ endif
+else
+ ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ CODEGEN_DATABASE_OUT = $(strip $(MODISBUILD_TST_DB))/$(strip $(MDDBINFOCUSTOMSRCP))
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ CODEGEN_DATABASE_OUT_SEC = $(subst .EDB,_sec.EDB,$(strip $(MODISBUILD_TST_DB_SEC))/$(strip $(MDDBINFOCUSTOMSRCP)))
+ endif
+ else
+ CODEGEN_DATABASE_OUT = $(strip $(MODISBUILD_TST_DB))/MDDB.EDB
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ CODEGEN_DATABASE_OUT_SEC = $(strip $(MODISBUILD_TST_DB_SEC))/MDDB_sec.EDB
+ endif
+ endif
+endif
+
+ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ ifeq ($(MPD_SOURCE_FULL_BUILD),TRUE)
+ CODEGEN_DATABASE_IN_SEC = $(CODEGEN_DATABASE_OUT_SEC)
+ else
+ ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(call Upper,$(UE_SIMULATOR))),TRUE)
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ CODEGEN_DATABASE_IN_SEC = $(wildcard $(CUS_MTK_REL)/dhl/lte_sec/database_uesim/$(subst .EDB,_sec.EDB,$(strip $(MDDBINFOCUSTOM))))
+ else
+ CODEGEN_DATABASE_IN_SEC = $(wildcard $(CUS_MTK_REL)/dhl/lte_sec/database_modis/$(subst .EDB,_sec.EDB,$(strip $(MDDBINFOCUSTOM))))
+ endif
+ else
+ CODEGEN_DATABASE_IN_SEC = $(wildcard $(CUS_MTK_REL)/dhl/lte_sec/database_modis/$(subst .EDB,_sec.EDB,$(strip $(MDDBINFOCUSTOM))))
+ endif
+ else
+ CODEGEN_DATABASE_IN_SEC = $(wildcard $(CUS_MTK_REL)/dhl/lte_sec/database/$(strip $(MDDBINFOCUSTOMPREFIX))*)
+ endif # MODIS_CONFIG
+ else
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ CODEGEN_DATABASE_IN_SEC = $(wildcard $(CUS_MTK_REL)/dhl/lte_sec/database_modis/MDDB*)
+ else
+ CODEGEN_DATABASE_IN_SEC = $(wildcard $(CUS_MTK_REL)/dhl/lte_sec/database/MDDB*)
+ endif
+ endif # TEST_LOAD_TYPE
+ endif # MPD_SOURCE_FULL_BUILD
+endif # DHL_SUPPORT
+
+ifeq ($(MPD_SOURCE_4G_BUILD),TRUE)
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ CODEGEN_DATABASE_OUT_4G = $(subst .EDB,_4G.EDB,$(strip $(MODISBUILD_TST_DB_4G))/$(strip $(MDDBINFOCUSTOM)))
+ CODEGEN_DATABASE_IN_4G = $(CODEGEN_DATABASE_OUT_4G)
+ else
+ ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ CODEGEN_DATABASE_OUT_4G = $(subst .EDB,_4G.EDB,$(strip $(MODISBUILD_TST_DB_4G))/$(strip $(MDDBINFOCUSTOM)))
+ CODEGEN_DATABASE_IN_4G = $(CODEGEN_DATABASE_OUT_4G)
+ else
+ CODEGEN_DATABASE_OUT_4G = $(strip $(MODISBUILD_TST_DB_4G))/MDDB_4G.EDB
+ CODEGEN_DATABASE_IN_4G = $(CODEGEN_DATABASE_OUT_4G)
+ endif
+ endif
+ INPUT_4G_DB = $(CODEGEN_DATABASE_IN_4G)
+else
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ INPUT_4G_DB = $(wildcard $(CUS_MTK_REL)/dhl/4g/database_modis/MDDB*)
+ else
+ INPUT_4G_DB = $(wildcard $(CUS_MTK_REL)/dhl/4g/database/MDDB*)
+ endif
+endif
+
+# CODEGEN_DATABASE_IN is the input file name of cgen database
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ CODEGEN_DATABASE_IN = $(CUS_MTK_REL)/dhl/database/$(strip $(MDDBINFOCUSTOM))
+ else
+ CODEGEN_DATABASE_IN = $(CUS_MTK_REL)/tst/database/$(strip $(MDDBINFOCUSTOM))
+ endif
+ else
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ CODEGEN_DATABASE_IN = $(CUS_MTK_REL)/dhl/database_modis/$(strip $(MDDBINFOCUSTOM))
+ else
+ CODEGEN_DATABASE_IN = $(CUS_MTK_REL)/tst/database_modis/$(strip $(MDDBINFOCUSTOM))
+ endif
+ endif
+ else ifeq ($(wildcard $(CODEGEN_DATABASE_OUT)),)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ CODEGEN_DATABASE_IN = $(CUS_MTK_REL)/dhl/database/$(strip $(MDDBINFOCUSTOM))
+ else
+ CODEGEN_DATABASE_IN = $(CUS_MTK_REL)/tst/database/$(strip $(MDDBINFOCUSTOM))
+ endif
+ else
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ CODEGEN_DATABASE_IN = $(CUS_MTK_REL)/dhl/database_modis/$(strip $(MDDBINFOCUSTOM))
+ else
+ CODEGEN_DATABASE_IN = $(CUS_MTK_REL)/tst/database_modis/$(strip $(MDDBINFOCUSTOM))
+ endif
+ endif
+ else
+ # remake with cgen should use generated database first after custom release, so as not to restore unchanged data to the default in full database
+ CODEGEN_DATABASE_IN = $(CODEGEN_DATABASE_OUT)
+ endif
+else
+ ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ CODEGEN_DATABASE_IN = $(wildcard $(CUS_MTK_REL)/dhl/database/MDDB*)
+ else
+ CODEGEN_DATABASE_IN = $(wildcard $(CUS_MTK_REL)/dhl/database_modis/MDDB*)
+ endif
+ else ifeq ($(wildcard $(CODEGEN_DATABASE_OUT)),)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ CODEGEN_DATABASE_IN = $(wildcard $(CUS_MTK_REL)/dhl/database/MDDB*)
+ else
+ CODEGEN_DATABASE_IN = $(wildcard $(CUS_MTK_REL)/dhl/database_modis/MDDB*)
+ endif
+ else
+ CODEGEN_DATABASE_IN = $(CODEGEN_DATABASE_OUT)
+ endif
+endif
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ CODEGEN_DATABASE_IN = $(CODEGEN_DATABASE_OUT)
+endif
+
+ifeq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ CODEGEN_DATABASE_IN = $(wildcard $(CUS_MTK_REL)/dhl/database_modis/MDDB_pc.EDB)
+ CODEGEN_DATABASE_OUT = $(strip $(MODISBUILD_TST_DB))/MDDB_pc.EDB
+else #linux
+ ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ CODEGEN_DATABASE_IN = $(wildcard $(CUS_MTK_REL)/dhl/database/MDDB_*)
+ CODEGEN_DATABASE_OUT = $(strip $(MODISBUILD_TST_DB))/$(notdir $(wildcard $(CODEGEN_DATABASE_IN)))
+ else
+ CODEGEN_DATABASE_IN = $(wildcard $(CUS_MTK_REL)/dhl/database/MDDB.EDB)
+ CODEGEN_DATABASE_OUT = $(strip $(MODISBUILD_TST_DB))/MDDB.EDB
+ endif
+endif
+endif
+
+CODEGEN_MDKEY = $(strip $(MODISBUILD_TST_DB))/$(strip $(patsubst %.EDB,%.KEY,$(patsubst MDDB_%,MDKEY_%,$(notdir $(CODEGEN_DATABASE_OUT)))))
+
+ifneq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+ ifeq ($(MPD_SOURCE_FULL_BUILD),TRUE) #MPD 5G cgen flow config
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/libParseDbModem_sec.det
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/gv_db_sec.det
+ CODEGEN_DEPENDENCY_MODEM_SEC += $(MODIS_RULESDIR)/codegen_dep/cgen_c_sec.det
+ CODEGEN_DEPENDENCY_MODEM_SEC += $(MODIS_RULESDIR)/codegen_dep/cgen_l1_sec.det
+ CODEGEN_DEPENDENCY_MODEM_SEC += $(MODIS_RULESDIR)/codegen_dep/cgen_gv_sec.det
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/l1v_db_sec.det
+ CODEGEN_DEPENDENCY_MODEM_SEC += $(MODIS_RULESDIR)/codegen_dep/cgen_l1v_sec.det
+ endif
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem_sec.det
+ CODEGEN_DEPENDENCY_MODEM_SEC += $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem_sec.det
+ ifeq ($(RUN_UMTS_GEN),TRUE)
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_sec.det
+ CODEGEN_DEPENDENCY_MODEM_SEC += $(MODIS_RULESDIR)/codegen_dep/cgen_un_sec.det
+ endif
+ endif
+
+ ifeq ($(MPD_SOURCE_4G_BUILD),TRUE) #MPD 4G cgen flow config
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/libParseDbModem_4g.det
+ #CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/gv_db_4g.det
+ CODEGEN_DEPENDENCY_MODEM_4G += $(MODIS_RULESDIR)/codegen_dep/cgen_ap_libParseDbModem_4g.det
+ CODEGEN_DEPENDENCY_MODEM_4G += $(MODIS_RULESDIR)/codegen_dep/cgen_l1_4g.det
+ #CODEGEN_DEPENDENCY_MODEM_4G += $(MODIS_RULESDIR)/codegen_dep/cgen_gv_4g.det
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/l1v_db_4g.det
+ CODEGEN_DEPENDENCY_MODEM_4G += $(MODIS_RULESDIR)/codegen_dep/cgen_l1v_4g.det
+ endif
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem_4g.det
+ CODEGEN_DEPENDENCY_MODEM_4G += $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem_4g.det
+ ifeq ($(RUN_UMTS_GEN),TRUE)
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_4g.det
+ CODEGEN_DEPENDENCY_MODEM_4G += $(MODIS_RULESDIR)/codegen_dep/cgen_un_4g.det
+ endif
+ endif
+
+ ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ ifeq ($(strip $(CUSTOM_RELEASE)),FALSE) #mpd cgen flow config
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/libParseDbModem.det $(MODIS_RULESDIR)/codegen_dep/libParseDbModem_tdd_fdd.det
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/gv_db.det
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/swParseDbModem.det
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/custom_parse_db.det $(MODIS_RULESDIR)/codegen_dep/custom_parse_db_tdd_fdd.det
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/srcParseDbModem.det $(MODIS_RULESDIR)/codegen_dep/srcParseDbModem_tdd_fdd.det
+
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_ap_libParseDbModem.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_gv.det
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/l1v_db.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_l1v.det
+ endif
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_ap_swParseDbModem.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_cm.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_ap_srcParseDbModem.det
+ ifeq ($(RUN_UMTS_GEN),TRUE)
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/unionTag_parse.det $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_tdd_fdd.det
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_ext.det $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_tdd_fdd_ext.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_un.det
+ endif
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_l1.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det
+ ifeq ($(strip $(C2K_RELEASE)),TRUE)
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/gv_db_ext.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_gv.det
+ ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_ext.det $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_tdd_fdd_ext.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_un.det
+ endif
+ endif
+ else
+ #cus cgen flow config
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/custom_parse_db.det $(MODIS_RULESDIR)/codegen_dep/custom_parse_db_tdd_fdd.det
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_cm.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det
+ endif
+ else #swrd cgen flow config
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/swParseDbModem.det
+ CODEGEN_PREPROCESS_MODEM += $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_ap_swParseDbModem.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_l1.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem.det
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det
+ endif
+
+ #for all domains
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det
+ else
+ ifeq ($(wildcard $(BUILD_TSTDIR)/src/tst_file_default_Catcher_filter.c),)
+ CODEGEN_DEPENDENCY_MODEM += $(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det
+ endif
+ endif
+
+endif
+
+
+CLEAN_CODEGEN_DEPENDENCY = $(filter-out $(MODIS_RULESDIR)/codegen_dep/nvram_% $(MODIS_RULESDIR)/codegen_dep/codegen.det,$(wildcard $(MODIS_RULESDIR)/codegen_dep/*.det))
+# mcf_gen depends on cgen database
+CLEAN_CODEGEN_DEPENDENCY += $(POSTGEN_DEP)/mcf_gen.det
+
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+ AUTO_CHECK_CGEN = TRUE
+endif
+
+ifeq ($(strip $(FPGA_L1_ROUTER_SUPPORT)),TRUE)
+ ifneq ($(call Upper,$(strip $(FIVEG_MODE_SUPPORT))),NONE)
+ EXTRA_COM_DEFS += -DL1_SIM
+ endif
+endif
+
+# CgenPreprocess
+# function: generate the makfile command for cgen preprocess
+# arguement 1: input source file to be preprocessed
+# arguement 2: output preprocessed result
+# arguement 3: output dependency file name, file path for cgen should be always r/codegen_dep
+define CgenPreprocess
+ifneq ($$(strip $$(AUTO_CHECK_CGEN)),TRUE)
+ $$(strip $$(MODIS_RULESDIR))/codegen_dep/$(3): FORCE
+else
+ -include $$(strip $$(MODIS_RULESDIR))/codegen_dep/./$(3)
+endif
+$$(strip $$(MODIS_RULESDIR))/codegen_dep/$(3): $(1) $$(NEED_CHECK_DEPEND_LIST)
+ifeq ($$(filter $$(MAKECMDGOALS),cgen_preprocess),)
+ # mbis time probe
+ ifeq ($$(strip $$(MBIS_EN)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$@,T," >> $$(MBIS_BUILD_TIME_TMP)
+ endif
+endif
+ @$(ECHO) -n Preprocessing $(1) ...
+ @$$(IF_NOT_EXIST) $$(patsubst %/,%,$$(dir $(2))) $$(THEN) $$(MKDIR) $$(patsubst %/,%,$$(dir $(2))) $$(CMD_END)
+ @$$(IF_NOT_EXIST) $$(strip $$(TMPDIR))/~inc_def.tmp $$(THEN) $$(MAKE) -fmake/common/build.mak -r -R --no-print-directory $$(strip $$(TMPDIR))/~inc_def.tmp $$(CMD_END)
+ifneq ($$(strip $$(MODIS_CONFIG)),TRUE)
+ ifeq ($$(strip $$(COMPILER)),GCC)
+ ifeq ($$(strip $(4)),TRUE)
+ @(($$(CC) -E -W -DGEN_FOR_CPARSER -DGEN_FOR_PC $$(strip $$(EXTRA_COM_DEFS)) $$(VIA)$$(strip $$(TMPDIR))/~inc_fdd_def.tmp -USTDC_HEADERS -o $$(patsubst %.txt,%_fdd.txt,$$(patsubst %.db,%_fdd.db,$(2))) $(1) $$(DEPEND) $$(basename $$@).fdd.d 2>$$(basename $$@).log) $$(WITH) \
+ ($$(IF_ERR_TRUE) $$(THEN) (($$(CAT) $$(basename $$@).log >>$$(CODE_GEN_LOG)) $$(WITH) (exit 1)) $$(CMD_END)))
+ ifeq ($$(strip $$(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @(($$(CC) -E -W -DGEN_FOR_CPARSER -DGEN_FOR_PC $$(strip $$(EXTRA_COM_DEFS)) $$(VIA)$$(strip $$(TMPDIR))/~inc_tdd_def.tmp -USTDC_HEADERS -o $$(patsubst %.txt,%_tdd.txt,$$(patsubst %.db,%_tdd.db,$(2))) $(1) $$(DEPEND) $$(basename $$@).tdd.d 2>$$(basename $$@).log) $$(WITH) \
+ ($$(IF_ERR_TRUE) $$(THEN) (($$(CAT) $$(basename $$@).log >>$$(CODE_GEN_LOG)) $$(WITH) (exit 1)) $$(CMD_END)))
+ endif
+ else
+ @(($$(CC) -E -W -DGEN_FOR_CPARSER -DGEN_FOR_PC $$(strip $$(EXTRA_COM_DEFS)) $$(VIA)$$(strip $$(TMPDIR))/~inc_def.tmp -USTDC_HEADERS -o $(2) $(1) $$(DEPEND) $$(basename $$@).d 2>$$(basename $$@).log) $$(WITH) \
+ ($$(IF_ERR_TRUE) $$(THEN) (($$(CAT) $$(basename $$@).log >>$$(CODE_GEN_LOG)) $$(WITH) (exit 1)) $$(CMD_END)))
+ endif
+ endif
+else
+ ifeq ($$(strip $$(MODIS_COMPILER)),VC2017) # vc2017
+ ifeq ($$(strip $(4)),TRUE) #tdd/fdd
+ @(($$(strip $$(WinLLVMDir))\clang-cl.exe /X /E /w /DGEN_FOR_CPARSER /DGEN_FOR_PC /USTDC_HEADERS /nologo @$$(strip $$(TMPDIR))/~inc_fdd_def.tmp $(1) >$$(patsubst %.txt,%_fdd.txt,$$(patsubst %.db,%_fdd.db,$(2))) 2>$$(basename $$@).log) $$(WITH) \
+ ($$(IF_ERR_TRUE) $$(THEN) ($$(CAT) $$(basename $$@).log >>$$(CODE_GEN_LOG)) $$(WITH) (exit 1) $$(CMD_END)))
+ @$$(strip $$(WinLLVMDir))\clang.exe -MM -w -DGEN_FOR_CPARSER -DGEN_FOR_PC -USTDC_HEADERS @$$(strip $$(TMPDIR))/~inc_fdd_def.tmp $(1) -MT $$@ -MF $$(basename $$@).fdd.d
+ ifeq ($$(strip $$(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @(($$(strip $$(WinLLVMDir))\clang-cl.exe /X /E /w /DGEN_FOR_CPARSER /DGEN_FOR_PC /USTDC_HEADERS /nologo @$$(strip $$(TMPDIR))/~inc_tdd_def.tmp $(1) >$$(patsubst %.txt,%_tdd.txt,$$(patsubst %.db,%_tdd.db,$(2))) 2>$$(basename $$@).log) $$(WITH) \
+ ($$(IF_ERR_TRUE) $$(THEN) ($$(CAT) $$(basename $$@).log >>$$(CODE_GEN_LOG)) $$(WITH) (exit 1) $$(CMD_END)))
+ @$$(strip $$(WinLLVMDir))\clang.exe -MM -w -DGEN_FOR_CPARSER -DGEN_FOR_PC -USTDC_HEADERS @$$(strip $$(TMPDIR))/~inc_tdd_def.tmp $(1) -MT $$@ -MF $$(basename $$@).tdd.d
+ endif
+ else #not tdd/fdd
+ @(($$(strip $$(WinLLVMDir))\clang-cl.exe /X /E /w /DGEN_FOR_CPARSER /DGEN_FOR_PC /USTDC_HEADERS /nologo @$$(strip $$(TMPDIR))/~inc_def.tmp $(1) >$(2) 2>$$(basename $$@).log) $$(WITH) \
+ ($$(IF_ERR_TRUE) $$(THEN) ($$(CAT) $$(basename $$@).log >>$$(CODE_GEN_LOG)) $$(WITH) (exit 1) $$(CMD_END)))
+ @$$(strip $$(WinLLVMDir))\clang.exe -MM -w -DGEN_FOR_CPARSER -DGEN_FOR_PC -USTDC_HEADERS @$$(strip $$(TMPDIR))/~inc_def.tmp $(1) -MT $$@ -MF $$(basename $$@).d
+ endif
+ else ifeq ($$(strip $$(MODIS_COMPILER)),CLANG) # clang
+ ifeq ($$(strip $(4)),TRUE)
+ @$$(strip $$(ClangDir))/bin/clang -MM -w -DGEN_FOR_CPARSER -DGEN_FOR_PC -USTDC_HEADERS @$$(strip $$(TMPDIR))/~inc_fdd_def.tmp $(1) -MT $$@ -MF $$(basename $$@).fdd.d
+ @(($$(CC_MODIS) /E /w /DGEN_FOR_CPARSER /DGEN_FOR_PC /USTDC_HEADERS /nologo @$$(strip $$(TMPDIR))/~inc_fdd_def.tmp $(1) >$$(patsubst %.txt,%_fdd.txt,$$(patsubst %.db,%_fdd.db,$(2)))) $$(WITH) \
+ ($$(IF_ERR_TRUE) $$(THEN) ($$(CAT) $$(basename $$@).log >>$$(CODE_GEN_LOG)) $$(WITH) (exit 1) $$(CMD_END)))
+ ifeq ($$(strip $$(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$$(strip $$(ClangDir))/bin/clang -MM -w -DGEN_FOR_CPARSER -DGEN_FOR_PC -USTDC_HEADERS @$$(strip $$(TMPDIR))/~inc_tdd_def.tmp $(1) -MT $$@ -MF $$(basename $$@).tdd.d
+ @(($$(CC_MODIS) /E /w /DGEN_FOR_CPARSER /DGEN_FOR_PC /USTDC_HEADERS /nologo @$$(strip $$(TMPDIR))/~inc_tdd_def.tmp $(1) >$$(patsubst %.txt,%_tdd.txt,$$(patsubst %.db,%_tdd.db,$(2)))) $$(WITH) \
+ ($$(IF_ERR_TRUE) $$(THEN) ($$(CAT) $$(basename $$@).log >>$$(CODE_GEN_LOG)) $$(WITH) (exit 1) $$(CMD_END)))
+ endif
+ else
+ @$$(strip $$(ClangDir))/bin/clang -MM -w -DGEN_FOR_CPARSER -DGEN_FOR_PC -USTDC_HEADERS @$$(strip $$(TMPDIR))/~inc_def.tmp $(1) -MT $$@ -MF $$(basename $$@).d
+ @(($$(CC_MODIS) /E /w /DGEN_FOR_CPARSER /DGEN_FOR_PC /USTDC_HEADERS /nologo @$$(strip $$(TMPDIR))/~inc_def.tmp $(1) >$(2)) $$(WITH) \
+ ($$(IF_ERR_TRUE) $$(THEN) ($$(CAT) $$(basename $$@).log >>$$(CODE_GEN_LOG)) $$(WITH) (exit 1) $$(CMD_END)))
+ endif
+ endif
+endif
+
+ ifeq ($$(strip $(4)),TRUE)
+ @perl ./tools/pack_dep_gen.pl $$@ $$@ $$(patsubst %/,%,$$(dir $$@)) "\b$$(basename $$(notdir $$@)).*\.d"
+ else
+ @perl ./tools/pack_dep_gen.pl $$@ $$@ $$(patsubst %/,%,$$(dir $$@)) "\b$$(basename $$(notdir $$@))\.d"
+ endif
+ @$$(IF_EXIST) $$(basename $$@).fdd.d $$(THEN) $$(DEL_FILE) $$(basename $$@).fdd.d $$(CMD_END)
+ @$$(IF_EXIST) $$(basename $$@).tdd.d $$(THEN) $$(DEL_FILE) $$(basename $$@).tdd.d $$(CMD_END)
+ @$$(IF_EXIST) $$(basename $$@).d $$(THEN) $$(DEL_FILE) $$(basename $$@).d $$(CMD_END)
+
+ @$$(IF_EXIST) $$(basename $$@).log $$(THEN) $$(DEL_FILE) $$(basename $$@).log $$(CMD_END)
+ifeq ($$(filter $$(MAKECMDGOALS),cgen_preprocess),)
+ @$(ECHO) -n $$@ >>$$(CODE_GEN_LST)
+ @$(ECHO) -n $(2) >>$$(CODE_GEN_LST)
+ # mbis time probe
+ ifeq ($$(strip $$(MBIS_EN)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$@,T," >> $$(MBIS_BUILD_TIME_TMP)
+ endif
+endif
+endef
+
+# *************************************************************************
+# Tools code preprocess and generation
+# *************************************************************************
+ifeq ($(strip $(ACTION)),slim_codegen)
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+slim_codegen: cleanbin cleancodegen asngen umts_gen codegen asnregen
+ else
+slim_codegen: cleanbin cleancodegen asngen codegen asnregen
+ endif
+ @$(ECHO) -n Done.
+else
+ ## codegen
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ # [TATAKA Migrate] multi-mode
+code_generate: sysgen cleanbin cleancodegen mspm_gen mipc_gen icd_ac_gen eas_gen nras_gen rcdb_gen asngen umts_gen codegen asnregen mcddll_update
+ else
+ # [TATAKA Migrate] single-mode
+code_generate: sysgen cleanbin cleancodegen mspm_gen mipc_gen icd_ac_gen eas_gen nras_gen rcdb_gen asngen codegen
+ endif
+ @$(ECHO) -n Done.
+endif
+
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ # [TATAKA Migrate] multi-mode
+ ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+codegen: ss_lcs_gen
+ endif
+codegen: gencustominfo nvram_edit_h_gen nvram_auto_gen genmoduleinfo cgen
+else
+# [TATAKA Migrate] single-mode
+codegen: nvram_edit_h_gen nvram_auto_gen genmoduleinfo cgen
+endif
+
+#update dsp cgen flow
+update_cgen_dsp: $(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det $(MODIS_RULESDIR)/codegen_dep/cgen_cfg_Modem.det
+
+# *************************************************************************
+# Target: rcdb_gen
+# request by CS2/Kuo-Wei
+# *************************************************************************
+rcdb_gen: $(PREGEN_DEP)/rcdb_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./rcdb_gen.det)
+else
+$(PREGEN_DEP)/rcdb_gen.det: FORCE
+endif
+$(PREGEN_DEP)/rcdb_gen.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(strip $(PROJ_INTERNAL_DIR)) $(THEN) ($(MKDIR) $(strip $(PROJ_INTERNAL_DIR))) $(CMD_END)
+ @$(IF_EXIST) ${UNIVERSAL_COMMON}/tools/rcdb_gen/nr_fwk_rcdb_code_gen.pl $(THEN) \
+ ((perl ${UNIVERSAL_COMMON}/tools/rcdb_gen/nr_fwk_rcdb_code_gen.pl $(strip $(PROJ_INTERNAL_DIR)) $@ > $(strip $(COMPLOGDIR))/rcdb_gen.log 2>&1) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: rcdb_gen failed. Please check $(strip $(COMPLOGDIR))/rcdb_gen.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ #delete target file for cleaning legacy code
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: umts_gen
+# 3G Codegen Gen Files: ASN and DBME
+# *************************************************************************
+umts_gen: $(PREGEN_DEP)/umts_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./umts_gen.det)
+else
+$(PREGEN_DEP)/umts_gen.det: FORCE
+endif
+$(PREGEN_DEP)/umts_gen.det:
+ifeq ($(RUN_UMTS_GEN),TRUE)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ # FDD umts_gen
+ @$(CHDIR) protocol/3g/urr/urr_fdd $(AND) \
+ (perl urr_generate.pl --CC="$(strip $(CC))" --COMPILER=$(COMPILER) --feature=" $(UMTS_RELEASE_SUPPORT) UMTS_FDD_MODE_SUPPORT ULCS_ASN_SUPPORT_R99 $(REMOVE_DEBUG_INFO) " --deffile="../../../../$(INFOLOG)" --tst_src_path="$(MODIS_TST_DB)" --tst_dst_path="$(MODISBUILD_TST_DB)" --targetdir="$(PROJDIR)" --log_dir="$(strip $(COMPLOGDIR))" $@)
+ @$(CHDIR) protocol/3g/urr/urr_fdd $(AND) \
+ (perl lurr_generate.pl --CC="$(strip $(CC))" --COMPILER=$(COMPILER) --feature=" $(UMTS_RELEASE_SUPPORT) UMTS_FDD_MODE_SUPPORT ULCS_ASN_SUPPORT_R99 $(REMOVE_DEBUG_INFO) " --deffile="../../../../$(INFOLOG)" --tst_src_path="$(MODIS_TST_DB)" --tst_dst_path="$(MODISBUILD_TST_DB)" --targetdir="$(PROJDIR)" --log_dir="$(strip $(COMPLOGDIR))" $@)
+
+ # TDD umts_gen
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(CHDIR) protocol/3g/urr/urr_tdd $(AND) \
+ (perl urr_generate.pl --CC="$(strip $(CC))" --COMPILER=$(COMPILER) --feature=" $(UMTS_RELEASE_SUPPORT) UMTS_TDD128_MODE_SUPPORT ULCS_ASN_SUPPORT_R99 $(REMOVE_DEBUG_INFO) " --deffile="../../../../$(INFOLOG)" --tst_src_path="$(MODIS_TST_DB)" --tst_dst_path="$(MODISBUILD_TST_DB)" --targetdir="$(PROJDIR)" --log_dir="$(strip $(COMPLOGDIR))" $@)
+ @$(CHDIR) protocol/3g/urr/urr_tdd $(AND) \
+ (perl lurr_generate.pl --CC="$(strip $(CC))" --COMPILER=$(COMPILER) --feature=" $(UMTS_RELEASE_SUPPORT) UMTS_TDD128_MODE_SUPPORT ULCS_ASN_SUPPORT_R99 $(REMOVE_DEBUG_INFO) " --deffile="../../../../$(INFOLOG)" --tst_src_path="$(MODIS_TST_DB)" --tst_dst_path="$(MODISBUILD_TST_DB)" --targetdir="$(PROJDIR)" --log_dir="$(strip $(COMPLOGDIR))" $@)
+ endif
+else
+ # FDD umts_gen
+ @$(CHDIR) protocol/3g/urr/urr_fdd $(AND) \
+ (perl urr_generate.pl --CC="$(CC_MODIS)" --COMPILER=$(MODIS_COMPILER) --feature=" $(UMTS_RELEASE_SUPPORT) UMTS_FDD_MODE_SUPPORT ULCS_ASN_SUPPORT_R99 MoDIS " --deffile="../../../../$(INFOLOG_MODIS)" --tst_src_path="$(MODIS_TST_DB)" --tst_dst_path="$(MODISBUILD_TST_DB)" --targetdir="$(PROJDIR)" --log_dir="$(strip $(MODISLOGDIR))" $@)
+ # TDD umts_gen
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(CHDIR) protocol/3g/urr/urr_tdd $(AND) \
+ (perl urr_generate.pl --CC="$(CC_MODIS)" --COMPILER=$(MODIS_COMPILER) --feature=" $(UMTS_RELEASE_SUPPORT) UMTS_TDD128_MODE_SUPPORT ULCS_ASN_SUPPORT_R99 MoDIS " --deffile="../../../../$(INFOLOG_MODIS)" --tst_src_path="$(MODIS_TST_DB)" --tst_dst_path="$(MODISBUILD_TST_DB)" --targetdir="$(PROJDIR)" --log_dir="$(strip $(MODISLOGDIR))" $@)
+ endif
+endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# Target: mspm_gen
+# gen mspm common header/source by csv table setting
+# *************************************************************************
+mspm_gen: $(PREGEN_DEP)/mspm_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./mspm_gen.det)
+else
+$(PREGEN_DEP)/mspm_gen.det: FORCE
+endif
+$(PREGEN_DEP)/mspm_gen.det:
+ifneq ($(wildcard protocol/as_multimode/asinterfaces/mspm_proc_gen_tbl/mspm_procedure_table.csv),)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(IF_EXIST) tools/mspm_gen_proc_tbl.pl $(THEN) \
+ ((perl tools/mspm_gen_proc_tbl.pl "$(strip $(PROJECT_MAKEFILE))" TARGET $(PROJDIR) $(strip $(COMPLOGDIR)) $@> $(strip $(COMPLOGDIR))/mspm_gen_tbl.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate mspm files Failed. Please check $(strip $(COMPLOGDIR))/mspm_gen_tbl.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+else
+ @$(IF_EXIST) tools/mspm_gen_proc_tbl.pl $(THEN) \
+ ((perl tools/mspm_gen_proc_tbl.pl "$(strip $(PROJECT_MAKEFILE))" MODIS $(MODISPROJDIR)/_BUILD_XGEN $(strip $(MODISPROJDIR))/_BUILD_LOG $@ > $(strip $(MODISPROJDIR))/_BUILD_LOG/mspm_gen_tbl.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate mspm files Failed. Please check $(strip $(MODISPROJDIR))/_BUILD_LOG/mspm_gen_tbl.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif# wildcard csv file
+
+# *************************************************************************
+# Target: mipc_gen
+#
+# *************************************************************************
+mipc_gen: $(PREGEN_DEP)/mipc_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./mipc_gen.det)
+else
+$(PREGEN_DEP)/mipc_gen.det: FORCE
+endif
+$(PREGEN_DEP)/mipc_gen.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_EXIST) mtk_tools/MIPC/host_release.pl $(THEN) \
+ ((perl mtk_tools/MIPC/host_release.pl $(PROJDIR) $(strip $(INFOMAKELOG)) $@> $(strip $(COMPLOGDIR))/mipc_gen.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate mipc files Failed. Please check $(strip $(COMPLOGDIR))/mipc_gen.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+ else #Windows
+ @$(IF_EXIST) mtk_tools/MIPC/host_release_modis.pl $(THEN) \
+ ((perl mtk_tools/MIPC/host_release_modis.pl $(PROJDIR) $(strip $(INFOMAKELOG)) $@> $(strip $(COMPLOGDIR))/mipc_gen.log) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: generate mipc files Failed. Please check $(strip $(COMPLOGDIR))/mipc_gen.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+ endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+else #CUSTOM_RELEASE is TRUE
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/modem/mipc $(THEN) ($(MKDIR) $(strip $(PROJDIR))/modem/mipc) $(CMD_END)
+ $(COPY_FILE) $(strip $(CUS_MTK_REL))/modem/mipc/mipc.release.tar.gz $(strip $(PROJDIR))/modem/mipc
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+
+# *************************************************************************
+# Target: icd_ac_gen
+# *************************************************************************
+icd_ac_gen: $(PREGEN_DEP)/icd_ac_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./icd_ac_gen.det)
+else
+$(PREGEN_DEP)/icd_ac_gen.det: FORCE
+endif
+$(PREGEN_DEP)/icd_ac_gen.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/modem/icd_ac_gen $(THEN) ($(MKDIR) $(strip $(PROJDIR))/modem/icd_ac_gen) $(CMD_END)
+ @python ./tools/icd_ac_gen/icd_ac_gen.py -i interface/service/icd -o $(strip $(PROJDIR))/modem/icd_ac_gen > $(strip $(COMPLOGDIR))/icd_ac_gen.log 2>&1 $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: mspm_gen icd_ac_gen failed. Please check $(strip $(COMPLOGDIR))/icd_ac_gen.log $(WITH) exit 1) $(CMD_END)
+
+ ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+ endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: eas_gen
+# To generate LTE asn.1 codec library by LTE asn.1 compiler
+# *************************************************************************
+eas_gen: $(PREGEN_DEP)/eas_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./eas_gen.det)
+else
+$(PREGEN_DEP)/eas_gen.det: FORCE
+endif
+$(PREGEN_DEP)/eas_gen.det:
+ifneq ($(wildcard protocol/eas/eas_generate.pl),)
+ifeq ($(RUN_EAS_GEN),TRUE)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(CHDIR) $(strip $(EAS_FOLDER)) $(AND) \
+ ((perl eas_generate.pl --feature="$(strip $(LTE_RELEASE_SUPPORT))" --targetdir="$(PROJDIR)" --log_dir="$(strip $(COMPLOGDIR))" --depTarget="$@") $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: eas_gen Failed. Please check $(strip $(COMPLOGDIR))/eas_gen.log $(WITH) exit 1) $(CMD_END))
+ else
+ @$(CHDIR) $(strip $(EAS_FOLDER)) $(AND) \
+ ((perl eas_generate.pl --feature="$(strip $(LTE_RELEASE_SUPPORT))" --targetdir="$(PROJDIR)" --log_dir="$(strip $(MODISLOGDIR))" --depTarget="$@") $(WITH)\
+ $(IF_ERR_TRUE) $(THEN) (echo Error: eas_gen Failed. Please check $(strip $(MODISLOGDIR))/eas_gen.log $(WITH) exit 1) $(CMD_END))
+ endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ #delete target file for cleaning legacy code
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif # ENDIF RUS_EAS_GEN
+endif
+
+# *************************************************************************
+# TARGET: nras_gen
+# To generate NR ASN.1 codec library by NR ASN.1 compiler
+# *************************************************************************
+nras_gen: $(PREGEN_DEP)/nras_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./nras_gen.det)
+else
+$(PREGEN_DEP)/nras_gen.det: FORCE
+endif
+$(PREGEN_DEP)/nras_gen.det:
+ifneq ($(wildcard protocol/nras/nrrc_asn1_generate.pl),)
+ifeq ($(RUN_NRAS_GEN),TRUE)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(CHDIR) $(strip $(NRAS_FOLDER)) $(AND) \
+ ((perl nrrc_asn1_generate.pl --feature="$(strip $(NR_RELEASE_SUPPORT))" --targetdir="$(PROJDIR)" --log_dir="$(strip $(COMPLOGDIR))" --depTarget="$@" --spec_ver="$(strip $(MTK_3GPP_SPEC_VER))") $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: nras_gen Failed. Please check $(strip $(COMPLOGDIR))/nras_gen.log $(WITH) exit 1) $(CMD_END))
+ else
+ @$(CHDIR) $(strip $(NRAS_FOLDER)) $(AND) \
+ ((perl nrrc_asn1_generate.pl --feature="$(strip $(NR_RELEASE_SUPPORT))" --targetdir="$(PROJDIR)" --log_dir="$(strip $(MODISLOGDIR))" --depTarget="$@" --spec_ver="$(strip $(MTK_3GPP_SPEC_VER))") $(WITH)\
+ $(IF_ERR_TRUE) $(THEN) (echo Error: nras_gen Failed. Please check $(strip $(MODISLOGDIR))/nras_gen.log $(WITH) exit 1) $(CMD_END))
+ endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ #delete target file for cleaning legacy code
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif # ENDIF RUN_NRAS_GEN
+endif
+
+# ---------------------------------------
+# SS LCS Codegen Gen Files: ASN
+# ---------------------------------------
+ss_lcs_gen: $(PREGEN_DEP)/ss_lcs_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./ss_lcs_gen.det)
+else
+$(PREGEN_DEP)/ss_lcs_gen.det: FORCE
+endif
+$(PREGEN_DEP)/ss_lcs_gen.det:
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(strip $(GEN_SSDIR)) $(THEN) ($(MKDIR) $(strip $(GEN_SSDIR))) $(CMD_END)
+ @$(CHDIR) protocol/layer4/l4/csm/ss/tools $(AND) \
+ (perl ss_lcs_generate.pl $(strip $(GEN_SSDIR)) $@ > ../../../../../../$(strip $(COMPLOGDIR))/ss_lcs_generate.log 2>&1) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: ss_lcs_gen Failed. Please check $(strip $(COMPLOGDIR))/ss_lcs_generate.log $(WITH) exit 1) $(CMD_END))
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ #delete target file for cleaning legacy code
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: temp add
+# *************************************************************************
+$(strip $(TMPDIR))/~mcddll_inc.tmp $(strip $(TMPDIR))/~lte_mcddll_inc.tmp: $(strip $(MAKE_COMMON))/xgeninc.mak $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(STRCMPEX) inc inc e $@ $(foreach inc,$(XGEN_INC_DIR),$(inc))
+ @perl ./tools/lnitem.pl $@
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: mcddll_update
+# *************************************************************************
+mcddll_update: $(POSTGEN_DEP)/mcddll_update.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(POSTGEN_DEP)/./mcddll_update.det)
+else
+$(POSTGEN_DEP)/mcddll_update.det: FORCE
+endif
+$(POSTGEN_DEP)/mcddll_update.det:
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ifneq ($(filter TRUE,$(RUN_MCDDLL_UPDATE) $(RUN_MCDDLL_UPDATE_L4)),)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(POSTGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(POSTGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_postcgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(COMPLOGDIR) $(THEN) ($(MKDIR) $(COMPLOGDIR)) $(CMD_END)
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~def.tmp $(foreach def,$(sort $(COM_DEFS)),$(def))
+ @perl ./tools/lnitem.pl $(strip $(TMPDIR))/~def.tmp
+ @$(MAKE) -fmake/common/build.mak -r -R --no-print-directory GAS_FOLDER=protocol/2g/gas UAS_FOLDER=protocol/3g/urr/urr_fdd XGEN_SWITCH_FDD_TDD=FDD $(strip $(TMPDIR))/~mcddll_inc.tmp
+
+ @($(ECHO) -n "[ COMMON OPTION ]" > $(MCDDLL_INFOLOG)) $(AND) \
+ ($(CAT) $(strip $(TMPDIR))/~def.tmp >> $(MCDDLL_INFOLOG))
+ @($(ECHO) -n "[ COMMON INCLUDE PATH ]" >> $(MCDDLL_INFOLOG)) $(AND) \
+ ($(CAT) $(strip $(TMPDIR))/~mcddll_inc.tmp >> $(MCDDLL_INFOLOG))
+ @$(IF_EXIST) $(MCDDLL_INFOLOG) $(THEN)\
+ ($(IF_NOT_EXIST) $(strip $(PROJDIR))/modem/mcddll $(THEN) \
+ ($(MKDIR) $(strip $(PROJDIR))/modem/mcddll) $(AND) \
+ ($(COPY_FILE) $(MCDDLL_INFOLOG) $(strip $(PROJDIR))/modem/mcddll > $(DEV_NUL)) \
+ $(CMD_END))\
+ $(CMD_END)
+
+ifeq ($(strip $(RUN_MCDDLL_UPDATE)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @perl protocol/as_utility/mcddll/updatemcddll_mingw.pl --PROJECT="$(strip $(PROJECT_MAKEFILE))" --L4=0 --MODE="TARGET" --VERNO=$(strip $(VERNO)) --HW_VERSION=$(strip $(PLATFORM))_$(strip $(CHIP_VER)) --PROJDIR=$(PROJDIR) --BUILD_L4_DIR=$(BUILD_L4DIR) --MINGW_DIR=$(MinGWDir) --COMPLOGDIR=$(COMPLOGDIR) --SMARTNEW=$@ 2> $(MCDDLL_UPDATE_LOG) \
+ $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: $@ Failed! Please check $(strip $(MCDDLL_UPDATE_LOG)) $(WITH) exit 1) $(CMD_END)
+ else
+ @perl protocol/as_utility/mcddll/updatemcddll_mingw.pl --PROJECT="$(strip $(PROJECT_MAKEFILE))" --L4=0 --MODE=MoDIS --VERNO=$(strip $(VERNO)) --HW_VERSION=$(MODIS_UESIM) --PROJDIR=$(PROJDIR) --BUILD_L4_DIR=$(BUILD_L4DIR) --MINGW_DIR=$(MinGWDir) --COMPLOGDIR=$(MODISLOGDIR) --SMARTNEW=$@ 2> $(MCDDLL_UPDATE_LOG) \
+ $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: $@ Failed! Please check $(strip $(MCDDLL_UPDATE_LOG)) $(WITH) exit 1) $(CMD_END)
+ endif
+ @$(COPY_FILE) $(strip $(PROJDIR))/modem/mcddll/mcddll.dll $(strip $(MODISBUILD_TST_DB))/mcddll.dll >$(DEV_NUL)
+else ifeq ($(strip $(RUN_MCDDLL_UPDATE_L4)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @perl protocol/as_utility/mcddll/updatemcddll_mingw.pl --PROJECT="$(strip $(PROJECT_MAKEFILE))" --L4=1 --MODE="TARGET" --VERNO=$(strip $(VERNO)) --HW_VERSION=$(strip $(PLATFORM))_$(strip $(CHIP_VER)) --PROJDIR=$(PROJDIR) --BUILD_L4_DIR=$(BUILD_L4DIR) --REL_DIR=$(CUS_MTK_REL) --MINGW_DIR=$(MinGWDir) --COMPLOGDIR=$(COMPLOGDIR) --SMARTNEW=$@ 2> $(MCDDLL_UPDATE_LOG) \
+ $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: $@ Failed! Please check $(strip $(MCDDLL_UPDATE_LOG)) $(WITH) exit 1) $(CMD_END)
+ else
+ @perl protocol/as_utility/mcddll/updatemcddll_mingw.pl --PROJECT="$(strip $(PROJECT_MAKEFILE))" --L4=1 --MODE=MoDIS --VERNO=$(strip $(VERNO)) --HW_VERSION=$(MODIS_UESIM) --PROJDIR=$(PROJDIR) --BUILD_L4_DIR=$(BUILD_L4DIR) --REL_DIR=$(CUS_MTK_REL) --MINGW_DIR=$(MinGWDir) --COMPLOGDIR=$(MODISLOGDIR) --SMARTNEW=/$@ 2> $(MCDDLL_UPDATE_LOG) \
+ $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: $@ Failed! Please check $(strip $(MCDDLL_UPDATE_LOG)) $(WITH) exit 1) $(CMD_END)
+ endif
+ @$(COPY_FILE) $(strip $(PROJDIR))/modem/mcddll/mcddll.dll $(strip $(MODISBUILD_TST_DB))/mcddll.dll >$(DEV_NUL)
+else
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(COPY_FILE) $(strip $(CUS_MTK_REL))/tst/database/mcddll.dll $(strip $(MODISBUILD_TST_DB))/mcddll.dll >$(DEV_NUL)
+ else
+ @$(COPY_FILE) $(strip $(CUS_MTK_REL))/tst/database_modis/mcddll.dll $(strip $(MODISBUILD_TST_DB))/mcddll.dll >$(DEV_NUL)
+ endif
+endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ #delete target file for cleaning legacy code
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common,tdd >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common,tdd\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+else
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+endif # GERAN_MODE_SUPPORT
+
+# *************************************************************************
+# TARGET: asngen_l4
+# Generate the ASN L4 codec template files for project
+# *************************************************************************
+asngen_l4: gen_infolog $(PREGEN_DEP)/asngen_l4.det
+
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./asngen_l4.det)
+else
+$(PREGEN_DEP)/asngen_l4.det: FORCE
+endif
+$(PREGEN_DEP)/asngen_l4.det:
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ # To generate protocol/interface/asn/l4/gen_mcd_l4_common.asn
+ @perl protocol/tools/pre_mcdparser.pl --CC="$(CC)" --COMPILER=$(COMPILER) $(foreach def, $(MCD_DEFS),--SYMBOL=-D$(def) --PROJDIR="$(PROJDIR)" --DEPTARGET="$@")
+ @$(ECHO) -n "Generate L4 ASN Gen Files 1st Phase ..."
+ @$(CHDIR) protocol/tools $(AND) \
+ (perl ./mcdparser.pl mcd_l4.ini --only="$(strip $(PROJECT_MAKEFILE))" --deffile="../../$(INFOLOG)" --tstpath="$(MODISBUILD_TST_DB)" --PROJDIR="$(PROJDIR)" --DEPTARGET="$@")
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ #delete target file for cleaning legacy code
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif #CUSTOM_RELEASE
+endif #not BASIC
+
+# *************************************************************************
+# TARGET: asngen
+# Generate the ASN codec template files for project
+# *************************************************************************
+asngen: gen_infolog asngen_l4 $(PREGEN_DEP)/asngen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./asngen.det)
+else
+$(PREGEN_DEP)/asngen.det: FORCE
+endif
+$(PREGEN_DEP)/asngen.det:
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(ECHO) -n "Generate ASN Gen Files 1st Phase ..."
+ @$(CHDIR) protocol/tools $(AND) \
+ (perl ./mcdparser.pl mcd.ini --only="$(strip $(PROJECT_MAKEFILE))" --deffile="../../$(INFOLOG)" --tstpath="$(MODISBUILD_TST_DB)" --PROJDIR="$(PROJDIR)" --DEPTARGET="$@")
+ @($(ECHO) -n "Compiling Csi ASN files...") $(AND) \
+ $(CHDIR) protocol/as_utility/scsi/gen $(AND) \
+ (perl ./scsi_generate.pl --CC=$(CC) --COMPILER=$(COMPILER) --feature=" $(UMTS_RELEASE_SUPPORT) " --PROJDIR=$(PROJDIR) --DEPTARGET="$@")
+ @$(ECHO) -n "Compilation Csi ASN files done ..."
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ #delete target file for cleaning legacy code
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif #CUSTOM_RELEASE
+endif #not BASIC
+
+# *************************************************************************
+# TARGET: asnregens
+# *************************************************************************
+asnregen: gen_infolog $(POSTGEN_DEP)/asnregen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(POSTGEN_DEP)/./asnregen.det)
+else
+$(POSTGEN_DEP)/asnregen.det: FORCE
+endif
+$(POSTGEN_DEP)/asnregen.det:
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ifeq ($(RUN_ASNREGEN),TRUE)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+ @$(ECHO) -n "Generate ASN Gen Files 2nd Phase ..."
+
+ @$(IF_NOT_EXIST) $(strip $(POSTGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(POSTGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+# @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" > $@
+ endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/modem/mcd_bak $(THEN) \
+ ($(MKDIR) $(strip $(PROJDIR))/modem/mcd_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(strip $(PROJDIR))/modem/mcd_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(PROJDIR))/modem/mcd_bak/*.* $(CMD_END))\
+ $(CMD_END)
+ @$(IF_EXIST) $(strip $(PROJDIR))/modem/mcd/mcd_table.c $(THEN) \
+ mv $(strip $(PROJDIR))/modem/mcd/mcd_table.c $(strip $(PROJDIR))/modem/mcd_bak/mcd_table.c >$(DEV_NUL) \
+ $(CMD_END)
+ @$(IF_EXIST) $(strip $(PROJDIR))/modem/mcd/mcd_msr.h $(THEN) \
+ mv $(strip $(PROJDIR))/modem/mcd/mcd_msr.h $(strip $(PROJDIR))/modem/mcd_bak/mcd_msr.h >$(DEV_NUL) \
+ $(CMD_END)
+endif
+
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ @$(IF_NOT_EXIST) $(BUILD_TST_DB)/enumFile $(THEN) ($(IF_EXIST) $(MODISBUILD_TST_DB)/enumFile $(THEN) ($(COPY_FILE) $(MODISBUILD_TST_DB)/enumFile $(BUILD_TST_DB)/enumFile >$(DEV_NUL)) $(CMD_END)) $(CMD_END)
+ else
+ @$(IF_NOT_EXIST) $(BUILD_TST_DB)/enumFileCustomAppSrc $(THEN) ($(IF_EXIST) $(MODISBUILD_TST_DB)/enumFileCustomAppSrc $(THEN) ($(COPY_FILE) $(MODISBUILD_TST_DB)/enumFileCustomAppSrc $(BUILD_TST_DB)/enumFileCustomAppSrc >$(DEV_NUL)) $(CMD_END)) $(CMD_END)
+ endif
+ endif
+
+ ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ -@$(CHDIR) protocol/tools $(AND) \
+ (perl mcdparser.pl mcd.ini --only="$(strip $(PROJECT_MAKEFILE))" --only=for_catcher --deffile="../../$(INFOLOG)" --tstpath="$(MODISBUILD_TST_DB)" --PROJDIR="$(PROJDIR)" --DEPTARGET="$@")
+ else
+ -@$(CHDIR) protocol/tools $(AND) \
+ (perl mcdparser.pl mcd.ini --only="$(strip $(PROJECT_MAKEFILE))" --only=for_catcher --deffile="../../$(INFOLOG)" --custom --tstpath="$(MODISBUILD_TST_DB)" --PROJDIR="$(PROJDIR)" --DEPTARGET="$@")
+ endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_EXIST) $(strip $(PROJDIR))/modem/mcd_bak/mcd_table.c $(THEN) \
+ (($(COMPARE) $(strip $(PROJDIR))/modem/mcd/mcd_table.c $(strip $(PROJDIR))/modem/mcd_bak/mcd_table.c >$(DEV_NUL) 2>&1) $(WITH) \
+ ($(IF_ERR_FALSE) $(THEN) \
+ (touch -r $(strip $(PROJDIR))/modem/mcd_bak/mcd_table.c $(strip $(PROJDIR))/modem/mcd/mcd_table.c >$(DEV_NUL)) $(AND) \
+ (echo $(strip $(PROJDIR))/modem/mcd_bak/mcd_table.c timestamp is changed from $(strip $(PROJDIR))/modem/mcd_bak/mcd_table.c!) \
+ $(CMD_END))) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(PROJDIR))/modem/mcd_bak/mcd_msr.h $(THEN) \
+ (($(COMPARE) $(strip $(PROJDIR))/modem/mcd/mcd_msr.h $(strip $(PROJDIR))/modem/mcd_bak/mcd_msr.h >$(DEV_NUL) 2>&1) $(WITH) \
+ ($(IF_ERR_FALSE) $(THEN) \
+ (touch -r $(strip $(PROJDIR))/modem/mcd_bak/mcd_msr.h $(strip $(PROJDIR))/modem/mcd/mcd_msr.h >$(DEV_NUL)) $(AND) \
+ (echo $(strip $(PROJDIR))/modem/mcd_bak/mcd_msr.h timestamp is changed from $(strip $(PROJDIR))/modem/mcd_bak/mcd_msr.h!) \
+ $(CMD_END))) \
+ $(CMD_END)
+ @$(IF_EXIST) $(strip $(PROJDIR))/modem/mcd_bak $(THEN) ($(DEL_DIR) $(strip $(PROJDIR))/modem/mcd_bak) $(CMD_END)
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+endif # GERAN_MODE_SUPPORT
+
+# *************************************************************************
+# TARGET: nvram_edit_h_gen
+# *************************************************************************
+nvram_edit_h_gen: $(strip $(PROJDIR))/nvram_auto_gen/nvram_editor.h
+include $(wildcard $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_editor.det)
+$(strip $(PROJDIR))/nvram_auto_gen/nvram_editor.h:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(strip $(RULESDIR_TARGET))/codegen_dep $(THEN) $(MKDIR) $(strip $(RULESDIR_TARGET))/codegen_dep $(CMD_END)
+ @$(IF_EXIST) $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_editor.det $(THEN) ($(DEL_FILE) $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_editor.det) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/nvram_auto_gen $(THEN) $(MKDIR) $(strip $(PROJDIR))/nvram_auto_gen $(CMD_END)
+ @$(IF_EXIST) ./tools/NVRAMStatistic/nvram_edit_gen.mak $(THEN)\
+ ($(MAKE) -f ./tools/NVRAMStatistic/nvram_edit_gen.mak -r -R NVRAM_EDITOR_H_TO_DB NVRAM_AUTO_GEN_PATH=$(strip $(PROJDIR)) > $(strip $(COMPLOGDIR))/nvram_edit_h_gen.log 2>&1) \
+ $(CMD_END)
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_editor.det $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_editor.det common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_editor.det $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_editor.det common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_editor.det. Please check $(strip $(COMPLOGDIR))/genJson.log $(WITH) exit 1)\
+ $(CMD_END))
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: genmoduleinfo
+# Generate module.lis/inc/def in $MODULELIS
+# *************************************************************************
+genmoduleinfo: genlog gencompbld gencategorymapping
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(MODULEINFODIR) $(THEN) ($(MKDIR) $(MODULEINFODIR)) $(CMD_END)
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(IF_NOT_EXIST) $(MODISLOGDIR)/modis_setup $(THEN) $(MKDIR) $(MODISLOGDIR)/modis_setup $(CMD_END)
+ @$(MAKE) -fmake/common/build.mak -r -R $(CMD_ARGU) --no-print-directory AUTO_CHECK_DEPEND=$(AUTO_CHECK_DEPEND) AUTO_CHECK_CGEN=$(AUTO_CHECK_CGEN) MODIS_CONFIG=$(strip $(MODIS_CONFIG)) MODIS_UESIM=$(strip $(MODIS_UESIM)) genmoduleinfo_start
+ @$(ECHO) -n setup $(strip $(MODIS_UESIM)) env is done
+else
+ @$(IF_NOT_EXIST) $(strip $(COMPLOGDIR))/module_info $(THEN) $(MKDIR) $(strip $(COMPLOGDIR))/module_info $(CMD_END)
+ @$(CHK_TIME)
+ @$(MAKE) -fmake/common/build.mak -r -R $(CMD_ARGU) --no-print-directory AUTO_CHECK_DEPEND=$(AUTO_CHECK_DEPEND) AUTO_CHECK_CGEN=$(AUTO_CHECK_CGEN) genmoduleinfo_start
+ @$(ECHO) -n "Generating .lis and .def files are done"
+ @$(CHK_TIME)
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: gencategorymapping
+# *************************************************************************
+gencategorymapping:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @perl ./tools/gencategorymapping.pl $(strip $(TMPDIR))/~categorymapping.mak
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+# *************************************************************************
+# TARGET: genmoduleinfo_start
+# *************************************************************************
+genmoduleinfo_start: $(ALL_MODULELIS)
+ @$(ECHO) -n genmoduleinfo is done.
+
+# *************************************************************************
+# TARGET: %.lis
+# *************************************************************************
+%.lis:
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n setup $(strip $(MODIS_UESIM)) env of $*
+ @($(MAKE) -fmake/common/comp.mak -k -r -R TMPDIR=$(strip $(TMPDIR)) $(strip $(CMD_ARGU)) --no-print-directory COMPONENT=$* GEN_MODULE_INFO=TRUE setup_env >$(MODISLOGDIR)/modis_setup/$*_setEnv.log 2>&1) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: $@ Failed! Please check $(MODISLOGDIR)/modis_setup/$*_setEnv.log $(WITH) exit 1) $(CMD_END)
+else
+ @($(MAKE) -fmake/common/comp.mak -k -r -R TMPDIR=$(strip $(TMPDIR)) $(strip $(CMD_ARGU)) --no-print-directory COMPONENT=$* GEN_MODULE_INFO=TRUE setup_env > $(strip $(COMPLOGDIR))/module_info/$*_module_info.log 2>&1) $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: $@ Failed! Please check $(strip $(COMPLOGDIR))/module_info/$*_module_info.log $(WITH) exit 1) $(CMD_END)
+
+ @$(ECHO) -n Generate $* information
+endif
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+# backup .def for incremental build
+ @$(IF_EXIST) $(strip $(MODULEINFODIR))/$*/$*.def.bak $(THEN) \
+ (($(COMPARE) $(strip $(MODULEINFODIR))/$*/$*.def.bak $(strip $(MODULEINFODIR))/$*/$*.def >$(DEV_NUL) 2>&1) $(WITH) \
+ ($(IF_ERR_FALSE) $(THEN) \
+ (touch -r $(strip $(MODULEINFODIR))/$*/$*.def.bak $(strip $(MODULEINFODIR))/$*/$*.def >$(DEV_NUL)) \
+ $(CMD_END))) $(AND) \
+ ($(DEL_FILE) $(strip $(MODULEINFODIR))/$*/$*.def.bak) \
+ $(CMD_END)
+endif
+
+# *************************************************************************
+# Target: nvram_auto_gen
+# *************************************************************************
+nvram_auto_gen:
+ifneq ($(filter __MOD_NVRAM__,$(strip $(COM_DEFS))),)
+nvram_auto_gen: $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_auto_gen.det
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+cgen: $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_auto_gen.det
+endif
+
+# *************************************************************************
+# Target: (strip $(RULESDIR_TARGET))/codegen_dep/nvram_auto_gen.det:
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(strip $(RULESDIR_TARGET))/codegen_dep/nvram_auto_gen.det: FORCE
+else
+ -include $(strip $(RULESDIR_TARGET))/codegen_dep/./nvram_auto_gen.det
+endif
+$(strip $(RULESDIR_TARGET))/codegen_dep/nvram_auto_gen.det: $(strip $(PROJDIR))/nvram_auto_gen/nvram_editor.h
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+ifeq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ -@$(ECHO) -n $@: $?
+endif
+ @$(IF_NOT_EXIST) $(strip $(RULESDIR_TARGET)) $(THEN) \
+ ($(MKDIR) $(strip $(RULESDIR_TARGET))) \
+ $(ELSE) \
+ ($(IF_EXIST) $(strip $(RULESDIR_TARGET))/nvram_auto_gen.dep $(THEN) \
+ $(DEL_FILE) $(strip $(RULESDIR_TARGET))/nvram_auto_gen.dep \
+ $(CMD_END)) \
+ $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(patsubst %/,%,$(dir $@)) $(THEN) \
+ ($(MKDIR) $(patsubst %/,%,$(dir $@))) \
+ $(ELSE) \
+ ($(IF_EXIST) $@ $(THEN) $(DEL_FILE) $@ \
+ $(CMD_END)) \
+ $(CMD_END)
+
+ifeq ($(strip $(OS_VERSION)),MSWin32)
+ @$(STRCMPEX) TRUE TRUE e $(strip $(TMPDIR))/~cus_opt.tmp $(foreach def,$(sort $(COM_DEFS_TARGET)),$(def) )
+else
+ @$(STRCMPEX) TRUE TRUE e $(strip $(TMPDIR))/~cus_opt.tmp $(foreach def,$(sort $(COM_DEFS_TARGET)),-D \"$(def)\")
+endif
+
+ @$(STRCMPEX) TRUE TRUE e $(strip $(TMPDIR))/~inc.tmp $(foreach inc,$(XGEN_INC_DIR_TARGET),$(inc))
+ifneq ($(filter __MOD_NVRAM__,$(strip $(COM_DEFS))),)
+ @$(IF_NOT_EXIST) $(strip $(BUILD_TST_DB))/pstrace_db $(THEN) ($(MKDIR) $(strip $(BUILD_TST_DB))/pstrace_db) $(CMD_END)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/pstrace_db $(THEN) ($(MKDIR) $(MODISBUILD_TST_DB)/pstrace_db) $(CMD_END)
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/CompTrcDefs.lst $(THEN) ($(DEL_FILE) $(MODISBUILD_TST_DB)/CompTrcDefs.lst) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/nvram_auto_gen $(THEN) ($(MKDIR) $(strip $(PROJDIR))/nvram_auto_gen) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/cksysdrv $(THEN) ($(MKDIR) $(strip $(PROJDIR))/cksysdrv) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/nvram_auto_gen/include $(THEN) ($(MKDIR) $(strip $(PROJDIR))/nvram_auto_gen/include) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/nvram_auto_gen/debug $(THEN) ($(MKDIR) $(strip $(PROJDIR))/nvram_auto_gen/debug) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/nvram_auto_gen/debug_target $(THEN) ($(MKDIR) $(strip $(PROJDIR))/nvram_auto_gen/debug_target) $(CMD_END)
+
+ifeq ($(strip $(OS_VERSION)),MSWin32)
+ @perl ./tools/lnitem.pl $(strip $(TMPDIR))/~cus_opt.tmp
+ @$(IF_EXIST) $(strip $(PROJDIR))/nvram_auto_gen/include/custom_option.txt $(THEN) ($(DEL_FILE) $(strip $(PROJDIR))/nvram_auto_gen/include/custom_option.txt) $(CMD_END)
+ @$(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TMPDIR))/~cus_opt.tmp` \
+ $(DO) \
+ $(ECHO) -n "#define $(PRE_VAR)i" >> $(strip $(PROJDIR))/nvram_auto_gen/include/~custom_option.tmp \
+ $(DONE)
+ @perl ./tools/replace_string.pl $(strip $(PROJDIR))/nvram_auto_gen/include/~custom_option.tmp = " " $(strip $(PROJDIR))/nvram_auto_gen/include/custom_option.txt
+ @$(ECHO) -n OS_VERSION = $(strip $(OS_VERSION)) > $(strip $(PROJDIR))/nvram_auto_gen/include/custom_include.txt
+ @$(ECHO) CUSTOM_INC = >> $(strip $(PROJDIR))/nvram_auto_gen/include/custom_include.txt
+else
+ @$(ECHO) -n OS_VERSION = $(strip $(OS_VERSION)) > $(strip $(PROJDIR))/nvram_auto_gen/include/custom_option.txt
+ @$(ECHO) CUSTOM_OPTION = >> $(strip $(PROJDIR))/nvram_auto_gen/include/custom_option.txt
+ @$(CAT) $(strip $(TMPDIR))/~cus_opt.tmp >> $(strip $(PROJDIR))/nvram_auto_gen/include/custom_option.txt
+ @$(ECHO) CUSTOM_INC = > $(strip $(PROJDIR))/nvram_auto_gen/include/custom_include.txt
+endif
+
+ @$(COPY_FILE) $(strip $(TMPDIR))/~inc.tmp $(strip $(TMPDIR))/~inc.tmp.tmp
+ @perl ./tools/lnitem.pl $(strip $(TMPDIR))/~inc.tmp.tmp
+ @$(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(TMPDIR))/~inc.tmp.tmp` \
+ $(DO) \
+ $(ECHO) " " -I "$(subst \,/,$(PRE_VAR)i)" >> $(strip $(PROJDIR))/nvram_auto_gen/include/custom_include.txt \
+ $(DONE)
+
+ #Output NVRAM info
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/nvram_gen.log $(THEN) ($(DEL_FILE) $(strip $(COMPLOGDIR))/nvram_gen.log) $(CMD_END)
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/nvram_gen_full_log.log $(THEN) ($(DEL_FILE) $(strip $(COMPLOGDIR))/nvram_gen_full_log.log) $(CMD_END)
+ @$(LIST_DIR) "$(strip $(PROJDIR))/nvram_auto_gen/debug/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(PROJDIR))/nvram_auto_gen/debug/*.* $(CMD_END)
+
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_EXIST) ./tools/NVRAMStatistic/nvram_auto_gen.mak $(THEN)\
+ ("tools\MSYS\bin\make.exe" -e -f ./tools/NVRAMStatistic/nvram_auto_gen.mak -r -R -j 1 nvram_auto_gen_build PROJECT_MAKEFILE="$(strip $(PROJECT_MAKEFILE))" NVRAM_AUTO_GEN_PATH=$(strip $(PROJDIR))/nvram_auto_gen 1> $(strip $(COMPLOGDIR))/nvram_gen_full_log.log 2>$(strip $(COMPLOGDIR))/nvram_gen.log) \
+ $(CMD_END)
+ ifneq ($(strip $(NVRAM_AUTOGEN_V2)), TRUE)
+ @$(IF_EXIST) $(PROJDIR)/nvram_auto_gen/nvram_auto_gen.exe $(THEN)\
+ ("$(strip $(PROJDIR))/nvram_auto_gen/nvram_auto_gen.exe" $(strip $(PROJDIR)) $(strip $(OS_VERSION)) 1 >> $(strip $(COMPLOGDIR))/nvram_gen_full_log.log 2>>$(strip $(COMPLOGDIR))/nvram_gen.log)\
+ $(CMD_END)
+ else
+ # nvram autogen v2
+ @python ./tools/NVRAMStatistic/autogen_v2/run.py -p $(strip $(PROJDIR)) 1 >> $(strip $(COMPLOGDIR))/nvram_gen_full_log.log 2>>$(strip $(COMPLOGDIR))/nvram_gen.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: nvram_auto_gen failed. Please check $(strip $(COMPLOGDIR))/nvram_gen.log $(WITH) exit 1) $(CMD_END)
+ endif
+
+ else
+ @$(IF_EXIST) ./tools/NVRAMStatistic/nvram_auto_gen.mak $(THEN)\
+ ($(MAKE) -f ./tools/NVRAMStatistic/nvram_auto_gen.mak -r -R -j 1 nvram_auto_gen_build PROJECT_MAKEFILE="$(strip $(PROJECT_MAKEFILE))" NVRAM_AUTO_GEN_PATH=$(strip $(PROJDIR))/nvram_auto_gen > $(strip $(COMPLOGDIR))/nvram_gen_full_log.log 2>$(strip $(COMPLOGDIR))/nvram_gen.log) $(WITH)\
+ $(IF_ERR_TRUE) $(THEN) (echo Error: nvram_auto_gen failed. Please check $(strip $(COMPLOGDIR))/nvram_gen.log $(WITH) exit 1) $(CMD_END) \
+ $(CMD_END)
+
+ ifneq ($(strip $(NVRAM_AUTOGEN_V2)), TRUE)
+ @$(IF_EXIST) $(PROJDIR)/nvram_auto_gen/nvram_auto_gen $(THEN)\
+ ("$(strip $(PROJDIR))/nvram_auto_gen/nvram_auto_gen" $(strip $(PROJDIR)) $(strip $(OS_VERSION)) 1 >> $(strip $(COMPLOGDIR))/nvram_gen_full_log.log 2>>$(strip $(COMPLOGDIR))/nvram_gen.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: nvram_auto_gen failed. Please check $(strip $(COMPLOGDIR))/nvram_gen.log $(WITH) exit 1) $(CMD_END))\
+ $(CMD_END)
+ else
+ # nvram autogen v2
+ @python ./tools/NVRAMStatistic/autogen_v2/run.py -p $(strip $(PROJDIR)) 1 >> $(strip $(COMPLOGDIR))/nvram_gen_full_log.log 2>>$(strip $(COMPLOGDIR))/nvram_gen.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: nvram_auto_gen failed. Please check $(strip $(COMPLOGDIR))/nvram_gen.log $(WITH) exit 1) $(CMD_END)
+ endif
+ endif
+
+ @perl ./tools/NVRAMStatistic/nvram_usage_check.pl $(strip $(COMPLOGDIR))/nvram_usage_check.log $@ >> $(strip $(COMPLOGDIR))/nvram_gen_full_log.log 2>>$(strip $(COMPLOGDIR))/nvram_gen.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: nvram_usage_check failed. Please check $(strip $(COMPLOGDIR))/nvram_gen.log $(WITH) exit 1) $(CMD_END)
+
+ ifneq ($(strip $(NVRAM_AUTOGEN_V2)),TRUE)
+ @perl ./tools/pack_dep_gcc.pl $(RULESDIR_TARGET)/nvram_auto_gen.dep $(PROJDIR)/nvram_auto_gen/debug $(HTOGETHER) $(strip $(HEADER_TEMP))
+ else
+ @perl ./tools/pack_dep_gcc.pl $(RULESDIR_TARGET)/nvram_auto_gen.dep $(PROJDIR)/nvram_auto_gen/debug_target $(HTOGETHER) $(strip $(HEADER_TEMP))
+ endif
+
+ @$(IF_EXIST) $(PROJDIR)/nvram_auto_gen/nvram_lid_statistics_bak.h $(THEN) \
+ ($(COPY_FILE) $(PROJDIR)/nvram_auto_gen/nvram_lid_statistics_bak.h $(PROJDIR)/nvram_auto_gen/nvram_lid_statistics.h >$(DEV_NUL)) $(CMD_END)
+endif
+
+ ifneq ($(strip $(NVRAM_AUTOGEN_V2)),TRUE)
+ @perl ./tools/pack_dep_gen.pl $@ $@ $(PROJDIR)/nvram_auto_gen/debug "\.d"
+ else
+ @perl ./tools/pack_dep_gen.pl $@ $@ $(PROJDIR)/nvram_auto_gen/debug_target "\.d"
+ endif
+
+ @$(ECHO) -n "$@: $(strip $(PROJDIR))/nvram_auto_gen/nvram_editor.h" >> $@
+ @$(ECHO) -n "$@: tools/NVRAMStatistic/nvram_lid_check.pl" >> $@
+ @$(ECHO) -n "$@: tools/NVRAMStatistic/nvram_usage_check.pl" >> $@
+
+ifneq ($(PCIBT_ACTION_LIST),)
+ $(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) "tools/NVRAMStatistic/src/nvram_auto_gen.c" $@ $(PCIBT_ACTION_LIST) 2>>$(strip $(COMPLOGDIR))/nvram_gen.log
+endif
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/MDDB_InfoCustomAppSrc.EDB $(THEN) ($(DEL_FILE) $(MODISBUILD_TST_DB)/MDDB_InfoCustomAppSrc.EDB) $(CMD_END)
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: cgen
+# *************************************************************************
+cgen: $(MODIS_RULESDIR)/codegen_dep/cgen_preflow.det
+cgen_preprocess: $(CODEGEN_PREPROCESS_MODEM)
+ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ ifeq ($(MPD_SOURCE_FULL_BUILD),TRUE)
+cgen_cfg: $(CODEGEN_DEPENDENCY_MODEM_SEC)
+ endif
+ ifeq ($(MPD_SOURCE_4G_BUILD),TRUE)
+cgen_cfg: $(CODEGEN_DEPENDENCY_MODEM_4G)
+ endif
+endif
+cgen_cfg: $(CODEGEN_DEPENDENCY_MODEM) $(MODIS_RULESDIR)/codegen_dep/cgen_cfg_Modem.det
+
+CODEGEN_PREPROCESS_TEST := PARALLEL
+ifneq ($(strip $(CODEGEN_PREPROCESS_TEST)),PARALLEL)
+ ifneq ($(strip $(CODEGEN_DEPENDENCY_MODEM)),)
+cgen: cgen_cfg
+ endif
+else
+cgen: FORCE
+ ifneq ($(strip $(CODEGEN_DEPENDENCY_MODEM)),)
+ # mbis time probe
+ ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+ endif
+ @$(MAKE) -fmake/common/build.mak -r -R $(CMD_ARGU) --no-print-directory SMART_CHECK=$(SMART_CHECK) AUTO_CHECK_DEPEND=$(AUTO_CHECK_DEPEND) AUTO_CHECK_CGEN=$(AUTO_CHECK_CGEN) MODIS_CONFIG=$(strip $(MODIS_CONFIG)) MODIS_UESIM=$(strip $(MODIS_UESIM)) RUN_CGEN_L1=$(RUN_CGEN_L1) cgen_preprocess
+ @$(MAKE) -fmake/common/build.mak -r -R --no-print-directory SMART_CHECK=$(SMART_CHECK) AUTO_CHECK_DEPEND=$(AUTO_CHECK_DEPEND) AUTO_CHECK_CGEN=TRUE MODIS_CONFIG=$(strip $(MODIS_CONFIG)) MODIS_UESIM=$(strip $(MODIS_UESIM)) RUN_CGEN_L1=$(RUN_CGEN_L1) cgen_cfg
+ # mbis time probe
+ ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+ endif
+ endif
+endif
+
+# *************************************************************************
+# TARGET: cgen
+# Step 1: Preprocess
+# *************************************************************************
+TRCGEN_LIST = $(strip $(LOGGING_DATABASE))/TrcGen.lst
+
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_preflow.det: FORCE
+else
+ -include $(MODIS_RULESDIR)/codegen_dep/./codegen.det
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_preflow.det: $(strip $(TRCGEN_LIST)) $(NEED_CHECK_DEPEND_LIST) $(VERNOFILE)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ifneq ($(strip $(CLEAN_CODEGEN_DEPENDENCY)),)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(CLEAN_CODEGEN_DEPENDENCY) $(DO) \
+ ($(IF_EXIST) $(PRE_VAR)i $(THEN) $(DEL_FILE) $(PRE_VAR)i $(CMD_END)) \
+ $(DONE)
+endif
+
+ @$(IF_EXIST) $(strip $(CGEN_CFG_MODEM)) $(THEN) $(DEL_FILE) $(strip $(CGEN_CFG_MODEM)) $(CMD_END)
+ @$(IF_EXIST) $(strip $(CGEN_CFG_MODEM_SEC)) $(THEN) $(DEL_FILE) $(strip $(CGEN_CFG_MODEM_SEC)) $(CMD_END)
+ @$(IF_EXIST) $(strip $(POSTGEN_CFG_MODEM)) $(THEN) $(DEL_FILE) $(strip $(POSTGEN_CFG_MODEM)) $(CMD_END)
+ifneq ($(wildcard $(MODISBUILD_TST_DB)/*MDDB*),)
+ @$(DEL_FILE) $(strip $(MODISBUILD_TST_DB)/*MDDB*)
+endif
+
+ @$(IF_EXIST) $(strip $(CODE_GEN_LOG)) $(THEN) $(DEL_FILE) $(strip $(CODE_GEN_LOG)) $(CMD_END)
+ @$(ECHO) -n "Check Directories ..."
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB) $(THEN) $(MKDIR) $(MODISBUILD_TST_DB) $(CMD_END)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/msglog_db $(THEN) $(MKDIR) $(MODISBUILD_TST_DB)/msglog_db $(CMD_END)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/pstrace_db $(THEN) $(MKDIR) $(MODISBUILD_TST_DB)/pstrace_db $(CMD_END)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/unionTag $(THEN) $(MKDIR) $(MODISBUILD_TST_DB)/unionTag $(CMD_END)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/unionTag/ext $(THEN) $(MKDIR) $(MODISBUILD_TST_DB)/unionTag/ext $(CMD_END)
+ @$(IF_NOT_EXIST) $(patsubst %/,%,$(dir $@)) $(THEN) $(MKDIR) $(patsubst %/,%,$(dir $@)) $(CMD_END)
+
+ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ ifeq ($(MPD_SOURCE_FULL_BUILD),TRUE)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB_SEC) $(THEN) $(MKDIR) $(MODISBUILD_TST_DB_SEC) $(CMD_END)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB_SEC)/msglog_db $(THEN) $(MKDIR) $(MODISBUILD_TST_DB_SEC)/msglog_db $(CMD_END)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB_SEC)/pstrace_db $(THEN) $(MKDIR) $(MODISBUILD_TST_DB_SEC)/pstrace_db $(CMD_END)
+ endif
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(MAKE) -fmake/common/build.mak -r -R --no-print-directory gen_sfini
+else
+ @$(IF_NOT_EXIST) $(MODISLOGDIR) $(THEN) $(MKDIR) $(MODISLOGDIR) $(CMD_END)
+endif
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/CompTrcDefs.lst $(THEN) $(DEL_FILE) $(MODISBUILD_TST_DB)/CompTrcDefs.lst $(CMD_END)
+
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ @$(IF_NOT_EXIST) $(CODEGEN_DATABASE_OUT) $(THEN) ($(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_c.det $(THEN) ($(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_c.det)$(CMD_END)) $(CMD_END)
+endif
+
+ @$(MAKE) -fmake/common/build.mak -r -R --no-print-directory GAS_FOLDER=protocol/2g/gas UAS_FOLDER=protocol/3g/urr/urr_fdd XGEN_SWITCH_FDD_TDD=FDD $(strip $(TMPDIR))/~inc_fdd_def.tmp
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(MAKE) -fmake/common/build.mak -r -R --no-print-directory GAS_FOLDER=protocol/2g/gas_tdd UAS_FOLDER=protocol/3g/urr/urr_tdd XGEN_SWITCH_FDD_TDD=TDD $(strip $(TMPDIR))/~inc_tdd_def.tmp
+ endif
+ @$(MAKE) -fmake/common/build.mak -r -R --no-print-directory $(strip $(TMPDIR))/~inc_def.tmp
+ @$(ECHO) -n "$@: $(NEED_CHECK_DEPEND_LIST)" >>$@
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ @python ./tools/icd_header_converter.py -p "./interface/service/icd" -proj "$(PROJECT_NAME)" -flavor "$(FLAVOR)"
+ endif
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(strip $(TMPDIR))/~inc_def.tmp
+# *************************************************************************
+$(strip $(TMPDIR))/~inc_def.tmp: FORCE
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~inc_def.tmp $(foreach def,$(COM_DEFS) __NULL_DEF__,-D$(def))
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~inc.tmp $(foreach inc,$(subst \,/,$(XGEN_INC_DIR)),-I$(inc))
+else
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~inc_def.tmp -D__NULL_DEF__
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~inc.tmp $(foreach inc,$(XGEN_INC_DIR),-I$(inc))
+endif
+ @perl ./tools/echoLongString2.pl $(strip $(TMPDIR))/~inc_def.tmp -D $(COM_DEF_PATH)
+ @$(CAT) "$(strip $(TMPDIR))/~inc.tmp" >>$(strip $(TMPDIR))/~inc_def.tmp
+ @$(IF_EXIST) $(strip $(TMPDIR))/~inc.tmp $(THEN) $(DEL_FILE) $(strip $(TMPDIR))/~inc.tmp $(CMD_END)
+ @$(ECHO) -n "$(strip $(TMPDIR))/~inc_def.tmp" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(strip $(TMPDIR))/~inc_def_no_inc.tmp
+# *************************************************************************
+$(strip $(TMPDIR))/~inc_def_no_inc.tmp: FORCE
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~inc_def_no_inc.tmp -D__NULL_DEF__
+ @perl ./tools/echoLongString2.pl $(strip $(TMPDIR))/~inc_def_no_inc.tmp -D $(COM_DEF_PATH)
+ @$(ECHO) -n "$(strip $(TMPDIR))/~inc_def_no_inc.tmp" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(strip $(TMPDIR))/~inc_fdd_def.tmp
+# *************************************************************************
+$(strip $(TMPDIR))/~inc_fdd_def.tmp: FORCE
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~inc_fdd_def.tmp $(foreach def,$(filter-out __CGEN_UMTS_TDD128_MODE__,$(COM_DEFS)) __NULL_DEF__ __CGEN_UMTS_FDD_MODE__,-D$(def))
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~inc_fdd.tmp $(foreach inc,$(XGEN_INC_DIR),-I$(inc))
+ @perl ./tools/echoLongString2.pl $(strip $(TMPDIR))/~inc_fdd_def.tmp -D $(filter-out %uas_tdd128.def %gas_tdd128.def, $(ALL_MODULEDEF))
+ @$(CAT) "$(strip $(TMPDIR))/~inc_fdd.tmp" >>$(strip $(TMPDIR))/~inc_fdd_def.tmp
+ @$(IF_EXIST) $(strip $(TMPDIR))/~inc_fdd.tmp $(THEN) $(DEL_FILE) $(strip $(TMPDIR))/~inc_fdd.tmp $(CMD_END)
+ @$(ECHO) -n "$(strip $(TMPDIR))/~inc_fdd_def.tmp" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(strip $(TMPDIR))/~inc_tdd_def.tmp
+# *************************************************************************
+$(strip $(TMPDIR))/~inc_tdd_def.tmp: FORCE
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~inc_tdd_def.tmp $(foreach def,$(filter-out __CGEN_UMTS_FDD_MODE__ ,$(COM_DEFS)) __NULL_DEF__ __CGEN_UMTS_TDD128_MODE__,-D$(def))
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~inc_tdd.tmp $(foreach inc,$(XGEN_INC_DIR),-I$(inc))
+ @perl ./tools/echoLongString2.pl $(strip $(TMPDIR))/~inc_tdd_def.tmp -D $(filter-out %uas.def %gas.def, $(ALL_MODULEDEF))
+ @$(CAT) "$(strip $(TMPDIR))/~inc_tdd.tmp" >>$(strip $(TMPDIR))/~inc_tdd_def.tmp
+ @$(IF_EXIST) $(strip $(TMPDIR))/~inc_tdd.tmp $(THEN) $(DEL_FILE) $(strip $(TMPDIR))/~inc_tdd.tmp $(CMD_END)
+ @$(ECHO) -n "$(strip $(TMPDIR))/~inc_tdd_def.tmp" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ifeq ($(MPD_SOURCE_4G_BUILD),TRUE)
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/msglog_db/libParseDbModem_4g.c,$(MODISBUILD_TST_DB_4G)/msglog_db/libParseDbModem_4g.db,libParseDbModem_4g.det,FALSE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/gv/4g/gv_db_4g.c,$(MODISBUILD_TST_DB_4G)/gv/gv_db/gv_db_4g.gv,gv_db_4g.det))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/unionTag/4g/unionTag_db_4g.c,$(MODISBUILD_TST_DB_4G)/unionTag/unionTag_parse_4g.txt,unionTag_parse_4g.det))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/l1validation_db/4g/l1v_db_4g.c,$(MODISBUILD_TST_DB_4G)/l1validation_db/l1v_db/l1v_db_4g.l1v,l1v_db_4g.det))
+endif
+
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/msglog_db/libParseDbModem.c,$(MODISBUILD_TST_DB)/msglog_db/libParseDbModem.db,libParseDbModem.det,FALSE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/msglog_db/srcParseDbModem.c,$(MODISBUILD_TST_DB)/msglog_db/srcParseDbModem.db,srcParseDbModem.det,FALSE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/msglog_db/custom_parse_db.c,$(MODISBUILD_TST_DB)/msglog_db/custom_parse_db.db,custom_parse_db.det,FALSE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/msglog_db/libParseDbModem_tdd_fdd.c,$(MODISBUILD_TST_DB)/msglog_db/libParseDbModem.db,libParseDbModem_tdd_fdd.det,TRUE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/msglog_db/srcParseDbModem_tdd_fdd.c,$(MODISBUILD_TST_DB)/msglog_db/srcParseDbModem.db,srcParseDbModem_tdd_fdd.det,TRUE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/msglog_db/custom_parse_db_tdd_fdd.c,$(MODISBUILD_TST_DB)/msglog_db/custom_parse_db.db,custom_parse_db_tdd_fdd.det,TRUE))
+$(eval $(call CgenPreprocess,$(strip $(LOGGING_DATABASE))/msglog_db/swParseDbModem.c,$(MODISBUILD_TST_DB)/msglog_db/swParseDbModem.db,swParseDbModem.det,FALSE))
+ifneq ($(strip $(C2K_RELEASE)),TRUE)
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/gv/gv_db.c,$(MODISBUILD_TST_DB)/gv/gv_db/gv_db.gv,gv_db.det,FALSE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/unionTag/unionTag_db_tdd_fdd.c,$(MODISBUILD_TST_DB)/unionTag/unionTag_parse.txt,unionTag_parse_tdd_fdd.det,TRUE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/unionTag/unionTag_db.c,$(MODISBUILD_TST_DB)/unionTag/unionTag_parse.txt,unionTag_parse.det,FALSE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/unionTag/ext/unionTag_db_tdd_fdd_ext.c,$(MODISBUILD_TST_DB)/unionTag/ext/unionTag_parse.txt,unionTag_parse_tdd_fdd_ext.det,TRUE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/unionTag/ext/unionTag_db_ext.c,$(MODISBUILD_TST_DB)/unionTag/ext/unionTag_parse.txt,unionTag_parse_ext.det,FALSE))
+else
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/gv/gv_db.c,$(MODISBUILD_TST_DB)/gv/gv_db/gv_db.gv,gv_db.det,FALSE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/gv/ext/gv_db_ext.c,$(MODISBUILD_TST_DB)/gv/gv_db_ext/gv_db_ext.gv,gv_db_ext.det,FALSE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/unionTag/unionTag_db_tdd_fdd.c,$(MODISBUILD_TST_DB)/unionTag/unionTag_parse.txt,unionTag_parse_tdd_fdd.det,TRUE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/unionTag/unionTag_db.c,$(MODISBUILD_TST_DB)/unionTag/unionTag_parse.txt,unionTag_parse.det,FALSE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/unionTag/ext/unionTag_db_ext.c,$(MODISBUILD_TST_DB)/unionTag/ext/unionTag_parse.txt,unionTag_parse_ext.det,FALSE))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/unionTag/ext/unionTag_db_tdd_fdd_ext.c,$(MODISBUILD_TST_DB)/unionTag/ext/unionTag_parse.txt,unionTag_parse_tdd_fdd_ext.det,TRUE))
+endif
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR))/database/l1validation_db/l1v_db.c,$(MODISBUILD_TST_DB)/l1validation_db/l1v_db/l1v_db.l1v,l1v_db.det,FALSE))
+# LTE SEC Cgen preprocess
+ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ ifeq ($(MPD_SOURCE_FULL_BUILD),TRUE)
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR_SEC))/database/msglog_db/libParseDbModem.c,$(MODISBUILD_TST_DB_SEC)/msglog_db/libParseDbModem_sec.db,libParseDbModem_sec.det))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR_SEC))/database/gv/gv_db.c,$(MODISBUILD_TST_DB_SEC)/gv/gv_db/gv_db_sec.gv,gv_db_sec.det))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR_SEC))/database/unionTag/unionTag_db.c,$(MODISBUILD_TST_DB_SEC)/unionTag/unionTag_parse_sec.txt,unionTag_parse_sec.det))
+$(eval $(call CgenPreprocess,$(strip $(TSTDIR_SEC))/database/l1validation_db/l1v_db.c,$(MODISBUILD_TST_DB_SEC)/l1validation_db/l1v_db/l1v_db_sec.l1v,l1v_db_sec.det))
+ endif
+endif
+
+#MPD 4g
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_ap_libParseDbModem_4g.det
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_ap_libParseDbModem_4g.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_ap_libParseDbModem_4g.det: $(MODIS_RULESDIR)/codegen_dep/libParseDbModem_4g.det
+$(MODIS_RULESDIR)/codegen_dep/cgen_ap_libParseDbModem_4g.det: $(strip $(TSTDIR))/database/$(CGEN_DEF_FILE) $(strip $(TSTDIR))/database/Pc_Cnf $(strip $(VERNOFILE)) $(strip $(PROJECT_MAKEFILE)) $(CGEN) $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(CODEGEN_DEPENDENCY_MODEM_4G) $(CODEGEN_DEPENDENCY_MODEM) $(DO) \
+ ($(IF_EXIST) $(PRE_VAR)i $(THEN) $(DEL_FILE) $(PRE_VAR)i $(CMD_END)) \
+ $(DONE)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) $(ECHO) -n "$@" > $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(CMD_END)
+
+ @$(ECHO) -n "Generate 4G Base Information ..."
+ @$(IF_EXIST) $(MODISBUILD_TST_DB_4G)/$(MDDBINFOCUSTOMPREFIX)* $(THEN) $(DEL_FILE) "$(MODISBUILD_TST_DB_4G)/*$(MDDBINFOCUSTOMPREFIX)*" $(CMD_END)
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/src $(THEN) $(MKDIR) $(BUILD_TSTDIR)/src $(CMD_END)
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n "$(CGEN) -ap11 $(CODEGEN_DATABASE_OUT_4G) $(CODEGEN_DATABASE_IN_SEC) $(MODISBUILD_TST_DB_4G)/msglog_db/libParseDbModem_4g.db $(MODISBUILD_TST_DB)/enumFile4G" >$(CGEN_CFG_MODEM_4G)
+else
+ @$(ECHO) -n $(CGEN) -ap11 $(CODEGEN_DATABASE_OUT_4G) $(CODEGEN_DATABASE_IN_SEC) $(MODISBUILD_TST_DB_4G)/msglog_db/libParseDbModem_4g.db $(MODISBUILD_TST_DB)/enumFile4G >$(CGEN_CFG_MODEM_4G)
+endif
+ @$(ECHO) -n "$@: $(strip $(TSTDIR))/database/$(CGEN_DEF_FILE) $(strip $(TSTDIR))/database/Pc_Cnf $(strip $(VERNOFILE)) $(strip $(PROJECT_MAKEFILE)) $(strip $(VERNOFILE))" >>$@
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_l1_4g.det
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_l1_4g.det: FORCE
+else
+ -include $(MODIS_RULESDIR)/codegen_dep/./cgen_l1_4g.det
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_l1_4g.det: $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/include $(THEN) $(MKDIR) $(BUILD_TSTDIR)/include $(CMD_END)
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/src $(THEN) $(MKDIR) $(BUILD_TSTDIR)/src $(CMD_END)
+ @$(IF_NOT_EXIST) $(CGEN_L1_OUTDIR) $(THEN) $(MKDIR) $(CGEN_L1_OUTDIR) $(CMD_END)
+
+#backup dhl/include/*.h
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/include_bak $(THEN) \
+ ($(MKDIR) $(BUILD_TSTDIR)/include_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(BUILD_TSTDIR)/include_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(BUILD_TSTDIR)/include_bak/*.* $(CMD_END)) \
+ $(CMD_END)
+ @($(LIST_DIR) "$(BUILD_TSTDIR)/include/*.h" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(BUILD_TSTDIR)/include/*.h $(BUILD_TSTDIR)/include_bak/ >$(DEV_NUL) $(CMD_END))
+
+#backup dhl/src
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/src_bak $(THEN) \
+ ($(MKDIR) $(BUILD_TSTDIR)/src_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(BUILD_TSTDIR)/src_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(BUILD_TSTDIR)/src_bak/*.* $(CMD_END)) \
+ $(CMD_END)
+ @($(LIST_DIR) "$(BUILD_TSTDIR)/src/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(BUILD_TSTDIR)/src/*.* $(BUILD_TSTDIR)/src_bak/ >$(DEV_NUL) $(CMD_END))
+
+#backup l1trace
+ @$(IF_NOT_EXIST) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak $(THEN) \
+ ($(MKDIR) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/*.* $(CMD_END)) \
+ $(CMD_END)
+ @($(LIST_DIR) "$(strip $(PROJ_INTERNAL_DIR))/l1trace/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(strip $(PROJ_INTERNAL_DIR))/l1trace/*.* $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/ >$(DEV_NUL) $(CMD_END))
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ @$(ECHO) -n "Generate 4G L1 Trace Information ..."
+ ifeq ($(strip $(RUN_CGEN_L1)),TRUE)
+ ifneq ($(strip $(UTMD_FILES_4G)),)
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) \
+ ($(ECHO) -n "$(CGEN) -uL1 $(CODEGEN_DATABASE_OUT_4G) $(CODEGEN_DATABASE_IN_4G) L1_CATCHER $(BUILD_TSTDIR)/src/TrcMod.c $(BUILD_TSTDIR)/include/TrcMod.h $(UTMD_FILES_4G) -OutputCPath-$(CGEN_L1_OUTDIR)/" >>$(CGEN_CFG_MODEM_4G)) \
+ $(ELSE) \
+ ($(ECHO) -n "$(CGEN) -rL1 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) L1_CATCHER $(BUILD_TSTDIR)/src/TrcMod.c $(BUILD_TSTDIR)/include/TrcMod.h $(UTMD_FILES_4G) -OutputCPath-$(CGEN_L1_OUTDIR)/" >>$(CGEN_CFG_MODEM_4G)) \
+ $(CMD_END)
+ @$(STRCMPEX) abc abc e $@ $@: $(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES_4G)))
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(foreach utmd_file,$(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES_4G))), $(CGEN_L1_OUTDIR)/$(notdir $(basename $(utmd_file))).c $(BUILD_TSTDIR)/include/$(notdir $(basename $(utmd_file))).h) $(DO) (echo $(PRE_VAR)i >>$(CODE_GEN_LST)) $(DONE)
+ endif
+ else
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ @for %%i in ($(subst /,\,$(BUILD_TSTDIR)/include/TrcMod.h) $(foreach utmd_file,$(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES_4G))),$(subst /,\,$(BUILD_TSTDIR)/include/$(notdir $(basename $(utmd_file)).h)))) do (if not exist %%i copy /y NUL %%i >NUL)
+ else
+ @touch -a $(BUILD_TSTDIR)/include/TrcMod.h $(foreach utmd_file,$(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES_4G))),$(BUILD_TSTDIR)/include/$(notdir $(basename $(utmd_file)).h))
+ endif
+ endif
+endif
+ @$(ECHO) -n "$@:" >> $@
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_gv_4g.det
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_gv_4g.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_gv_4g.det: $(MODIS_RULESDIR)/codegen_dep/cgen_gv_4g.det $(GV_FILES_4G) $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(ECHO) -n "Generate 4G Global variable Information ..."
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n "$(CGEN) -gv $(CODEGEN_DATABASE_OUT_4G) $(CODEGEN_DATABASE_IN_4G) $(MODISBUILD_TST_DB_4G)/gv/gv_db/ $(BUILD_TSTDIR)/src/gvTbl.c" >>$(CGEN_CFG_MODEM_4G)
+ @$(ECHO) -n "$(BUILD_TSTDIR)/src/gvTbl.c" >>$(CODE_GEN_LST)
+else
+ @$(ECHO) -n $(CGEN) -gv $(CODEGEN_DATABASE_OUT_4G) $(CODEGEN_DATABASE_IN_4G) $(MODISBUILD_TST_DB_SEC)/gv/gv_db/ $(BUILD_TSTDIR)/src/gvTbl_modis.c >>$(CGEN_CFG_MODEM_4G)
+ @$(ECHO) -n $(BUILD_TSTDIR)/src/gvTbl_modis.c >>$(CODE_GEN_LST)
+endif
+ @$(STRCMPEX) abc abc e $(basename $@).d $@: $(GV_FILES_4G)
+ @perl ./tools/pack_dep_gen.pl $@ $@ $(patsubst %/,%,$(dir $@)) "$(basename $(notdir $@))\.d"
+ @$(IF_EXIST) $(basename $@).d $(THEN) $(DEL_FILE) $(basename $@).d $(CMD_END)
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_l1v_4g.det
+# *************************************************************************
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_l1v_4g.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_l1v_4g.det: $(MODIS_RULESDIR)/codegen_dep/l1v_db_4g.det $(CGEN) $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB_4G)/l1validation_db/l1v_db/4G $(THEN) $(MKDIR) $(MODISBUILD_TST_DB_4G)/l1validation_db/l1v_db/4G $(CMD_END)
+
+ @$(ECHO) -n "Generate 4G L1 Validation Information ..."
+ @$(ECHO) -n "$(CGEN) -L1V $(CODEGEN_DATABASE_OUT_4G) $(CODEGEN_DATABASE_IN_4G) $(MODISBUILD_TST_DB_4G)/l1validation_db/l1v_db/4G" >>$(CGEN_CFG_MODEM_4G)
+# too much *.l1v files, command length will be over 32KB
+ @$(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(RECURSIVE_DIR) $(strip $(TST_DB_SEC))/l1validation_db "\.l1v"` $(DO) (echo $@: $(PRE_VAR)i >> $(basename $@).d) $(DONE)
+ @perl ./tools/pack_dep_gen.pl $@ $@ $(patsubst %/,%,$(dir $@)) "$(basename $(notdir $@))\.d"
+ @$(IF_EXIST) $(basename $@).d $(THEN) $(DEL_FILE) $(basename $@).d $(CMD_END)
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem_4g.det
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem_4g.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem_4g.det: $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem_4g.det
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(ECHO) -n "Generate 4G PS Trace Information ..."
+#backup xxx_trc_gen.h
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB_4G)/pstrace_db_bak $(THEN) \
+ ($(MKDIR) $(MODISBUILD_TST_DB_4G)/pstrace_db_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(MODISBUILD_TST_DB_4G)/pstrace_db_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(MODISBUILD_TST_DB_4G)/pstrace_db_bak/*.* $(CMD_END))\
+ $(CMD_END)
+ @($(LIST_DIR) "$(MODISBUILD_TST_DB_4G)/pstrace_db/*.h" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(MODISBUILD_TST_DB_4G)/pstrace_db/*.h $(MODISBUILD_TST_DB_4G)/pstrace_db_bak/ >$(DEV_NUL) $(CMD_END))
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(IF_EXIST) $(MODISBUILD_TST_DB_4G)/pstrace_db/codegen_single_Modem_4g.ini $(THEN) \
+ ($(IF_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) \
+ ($(ECHO) -n "$(CGEN) -ps $(CODEGEN_DATABASE_OUT_4G) $(CODEGEN_DATABASE_IN_4G) $(MODISBUILD_TST_DB_4G)/pstrace_db/codegen_single_Modem_4g.ini $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h" >>$(CGEN_CFG_MODEM_4G)) \
+ $(ELSE) \
+ ($(ECHO) -n "$(CGEN) -rps $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB_4G)/pstrace_db/codegen_single_Modem_4g.ini $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h" >>$(CGEN_CFG_MODEM_4G)) $(AND)\
+ ($(ECHO) -n "$(CGEN) -rle $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_2.h $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h" >>$(CGEN_CFG_MODEM_4G)) $(AND)\
+ ($(ECHO) -n "$(CGEN) -sps $(MODISBUILD_TST_DB)/pstrace_db/ps_trace.h $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_2.h -posfixName-" >>$(CGEN_CFG_MODEM_4G)) \
+ $(CMD_END)) \
+ $(CMD_END)
+else
+ @$(IF_EXIST) $(MODISBUILD_TST_DB_4G)/pstrace_db/codegen_single_Modem_4g.ini $(THEN) \
+ ($(ECHO) -n $(CGEN) -ps $(CODEGEN_DATABASE_OUT_4G) $(CODEGEN_DATABASE_IN_4G) $(MODISBUILD_TST_DB_4G)/pstrace_db/codegen_single_Modem_4g.ini $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h >>$(CGEN_CFG_MODEM_4G)) \
+ $(CMD_END)
+endif
+ @$(ECHO) -n "$@:" >> $@
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+ @$(ECHO) -n "$(MODISBUILD_TST_DB)/pstrace_db/ps_trace.h" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem_4g.det: FORCE
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem_4g.det: FORCE
+else
+ -include $(MODIS_RULESDIR)/codegen_dep/./codegen_single_Modem_4g.det
+endif
+$(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem_4g.det: $(NEED_CHECK_DEPEND_LIST) $(COMP_TRACE_DEFS_MODEM_4G)
+ifeq ($(filter $(MAKECMDGOALS),cgen_preprocess),)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB_4G)/pstrace_db $(THEN) $(MKDIR) $(MODISBUILD_TST_DB_4G)/pstrace_db $(CMD_END)
+
+ @$(ECHO) -n "Write ps *.json to $(MODISBUILD_TST_DB_4G)/pstrace_db/codegen_single_Modem_4g.ini"
+ @$(STRCMPEX) def def e $(MODISBUILD_TST_DB_4G)/pstrace_db/codegen_single_Modem_4g.ini $(COMP_TRACE_DEFS_MODEM_4G)
+ @perl ./tools/lnitem.pl $(MODISBUILD_TST_DB_4G)/pstrace_db/codegen_single_Modem_4g.ini
+ifeq ($(filter $(MAKECMDGOALS),cgen_preprocess),)
+ @$(ECHO) "$@: " >> $@
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(filter-out $(NEED_CHECK_DEPEND_LIST) FORCE,$^) $(DO) \
+ ($(ECHO) "$(PRE_VAR)i " >> $@) \
+ $(DONE)
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_un_4g.det
+# *************************************************************************
+ifeq ($(RUN_UMTS_GEN),TRUE)
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_un_4g.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_un_4g.det: $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_4g.det $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+
+ @$(ECHO) -n "Generate 4G Union Information ..."
+ @$(ECHO) -n "$(CGEN) -un $(CODEGEN_DATABASE_OUT_4G) $(CODEGEN_DATABASE_IN_4G) $(MODISBUILD_TST_DB_4G)/unionTag/unionTag_parse_4g.txt" >>$(CGEN_CFG_MODEM_4G)
+ @$(ECHO) -n "$@:" >> $@
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem.det: FORCE
+# *************************************************************************
+# MPD domain must able to access all trace files list in COMP_TRACE_DEFS_MODEM
+# HQ SWRD / SUB domain can only access partial trace files list in COMP_TRACE_DEFS_MODEM
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ COMP_TRACE_DEFS_MODEM_NEW := $(COMP_TRACE_DEFS_MODEM)
+ else
+ COMP_TRACE_DEFS_MODEM_NEW := $(wildcard $(COMP_TRACE_DEFS_MODEM))
+ endif
+else
+ COMP_TRACE_DEFS_MODEM_NEW := $(wildcard $(COMP_TRACE_DEFS_MODEM))
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem.det: FORCE
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem.det: FORCE
+else
+ -include $(MODIS_RULESDIR)/codegen_dep/./codegen_single_Modem.det
+endif
+$(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem.det: $(NEED_CHECK_DEPEND_LIST) $(COMP_TRACE_DEFS_MODEM_NEW)
+ifeq ($(filter $(MAKECMDGOALS),cgen_preprocess),)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(ECHO) -n "Write ps *.json to $(MODISBUILD_TST_DB)/pstrace_db/codegen_single_Modem.ini"
+ @$(STRCMPEX) def def e $(MODISBUILD_TST_DB)/pstrace_db/codegen_single_Modem.ini $(COMP_TRACE_DEFS_MODEM_NEW)
+ @perl ./tools/lnitem.pl $(MODISBUILD_TST_DB)/pstrace_db/codegen_single_Modem.ini
+ifeq ($(filter $(MAKECMDGOALS),cgen_preprocess),)
+ @$(ECHO) "$@: " >> $@
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(filter-out $(NEED_CHECK_DEPEND_LIST) FORCE,$^) $(DO) \
+ ($(ECHO) "$(PRE_VAR)i " >> $@) \
+ $(DONE)
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem_sec.det: FORCE
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem_sec.det: FORCE
+else
+ -include $(MODIS_RULESDIR)/codegen_dep/./codegen_single_Modem_sec.det
+endif
+$(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem_sec.det: $(NEED_CHECK_DEPEND_LIST) $(COMP_TRACE_DEFS_MODEM_LTE_SEC) $(COMP_TRACE_DEFS_MODEM_NR_SEC)
+ifeq ($(filter $(MAKECMDGOALS),cgen_preprocess),)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(ECHO) -n "Write ps *.json to $(MODISBUILD_TST_DB_SEC)/pstrace_db/codegen_single_Modem_sec.ini"
+ @$(STRCMPEX) def def e $(MODISBUILD_TST_DB_SEC)/pstrace_db/codegen_single_Modem_sec.ini $(COMP_TRACE_DEFS_MODEM_LTE_SEC) $(COMP_TRACE_DEFS_MODEM_NR_SEC)
+ @perl ./tools/lnitem.pl $(MODISBUILD_TST_DB_SEC)/pstrace_db/codegen_single_Modem_sec.ini
+ifeq ($(filter $(MAKECMDGOALS),cgen_preprocess),)
+ @$(ECHO) "$@: " >>$@
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(filter-out $(NEED_CHECK_DEPEND_LIST) FORCE,$^) $(DO) \
+ ($(ECHO) "$(PRE_VAR)i " >> $@) \
+ $(DONE)
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_c_sec.det: FORCE
+# *************************************************************************
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_c_sec.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_c_sec.det: $(MODIS_RULESDIR)/codegen_dep/libParseDbModem_sec.det
+$(MODIS_RULESDIR)/codegen_dep/cgen_c_sec.det: $(strip $(TSTDIR))/database/$(CGEN_DEF_FILE) $(strip $(TSTDIR))/database/Pc_Cnf $(strip $(VERNOFILE)) $(strip $(PROJECT_MAKEFILE)) $(CGEN) $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(CODEGEN_DEPENDENCY_MODEM_SEC) $(CODEGEN_DEPENDENCY_MODEM_4G) $(CODEGEN_DEPENDENCY_MODEM) $(DO) \
+ ($(IF_EXIST) $(PRE_VAR)i $(THEN) $(DEL_FILE) $(PRE_VAR)i $(CMD_END)) \
+ $(DONE)
+
+ @$(ECHO) -n "Generate sec Base Information ..."
+ @$(IF_EXIST) $(MODISBUILD_TST_DB_SEC)/$(MDDBINFOCUSTOMPREFIX)* $(THEN) $(DEL_FILE) "$(MODISBUILD_TST_DB_SEC)/*$(MDDBINFOCUSTOMPREFIX)*" $(CMD_END)
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/src $(THEN) $(MKDIR) $(BUILD_TSTDIR)/src $(CMD_END)
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n "$(CGEN) -c $(MODISBUILD_TST_DB_SEC)/msglog_db/libParseDbModem_sec.db $(strip $(TSTDIR))/database/$(CGEN_DEF_FILE) $(strip $(TSTDIR))/database/Pc_Cnf $(CODEGEN_DATABASE_OUT_SEC) $(MODISBUILD_TST_DB)/enumFile $(strip $(PLATFORM))_$(strip $(CHIP_VER)) $(strip $(MTK_INTERNAL_VERNO)) -qModSim-$(BUILD_TSTDIR)/src/tst_querysimid.c -sf-$(MODISBUILD_TST_DB)/sf.ini -prjName-$(strip $(FULL_PRJ_NAME)) -VERNO_HAL-$(strip $(VERNO_HAL))" >$(CGEN_CFG_MODEM_SEC)
+ @$(ECHO) -n "$(BUILD_TSTDIR)/src/tst_querysimid.c" >>$(CODE_GEN_LST)
+else
+ @$(ECHO) -n $(CGEN) -c $(MODISBUILD_TST_DB_SEC)/msglog_db/libParseDbModem_sec.db $(strip $(TSTDIR))/database/$(CGEN_DEF_FILE) $(strip $(TSTDIR))/database/Pc_Cnf $(CODEGEN_DATABASE_OUT_SEC) $(MODISBUILD_TST_DB)/enumFile MoDIS $(strip $(VERNO)) -qModSim-$(BUILD_TSTDIR)/src/tst_querysimid_modis.c >>$(CGEN_CFG_MODEM_SEC)
+ @$(ECHO) -n $(BUILD_TSTDIR)/src/tst_querysimid_modis.c >>$(CODE_GEN_LST)
+endif
+ @$(ECHO) -n "$@: $(strip $(TSTDIR))/database/$(CGEN_DEF_FILE) $(strip $(TSTDIR))/database/Pc_Cnf $(strip $(VERNOFILE)) $(strip $(PROJECT_MAKEFILE)) $(strip $(VERNOFILE))" >>$@
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+ @$(ECHO) -n "$(MODISBUILD_TST_DB)/enumFile" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_ap_swParseDbModem.det: FORCE
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_ap_swParseDbModem.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_ap_swParseDbModem.det: $(MODIS_RULESDIR)/codegen_dep/swParseDbModem.det
+$(MODIS_RULESDIR)/codegen_dep/cgen_ap_swParseDbModem.det: $(strip $(VERNOFILE)) $(strip $(PROJECT_MAKEFILE)) $(CGEN) $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) $(DEL_FILE) $@ $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ifeq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(CODEGEN_DEPENDENCY_MODEM) $(DO) \
+ ($(IF_EXIST) $(PRE_VAR)i $(THEN) $(DEL_FILE) $(PRE_VAR)i $(CMD_END)) \
+ $(DONE)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) $(ECHO) -n "$@" > $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(CMD_END)
+endif
+ @$(ECHO) -n "Append sw Base Information ..."
+ @$(ECHO) -n "$(CGEN) -ap10 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/swParseDbModem.db $(MODISBUILD_TST_DB)/enumFileSw" >>$(CGEN_CFG_MODEM)
+
+ @$(ECHO) -n "$@:" >> $@
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+ @$(ECHO) -n "$(MODISBUILD_TST_DB)/enumFile" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_ap_libParseDbModem.det: FORCE
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_ap_libParseDbModem.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_ap_libParseDbModem.det: $(MODIS_RULESDIR)/codegen_dep/libParseDbModem_tdd_fdd.det $(MODIS_RULESDIR)/codegen_dep/libParseDbModem.det
+$(MODIS_RULESDIR)/codegen_dep/cgen_ap_libParseDbModem.det: $(strip $(TSTDIR))/database/$(CGEN_DEF_FILE) $(strip $(TSTDIR))/database/Pc_Cnf $(strip $(VERNOFILE)) $(strip $(PROJECT_MAKEFILE)) $(CGEN)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(CODEGEN_DEPENDENCY_MODEM) $(DO) \
+ ($(IF_EXIST) $(PRE_VAR)i $(THEN) $(DEL_FILE) $(PRE_VAR)i $(CMD_END)) \
+ $(DONE)
+ifneq ($(MPD_SOURCE_4G_BUILD),TRUE)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) $(ECHO) -n "$@" > $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(CMD_END)
+endif
+ @$(ECHO) -n "Append common Base Information ..."
+ @$(ECHO) -n "$(CGEN) -ap8 $(CODEGEN_DATABASE_OUT) $(INPUT_4G_DB) $(MODISBUILD_TST_DB)/msglog_db/libParseDbModem.db $(MODISBUILD_TST_DB)/enumFile" >>$(CGEN_CFG_MODEM)
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(ECHO) -n "$(CGEN) -ap5 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/libParseDbModem_fdd.db $(MODISBUILD_TST_DB)/enumFile" >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n "$(CGEN) -ap6 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/libParseDbModem_tdd.db $(MODISBUILD_TST_DB)/enumFile $(strip $(PLATFORM))_$(strip $(CHIP_VER)) $(strip $(VERNO)) -qModSim-$(BUILD_TSTDIR)/src/tst_querysimid.c" >>$(CGEN_CFG_MODEM)
+ else
+ @$(ECHO) -n "$(CGEN) -ap5 $(CODEGEN_DATABASE_OUT) $(INPUT_4G_DB) $(MODISBUILD_TST_DB)/msglog_db/libParseDbModem_fdd.db $(MODISBUILD_TST_DB)/enumFile $(strip $(PLATFORM))_$(strip $(CHIP_VER)) $(strip $(VERNO)) -qModSim-$(BUILD_TSTDIR)/src/tst_querysimid.c" >>$(CGEN_CFG_MODEM)
+ endif
+else
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(ECHO) -n $(CGEN) -ap5 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/libParseDbModem_fdd.db $(MODISBUILD_TST_DB)/enumFile >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n $(CGEN) -ap6 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/libParseDbModem_tdd.db $(MODISBUILD_TST_DB)/enumFile MoDIS $(strip $(VERNO)) -qModSim-$(BUILD_TSTDIR)/src/tst_querysimid_modis.c>>$(CGEN_CFG_MODEM)
+ else
+ @$(ECHO) -n $(CGEN) -ap5 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/libParseDbModem_fdd.db $(MODISBUILD_TST_DB)/enumFile MoDIS $(strip $(VERNO)) -qModSim-$(BUILD_TSTDIR)/src/tst_querysimid_modis.c>>$(CGEN_CFG_MODEM)
+ endif
+endif
+ @$(ECHO) -n "$@: $(strip $(TSTDIR))/database/$(CGEN_DEF_FILE) $(strip $(TSTDIR))/database/Pc_Cnf $(strip $(VERNOFILE)) $(strip $(PROJECT_MAKEFILE))" >$@
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+ @$(ECHO) -n "$(MODISBUILD_TST_DB)/enumFile" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem.det: FORCE
+# Step 3: Protocol trace information
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem.det: $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem.det
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(ECHO) -n "Generate common PS Trace Information ..."
+#backup xxx_trc_gen.h
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/pstrace_db_bak $(THEN) \
+ ($(MKDIR) $(MODISBUILD_TST_DB)/pstrace_db_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(MODISBUILD_TST_DB)/pstrace_db_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(MODISBUILD_TST_DB)/pstrace_db_bak/*.* $(CMD_END))\
+ $(CMD_END)
+ @($(LIST_DIR) "$(MODISBUILD_TST_DB)/pstrace_db/*.h" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(MODISBUILD_TST_DB)/pstrace_db/*.h $(MODISBUILD_TST_DB)/pstrace_db_bak/ >$(DEV_NUL) $(CMD_END))
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) \
+ ($(ECHO) -n "$(CGEN) -ps $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_OUT) $(MODISBUILD_TST_DB)/pstrace_db/codegen_single_Modem.ini $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h" >>$(CGEN_CFG_MODEM)) \
+ $(ELSE) \
+ ($(ECHO) -n "$(CGEN) -rps $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_OUT) $(MODISBUILD_TST_DB)/pstrace_db/codegen_single_Modem.ini $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h" >>$(CGEN_CFG_MODEM)) \
+ $(CMD_END)
+ @$(ECHO) -n "$(CGEN) -rle $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_2.h $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h" >> $(CGEN_CFG_MODEM)
+ @$(ECHO) -n "$(CGEN) -sps $(MODISBUILD_TST_DB)/pstrace_db/ps_trace.h $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_2.h -posfixName-" >> $(CGEN_CFG_MODEM)
+else
+ @$(ECHO) -n $(CGEN) -ps $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/pstrace_db/codegen_single_Modem.ini $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h >> $(CGEN_CFG_MODEM)
+ @$(ECHO) -n $(CGEN) -sps $(MODISBUILD_TST_DB)/pstrace_db/ps_trace.h $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h -posfixName- >> $(CGEN_CFG_MODEM)
+endif
+ @$(ECHO) -n "$@:" >> $@
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+ @$(ECHO) -n "$(MODISBUILD_TST_DB)/pstrace_db/ps_trace.h" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem_sec.det: FORCE
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem_sec.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_ps_Modem_sec.det: $(MODIS_RULESDIR)/codegen_dep/codegen_single_Modem_sec.det
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(ECHO) -n "Generate sec PS Trace Information ..."
+#backup xxx_trc_gen.h
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/pstrace_db_bak $(THEN) \
+ ($(MKDIR) $(MODISBUILD_TST_DB)/pstrace_db_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(MODISBUILD_TST_DB)/pstrace_db_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(MODISBUILD_TST_DB)/pstrace_db_bak/*.* $(CMD_END)) \
+ $(CMD_END)
+ @($(LIST_DIR) "$(MODISBUILD_TST_DB)/pstrace_db/*.h" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(MODISBUILD_TST_DB)/pstrace_db/*.h $(MODISBUILD_TST_DB)/pstrace_db_bak/ >$(DEV_NUL) $(CMD_END))
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n "$(CGEN) -ps $(CODEGEN_DATABASE_OUT_SEC) $(CODEGEN_DATABASE_IN_SEC) $(MODISBUILD_TST_DB_SEC)/pstrace_db/codegen_single_Modem_sec.ini $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h" >> $(CGEN_CFG_MODEM_SEC)
+else
+ @$(ECHO) -n $(CGEN) -ps $(CODEGEN_DATABASE_OUT_SEC) $(CODEGEN_DATABASE_IN_SEC) $(MODISBUILD_TST_DB_SEC)/pstrace_db/codegen_single_Modem_sec.ini $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h >> $(CGEN_CFG_MODEM_SEC)
+endif
+ @$(ECHO) -n "$@:" >>$@
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+ @$(ECHO) -n "$(MODISBUILD_TST_DB)/pstrace_db/ps_trace.h" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_l1.det: FORCE
+# Step 4: Layer 1 trace information
+# *************************************************************************
+L1MODMSG_CHK = $(strip $(LOGGING_DATABASE))/l1validation_db/L1ModMsg.chk
+
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_l1.det: FORCE
+else
+ -include $(MODIS_RULESDIR)/codegen_dep/./cgen_l1.det
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_l1.det: $(NEED_CHECK_DEPEND_LIST)
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/include $(THEN) $(MKDIR) $(BUILD_TSTDIR)/include $(CMD_END)
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/src $(THEN) $(MKDIR) $(BUILD_TSTDIR)/src $(CMD_END)
+ @$(IF_NOT_EXIST) $(CGEN_L1_OUTDIR) $(THEN) $(MKDIR) $(CGEN_L1_OUTDIR) $(CMD_END)
+
+#backup dhl/include/*.h
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/include_bak $(THEN) \
+ ($(MKDIR) $(BUILD_TSTDIR)/include_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(BUILD_TSTDIR)/include_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(BUILD_TSTDIR)/include_bak/*.* $(CMD_END)) \
+ $(CMD_END)
+ @($(LIST_DIR) "$(BUILD_TSTDIR)/include/*.h" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(BUILD_TSTDIR)/include/*.h $(BUILD_TSTDIR)/include_bak/ >$(DEV_NUL) $(CMD_END))
+
+#backup dhl/src
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/src_bak $(THEN) \
+ ($(MKDIR) $(BUILD_TSTDIR)/src_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(BUILD_TSTDIR)/src_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(BUILD_TSTDIR)/src_bak/*.* $(CMD_END)) \
+ $(CMD_END)
+ @($(LIST_DIR) "$(BUILD_TSTDIR)/src/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(BUILD_TSTDIR)/src/*.* $(BUILD_TSTDIR)/src_bak/ >$(DEV_NUL) $(CMD_END))
+
+#backup l1trace
+ @$(IF_NOT_EXIST) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak $(THEN) \
+ ($(MKDIR) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/*.* $(CMD_END)) \
+ $(CMD_END)
+ @($(LIST_DIR) "$(strip $(PROJ_INTERNAL_DIR))/l1trace/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(strip $(PROJ_INTERNAL_DIR))/l1trace/*.* $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/ >$(DEV_NUL) $(CMD_END))
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ @$(ECHO) -n "Generate common L1 Trace Information ..."
+ ifeq ($(strip $(RUN_CGEN_L1)),TRUE)
+ ifeq ($(strip $(UTMD_FILES)),)
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) \
+ ($(ECHO) -n "$(CGEN) -uL1 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) L1_CATCHER $(BUILD_TSTDIR)/src/TrcMod.c $(BUILD_TSTDIR)/include/TrcMod.h $(UTMD_FILES) -OutputCPath-$(CGEN_L1_OUTDIR)/" >>$(CGEN_CFG_MODEM)) \
+ $(ELSE) \
+ ($(ECHO) -n "$(CGEN) -rL1 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) L1_CATCHER $(BUILD_TSTDIR)/src/TrcMod.c $(BUILD_TSTDIR)/include/TrcMod.h $(UTMD_FILES) -OutputCPath-$(CGEN_L1_OUTDIR)/" >>$(CGEN_CFG_MODEM)) \
+ $(CMD_END)
+ @$(STRCMPEX) abc abc e $@ $@: $(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES)))
+ else
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) \
+ ($(ECHO) "$(CGEN) -uL1 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) L1_CATCHER $(BUILD_TSTDIR)/src/TrcMod.c $(BUILD_TSTDIR)/include/TrcMod.h $(strip $(L1MODMSG_CHK)) " >>$(CGEN_CFG_MODEM)) \
+ $(ELSE) \
+ ($(ECHO) "$(CGEN) -rL1 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) L1_CATCHER $(BUILD_TSTDIR)/src/TrcMod.c $(BUILD_TSTDIR)/include/TrcMod.h $(strip $(L1MODMSG_CHK)) " >>$(CGEN_CFG_MODEM)) \
+ $(CMD_END)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(UTMD_FILES) $(DO) \
+ ($(ECHO) "$(PRE_VAR)i " >> $(CGEN_CFG_MODEM)) \
+ $(DONE)
+ @$(ECHO) -n "-OutputCPath-$(CGEN_L1_OUTDIR)/" >>$(CGEN_CFG_MODEM)
+ @$(STRCMPEX) abc abc e $@ $@: $(strip $(L1MODMSG_CHK)) $(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES)))
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(foreach utmd_file,$(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES))), $(CGEN_L1_OUTDIR)/$(notdir $(basename $(utmd_file))).c) $(DO) (echo $(PRE_VAR)i >>$(CODE_GEN_LST)) $(DONE)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(foreach utmd_file,$(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES))), $(BUILD_TSTDIR)/include/$(notdir $(basename $(utmd_file))).h) $(DO) (echo $(PRE_VAR)i >>$(CODE_GEN_LST)) $(DONE)
+ endif
+ @$(ECHO) -n "$(BUILD_TSTDIR)/src/TrcMod.c" >>$(CODE_GEN_LST)
+ @$(ECHO) -n "$(BUILD_TSTDIR)/include/TrcMod.h" >>$(CODE_GEN_LST)
+ else
+ # workaround for -puremodis, because some L1 headers are always included
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ @for %%i in ($(subst /,\,$(BUILD_TSTDIR)/include/TrcMod.h) $(foreach utmd_file,$(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES))),$(subst /,\,$(BUILD_TSTDIR)/include/$(notdir $(basename $(utmd_file)).h)))) do (if not exist %%i copy /y NUL %%i >NUL)
+ else
+ @touch -a $(BUILD_TSTDIR)/include/TrcMod.h $(foreach utmd_file,$(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES))),$(BUILD_TSTDIR)/include/$(notdir $(basename $(utmd_file)).h))
+ endif
+ endif
+else
+ ifneq ($(strip $(UTMD_FILES)),)
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) \
+ ($(ECHO) "$(CGEN) -uL1 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) L1_CATCHER $(BUILD_TSTDIR)/src/TrcMod.c $(BUILD_TSTDIR)/include/TrcMod.h $(strip $(L1MODMSG_CHK)) " >>$(CGEN_CFG_MODEM)) \
+ $(ELSE) \
+ ($(ECHO) "$(CGEN) -rL1 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) L1_CATCHER $(BUILD_TSTDIR)/src/TrcMod.c $(BUILD_TSTDIR)/include/TrcMod.h $(strip $(L1MODMSG_CHK)) " >>$(CGEN_CFG_MODEM)) \
+ $(CMD_END)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(UTMD_FILES) $(DO) \
+ ($(ECHO) "$(PRE_VAR)i " >> $(CGEN_CFG_MODEM)) \
+ $(DONE)
+ @$(ECHO) -n "-OutputCPath-$(CGEN_L1_OUTDIR)/" >>$(CGEN_CFG_MODEM)
+ endif
+endif
+ @$(ECHO) -n "$@:" >>$@
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_l1_sec.det: FORCE
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_l1_sec.det: FORCE
+else
+ -include $(MODIS_RULESDIR)/codegen_dep/./cgen_l1_sec.det
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_l1_sec.det: $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/include $(THEN) $(MKDIR) $(BUILD_TSTDIR)/include $(CMD_END)
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/src $(THEN) $(MKDIR) $(BUILD_TSTDIR)/src $(CMD_END)
+ @$(IF_NOT_EXIST) $(CGEN_L1_OUTDIR) $(THEN) $(MKDIR) $(CGEN_L1_OUTDIR) $(CMD_END)
+
+#backup dhl/include/*.h
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/include_bak $(THEN) \
+ ($(MKDIR) $(BUILD_TSTDIR)/include_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(BUILD_TSTDIR)/include_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(BUILD_TSTDIR)/include_bak/*.* $(CMD_END)) \
+ $(CMD_END)
+ @($(LIST_DIR) "$(BUILD_TSTDIR)/include/*.h" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(BUILD_TSTDIR)/include/*.h $(BUILD_TSTDIR)/include_bak/ >$(DEV_NUL) $(CMD_END))
+
+#backup dhl/src
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/src_bak $(THEN) \
+ ($(MKDIR) $(BUILD_TSTDIR)/src_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(BUILD_TSTDIR)/src_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(BUILD_TSTDIR)/src_bak/*.* $(CMD_END)) \
+ $(CMD_END)
+ @($(LIST_DIR) "$(BUILD_TSTDIR)/src/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(BUILD_TSTDIR)/src/*.* $(BUILD_TSTDIR)/src_bak/ >$(DEV_NUL) $(CMD_END))
+
+#backup l1trace
+ @$(IF_NOT_EXIST) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak $(THEN) \
+ ($(MKDIR) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak) \
+ $(ELSE) \
+ ($(LIST_DIR) "$(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(DEL_FILE) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/*.* $(CMD_END)) \
+ $(CMD_END)
+ @($(LIST_DIR) "$(strip $(PROJ_INTERNAL_DIR))/l1trace/*.*" 1>$(DEV_NUL) 2>&1 $(WITH)\
+ $(IF_ERR_FALSE) $(THEN) $(COPY_FILE) $(strip $(PROJ_INTERNAL_DIR))/l1trace/*.* $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/ >$(DEV_NUL) $(CMD_END))
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ @$(ECHO) -n "Generate sec L1 Trace Information ..."
+ ifeq ($(strip $(RUN_CGEN_L1)),TRUE)
+ ifeq ($(strip $(UTMD_FILES_SEC)),)
+ @$(ECHO) -n "$(CGEN) -uL1 $(CODEGEN_DATABASE_OUT_SEC) $(CODEGEN_DATABASE_IN_SEC) L1_CATCHER $(BUILD_TSTDIR)/src/TrcMod.c $(BUILD_TSTDIR)/include/TrcMod.h $(DHL_L1_UTMD_FILE) $(UTMD_FILES_SEC) -OutputCPath-$(CGEN_L1_OUTDIR)/" >>$(CGEN_CFG_MODEM_SEC)
+ @$(STRCMPEX) abc abc e $@ $@: $(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES_SEC)))
+ else
+ @$(ECHO) -n "$(CGEN) -uL1 $(CODEGEN_DATABASE_OUT_SEC) $(CODEGEN_DATABASE_IN_SEC) L1_CATCHER $(BUILD_TSTDIR)/src/TrcMod.c $(BUILD_TSTDIR)/include/TrcMod.h $(strip $(TSTDIR_SEC))/database/l1validation_db/L1ModMsg.chk $(DHL_L1_UTMD_FILE) $(UTMD_FILES_SEC) -OutputCPath-$(CGEN_L1_OUTDIR)/" >>$(CGEN_CFG_MODEM_SEC)
+ @$(STRCMPEX) abc abc e $@ $@: $(strip $(TSTDIR_SEC))/database/l1validation_db/L1ModMsg.chk $(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES_SEC)))
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(foreach utmd_file,$(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES_SEC))), $(CGEN_L1_OUTDIR)/$(notdir $(basename $(utmd_file))).c $(BUILD_TSTDIR)/include/$(notdir $(basename $(utmd_file))).h) $(DO) (echo $(PRE_VAR)i >>$(CODE_GEN_LST)) $(DONE)
+ endif
+ @$(ECHO) -n "$(BUILD_TSTDIR)/src/TrcMod.c" >>$(CODE_GEN_LST)
+ @$(ECHO) -n "$(BUILD_TSTDIR)/include/TrcMod.h" >>$(CODE_GEN_LST)
+ else
+ # workaround for -puremodis, because some L1 headers are always included
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ @for %%i in ($(subst /,\,$(BUILD_TSTDIR)/include/TrcMod.h) $(foreach utmd_file,$(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES_SEC))),$(subst /,\,$(BUILD_TSTDIR)/include/$(notdir $(basename $(utmd_file)).h)))) do (if not exist %%i copy /y NUL %%i >NUL)
+ else
+ @touch -a $(BUILD_TSTDIR)/include/TrcMod.h $(foreach utmd_file,$(filter-out CuStOm_StArT_% CuStOm_EnD_%,$(strip $(UTMD_FILES_SEC))),$(BUILD_TSTDIR)/include/$(notdir $(basename $(utmd_file)).h))
+ endif
+ endif
+endif
+ @$(ECHO) -n "$@:" >>$@
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_gv.det: FORCE
+# Step 5: Result temporary - Global variable information
+# *************************************************************************
+#ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_gv.det: FORCE
+endif
+ifneq ($(strip $(C2K_RELEASE)),TRUE)
+$(MODIS_RULESDIR)/codegen_dep/cgen_gv.det: $(MODIS_RULESDIR)/codegen_dep/gv_db.det $(GV_FILES)
+else
+$(MODIS_RULESDIR)/codegen_dep/cgen_gv.det: $(MODIS_RULESDIR)/codegen_dep/gv_db_ext.det $(GV_FILES_C2K)
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_gv.det: $(NEED_CHECK_DEPEND_LIST)
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(ECHO) -n "Generate common Global variable Information ..."
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ifneq ($(strip $(C2K_RELEASE)),TRUE)
+ @$(ECHO) -n "$(CGEN) -gv $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/gv/gv_db/ $(BUILD_TSTDIR)/src/gvTbl.c" >> $(CGEN_CFG_MODEM)
+else
+ @$(ECHO) -n "$(CGEN) -gv $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/gv/gv_db_ext/ $(BUILD_TSTDIR)/src/gvTbl.c" >> $(CGEN_CFG_MODEM)
+endif
+ @$(ECHO) -n "$(BUILD_TSTDIR)/src/gvTbl.c" >>$(CODE_GEN_LST)
+else
+ifneq ($(strip $(C2K_RELEASE)),TRUE)
+ @$(ECHO) -n $(CGEN) -gv $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/gv/gv_db/ $(BUILD_TSTDIR)/src/gvTbl_modis.c >> $(CGEN_CFG_MODEM)
+else
+ @$(ECHO) -n $(CGEN) -gv $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/gv/gv_db_ext/ $(BUILD_TSTDIR)/src/gvTbl_modis.c >> $(CGEN_CFG_MODEM)
+endif
+ @$(ECHO) -n $(BUILD_TSTDIR)/src/gvTbl_modis.c >>$(CODE_GEN_LST)
+endif
+ifneq ($(strip $(C2K_RELEASE)),TRUE)
+ @$(STRCMPEX) abc abc e $(basename $@).d $@: $(GV_FILES)
+else
+ @$(STRCMPEX) abc abc e $(basename $@).d $@: $(GV_FILES_C2K)
+endif
+ @perl ./tools/pack_dep_gen.pl $@ $@ $(patsubst %/,%,$(dir $@)) "$(basename $(notdir $@))\.d"
+ @$(IF_EXIST) $(basename $@).d $(THEN) $(DEL_FILE) $(basename $@).d $(CMD_END)
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+#endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_gv_sec.det: FORCE
+# *************************************************************************
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_gv_sec.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_gv_sec.det: $(MODIS_RULESDIR)/codegen_dep/gv_db_sec.det $(GV_FILES_SEC) $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(ECHO) -n "Generate sec Global variable Information ..."
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n "$(CGEN) -gv $(CODEGEN_DATABASE_OUT_SEC) $(CODEGEN_DATABASE_IN_SEC) $(MODISBUILD_TST_DB_SEC)/gv/gv_db/ $(BUILD_TSTDIR)/src/gvTbl.c" >> $(CGEN_CFG_MODEM_SEC)
+ @$(ECHO) -n "$(BUILD_TSTDIR)/src/gvTbl.c" >>$(CODE_GEN_LST)
+else
+ @$(ECHO) -n $(CGEN) -gv $(CODEGEN_DATABASE_OUT_SEC) $(CODEGEN_DATABASE_IN_SEC) $(MODISBUILD_TST_DB_SEC)/gv/gv_db/ $(BUILD_TSTDIR)/src/gvTbl_modis.c >> $(CGEN_CFG_MODEM_SEC)
+ @$(ECHO) -n $(BUILD_TSTDIR)/src/gvTbl_modis.c >>$(CODE_GEN_LST)
+endif
+ @$(STRCMPEX) abc abc e $(basename $@).d $@: $(GV_FILES_SEC)
+ @perl ./tools/pack_dep_gen.pl $@ $@ $(patsubst %/,%,$(dir $@)) "$(basename $(notdir $@))\.d"
+ @$(IF_EXIST) $(basename $@).d $(THEN) $(DEL_FILE) $(basename $@).d $(CMD_END)
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_l1v.det: FORCE
+# Step 6: Result - Layer 1 validation information (L1S)
+# *************************************************************************
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_l1v.det: FORCE
+ endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_l1v.det: $(MODIS_RULESDIR)/codegen_dep/l1v_db.det
+$(MODIS_RULESDIR)/codegen_dep/cgen_l1v.det: $(filter-out %/l1validation_db/l1v_db/l1v_db.l1v,$(shell $(RECURSIVE_DIR) $(strip $(TST_DB))/l1validation_db/ "\.l1v")) $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+
+ @$(ECHO) -n "Generate common L1 Validation Information ..."
+ @$(ECHO) -n "$(CGEN) -L1V $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/l1validation_db/l1v_db/" >> $(CGEN_CFG_MODEM)
+
+ @$(IF_EXIST) $(basename $@).d $(THEN) $(DEL_FILE) $(basename $@).d $(CMD_END)
+# too much *.l1v files, command length will be over 32KB
+ @$(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(RECURSIVE_DIR) $(strip $(TST_DB))/l1validation_db "\.l1v"` $(DO) (echo $@: $(PRE_VAR)i >> $(basename $@).d) $(DONE)
+ @perl ./tools/pack_dep_gen.pl $@ $@ $(patsubst %/,%,$(dir $@)) "$(basename $(notdir $@))\.d"
+ @$(IF_EXIST) $(basename $@).d $(THEN) $(DEL_FILE) $(basename $@).d $(CMD_END)
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+endif
+endif
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_l1v_sec.det
+# *************************************************************************
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_l1v_sec.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_l1v_sec.det: $(MODIS_RULESDIR)/codegen_dep/l1v_db_sec.det $(CGEN) $(NEED_CHECK_DEPEND_LIST)
+ifeq ($(MPD_SOURCE_FULL_BUILD),TRUE)
+$(MODIS_RULESDIR)/codegen_dep/cgen_l1v_sec.det: $(filter-out %/l1validation_db/l1v_db/l1v_db.l1v,$(shell $(RECURSIVE_DIR) $(strip $(TST_DB_SEC))/l1validation_db/ "\.l1v"))
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+
+ @$(ECHO) -n "Generate sec L1 Validation Information ..."
+ @$(ECHO) -n "$(CGEN) -L1V $(CODEGEN_DATABASE_OUT_SEC) $(CODEGEN_DATABASE_IN_SEC) $(MODISBUILD_TST_DB_SEC)/l1validation_db/l1v_db/" >> $(CGEN_CFG_MODEM_SEC)
+
+ @$(IF_EXIST) $(basename $@).d $(THEN) $(DEL_FILE) $(basename $@).d $(CMD_END)
+# too much *.l1v files, command length will be over 32KB
+ @$(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(RECURSIVE_DIR) $(strip $(TST_DB_SEC))/l1validation_db "\.l1v"` $(DO) (echo $@: $(PRE_VAR)i >> $(basename $@).d) $(DONE)
+ @perl ./tools/pack_dep_gen.pl $@ $@ $(patsubst %/,%,$(dir $@)) "$(basename $(notdir $@))\.d"
+ @$(IF_EXIST) $(basename $@).d $(THEN) $(DEL_FILE) $(basename $@).d $(CMD_END)
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_un.det: FORCE
+# Step 7: Result - Union Information (GSM/GPRS)
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_un.det: FORCE
+endif
+ifneq ($(strip $(C2K_RELEASE)),TRUE)
+$(MODIS_RULESDIR)/codegen_dep/cgen_un.det: $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_tdd_fdd.det
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_un.det: $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_tdd_fdd_ext.det $(NEED_CHECK_DEPEND_LIST)
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ @$(ECHO) -n "Generate common Union Information ..."
+ ifneq ($(strip $(C2K_RELEASE)),TRUE)
+ @$(ECHO) -n "$(CGEN) -un $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/unionTag/unionTag_parse.txt" >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n "$(CGEN) -un $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/unionTag/unionTag_parse_fdd.txt" >>$(CGEN_CFG_MODEM)
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(ECHO) -n "$(CGEN) -un $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/unionTag/unionTag_parse_tdd.txt" >>$(CGEN_CFG_MODEM)
+ endif
+ endif
+ @$(ECHO) -n "$(CGEN) -un $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/unionTag/ext/unionTag_parse.txt" >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n "$(CGEN) -un $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/unionTag/ext/unionTag_parse_fdd.txt" >>$(CGEN_CFG_MODEM)
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(ECHO) -n "$(CGEN) -un $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/unionTag/ext/unionTag_parse_tdd.txt" >>$(CGEN_CFG_MODEM)
+ endif
+ @$(ECHO) -n "$@:" >>$@
+ @$(ECHO) -n "$@" >>$(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_un_sec.det:
+# *************************************************************************
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ifeq ($(RUN_UMTS_GEN),TRUE)
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_un_sec.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_un_sec.det: $(MODIS_RULESDIR)/codegen_dep/unionTag_parse_sec.det $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+
+ @$(ECHO) -n "Generate sec Union Information ..."
+ @$(ECHO) -n "$(CGEN) -un $(CODEGEN_DATABASE_OUT_SEC) $(CODEGEN_DATABASE_IN_SEC) $(MODISBUILD_TST_DB_SEC)/unionTag/unionTag_parse_sec.txt" >> $(CGEN_CFG_MODEM_SEC)
+ @$(ECHO) -n "$@:" >> $@
+ @$(ECHO) -n "$@" >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_cm.det: FORCE
+# Step 8: Result - Merge customization code
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_cm.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_cm.det: $(MODIS_RULESDIR)/codegen_dep/custom_parse_db_tdd_fdd.det $(MODIS_RULESDIR)/codegen_dep/custom_parse_db.det $(VERNOFILE) $(CGEN) $(NEED_CHECK_DEPEND_LIST) $(strip $(PROJECT_MAKEFILE))
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(CODEGEN_DEPENDENCY_MODEM) $(DO) \
+ ($(IF_EXIST) $(PRE_VAR)i $(THEN) $(DEL_FILE) $(PRE_VAR)i $(CMD_END)) \
+ $(DONE)
+ @$(IF_NOT_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) $(ECHO) -n "$@" > $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(CMD_END)
+endif
+ @$(ECHO) -n $(CGEN) -cm6 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db.db $(MODISBUILD_TST_DB)/enumFileCustom >>$(CGEN_CFG_MODEM)
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(ECHO) -n $(CGEN) -cm5 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_fdd.db $(MODISBUILD_TST_DB)/enumFileCustom >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n $(CGEN) -cm $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_tdd.db $(MODISBUILD_TST_DB)/enumFileCustom $(strip $(PLATFORM))_$(strip $(CHIP_VER)) $(strip $(VERNO)) -sf-$(MODISBUILD_TST_DB)/sf.ini -prjName-"$(strip $(FULL_PRJ_NAME))" -VERNO_HAL-$(strip $(VERNO_HAL)) >>$(CGEN_CFG_MODEM)
+ else
+ @$(ECHO) -n $(CGEN) -cm $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_fdd.db $(MODISBUILD_TST_DB)/enumFileCustom $(strip $(PLATFORM))_$(strip $(CHIP_VER)) $(strip $(VERNO)) -sf-$(MODISBUILD_TST_DB)/sf.ini -prjName-"$(strip $(FULL_PRJ_NAME))" -VERNO_HAL-$(strip $(VERNO_HAL)) >>$(CGEN_CFG_MODEM)
+ endif
+ else
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(ECHO) -n $(CGEN) -cm5 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_fdd.db $(MODISBUILD_TST_DB)/enumFileCustom >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n $(CGEN) -cm $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_tdd.db $(MODISBUILD_TST_DB)/enumFileCustom MoDIS $(strip $(VERNO)) >>$(CGEN_CFG_MODEM)
+ else
+ @$(ECHO) -n $(CGEN) -cm6 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db.db $(MODISBUILD_TST_DB)/enumFileCustom >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n $(CGEN) -cm $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_fdd.db $(MODISBUILD_TST_DB)/enumFileCustom MoDIS $(strip $(VERNO)) >>$(CGEN_CFG_MODEM)
+ endif
+ endif
+ @$(ECHO) -n $(MODISBUILD_TST_DB)/enumFileCustom >>$(CODE_GEN_LST)
+else
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(ECHO) -n $(CGEN) -cm5 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_fdd.db $(MODISBUILD_TST_DB)/enumFileCustomAppSrc >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n $(CGEN) -cm $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_tdd.db $(MODISBUILD_TST_DB)/enumFileCustomAppSrc $(strip $(PLATFORM))_$(strip $(CHIP_VER)) $(strip $(VERNO)) -sf-$(MODISBUILD_TST_DB)/sf.ini -prjName-"$(strip $(FULL_PRJ_NAME))" -VERNO_HAL-$(strip $(VERNO_HAL)) >>$(CGEN_CFG_MODEM)
+ else
+ @$(ECHO) -n $(CGEN) -cm $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_fdd.db $(MODISBUILD_TST_DB)/enumFileCustomAppSrc $(strip $(PLATFORM))_$(strip $(CHIP_VER)) $(strip $(VERNO)) -sf-$(MODISBUILD_TST_DB)/sf.ini -prjName-"$(strip $(FULL_PRJ_NAME))" -VERNO_HAL-$(strip $(VERNO_HAL)) >>$(CGEN_CFG_MODEM)
+ endif
+ else
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(ECHO) -n $(CGEN) -cm5 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_fdd.db $(MODISBUILD_TST_DB)/enumFileCustomAppSrc >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n $(CGEN) -cm $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_tdd.db $(MODISBUILD_TST_DB)/enumFileCustomAppSrc MoDIS $(strip $(VERNO)) $(MMIDIR) >>$(CGEN_CFG_MODEM)
+ else
+ @$(ECHO) -n $(CGEN) -cm $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/custom_parse_db_fdd.db $(MODISBUILD_TST_DB)/enumFileCustomAppSrc MoDIS $(strip $(VERNO)) $(MMIDIR) >>$(CGEN_CFG_MODEM)
+ endif
+ endif
+ @$(ECHO) -n $(MODISBUILD_TST_DB)/enumFileCustomAppSrc >>$(CODE_GEN_LST)
+endif
+ @$(ECHO) -n $@: $(VERNOFILE) "$(PROJECT_MAKEFILE)" >> $@
+ @$(ECHO) -n $@ >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_ap_srcParseDbModem.det: FORCE
+# Step 8: Result - Merge customization code
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_ap_srcParseDbModem.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_ap_srcParseDbModem.det: $(MODIS_RULESDIR)/codegen_dep/srcParseDbModem_tdd_fdd.det $(MODIS_RULESDIR)/codegen_dep/srcParseDbModem.det $(VERNOFILE) $(CGEN) $(NEED_CHECK_DEPEND_LIST) $(strip $(PROJECT_MAKEFILE))
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det $(CMD_END)
+
+ @$(ECHO) -n $(CGEN) -ap9 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/srcParseDbModem.db $(MODISBUILD_TST_DB)/enumFileCustomApp >>$(CGEN_CFG_MODEM)
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(ECHO) -n $(CGEN) -ap7 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/srcParseDbModem_fdd.db $(MODISBUILD_TST_DB)/enumFileCustomApp >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n $(CGEN) -ap $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/srcParseDbModem_tdd.db $(MODISBUILD_TST_DB)/enumFileCustomApp $(strip $(PLATFORM))_$(strip $(CHIP_VER)) $(strip $(VERNO)) >>$(CGEN_CFG_MODEM)
+ else
+ @$(ECHO) -n $(CGEN) -ap $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/srcParseDbModem_fdd.db $(MODISBUILD_TST_DB)/enumFileCustomApp $(strip $(PLATFORM))_$(strip $(CHIP_VER)) $(strip $(VERNO)) >>$(CGEN_CFG_MODEM)
+ endif
+ @$(ECHO) -n $(MODISBUILD_TST_DB)/enumFileCustomApp >>$(CODE_GEN_LST)
+ endif
+else
+ ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ @$(ECHO) -n $(CGEN) -ap7 $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/srcParseDbModem_fdd.db $(MODISBUILD_TST_DB)/enumFileCustomApp >>$(CGEN_CFG_MODEM)
+ @$(ECHO) -n $(CGEN) -ap $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/srcParseDbModem_tdd.db $(MODISBUILD_TST_DB)/enumFileCustomApp MoDIS $(strip $(VERNO)) >>$(CGEN_CFG_MODEM)
+ else
+ @$(ECHO) -n $(CGEN) -ap $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_IN) $(MODISBUILD_TST_DB)/msglog_db/srcParseDbModem_fdd.db $(MODISBUILD_TST_DB)/enumFileCustomApp MoDIS $(strip $(VERNO)) >>$(CGEN_CFG_MODEM)
+ endif
+ @$(ECHO) -n $(MODISBUILD_TST_DB)/enumFileCustomApp >>$(CODE_GEN_LST)
+ endif
+endif
+ @$(ECHO) -n $@: $(VERNOFILE) "$(PROJECT_MAKEFILE)" >> $@
+ @$(ECHO) -n $@ >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det:
+# *************************************************************************
+LOG2SD_CATCHER_FILTERS_LIST := $(subst log2SD_Catcher_filters_,,$(notdir $(basename $(strip $(LOG2SD_CATCHER_FILTERS_FILE_LIST)))))
+DBF_INI_LIST := $(notdir $(wildcard $(DBFINI_DIR)/DSP_*))
+CUS_OPT_INI := interface/service/logging_database/XDD/customer_option.ini
+ifeq ($(strip $(RELEASE_PACKAGE)),REL_INTERNAL)
+BUILTINFILTERINI := interface/service/logging_database/XDD/Customization/BuiltinFilterSetting.ini
+else
+BUILTINFILTERINI := interface/service/logging_database/XDD/Customization/BuiltinFilterSettingExternal.ini
+endif
+
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det: FORCE
+endif
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det:
+else
+ ifneq ($(wildcard $(BUILD_TST_DB)/log2SD_Catcher_filters.ini),)
+ # exist tst/database/log2SD_Catcher_filters.ini
+ else
+ $(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det:
+ endif
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det: $(LOGGING_DATABASE)/XDD/mini_log_Catcher_filters.ini
+ifneq ($(strip $(UPDATE_DSP)),TRUE)
+$(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det: $(filter-out \
+ $(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det \
+ $(MODIS_RULESDIR)/codegen_dep/cgen_gv.det \
+ $(MODIS_RULESDIR)/codegen_dep/cgen_l1v.det \
+ $(MODIS_RULESDIR)/codegen_dep/cgen_un.det \
+ ,$(CODEGEN_DEPENDENCY_MODEM))
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_filter_gen_Modem.det: $(NEED_CHECK_DEPEND_LIST) $(VERNOFILE) $(POSTGEN) $(NEED_CHECK_DEPEND_LIST) $(strip $(PROJECT_MAKEFILE))
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(ECHO) -n $@: >>$@
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/src $(THEN) $(MKDIR) $(BUILD_TSTDIR)/src $(CMD_END)
+ @$(IF_EXIST) $(strip $(POSTGEN_CFG_MODEM)) $(THEN) $(DEL_FILE) $(strip $(POSTGEN_CFG_MODEM)) $(CMD_END)
+
+ @$(ECHO) -n $(POSTGEN) -log_sec_key_gen $(CODEGEN_DATABASE_OUT) $(CODEGEN_MDKEY) $(BUILD_TSTDIR)/src/traceKey.c $(strip $(CUS_OPT_INI)) > $(POSTGEN_CFG_MODEM)
+ @$(ECHO) -n $(POSTGEN) -filter_sig $(CODEGEN_DATABASE_OUT) $(BUILD_TSTDIR)/src/filterSig.c >> $(POSTGEN_CFG_MODEM)
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(strip $(CLOSE_MDM_LAYOUT)),TRUE)
+ @$(ECHO) -n $(POSTGEN) -em_filter_gen $(CODEGEN_DATABASE_OUT) $(strip $(LOGGING_DATABASE))/MSG_LIST $(MODISBUILD_TST_DB)/em_filter.bin >> $(POSTGEN_CFG_MODEM)
+ @$(ECHO) -n $(POSTGEN) -all_em_info $(CODEGEN_DATABASE_OUT) $(CODEGEN_DATABASE_OUT) $(strip $(LOGGING_DATABASE))/MSG_LIST >> $(POSTGEN_CFG_MODEM)
+ @$(ECHO) -n $(POSTGEN) -extract_all_em_info $(CODEGEN_DATABASE_OUT) $(MODISBUILD_TST_DB)/mdm_layout_desc.dat >> $(POSTGEN_CFG_MODEM)
+ endif
+ ifneq ($(strip $(NO_DSP)),TRUE)
+ ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ @$(IF_NOT_EXIST) $(strip $(MODISBUILD_TST_DB))/dbf $(THEN) $(MKDIR) $(strip $(MODISBUILD_TST_DB))/dbf $(CMD_END)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(DBF_INI_LIST) $(DO) \
+ ($(IF_EXIST) $(strip $(DBFINI_DIR))/$(PRE_VAR)i $(THEN) \
+ (mono ${UNIVERSAL_COMMON}/tools/dex_gen/$(strip $(MD_VER_FOLDER))/DSPXMLUtil.exe -iFltrXML $(DSPDIR)/$(strip $(DSP_PROJECT))/$(strip $(DSP_FLAVOR))/final_bin/xml/filterXML -iFilterIni $(strip $(DBFINI_DIR))/$(PRE_VAR)i -oDBFDir "$(strip $(MODISBUILD_TST_DB))/dbf") >> $(strip $(COMPLOGDIR))/gen_dbf.log \
+ $(CMD_END)) \
+ $(DONE)
+ endif
+ @$(ECHO) -n $(POSTGEN) -gen_built_in_filter_utf bin $(CODEGEN_DATABASE_OUT) $(strip $(BUILTINFILTERINI)) $(BUILD_TST_DB) $(strip $(DBF_INPUT_PATH)) >> $(POSTGEN_CFG_MODEM)
+ endif
+endif #end of L1S
+endif #MODIS_CONFIG
+
+ @$(ECHO) -n $(POSTGEN) -gen_built_in_filter_utf src $(CODEGEN_DATABASE_OUT) $(strip $(BUILTINFILTERINI)) $(BUILD_TSTDIR)/src/dhl_builtin_filters.c $(strip $(DBF_INPUT_PATH)) >> $(POSTGEN_CFG_MODEM)
+ifeq ($(strip $(ICD_SUPPORT)),TRUE)
+ @$(ECHO) -n $(POSTGEN) -gen_icd_built_in_filter $(CODEGEN_DATABASE_OUT) $(strip $(PROJDIR))/modem/icd_ac_gen/ICDJSONDef_cgen.json $(strip $(BUILTINFILTERINI)) $(strip $(LOGGING_DATABASE))/XDD/ICD $(BUILD_TSTDIR)/src/icd_builtin_filters.c >> $(POSTGEN_CFG_MODEM)
+endif
+
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ @$(ECHO) -n $(BUILD_TST_DB)/dsp_filter.bin >>$(CODE_GEN_LST)
+ @$(ECHO) -n $(BUILD_TST_DB)/merge_filter.bin >>$(CODE_GEN_LST)
+# generate meta database
+ @$(ECHO) -n "@PROJECT_NAME@MTK = ENUM_DB" > $(MODISBUILD_TST_DB)/nvram_db_cnf.ini
+ @$(ECHO) -n "@PROJECT_NAME@CM = ENUM_DB" >> $(MODISBUILD_TST_DB)/nvram_db_cnf.ini
+ @$(ECHO) -n "nvram_mcf_ota_lid = ENUM_DB" >> $(MODISBUILD_TST_DB)/nvram_db_cnf.ini
+ @$(ECHO) -n "nvram_mcf_ota_by_operator_lid = ENUM_DB" >> $(MODISBUILD_TST_DB)/nvram_db_cnf.ini
+ @$(ECHO) -n "mcf_tool_version_info = ENUM_DB" >> $(MODISBUILD_TST_DB)/nvram_db_cnf.ini
+ @$(ECHO) -n "GPRF=SPECIFY_DB" >> $(MODISBUILD_TST_DB)/nvram_db_cnf.ini
+
+ @perl ./tools/NVRAMStatistic/gen_secure_nvram_lid_structure_to_db.pl ./interface/service/nvram/nvram_lid_structure_check_extend_list.h $(MODISBUILD_TST_DB)/nvram_db_cnf.ini
+ @$(ECHO) -n "$(POSTGEN) -meta_db_gen $(MODISBUILD_TST_DB)/$(MDDBMETA_V12) $(CODEGEN_DATABASE_OUT) $(MODISBUILD_TST_DB)/nvram_db_cnf.ini -saveXmlFile-$(MODISBUILD_TST_DB)/$(MDDBMETADATABASEXML)" >>$(POSTGEN_CFG_MODEM)
+ @$(ECHO) -n "$(POSTGEN) -compress_gen $(MODISBUILD_TST_DB)/$(MDDBMETADATABASEXML).GZ $(MODISBUILD_TST_DB)/$(MDDBMETADATABASEXML)" >>$(POSTGEN_CFG_MODEM)
+ @$(ECHO) -n $@: $(LOGGING_DATABASE)/XDD/mini_log_Catcher_filters.ini >> $@
+ @$(ECHO) -n $@ >>$(CODE_GEN_LST)
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_cfg_Modem.det
+# *************************************************************************
+IS_LIB_RELEASE := REL_SUB_SW,SRC
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_cfg_Modem.det: FORCE
+endif
+ifneq ($(strip $(UPDATE_DSP)),TRUE)
+$(MODIS_RULESDIR)/codegen_dep/cgen_cfg_Modem.det: $(CODEGEN_DEPENDENCY_MODEM)
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_cfg_Modem.det: $(CGEN)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(words $(strip $(MDDBINFOCUSTOM))),1)
+ @$(ECHO) -n [ERROR] Cannot determine the original codegen database: $(strip $(MDDBINFOCUSTOM)) >> $(CODE_GEN_LOG)
+ @$(ECHO) -n [ERROR] Cannot determine the original codegen database: $(strip $(MDDBINFOCUSTOM))
+ @exit 2
+ endif
+ endif
+else
+ ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ ifeq ($(MPD_SOURCE_FULL_BUILD),FALSE)
+ ifneq ($(strip $(NO_LTECGEN)),TRUE)
+ ifeq ($(strip $(CODEGEN_DATABASE_IN_SEC)),)
+ @$(ECHO) -n "Error: There is no existing any LTE database in the path: $(CUS_MTK_REL)/dhl/lte_sec/database" >> $(CODE_GEN_LOG)
+ @$(ECHO) -n "Error: $@ Failed. Please check $(CODE_GEN_LOG)" $(WITH) exit 1
+ else ifneq ($(words $(strip $(CODEGEN_DATABASE_IN_SEC))),1)
+ @$(ECHO) -n "Error: There is existing multiple LTE databases: $(strip $(CODEGEN_DATABASE_IN_SEC))" >> $(CODE_GEN_LOG)
+ @$(ECHO) -n "Error: Please remove redundant LTE database in the path: $(CUS_MTK_REL)/dhl/lte_sec/datababase" >> $(CODE_GEN_LOG)
+ @$(ECHO) -n "Error: $@ Failed. Please check $(CODE_GEN_LOG)" $(WITH) exit 1
+ endif
+ endif
+ endif
+ endif
+endif
+ @$(IF_NOT_EXIST) $(strip $(CGEN_CFG_MODEM)) $(THEN) (echo Error: $(CGEN_CFG_MODEM) does not exist!) $(AND) (exit 1) $(CMD_END)
+ ifneq ($(strip $(UPDATE_DSP)),TRUE)
+ ifeq ($(MPD_SOURCE_FULL_BUILD),TRUE)
+ @$(IF_EXIST) $(strip $(CGEN_CFG_MODEM_SEC)) $(THEN) \
+ echo Cgen $(strip $(GEN_DB_OPTION)) -cfg $(CGEN_CFG_MODEM_SEC) $(AND) \
+ ($(CGEN) $(strip $(GEN_DB_OPTION)) -cfg $(CGEN_CFG_MODEM_SEC) 2>>$(CODE_GEN_LOG)) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Cgen failed. Please check $(CODE_GEN_LOG) $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+ #save enum to db
+ @$(ECHO) -n "$(strip $(MTK_MODEM_ARCH))=0" > $(MODISBUILD_TST_DB_SEC)/mtk_modem_arch_sec.ini
+ @$(ECHO) -n "AUTO_GEN@GLOBAL_DEBUG_LEVEL=$(strip $(GLOBAL_TRACE_DEBUG_LEVEL))" > $(MODISBUILD_TST_DB_SEC)/feature_option_enum_sec.ini
+ @$(ECHO) -n "$(strip $(DSP_PROJECT))=0" > $(MODISBUILD_TST_DB_SEC)/dsp_project_flavor_sec.ini
+ @$(ECHO) -n "$(strip $(DSP_FLAVOR))=1" >> $(MODISBUILD_TST_DB_SEC)/dsp_project_flavor_sec.ini
+
+ @$(ECHO) -n "catcher_filter_bin=0" > $(MODISBUILD_TST_DB_SEC)/modem_filter_list.ini
+ ifneq ($(LOG2SD_CATCHER_FILTERS_LIST),)
+ @perl ./tools/gen_md_filter_list.pl $(strip $(PROJDIR)) $(MODISBUILD_TST_DB_SEC)/modem_filter_list.ini
+ endif
+
+ @$(ECHO) -n "<@MK_MTK_MODEM_ARCH>$(MODISBUILD_TST_DB_SEC)/mtk_modem_arch_sec.ini" > $(MODISBUILD_TST_DB_SEC)/file2enum_sec.ini
+ @$(ECHO) -n "<@FEATURE_OPTION_ENUM>$(MODISBUILD_TST_DB_SEC)/feature_option_enum_sec.ini" >> $(MODISBUILD_TST_DB_SEC)/file2enum_sec.ini
+ @$(ECHO) -n "<@MK_DSP_PROJECT_FLAVOR>$(MODISBUILD_TST_DB_SEC)/dsp_project_flavor_sec.ini" >> $(MODISBUILD_TST_DB_SEC)/file2enum_sec.ini
+ @$(ECHO) -n "<@ModemDefaultFilterList>$(MODISBUILD_TST_DB_SEC)/modem_filter_list.ini" >> $(MODISBUILD_TST_DB_SEC)/file2enum_sec.ini
+
+ @$(IF_EXIST) $(strip $(CODEGEN_DATABASE_OUT_SEC)) $(THEN)\
+ echo $(POSTGEN) $(strip $(GEN_DB_OPTION)) -save_enum $(CODEGEN_DATABASE_OUT_SEC) $(MODISBUILD_TST_DB_SEC)/file2enum_sec.ini $(AND) \
+ ($(POSTGEN) $(strip $(GEN_DB_OPTION)) -save_enum $(CODEGEN_DATABASE_OUT_SEC) $(MODISBUILD_TST_DB_SEC)/file2enum_sec.ini 2>>$(CODE_GEN_LOG)) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: PostGen failed. Please check $(CODE_GEN_LOG) $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+ endif
+ ifeq ($(MPD_SOURCE_4G_BUILD),TRUE)
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) \
+ ($(IF_EXIST) $(strip $(CGEN_CFG_MODEM_4G)) $(THEN) \
+ $(ECHO) $(CGEN) $(strip $(GEN_DB_OPTION)) -cfg $(CGEN_CFG_MODEM_4G) $(AND) \
+ ($(CGEN) $(strip $(GEN_DB_OPTION)) -cfg $(CGEN_CFG_MODEM_4G) 2>>$(CODE_GEN_LOG)) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Cgen failed. Please check $(CODE_GEN_LOG) $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)) \
+ $(ELSE) \
+ ($(IF_EXIST) $(strip $(CGEN_CFG_MODEM_4G)) $(THEN) \
+ ($(CAT) $(strip $(CGEN_CFG_MODEM_4G)) > $(strip $(CGEN_CFG_MODEM))_tmp) $(AND)\
+ ($(CAT) $(strip $(CGEN_CFG_MODEM)) >> $(strip $(CGEN_CFG_MODEM))_tmp) $(AND)\
+ ($(CAT) $(strip $(CGEN_CFG_MODEM)_tmp) > $(strip $(CGEN_CFG_MODEM))) \
+ $(CMD_END)) \
+ $(CMD_END)
+ endif
+ @$(ECHO) -n $(CGEN) $(strip $(GEN_DB_OPTION)) -cfg $(CGEN_CFG_MODEM)
+ @($(CGEN) $(strip $(GEN_DB_OPTION)) -cfg $(CGEN_CFG_MODEM) 2>>$(CODE_GEN_LOG)) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Cgen failed. Please check $(CODE_GEN_LOG) $(WITH) exit 1) $(CMD_END))
+ endif #UPDATE_DSP
+ @$(IF_EXIST) $(strip $(POSTGEN_CFG_MODEM)) $(THEN) \
+ $(ECHO) $(POSTGEN) $(strip $(GEN_DB_OPTION)) -cfg $(POSTGEN_CFG_MODEM) $(AND) \
+ ($(POSTGEN) $(strip $(GEN_DB_OPTION)) -cfg $(POSTGEN_CFG_MODEM) 2>>$(CODE_GEN_LOG)) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ $(DEL_FILE) "$(MODISBUILD_TST_DB)/*MDDB*" $(AND) \
+ (echo Error: Postgen failed. Please check $(CODE_GEN_LOG) $(WITH) exit 1) \
+ $(CMD_END)) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(BUILD_TST_DB)/catcher_filter_Default.bin $(THEN) \
+ $(MOVE) $(BUILD_TST_DB)/catcher_filter_Default.bin $(BUILD_TST_DB)/catcher_filter.bin >$(DEV_NUL) \
+ $(CMD_END)
+
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ @$(DB_CONVERTER) V12ToV11 $(MODISBUILD_TST_DB)/$(MDDBMETA_V12) $(MODISBUILD_TST_DB)/$(MDDBMETA) 2>>$(CODE_GEN_LOG) $(WITH)\
+ $(IF_ERR_TRUE) $(THEN) (echo Error: DBv12_Converter error. Please check $(CODE_GEN_LOG) $(WITH) exit 1) $(CMD_END)
+endif
+
+ ifeq ($(strip $(MCF_SUPPORT)),TRUE)
+ ifneq ($(strip $(UPDATE_DSP)),TRUE)
+ @$(MAKE) -fmake/common/build.mak -r -R --no-print-directory mcf_gen
+ endif
+ endif
+
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/$(MDDBMETADATABASEXML).GZ $(THEN) \
+ $(IF_EXIST) $(MODISBUILD_TST_DB)/$(MDDBMETADATABASEXML) $(THEN) \
+ $(DEL_FILE) "$(MODISBUILD_TST_DB)/$(MDDBMETADATABASEXML)" \
+ $(CMD_END) \
+ $(CMD_END)
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+#restore xxx_trc_gen.h
+ @($(LIST_DIR) "$(MODISBUILD_TST_DB)/pstrace_db_bak/*.h" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN)\
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(LIST_DIR) -n -b "$(MODISBUILD_TST_DB)/pstrace_db_bak/*.h"` $(DO)\
+ (($(COMPARE) $(MODISBUILD_TST_DB)/pstrace_db/$(PRE_VAR)i $(MODISBUILD_TST_DB)/pstrace_db_bak/$(PRE_VAR)i >$(DEV_NUL) 2>&1) $(WITH) \
+ ($(IF_ERR_FALSE) $(THEN)(touch -r $(MODISBUILD_TST_DB)/pstrace_db_bak/$(PRE_VAR)i $(MODISBUILD_TST_DB)/pstrace_db/$(PRE_VAR)i >$(DEV_NUL)) \
+ $(ELSE) (echo $(PRE_VAR)i is updated) $(CMD_END) ))\
+ $(DONE))\
+ $(CMD_END))
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/pstrace_db_bak $(THEN) $(DEL_DIR) $(MODISBUILD_TST_DB)/pstrace_db_bak $(CMD_END)
+ @($(LIST_DIR) "$(BUILD_TSTDIR)/include_bak/*.h" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(LIST_DIR) -n -b "$(BUILD_TSTDIR)/include_bak/*.h"` $(DO)\
+ (($(COMPARE) $(BUILD_TSTDIR)/include/$(PRE_VAR)i $(BUILD_TSTDIR)/include_bak/$(PRE_VAR)i >$(DEV_NUL) 2>&1) $(WITH)\
+ ($(IF_ERR_FALSE) $(THEN) (touch -r $(BUILD_TSTDIR)/include_bak/$(PRE_VAR)i $(BUILD_TSTDIR)/include/$(PRE_VAR)i >$(DEV_NUL))\
+ $(ELSE) (echo $(PRE_VAR)i is updated) $(CMD_END))) \
+ $(DONE))\
+ $(CMD_END))
+ @$(IF_EXIST) $(BUILD_TSTDIR)/include_bak $(THEN) $(DEL_DIR) $(BUILD_TSTDIR)/include_bak $(CMD_END)
+
+ @($(LIST_DIR) "$(BUILD_TSTDIR)/src_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(LIST_DIR) -n -b "$(BUILD_TSTDIR)/src_bak/*.*"` $(DO)\
+ (($(COMPARE) $(BUILD_TSTDIR)/src/$(PRE_VAR)i $(BUILD_TSTDIR)/src_bak/$(PRE_VAR)i >$(DEV_NUL) 2>&1) $(WITH)\
+ ($(IF_ERR_FALSE) $(THEN) (touch -r $(BUILD_TSTDIR)/src_bak/$(PRE_VAR)i $(BUILD_TSTDIR)/src/$(PRE_VAR)i >$(DEV_NUL))\
+ $(ELSE) (echo $(PRE_VAR)i is updated) $(CMD_END))) \
+ $(DONE))\
+ $(CMD_END))
+ @$(IF_EXIST) $(BUILD_TSTDIR)/src_bak $(THEN) $(DEL_DIR) $(BUILD_TSTDIR)/src_bak $(CMD_END)
+
+ @($(LIST_DIR) "$(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/*.*" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(LIST_DIR) -n -b "$(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/*.*"` $(DO)\
+ (($(COMPARE) $(strip $(PROJ_INTERNAL_DIR))/l1trace/$(PRE_VAR)i $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/$(PRE_VAR)i >$(DEV_NUL) 2>&1) $(WITH)\
+ ($(IF_ERR_FALSE) $(THEN) (touch -r $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak/$(PRE_VAR)i $(strip $(PROJ_INTERNAL_DIR))/l1trace/$(PRE_VAR)i >$(DEV_NUL))\
+ $(ELSE) (echo $(PRE_VAR)i is updated) $(CMD_END))) \
+ $(DONE))\
+ $(CMD_END))
+ @$(IF_EXIST) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak $(THEN) $(DEL_DIR) $(strip $(PROJ_INTERNAL_DIR))/l1trace_bak $(CMD_END)
+endif #OS_VERSION
+
+ @$(ECHO) -n $@: $(CGEN) $(POSTGEN) >> $@
+ifeq ($(MPD_SOURCE_FULL_BUILD),TRUE)
+ @$(ECHO) -n $@: $(MODISBUILD_TST_DB_SEC)/mtk_modem_arch_sec.ini >> $@
+ @$(ECHO) -n $@: $(MODISBUILD_TST_DB_SEC)/feature_option_enum_sec.ini >> $@
+ @$(ECHO) -n $@: $(MODISBUILD_TST_DB_SEC)/dsp_project_flavor_sec.ini >> $@
+ @$(ECHO) -n $@: $(MODISBUILD_TST_DB_SEC)/file2enum_sec.ini >> $@
+endif
+ @$(IF_EXIST) $(MODIS_RULESDIR)/codegen_dep/codegen.det $(THEN) $(DEL_FILE) $(MODIS_RULESDIR)/codegen_dep/codegen.det $(CMD_END)
+ @perl ./tools/pack_dep_gen.pl $(dir $@)codegen.det $(dir $@)cgen_preflow.det $(patsubst %/,%,$(dir $@)) "\.det"
+ @$(ECHO) -n $(dir $@)cgen_preflow.det: >>$(dir $@)cgen_preflow.det
+ @$(ECHO) -n $@ >>$(CODE_GEN_LST)
+ @$(ECHO) -n $(dir $@)codegen.det >> $(CODE_GEN_LST)
+ @$(ECHO) -n $(CGEN_CFG_MODEM) >> $(CODE_GEN_LST)
+ @$(ECHO) -n $(CGEN_CFG_MODEM_SEC) >> $(CODE_GEN_LST)
+ @$(ECHO) -n $(CODEGEN_DATABASE_OUT) >> $(CODE_GEN_LST)
+ @$(ECHO) -n $(CODEGEN_DATABASE_OUT_SEC) >> $(CODE_GEN_LST)
+ @$(ECHO) -n $(dir $@)cgen_preflow.det: $(foreach comp, $(strip $(COMPLIST)), $(strip $(MODULEINFODIR))/$(comp)/$(comp).def) >> $(dir $@)codegen.det
+
+ @perl ./tools/pack_dep_gen.pl $(MODIS_RULESDIR)/codegen.dep custom_parse_db.obj $(patsubst %/,%,$(dir $@)) "\bcustom_parse_db\.det"
+ @perl ./tools/pack_dep_gen.pl $(MODIS_RULESDIR)/srcParseDbModem.d srcParseDbModem.obj $(patsubst %/,%,$(dir $@)) "\bsrcParseDbModem\.det"
+ @$(IF_EXIST) $(MODIS_RULESDIR)/srcParseDbModem.d $(THEN) (($(CAT) $(MODIS_RULESDIR)/srcParseDbModem.d >>$(MODIS_RULESDIR)/codegen.dep) $(AND) ($(DEL_FILE) $(MODIS_RULESDIR)/srcParseDbModem.d)) $(CMD_END)
+
+ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ifneq ($(PCIBT_ACTION_LIST),)
+ $(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) "service/dhl/database/msglog_db/custom_parse_db_tdd_fdd.c" $(dir $@)custom_parse_db_tdd_fdd.det $(filter-out $(IS_LIB_RELEASE), $(PCIBT_ACTION_LIST)) 2>>$(strip $(CODE_GEN_LOG))
+ $(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) "service/dhl/database/msglog_db/custom_parse_db.c" $(dir $@)custom_parse_db.det $(filter-out $(IS_LIB_RELEASE), $(PCIBT_ACTION_LIST)) 2>>$(strip $(CODE_GEN_LOG))
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(MPD_SOURCE_4G_BUILD)),TRUE)
+ $(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) "service/dhl/database/msglog_db/libParseDbModem.c" $(dir $@)libParseDbModem.det REL_SUB_MPD_COMMON,SRC 2>>$(strip $(CODE_GEN_LOG))
+ $(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) "service/dhl/database/msglog_db/libParseDbModem_tdd_fdd.c" $(dir $@)libParseDbModem_tdd_fdd.det REL_SUB_MPD_COMMON,SRC 2>>$(strip $(CODE_GEN_LOG))
+ endif
+ ifeq ($(strip $(MPD_SOURCE_FULL_BUILD)),TRUE)
+ $(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) "service/dhl/database/msglog_db/libParseDbModem_4g.c" $(dir $@)libParseDbModem_4g.det REL_SUB_MPD_4G,SRC 2>>$(strip $(CODE_GEN_LOG))
+ endif
+ endif
+endif
+endif
+
+ifeq ($(strip $(NVRAM_LID_CHECK)),TRUE)
+ @$(ECHO) -n ==== NVRAM LID CHECK START ====
+ @$(IF_EXIST) $(strip $(PROJDIR))/nvram_auto_gen/MDDB.META.ODB.XML $(THEN) $(DEL_FILE) $(strip $(PROJDIR))/nvram_auto_gen/MDDB.META.ODB.XML $(CMD_END)
+ @perl ./tools/NVRAMStatistic/nvram_lid_check.pl ./tools/NVRAMStatistic/lid/$(PROJECT_NAME)/$(FLAVOR) $(strip $(PROJDIR))/nvram_auto_gen $(strip $(COMPLOGDIR))/nvram_lid_check.log /s NVRAM_OTA_SMART_RESET=$(NVRAM_OTA_SMART_RESET) >$(strip $(COMPLOGDIR))/nvram_lid_check.log 2>&1\
+ $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: NVRAM LID CHECK failed.Please check $(strip $(COMPLOGDIR))/nvram_lid_check.log $(WITH) exit 1) $(CMD_END))
+ @$(ECHO) -n $(dir $@)cgen_preflow.det: tools/NVRAMStatistic/nvram_lid_check.pl >> $(dir $@)codegen.det
+ @$(ECHO) -n ==== NVRAM LID CHECK END ====
+endif
+
+ifeq ($(strip $(NV_CHKSUM_ENHANCE)),TRUE)
+ @$(ECHO) -n ==== NVRAM CHECKSUM ALGORITHM DOUBLE CHECK START ====
+ @$(IF_EXIST) $(strip $(PROJDIR))/nvram_auto_gen/MDDB.META.ODB.XML $(THEN) $(DEL_FILE) $(strip $(PROJDIR))/nvram_auto_gen/MDDB.META.ODB.XML $(CMD_END)
+ @python ./tools/NVRAMStatistic/nvram_checksum_algorithm_double_check.py ./tools/NVRAMStatistic/lid/$(PROJECT_NAME)/$(FLAVOR) $(strip $(PROJDIR))/nvram_auto_gen >> $(strip $(COMPLOGDIR))/nvram_gen_full_log.log 2>>$(strip $(COMPLOGDIR))/nvram_gen.log\
+ $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: NVRAM LID CHECKSum Double check failed.Please check $(strip $(COMPLOGDIR))/nvram_gen.log $(WITH) exit 1) $(CMD_END))
+ @$(ECHO) -n $(dir $@)cgen_preflow.det: tools/NVRAMStatistic/nvram_checksum_algorithm_double_check.py >> $(dir $@)codegen.det
+ @$(ECHO) -n ==== NVRAM CHECKSUM ALGORITHM DOUBLE CHECK END ====
+endif
+
+ifeq ($(strip $(NVRAM_OTA_SMART_RESET)),TRUE)
+ @$(ECHO) -n ==== NVRAM POST GEN START ====
+ @perl ./tools/NVRAMStatistic/nvram_post_gen.pl $(strip $(PROJDIR))/nvram_auto_gen $(strip $(COMPLOGDIR))/nvram_post_gen.log >$(strip $(COMPLOGDIR))/nvram_post_gen.log 2>&1 $(WITH)\
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: NVRAM post gen failed. Please check $(strip $(COMPLOGDIR))/nvram_post_gen.log $(WITH) exit 1) $(CMD_END))
+ @$(ECHO) -n $(dir $@)cgen_preflow.det: tools/NVRAMStatistic/nvram_post_gen.pl >> $(dir $@)codegen.det
+ @$(ECHO) -n ==== NVRAM POST GEN END ====
+endif
+
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h $(THEN) $(DEL_FILE) $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_1.h $(CMD_END)
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_2.h $(THEN) $(DEL_FILE) $(MODISBUILD_TST_DB)/pstrace_db/ps_trace_2.h $(CMD_END)
+
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) $(DEL_FILE) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(CMD_END)
+
+#gen nvram lid db database
+ifeq ($(strip $(NVRAM_LID_DESC_CHECK)),TRUE)
+ @(python ./tools/NVRAMStatistic/nvram_gen_excel/nvram_monitor.py $(strip $(PROJDIR)) >> $(strip $(TARGDIR))/build.log)
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: mcf_gen
+# Generate MCF Db
+# *************************************************************************
+MCF_XML_LIST := $(wildcard ./custom/service/mcf/ota_files/MTK_OTA.xml)
+ifeq ($(strip $(OS_VERSION)),MSWin32)
+ MCF_OTA_GEN = ".\tools\MCF\MCF_OTA_Gen\MCF_OTA_Gen.exe"
+else
+ MCF_OTA_GEN = ./tools/MCF/MCF_OTA_Gen/MCF_OTA_Gen
+endif
+ifeq ($(strip $(MCF_OTA_NAME)),DEFAULT)
+ ifneq ($(strip $(MCF_OTA_DEFAULT_NAME)),)
+ MCF_OTA_NAME = $(strip $(MCF_OTA_DEFAULT_NAME))
+ endif
+endif
+mcf_gen: $(POSTGEN_DEP)/mcf_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(POSTGEN_DEP)/./mcf_gen.det)
+else
+$(POSTGEN_DEP)/mcf_gen.det: FORCE
+endif
+$(POSTGEN_DEP)/mcf_gen.det:
+ifeq ($(strip $(MCF_SUPPORT)),TRUE)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(POSTGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(POSTGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_postcgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/modem/mcf $(THEN) $(MKDIR) $(strip $(PROJDIR))/modem/mcf $(CMD_END)
+ @$(IF_EXIST) $(strip $(PROJDIR))/modem/mcf/new_item_found.txt $(THEN) $(DEL_FILE) $(strip $(PROJDIR))/modem/mcf/new_item_found.txt $(CMD_END)
+ @$(ECHO) -n ==== MCF GEN START ====
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ @".\tools\MCF\mcf_parser_gen.exe" codegen $(MODISBUILD_TST_DB)/$(MDDBMETADATABASEXML) $(strip $(PROJDIR))/nvram_auto_gen/custom_nvram_lid_cat.xml ./custom/service/mcf/system_files/mcf_system.csv ./custom/service/mcf/system_files/branch.txt $(strip $(PROJDIR))/modem/mcf $(strip $(PROJDIR))/modem/mcf $(strip $(PROJDIR))/modem/mcf/MDDB.MCF.ODB.xml -n>>$(strip $(COMPLOGDIR))/mcf_parser_gen.log $(WITH)\
+ $(IF_ERR_TRUE) $(THEN) (echo Error: mcf_parser_gen error. Please check $(strip $(COMPLOGDIR))/mcf_parser_gen.log $(WITH) exit 1) $(CMD_END)
+ else
+ @./tools/MCF/mcf_parser_gen codegen $(MODISBUILD_TST_DB)/$(MDDBMETADATABASEXML) $(strip $(PROJDIR))/nvram_auto_gen/custom_nvram_lid_cat.xml ./custom/service/mcf/system_files/mcf_system.csv ./custom/service/mcf/system_files/branch.txt $(strip $(PROJDIR))/modem/mcf $(strip $(PROJDIR))/modem/mcf $(strip $(PROJDIR))/modem/mcf/MDDB.MCF.ODB.xml -n>>$(strip $(COMPLOGDIR))/mcf_parser_gen.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: mcf_gen mcf_parser_gen error. Please check $(strip $(COMPLOGDIR))/mcf_parser_gen.log | tee -a $(strip $(COMPLOGDIR))/mcf_parser_gen.log $(WITH) exit 1) $(CMD_END)
+ endif
+
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/modem/mcf/all_ota_files $(THEN) $(MKDIR) $(strip $(PROJDIR))/modem/mcf/all_ota_files $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/modem/mcf/flavor_ota_files $(THEN) $(MKDIR) $(strip $(PROJDIR))/modem/mcf/flavor_ota_files $(CMD_END)
+
+ @$(ECHO) -n Start to build all MCF OTA files > $(strip $(COMPLOGDIR))/mcf_ota_gen.log
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(MCF_XML_LIST) $(DO) \
+ $(ECHO) -n Build $(PRE_VAR)i >> $(strip $(COMPLOGDIR))/mcf_ota_gen.log $(WITH) \
+ $(MCF_OTA_GEN) -d $(strip $(PROJDIR))/modem/mcf/MDDB.MCF.ODB.xml -i $(PRE_VAR)i -o $(strip $(PROJDIR))/modem/mcf/all_ota_files >>$(strip $(COMPLOGDIR))/mcf_ota_gen.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: mcf_ota_gen error. Please check $(strip $(COMPLOGDIR))/mcf_ota_gen.log $(WITH) exit 1) $(CMD_END) \
+ $(DONE)
+ ifneq ($(strip $(MTK_OTA_LIST)),NONE)
+ @$(ECHO) -n Start to build flavor MCF OTA files >> $(strip $(COMPLOGDIR))/mcf_ota_gen.log
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(MTK_OTA_LIST) $(DO) \
+ $(ECHO) -n Build ./custom/service/mcf/ota_files/$(PRE_VAR)i >> $(strip $(COMPLOGDIR))/mcf_ota_gen.log $(WITH) \
+ $(MCF_OTA_GEN) -d $(strip $(PROJDIR))/modem/mcf/MDDB.MCF.ODB.xml -i ./custom/service/mcf/ota_files/$(PRE_VAR)i.xml -o $(strip $(PROJDIR))/modem/mcf/flavor_ota_files >>$(strip $(COMPLOGDIR))/mcf_ota_gen.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: mcf_ota_gen error. Please check $(strip $(COMPLOGDIR))/mcf_ota_gen.log $(WITH) exit 1) $(CMD_END) \
+ $(DONE)
+ endif
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(IF_EXIST) $(strip $(PROJDIR))/modem/mcf/all_ota_files $(THEN) \
+ (($(COPY_FILE) ./custom/service/mcf/ota_files/* $(strip $(PROJDIR))/modem/mcf/all_ota_files > $(strip $(COMPLOGDIR))/tar_ota_file.log 2>&1) \
+ $(WITH) \
+ ($(COPY_FILE) $(strip $(PROJDIR))/modem/mcf/flavor_ota_files/* $(strip $(PROJDIR))/modem/mcf/all_ota_files > $(strip $(COMPLOGDIR))/tar_ota_file.log 2>&1) \
+ $(WITH) \
+ (perl ./tools/MCF/modify_ota_config.pl $(strip $(PROJDIR))/modem/mcf/all_ota_files/MTK_MD_OTA_CONFIG.ini $(strip $(MCF_OTA_NAME)) > $(strip $(COMPLOGDIR))/tar_ota_file.log 2>&1) \
+ $(WITH) \
+ (tar -zcv -f $(strip $(TARGDIR))/MCF_OTA_FILES.tar.gz -C $(strip $(PROJDIR))/modem/mcf/all_ota_files . > $(strip $(COMPLOGDIR))/tar_ota_file.log 2>&1) \
+ $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: mcf_gen pack ota files failed. Please check $(strip $(COMPLOGDIR))/tar_ota_file.log | tee -a $(strip $(COMPLOGDIR))/tar_ota_file.log $(WITH) exit 1) $(CMD_END))) \
+ $(CMD_END)
+ @$(IF_EXIST) $(strip $(PROJDIR))/modem/mcf/MDDB.MCF.ODB.xml $(THEN) \
+ ((tar -zcvf $(strip $(TARGDIR))/MDDB.MCF.ODB.tar.gz -C $(strip $(PROJDIR))/modem/mcf/ MDDB.MCF.ODB.xml > $(strip $(COMPLOGDIR))/tar_mcf_db.log 2>&1) \
+ $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: mcf_gen pack mcf db failed. Please check $(strip $(COMPLOGDIR))/tar_mcf_db.log | tee -a $(strip $(COMPLOGDIR))/tar_mcf_db.log $(WITH) exit 1) $(CMD_END))) \
+ $(CMD_END)
+ ifeq ($(strip $(MCF_DIFF_CHECK)),TRUE)
+ @$(IF_EXIST) $(strip $(PROJDIR))/modem/mcf/new_item_found.txt $(THEN) \
+ ((echo Error: MCF diff check error. >> $(strip $(COMPLOGDIR))/mcf_diff_check.log) \
+ $(WITH) ($(CAT) ./tools/MCF/new_var_found_guideline.txt >> $(strip $(COMPLOGDIR))/mcf_diff_check.log) \
+ $(WITH) ($(CAT) $(strip $(PROJDIR))/modem/mcf/new_item_found.txt >> $(strip $(COMPLOGDIR))/mcf_diff_check.log) \
+ $(WITH) (echo MCF diff check end. >> $(strip $(COMPLOGDIR))/mcf_diff_check.log) \
+ $(WITH) (echo MCF diff check error. Please check $(strip $(COMPLOGDIR))/mcf_diff_check.log) \
+ $(WITH) (exit 1)) \
+ $(CMD_END)
+ endif
+ else
+ @$(IF_EXIST) $(strip $(PROJDIR))/modem/mcf/all_ota_files $(THEN) \
+ (($(IF_NOT_EXIST) $(strip $(MODISPROJDIR))/WIN32FS/mdota $(THEN) $(MKDIR) $(strip $(MODISPROJDIR))/WIN32FS/mdota $(CMD_END)) \
+ $(WITH) \
+ ($(COPY_FILE) ./custom/service/mcf/ota_files/* $(strip $(PROJDIR))/modem/mcf/all_ota_files > $(strip $(COMPLOGDIR))/tar_ota_file.log 2>&1) \
+ $(WITH) \
+ (perl ./tools/MCF/modify_ota_config.pl $(strip $(PROJDIR))/modem/mcf/all_ota_files/MTK_MD_OTA_CONFIG.ini $(strip $(MCF_OTA_NAME)) > $(strip $(COMPLOGDIR))/tar_ota_file.log 2>&1) \
+ $(WITH) \
+ ($(COPY_FILE) $(strip $(PROJDIR))/modem/mcf/all_ota_files/* $(strip $(MODISPROJDIR))/WIN32FS/mdota > $(strip $(COMPLOGDIR))/tar_ota_file.log 2>&1) \
+ $(WITH) \
+ ($(COPY_FILE) $(strip $(PROJDIR))/modem/mcf/flavor_ota_files/* $(strip $(MODISPROJDIR))/WIN32FS/mdota > $(strip $(COMPLOGDIR))/tar_ota_file.log 2>&1)) \
+ $(CMD_END)
+ endif
+ @$(ECHO) -n "$@: $(MODISBUILD_TST_DB)/$(MDDBMETADATABASEXML)" >> $@
+ @$(ECHO) -n "$@: $(strip $(PROJDIR))/nvram_auto_gen/custom_nvram_lid_cat.xml" >> $@
+ @$(ECHO) -n "$@: custom/service/mcf/system_files/mcf_system.csv" >> $@
+ @$(ECHO) -n "$@: custom/service/mcf/system_files/branch.txt" >> $@
+ @$(ECHO) -n "$@: tools/MCF/mcf_parser_gen" >> $@
+ @$(ECHO) -n ==== MCF GEN END ====
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ #delete target file for cleaning legacy code
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >>$(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif # MCF_SUPPORT
+
+# *************************************************************************
+# TARGET: cleancodegen
+# Clean Generated Code Sources
+# *************************************************************************
+cleancodegen:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ifneq ($(strip $(SMART_CHECK)),TRUE)
+ifneq ($(strip $(AUTO_CHECK_DEPEND)),TRUE)
+ @$(ECHO) -n clean codegen list
+ # $(CODE_GEN_LST) should be copied to another place then delete
+ @$(IF_EXIST) $(CODE_GEN_LST) $(THEN)\
+ (($(COPY_FILE) $(CODE_GEN_LST) $(strip $(TMPDIR))/~codegenlis.tmp >$(DEV_NUL)) $(AND) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(CODE_GEN_LST)` $(DO) \
+ ($(IF_EXIST) $(PRE_VAR)i $(THEN) $(DEL_FILE) $(PRE_VAR)i $(CMD_END)) \
+ $(DONE)) $(WITH) \
+ ($(DEL_FILE) $(CODE_GEN_LST))) \
+ $(CMD_END)
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(IF_EXIST) $(strip ${CODEGEN_DEP}) $(THEN) $(DEL_DIR) $(strip ${CODEGEN_DEP}) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip ${CODEGEN_DEP}) $(THEN) $(MKDIR) $(strip ${CODEGEN_DEP}) $(CMD_END)
+ endif
+endif
+endif
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Target: sysgen_init
+# Copy custom files to build folder
+# *************************************************************************
+sysgen_init: $(PREGEN_DEP)/sysgen_init.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./sysgen_init.det)
+else
+$(PREGEN_DEP)/sysgen_init.det: FORCE
+endif
+$(PREGEN_DEP)/sysgen_init.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ifneq ($(strip $(DISABLE_SYS)),TRUE)
+#backup custom/system files
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+#can not remove system backup folder due to previously incremental build may fail at autogen steps.
+# @$(IF_EXIST) $(strip $(PROJDIR))/custom/system_bak $(THEN) ($(DEL_DIR) $(strip $(PROJDIR))/custom/system_bak) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(PROJDIR))/custom/system_bak $(THEN) ($(MKDIR) $(strip $(PROJDIR))/custom/system_bak) $(CMD_END)
+ @($(LIST_DIR) "$(strip $(PROJDIR))/custom/system/*.*" 1>$(DEV_NUL) 2>&1 $(WITH) \
+ $(IF_ERR_FALSE) $(THEN) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(LIST_DIR) -n -b "$(strip $(PROJDIR))/custom/system/*.*"` $(DO) \
+ (mv -f $(strip $(PROJDIR))/custom/system/$(PRE_VAR)i $(strip $(PROJDIR))/custom/system_bak/$(PRE_VAR)i) $(AND) \
+ (echo $(strip $(PROJDIR))/custom/system/$(PRE_VAR)i is moved to $(strip $(PROJDIR))/custom/system_bak/$(PRE_VAR)i!) \
+ $(DONE)) \
+ $(CMD_END))
+
+endif
+
+ @perl ./tools/sysgen_init.pl $(call CUSTOM_FLD_MAPPING,./custom/system) $(strip $(BUILD_SYSDIR)) $(strip $(SMART_CHECK)) > $(strip $(COMPLOGDIR))/sysgen_init.log $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: sysgen_init Failed. Please check $(strip $(COMPLOGDIR))/sysgen_init.log $(WITH) exit 1) $(CMD_END))
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Target: emigen
+# Generate emi settings based on configurations in custom_MemoryDevice.h
+# *************************************************************************
+MEMORY_FILE := $(wildcard $(strip $(TMPDIR))/*.xls)
+emigen: sysgen_init $(PREGEN_DEP)/emigen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./emigen.det)
+else
+$(PREGEN_DEP)/emigen.det: FORCE
+endif
+$(PREGEN_DEP)/emigen.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ifneq ($(MEMORY_FILE),)
+ @$(IF_EXIST) $(MEMORY_FILE) $(THEN) ($(DEL_FILE) $(MEMORY_FILE)) $(CMD_END)
+endif
+
+ @$(IF_NOT_EXIST) $(COMPLOGDIR) $(THEN) ($(MKDIR) $(COMPLOGDIR)) $(CMD_END)
+
+ @$(ECHO) -n Generate EMI settings
+ @$(IF_EXIST) $(strip $(EMI_GENERATOR)) $(THEN) \
+ (perl $(strip $(EMI_GENERATOR)) FALSE $(strip $(MEMORY_DEVICE_HDR)) "$(strip $(PROJECT_MAKEFILE))" FALSE $(strip $(INSIDE_MTK)) $(strip $(TMPDIR)) $@ > $(strip $(COMPLOGDIR))/emigen.log 2>&1) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: emigen Failed. Please check $(strip $(COMPLOGDIR))/emigen.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ #delete target file for cleaning legacy code
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Target: copro_info_gen
+# *************************************************************************
+copro_info_gen: $(PREGEN_DEP)/copro_info_gen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./copro_info_gen.det)
+else
+$(PREGEN_DEP)/copro_info_gen.det: FORCE
+endif
+$(PREGEN_DEP)/copro_info_gen.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(ECHO) -n "L1CORE_IMAGELAYOUT = $(L1CORE_SCATTERFILE)">$(strip $(TMPDIR))/~copro_info.tmp
+ @$(ECHO) -n "L1CORE_MAP = $(L1CORE_MAP_FILE)" >> $(strip $(TMPDIR))/~copro_info.tmp
+ @$(ECHO) -n "L1CORE_SYM = $(L1CORE_SYM_FILE)" >> $(strip $(TMPDIR))/~copro_info.tmp
+
+ @$(IF_EXIST) $(FIXPATH)/tools/copro_info_gen.pl $(THEN)\
+ (perl $(FIXPATH)/tools/copro_info_gen.pl $(FORCE_GEN) $(strip $(TMPDIR))/~copro_info.tmp "$(strip $(PROJECT_MAKEFILE))" $(strip $(INFOMAKELOG)) $(SINGLE_CORE) $@ > $(strip $(COMPLOGDIR))/copro_info_gen.log 2>&1) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) echo Error: copro_info_gen.pl failed. Please check $(strip $(COMPLOGDIR))/copro_info_gen.log $(WITH) exit 1 $(CMD_END)) \
+ $(CMD_END)
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Generate custom\system\BB\* base on makefile and EMI.h
+# *************************************************************************
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+sysgen: sys_auto_gen sys_mem_gen
+else
+sysgen: sys_auto_gen sys_mem_gen mertos_codegen
+endif
+sys_auto_gen: $(PREGEN_DEP)/sysgen_conf.det ckmemlayout
+
+$(PREGEN_DEP)/sysgen_conf.det: genlog copro_info_gen emigen
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./sysgen_conf.det)
+else
+$(PREGEN_DEP)/sysgen_conf.det: FORCE
+endif
+$(PREGEN_DEP)/sysgen_conf.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+# use specific lds
+ifeq ($(strip $(HARDCODE_LDS)),TRUE)
+ @$(IF_EXIST) $(FIXPATH)/$(SCATTERFILE_PATH)/$(USER_DEFINE_SCATTERFILE_SRC) $(THEN) \
+ $(COPY_FILE) $(SCATTERFILE_PATH)/$(USER_DEFINE_SCATTERFILE_SRC) $(SCATTERFILE) \
+ $(ELSE) \
+ (echo Error: no such lds file: $(FIXPATH)/$(SCATTERFILE_PATH)/$(USER_DEFINE_SCATTERFILE_SRC) $(WITH) exit 1) \
+ $(CMD_END)
+endif
+
+ @$(IF_EXIST) $(FIXPATH)/tools/sys_auto_gen.pl $(THEN) \
+ ((perl $(FIXPATH)/tools/sys_auto_gen.pl $(SCATTERFILE) $(BL_SCATTERFILE) "$(strip $(PROJECT_MAKEFILE))" $(strip $(BUILD_SYSDIR)) $(strip $(NEED_BUILD_BOOTLOADER)) $(strip $(INSIDE_MTK)) $(strip $(DUMMY_LIS)) $(strip $(INFOMAKELOG)) $(strip $(TMPDIR))/~copro_info.tmp $(LIBDIR_TEMP) $(strip $(CC)) $@ > $(strip $(COMPLOGDIR))/sysgen.log) \
+ $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: sys_auto_gen Failed. Please check $(strip $(COMPLOGDIR))/sysgen.log $(WITH) exit 1) $(CMD_END))) \
+ $(CMD_END)
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Calculate system memory size and generate header files
+# *************************************************************************
+sys_mem_gen:
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+sys_mem_gen: genlog
+endif
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $(strip $(TMPDIR))/~config_optInc.tmp $(THEN) ($(DEL_FILE) $(strip $(TMPDIR))/~config_optInc.tmp) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TMPDIR))/~config_Option.tmp $(THEN) ($(DEL_FILE) $(strip $(TMPDIR))/~config_Option.tmp) $(CMD_END)
+ @$(MAKE) -fmake/common/build.mak -r -R --no-print-directory --old-file=genlog MODIS_CONFIG=$(strip $(MODIS_CONFIG)) MODIS_UESIM=$(strip $(MODIS_UESIM)) ALL_MODULELIS=config.lis genmoduleinfo
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ @$(ECHO) -n System memory calculation for $(strip $(MODIS_UESIM))>$(strip $(MODISLOGDIR))/syscomp.log
+ else
+ @$(ECHO) -n System memory calculation for Target>$(strip $(COMPLOGDIR))/syscomp.log
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~config_optInc.tmp $(foreach inc,$(subst \,/,$(COMMINCDIRS)),-I$(inc))
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~config_opt.tmp $(foreach def,$(COM_DEFS),-D$(def))
+ @$(CAT) $(strip $(TMPDIR))/~config_opt.tmp >> $(strip $(TMPDIR))/~config_optInc.tmp
+ endif
+
+ @$(ECHO) -n -D__SYS_MEM_GEN__ >> $(strip $(TMPDIR))/~config_optInc.tmp
+
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_EXIST) $(strip $(MODULEINFODIR))/config $(THEN)\
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(MODULEINFODIR))/config/config.def ` \
+ $(DO)\
+ (echo ^#define $(PRE_VAR)i >>$(strip $(TMPDIR))/~config_Option.tmp) $(DONE)) $(WITH) \
+ (perl ./tools/replace_string.pl $(strip $(TMPDIR))/~config_Option.tmp = " " $(strip $(TMPDIR))/~config_Option.tmp) $(WITH) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(MODULEINFODIR))/config/config.inc ` \
+ $(DO)\
+ (echo -I$(PRE_VAR)i >>$(strip $(TMPDIR))/~config_optInc.tmp) $(DONE)) \
+ $(CMD_END)
+ else
+ @$(IF_EXIST) $(strip $(MODULEINFODIR))/config $(THEN)\
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(MODULEINFODIR))/config/config.def ` \
+ $(DO)\
+ (echo -D$(PRE_VAR)i >>$(strip $(TMPDIR))/~config_optInc.tmp) $(DONE)) $(WITH) \
+ ($(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(CAT) $(strip $(MODULEINFODIR))/config/config.inc ` \
+ $(DO)\
+ (echo -I$(PRE_VAR)i >>$(strip $(TMPDIR))/~config_optInc.tmp) $(DONE)) \
+ $(CMD_END)
+ endif
+ #backup syscomp_config for incremental build
+ ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_EXIST) $(strip $(TMPDIR))/~syscomp_config.o $(THEN) mv $(strip $(TMPDIR))/~syscomp_config.o $(strip $(TMPDIR))/~syscomp_config_bak.o >$(DEV_NUL) $(CMD_END)
+ endif
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_EXIST) ./service/config/src/hal/syscomp_config.c $(THEN)\
+ ($(CC) $(VIA)$(strip $(TMPDIR))/~config_optInc.tmp -imacros $(strip $(TMPDIR))/~config_Option.tmp -c ./service/config/src/hal/syscomp_config.c -o $(strip $(TMPDIR))/~syscomp_config.o 2>$(strip $(MODISLOGDIR))/sys_mem_gen.log $(AND) \
+ (perl ./tools/sys_mem_gen/sys_mem_gen.pl $(strip $(TMPDIR))/~syscomp_config.o $(strip $(BUILD_SYSDIR)) $(MODIS_CONFIG) $(strip $(MODISLOGDIR)) $(INFOMAKELOG) "$(CROSS)" $(strip $(MTK_MODEM_ARCH)) >>$(strip $(MODISLOGDIR))/sys_mem_gen.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: System memory calculation failed. Please check $(strip $(MODISLOGDIR))/sys_mem_gen.log $(WITH) exit 1) $(CMD_END))) \
+ $(CMD_END)
+ else
+ ifeq ($(strip $(COMPILER_ARCH)),MIPS)
+ @$(ECHO) -EL -fshort-enums >> $(strip $(TMPDIR))/~config_optInc.tmp
+ endif
+ @$(IF_EXIST) ./service/config/src/hal/syscomp_config.c $(THEN)\
+ ($(CC) $(VIA)$(strip $(TMPDIR))/~config_optInc.tmp -c ./service/config/src/hal/syscomp_config.c -o $(strip $(TMPDIR))/~syscomp_config.o 2>$(strip $(COMPLOGDIR))/sys_mem_gen.log $(AND) \
+ (perl ./tools/sys_mem_gen/sys_mem_gen.pl $(strip $(TMPDIR))/~syscomp_config.o $(strip $(BUILD_SYSDIR)) $(MODIS_CONFIG) $(strip $(COMPLOGDIR)) $(INFOMAKELOG) "$(CROSS)" $(strip $(MTK_MODEM_ARCH)) >>$(strip $(COMPLOGDIR))/sys_mem_gen.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: System memory calculation failed. Please check $(strip $(COMPLOGDIR))/sys_mem_gen.log $(WITH) exit 1) $(CMD_END))) \
+ $(CMD_END)
+
+ ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(filter CHIP10992,$(strip $(COM_DEFS))),)
+ @python ./tools/kal_config/kal_config_irq_info_parser.py $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(MTK_MODEM_ARCH)) $(strip $(PLATFORM)) > $(strip $(COMPLOGDIR))/irq_config_table.csv 2>$(strip $(COMPLOGDIR))/irq_config_table.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: Generate IRQ configuration table failed. Please check $(strip $(COMPLOGDIR))/irq_config_table.log $(WITH) exit 1) $(CMD_END)
+ else
+ @python ./tools/kal_config/kal_config_irq_info_parser.py $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(MTK_MODEM_ARCH)) $(strip CHIP10992) > $(strip $(COMPLOGDIR))/irq_config_table.csv 2>$(strip $(COMPLOGDIR))/irq_config_table.log $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: Generate IRQ configuration table failed. Please check $(strip $(COMPLOGDIR))/irq_config_table.log $(WITH) exit 1) $(CMD_END)
+ endif
+ endif
+ endif
+ endif
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_EXIST) $(strip $(TMPDIR))/~syscomp_config_bak.o $(THEN) \
+ (($(COMPARE) $(strip $(TMPDIR))/~syscomp_config.o $(strip $(TMPDIR))/~syscomp_config_bak.o >$(DEV_NUL) 2>&1) $(WITH) \
+ ($(IF_ERR_FALSE) $(THEN) \
+ (touch -r $(strip $(TMPDIR))/~syscomp_config_bak.o $(strip $(TMPDIR))/~syscomp_config.o >$(DEV_NUL)) $(AND) \
+ (echo $(strip $(TMPDIR))/~syscomp_config.o timestamp is changed from $(strip $(TMPDIR))/~syscomp_config_bak.o!) \
+ $(CMD_END))) $(AND) \
+ ($(DEL_FILE) $(strip $(TMPDIR))/~syscomp_config_bak.o) \
+ $(CMD_END)
+endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Generate codes required by MERTOS
+# *************************************************************************
+mertos_codegen: sys_mem_gen $(PREGEN_DEP)/mertos_codegen.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./mertos_codegen.det)
+else
+$(PREGEN_DEP)/mertos_codegen.det: FORCE
+endif
+$(PREGEN_DEP)/mertos_codegen.det:
+ifeq ($(strip $(RTOS)),MERTOS)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(ECHO) "$@ START TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(COMPLOGDIR) $(THEN) ($(MKDIR) $(COMPLOGDIR)) $(CMD_END)
+
+ # Body Start
+ @$(ECHO) -n Generating MERTOS required information ...
+ # Execute codegen script; reuse the ~syscomp_config.o generated in sys_mem_gen
+ @$(ECHO) -n python ./tools/mertos/mer_codegen.py $(strip $(CROSS))readelf $(strip $(TMPDIR))/~syscomp_config.o $(strip $(BUILD_SYSDIR)) > $(strip $(COMPLOGDIR))/mertos_codegen.log
+ @(python ./tools/mertos/mer_codegen.py $(strip $(CROSS))readelf $(strip $(TMPDIR))/~syscomp_config.o $(strip $(BUILD_SYSDIR)) >> $(strip $(COMPLOGDIR))/mertos_codegen.log 2>&1 $(WITH) \
+ $(IF_ERR_TRUE) $(THEN) (echo Error: mertos_codegen Failed. Please check $(strip $(COMPLOGDIR))/mertos_codegen.log $(WITH) exit 1) $(CMD_END))
+ # Body End
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common >> $(strip $(COMPLOGDIR))/genJson.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ((echo Error: the command is \"$(GEN_TARGET_FILE) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(DSP_PROJECT)) $(strip $(DSP_FLAVOR)) $(strip $(TARGET_MODIS_UESIM)) $@ $@ common\") $(AND) \
+ echo Error: Failed in tools/genTargetFile.py at $@. Please check $(strip $(COMPLOGDIR))/genJson.log !$(WITH) exit 1) \
+ $(CMD_END))
+endif
+
+ @$(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log
+ @$(CHK_TIME) >> $(strip $(TARGDIR))/build.log
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+endif
+
+# *************************************************************************
+
+# *************************************************************************
+# Target: gen_sfini
+# *************************************************************************
+gen_sfini: $(PREGEN_DEP)/gen_sfini.det
+ifeq ($(strip $(SMART_CHECK)),TRUE)
+include $(wildcard $(PREGEN_DEP)/./gen_sfini.det)
+else
+$(PREGEN_DEP)/gen_sfini.det: FORCE
+endif
+$(PREGEN_DEP)/gen_sfini.det:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_NOT_EXIST) $(strip $(PREGEN_DEP)) $(THEN) ($(MKDIR) $(strip $(PREGEN_DEP))) $(CMD_END)
+ @$(IF_EXIST) $@ $(THEN) ($(DEL_FILE) $@) $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+# @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_precgen.log
+ endif
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(TARGNAME).lis $(THEN)\
+ (perl ./tools/MarginCalc.pl $(strip $(TARGDIR))/$(TARGNAME).lis >$(strip $(COMPLOGDIR))/MarginCalc.log 2>&1 $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo ./tools/MarginCalc.pl Error. Please check $(strip $(COMPLOGDIR))/MarginCalc.log $(WITH) exit 1) $(CMD_END)))\
+ $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/libs.log $(THEN) ($(DEL_FILE) $(strip $(COMPLOGDIR))/libs.log) $(CMD_END)
+ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(COMPLIST) $(DO) \
+ (echo $(strip $(COMPLIBDIR))/lib$(PRE_VAR)i.a >> $(strip $(COMPLOGDIR))/libs.log) \
+ $(DONE)
+else
+ ifneq ($(strip $(MTK_LIBS)),)
+ @$(STRCMPEX) abc abc e $(strip $(COMPLOGDIR))/libs.log $(MTK_LIBS)
+ @perl ./tools/lnitem.pl $(strip $(COMPLOGDIR))/libs.log
+ endif
+endif
+
+ @$(IF_EXIST) $(FIXPATH)/tools/libinfo.pl $(THEN) \
+ ((perl $(FIXPATH)/tools/libinfo.pl $(strip $(COMPLOGDIR))/libs.log > $(strip $(COMPLOGDIR))/libinfo.log) \
+ $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: ./tools/libinfo.pl Failed. Please check $(strip $(COMPLOGDIR))/libinfo.log $(WITH) exit 1) $(CMD_END))) \
+ $(CMD_END)
+
+#Preprocess mt_config.h
+ @$(IF_EXIST) $(strip $(TMPDIR))/~mt_config_inc.tmp $(THEN) ($(DEL_FILE) $(strip $(TMPDIR))/~mt_config_inc.tmp) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TMPDIR))/~mt_config_def.tmp $(THEN) ($(DEL_FILE) $(strip $(TMPDIR))/~mt_config_def.tmp) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TMPDIR))/~mt_config.o $(THEN) ($(DEL_FILE) $(strip $(TMPDIR))/~mt_config.o) $(CMD_END)
+ @$(STRCMPEX) inc inc e $(strip $(TMPDIR))/~mt_config_inc.tmp $(foreach inc,$(XGEN_INC_DIR),-I$(inc))
+ @$(STRCMPEX) def def e $(strip $(TMPDIR))/~mt_config_def.tmp $(foreach def,$(COM_DEFS_TARGET),-D$(def))
+ @$(IF_EXIST) $(strip .)/interface/service/config/mt_config.h $(THEN) \
+ $(CC) -E -W $(VIA)$(strip $(TMPDIR))/~mt_config_inc.tmp $(VIA)$(strip $(TMPDIR))/~mt_config_def.tmp $(strip .)/interface/service/config/mt_config.h -o $(strip $(TMPDIR))/~mt_config.o > $(strip $(COMPLOGDIR))/mt_config.log $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: Preprocess mt_config.h Failed. Please check $(strip $(COMPLOGDIR))/mt_config_info.log $(WITH) exit 1) $(CMD_END)) \
+ $(CMD_END)
+
+ifeq ($(filter CHIP10992,$(strip $(COM_DEFS))),)
+#MDProfilerMETAInfoGen
+ @$(IF_EXIST) $(strip $(TMPDIR))/~syscomp_config.o $(THEN) \
+ $(IF_EXIST) ./tools/MDProfilerMETAInfoGen/MDProfiler_META_info_gen.pl $(THEN) \
+ ((perl ./tools/MDProfilerMETAInfoGen/MDProfiler_META_info_gen.pl $(strip $(TMPDIR))/~syscomp_config.o $(strip $(TMPDIR))/~mt_config.o $(strip $(MODISBUILD_TST_DB)) $(strip $(COMPLOGDIR)) $(strip $(PLATFORM)) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(VERNO)) $(strip $(MD_VER_FOLDER)) $(strip $(CROSS))) \
+ $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: ./tools/MDProfilerMETAInfoGen/MDProfiler_META_info_gen.pl Failed. Please check $(strip $(COMPLOGDIR))/swla_meta_info.log $(WITH) exit 1) $(CMD_END))) \
+ $(CMD_END) \
+ $(CMD_END)
+else
+#MDProfilerMETAInfoGen
+ @$(IF_EXIST) $(strip $(TMPDIR))/~syscomp_config.o $(THEN) \
+ $(IF_EXIST) ./tools/MDProfilerMETAInfoGen/MDProfiler_META_info_gen.pl $(THEN) \
+ ((perl ./tools/MDProfilerMETAInfoGen/MDProfiler_META_info_gen.pl $(strip $(TMPDIR))/~syscomp_config.o $(strip $(TMPDIR))/~mt_config.o $(strip $(MODISBUILD_TST_DB)) $(strip $(COMPLOGDIR)) $(strip CHIP10992) $(strip $(PROJECT_NAME)) $(strip $(FLAVOR)) $(strip $(VERNO)) $(strip $(MD_VER_FOLDER)) $(strip $(CROSS))) \
+ $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) (echo Error: ./tools/MDProfilerMETAInfoGen/MDProfiler_META_info_gen.pl Failed. Please check $(strip $(COMPLOGDIR))/swla_meta_info.log $(WITH) exit 1) $(CMD_END))) \
+ $(CMD_END) \
+ $(CMD_END)
+endif
+
+ @$(ECHO) -n $(strip $(INFOLOG)) > $(MODISBUILD_TST_DB)/sf.ini
+ @$(ECHO) -n $(strip "$(PROJECT_MAKEFILE)") >> $(MODISBUILD_TST_DB)/sf.ini
+ @$(ECHO) -n $(strip $(COMPLOGDIR))/emigen.log >> $(MODISBUILD_TST_DB)/sf.ini
+ @$(ECHO) -n $(strip $(COMPLOGDIR))/ckSysDrv.log >> $(MODISBUILD_TST_DB)/sf.ini
+ @$(ECHO) -n $(strip $(COMPLOGDIR))/drv_features_option.log >> $(MODISBUILD_TST_DB)/sf.ini
+ @$(ECHO) -n $(strip $(COMPLOGDIR))/MarginCalc.log >> $(MODISBUILD_TST_DB)/sf.ini
+ @$(ECHO) -n $(strip $(COMPLOGDIR))/libinfo.log >> $(MODISBUILD_TST_DB)/sf.ini
+ @$(ECHO) -n "<ICDJSONDef_0>$(strip $(PROJDIR))/modem/icd_ac_gen/ICDJSONDef_0.json" >> $(MODISBUILD_TST_DB)/sf.ini
+ @$(ECHO) -n "<ICDJSONDef_1>$(strip $(PROJDIR))/modem/icd_ac_gen/ICDJSONDef_1.json" >> $(MODISBUILD_TST_DB)/sf.ini
+ @$(ECHO) -n "<MCUFilter@ModLayerRATInfo>$(strip $(LOGGING_DATABASE))/XDD/module_layer_rat_info.txt" >> $(MODISBUILD_TST_DB)/sf.ini
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifdef EUTRAN_MODE_SUPPORT
+ ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ ifeq ($(strip $(NO_LTECGEN)),FALSE)
+ ifeq ($(strip $(NO_DSP)),FALSE)
+ @$(ECHO) -n "<DSPXMLUtil@filterXML>$(DSPDIR)/$(strip $(DSP_PROJECT))/$(strip $(DSP_FLAVOR))/final_bin/xml/filterXML" >> $(MODISBUILD_TST_DB)/sf.ini
+ endif
+ endif
+ endif
+ endif
+endif
+
+ @$(IF_EXIST) $(strip $(TMPDIR))/~syscomp_config.o $(THEN) \
+ ($(ECHO) -n "<92SWLAMetaInfoFile>$(strip $(MODISBUILD_TST_DB))/MDProfiler_METAInfo.ini" >>$(MODISBUILD_TST_DB)/sf.ini) \
+ $(CMD_END)
+
+ifneq ($(wildcard $(CUSTOMIZATION)/log2SD_Catcher_filters_meta.ini),)
+ifneq ($(LOG2SD_CATCHER_FILTERS_LIST),)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(LOG2SD_CATCHER_FILTERS_LIST) $(DO) \
+ $(IF_EXIST) $(MODISBUILD_TST_DB)/catcher_filter_$(PRE_VAR)i.bin $(THEN) \
+ ($(ECHO) -n "<catcher_filter@$(PRE_VAR)i>$(MODISBUILD_TST_DB)/catcher_filter_$(PRE_VAR)i.bin" >> $(MODISBUILD_TST_DB)/sf.ini) \
+ $(CMD_END) \
+ $(DONE)
+endif
+endif
+
+# generate modem_list_filter for sf.ini
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/catcher_filter.bin $(THEN) \
+ ($(ECHO) -n "<ModemDefaultFilter_catcher_filter_bin>$(MODISBUILD_TST_DB)/catcher_filter.bin" >> $(MODISBUILD_TST_DB)/sf.ini) \
+ $(CMD_END)
+
+ifneq ($(LOG2SD_CATCHER_FILTERS_LIST),)
+ @$(FOR) $(DECLARE_VAR)i $(IN) $(LOG2SD_CATCHER_FILTERS_LIST) $(DO) \
+ $(IF_EXIST) $(MODISBUILD_TST_DB)/catcher_filter_$(PRE_VAR)i.bin $(THEN) \
+ ($(ECHO) "<ModemDefaultFilter_catcher_filter_${PRE_VAR}i" >> $(MODISBUILD_TST_DB)/sf.ini) $(AND) \
+ ($(ECHO) -n "_bin>$(MODISBUILD_TST_DB)/catcher_filter_$(PRE_VAR)i.bin" >> $(MODISBUILD_TST_DB)/sf.ini) \
+ $(CMD_END) \
+ $(DONE)
+endif
+
+#ifeq ($(strip $(SMART_CHECK)),TRUE)
+# @$(ECHO) -n $@: $(strip $(INFOLOG)) >>$@
+# @$(ECHO) -n "$@: $(strip $(PROJECT_MAKEFILE))" >> $@
+# @$(ECHO) -n $@: $(MODISBUILD_TST_DB)/sf.ini >> $@
+# @$(ECHO) -n $@: $(MAKE_COMMON)/codegen.mak >> $@
+# @$(ECHO) -n $@: ./tools/MDProfilerMETAInfoGen/MDProfiler_META_info_gen.pl >> $@
+#endif
+
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: gencustominfo
+# Generate Custom Information
+# *************************************************************************
+gencustominfo:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN)\
+ ($(ECHO) "$@ START TIME=" >>$(strip $(TARGDIR))/build.log $(AND) \
+ perl ./tools/time.pl -n >>$(strip $(TARGDIR))/build.log) \
+ $(CMD_END)
+
+ifdef DRV_CUSTOM_TOOL_SUPPORT
+ifeq ($(strip $(DRV_CUSTOM_TOOL_SUPPORT)),TRUE)
+ifeq ($(findstring MT6129D,$(strip $(RF_MODULE))),)
+ifeq ($(findstring MT6139E,$(strip $(RF_MODULE))),)
+ @$(IF_NOT_EXIST) $(BUILD_CODEGENDIR) $(THEN) ($(MKDIR) $(BUILD_CODEGENDIR)) $(CMD_END)
+ @$(IF) "$(strip $(DRV_CUSTOM_TOOL_SUPPORT))" $(EQU) "TRUE" $(THEN) \
+ ($(IF_EXIST) $(DRV_GEN) $(THEN) \
+ ($(IF_EXIST) $(call CUSTOM_FLD_MAPPING, custom/driver/drv_gen)/codegen.dws $(THEN) \
+ ($(DRV_GEN) $(call CUSTOM_FLD_MAPPING,./custom/driver/drv_gen)/codegen.dws $(strip $(BUILD_CODEGENDIR)) $(strip $(PROJDIR))) \
+ $(CMD_END)) \
+ $(CMD_END)) \
+ $(CMD_END)
+endif
+endif
+endif
+endif
+ @$(IF_EXIST) $(strip $(TARGDIR))/build.log $(THEN)\
+ ($(ECHO) "$@ END TIME=" >> $(strip $(TARGDIR))/build.log $(AND) \
+ perl ./tools/time.pl -n >> $(strip $(TARGDIR))/build.log) $(CMD_END)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# TARGET: $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det: FORCE
+# *************************************************************************
+ifneq ($(strip $(AUTO_CHECK_CGEN)),TRUE)
+ $(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det: FORCE
+endif
+$(MODIS_RULESDIR)/codegen_dep/cgen_db_sig.det: $(NEED_CHECK_DEPEND_LIST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $@ $(THEN) $(DEL_FILE) $@ $(CMD_END)
+ ifeq ($(strip $(SMART_CHECK)),TRUE)
+ @$(ECHO) -n "[SMART LOG] $@ target is triggered by: $?" >> $(strip $(COMPLOGDIR))/smart_log_cgen.log
+ endif
+
+ @$(IF_NOT_EXIST) $(BUILD_TSTDIR)/src $(THEN) ($(MKDIR) $(BUILD_TSTDIR)/src) $(CMD_END)
+ @$(ECHO) -n "Generate dbSig File ......"
+
+ @$(IF_EXIST) $(MODISBUILD_TST_DB)/chk_cgen_step.ini $(THEN) \
+ ($(ECHO) -n "$(CGEN) -db_sig $(CODEGEN_DATABASE_OUT) $(BUILD_TSTDIR)/src/dbSig.c " >> $(CGEN_CFG_MODEM)) \
+ $(ELSE) \
+ ($(ECHO) -n "$(CGEN) -rdb_sig $(CODEGEN_DATABASE_OUT) $(BUILD_TSTDIR)/src/dbSig.c " >> $(CGEN_CFG_MODEM)) \
+ $(CMD_END)
+
+ @$(ECHO) -n $@: $(CGEN) >> $@
+ @$(ECHO) -n $@ >> $(CODE_GEN_LST)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
diff --git a/mcu/make/common/comp.mak b/mcu/make/common/comp.mak
new file mode 100644
index 0000000..2c65f53
--- /dev/null
+++ b/mcu/make/common/comp.mak
@@ -0,0 +1,1479 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+#
+#
+# *************************************************************************
+#
+# MediaTek Inc GSM/GPRS Wireless Communicatin Project
+# Build/Make Development Tools
+#
+# Author Date Description
+# Sherman Wang 2004/04/29 Create version 1.0
+#
+# *************************************************************************
+# COMP.MAK - Component build script
+#
+# DISCUSSION:
+#
+# This file is build script for component modules, and contains C source
+# files (.c), and Assembly source files(.s).
+#
+# USAGE:
+#
+# IMPORTANT NOTES:
+#
+# *************************************************************************
+#
+# $Revision:$
+# $Modtime:$
+# $Log:$
+#
+# 10 14 2020 chi-chun.lu
+# [MOLY00538735] [MakeFile][Modify Makefile Rules] incremental build enhancement
+#
+# .
+#
+# 09 09 2020 chi-chun.lu
+# [MOLY00538735] [MakeFile][Modify Makefile Rules] incremental build enhancement
+#
+# (EWSP0000153449).
+#
+# 09 08 2020 chi-chun.lu
+# [MOLY00566669] [MakeFile] [Modify Common Makefile Rules] add deterministic for ci service
+# .
+#
+# 07 06 2020 chi-chun.lu
+# [MOLY00538735] [MakeFile][Modify Makefile Rules] incremental build enhancement
+#
+# .
+#
+# 06 30 2020 chi-chun.lu
+# [MOLY00538735] [MakeFile][Modify Makefile Rules] incremental build enhancement
+#
+# .
+#
+# 05 22 2020 chi-chun.lu
+# [MOLY00525991] [MakeFile] [VMOLY] [Modify Makefile Rules] support smart new when verno change
+# .
+#
+# 12 25 2019 chi-chun.lu
+# [MOLY00467020] [MakeFile] [VMOLY] [Modify Makefile Rules] fix ccache potential problem
+# .
+#
+# 12 09 2019 chi-chun.lu
+# [MOLY00464738] [MakeFile] [VMOLY] [Modify Makefile Rules] smart new enhancement
+#
+# .
+#
+# 11 27 2019 chi-chun.lu
+# [MOLY00461604] [MakeFile] [VMOLY] [Modify Makefile Rules] ccache enhancement
+#
+# .
+#
+# 11 15 2019 chi-chun.lu
+# [MOLY00459055] [MakeFile] [VMOLY] [Modify Makefile Rules] fix potential smart new build flow problem
+# .
+#
+# 11 11 2019 yuri.huang
+# [MOLY00458426] [MakeFile] [VUMOLY] [Modify Makefile Rules] Modify build flow
+#
+# .
+#
+# 11 08 2019 chi-chun.lu
+# [MOLY00456042] [MakeFile] [VMOLY] [Modify Makefile Rules] fix update_dsp flow
+# .
+#
+# 11 05 2019 ray.lin-wang
+# [MOLY00456042] [MakeFile] [VMOLY] [Modify Makefile Rules] fix update_dsp flow - comp.amk via dep
+#
+# .
+#
+# 11 04 2019 ray.lin-wang
+# [MOLY00456042] [MakeFile] [VMOLY] [Modify Makefile Rules] fix update_dsp flow.
+#
+# 10 22 2019 ray.lin-wang
+# [MOLY00452976] [MakeFile] [VMOLY] [Modify Makefile Rules] MoDIS/UESim support smart new
+#
+# .
+#
+# 10 09 2019 yuri.huang
+# [MOLY00446346] [MakeFile] [UMOLYE] [Modify Makefile Rules] Modify build flow
+# (Clean PCISB).
+#
+# 09 10 2019 yuri.huang
+# [MOLY00439079] [MakeFile] [VMOLY] [Modify Makefile Rules] Remove Legacy RTOS references from access restricted make files - Part 2
+# (Lari Manninen).
+#
+# 06 03 2019 yuri.huang
+# [MOLY00381361] [MakeFile] [UMOLYE] [Modify Makefile Rules] Phase out auto_header.h mechanism
+#
+# .
+#
+# 05 10 2019 chi-chun.lu
+# [MOLY00405345] [MakeFile] [UMOLYE] [Modify Makefile Rules] fix remake problem
+#
+# .
+#
+# 05 10 2019 chi-chun.lu
+# [MOLY00405345] [MakeFile] [UMOLYE] [Modify Makefile Rules] fix remake problem
+#
+# .
+#
+# 04 16 2019 ray.lin-wang
+# [MOLY00399667] [MakeFile] [VMOLY] [Modify Makefile Rules] MoDIS/UESim support generating dep and pcibt check
+# .
+#
+# 04 01 2019 yuri.huang
+# [MOLY00395916] [MakeFile] [UMOLYE] [Modify Makefile Rules] MPD 4g local build
+#
+# .
+#
+# 03 20 2019 gerry.liao
+# [MOLY00392677] [6297] MERTOS phase-in
+# .
+#
+# 12 26 2018 chi-chun.lu
+# [MOLY00372655] [MakeFile] [UMOLYE] [Modify Makefile Rules] smart new enhancement
+#
+# .
+#
+# 10 16 2018 ray.lin-wang
+# [MOLY00352266] [UESim on Linux] UESim built by Clang toolchain on Linux
+# support -llvm-coverage (ShihYu Wang).
+#
+# 10 03 2018 chi-chun.lu
+# [MOLY00356821] [MakeFile] [UMOLYE] [Modify Makefile Rules] refine build flow
+#
+# .
+#
+# 10 02 2018 chi-chun.lu
+# [MOLY00355922] [MakeFile] [UMOLYE] [Modify Makefile Rules] fix smart new problem
+#
+# .
+#
+# 09 07 2018 chi-chun.lu
+# [MOLY00350930] [MakeFile] [UMOLYE] [Modify Makefile Rules] check MPD folder path implement(temp)
+#
+# .
+#
+# 09 07 2018 chi-chun.lu
+# [MOLY00350930] [MakeFile] [UMOLYE] [Modify Makefile Rules] check MPD folder path implement(temp)
+#
+# .
+#
+# 08 10 2018 ray.lin-wang
+# [MOLY00344924] [VMOLY][BuildEnv] merge back from Gen97 Dev to VMOLY
+# build flow makefile.
+#
+# 08 02 2018 ray.lin-wang
+# [MOLY00342318] [MoDIS on Linux] MoDIS built by Clang toolchain on Linux
+# 07 26 2018 chi-chun.lu
+# [MOLY00342237] [MakeFile] [UMOLYE] [Modify Makefile Rules] fix debug mode of module makefile
+#
+# .
+#
+# *************************************************************************
+# *************************************************************************
+# Common macro definitions
+# *************************************************************************
+#$(call Upper,$(1)) ...... reference $(1) in upper-case letters
+Upper = $(subst z,Z,$(subst y,Y,$(subst x,X,$(subst w,W,$(subst v,V,$(subst u,U,$(subst t,T,$(subst s,S,$(subst r,R,$(subst q,Q,$(subst p,P,$(subst o,O,$(subst n,N,$(subst m,M,$(subst l,L,$(subst k,K,$(subst j,J,$(subst i,I,$(subst h,H,$(subst g,G,$(subst f,F,$(subst e,E,$(subst d,D,$(subst c,C,$(subst b,B,$(subst a,A,$(1)))))))))))))))))))))))))))
+Lower = $(subst Z,z,$(subst Y,y,$(subst X,x,$(subst W,w,$(subst V,v,$(subst U,u,$(subst T,t,$(subst S,s,$(subst R,r,$(subst Q,q,$(subst P,p,$(subst O,o,$(subst N,n,$(subst M,m,$(subst L,l,$(subst K,k,$(subst J,j,$(subst I,i,$(subst H,h,$(subst G,g,$(subst F,f,$(subst E,e,$(subst D,d,$(subst C,c,$(subst B,b,$(subst A,a,$(1)))))))))))))))))))))))))))
+
+CUSTOM_FLD_MAPPING = $(if $($(subst /,_,$(patsubst %/,%,$(subst //,/,$(subst \,/,$(call lc, $(1))))))), \
+ $($(subst /,_,$(patsubst %/,%,$(subst //,/,$(subst \,/,$(call lc, $(1))))))),\
+ $(if $(wildcard $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/$(strip $(CUSTOM_FLAVOR))),\
+ $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/$(strip $(CUSTOM_FLAVOR)),\
+ $(wildcard $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/DEFAULT)))
+
+
+AUTO_MERGE_FILE_CHECK = $(if $(shell $(LIST_DIR) "$(call CUSTOM_FLD_MAPPING,$(1))/$(2)" 2>$(DEV_NUL)), $(call CUSTOM_FLD_MAPPING,$(1))/$(2), \
+ $(if $(shell $(LIST_DIR) "$(1)/_Default_BB/$(strip $(PLATFORM))/$(2)" 2>$(DEV_NUL)), $(1)/_Default_BB/$(strip $(PLATFORM))/$(2),))
+# *************************************************************************
+# Project Variables
+# *************************************************************************
+
+include make/common/cmd_cfg.mak
+include ./tools/GMSL/gmsl
+include $(strip $(TMPDIR))/~compbld.tmp # Temporary build script created by build.mak
+include $(strip $(PROJECT_MAKEFILE))
+include make/common/buildconfig.mak
+-include $(strip $(TARGDIR))/MMI_DRV_DEFS.mak
+
+ifeq ($(filter $(strip $(COMPONENT)),$(COMPLIST)),)
+NO_PCIBT := TRUE
+endif
+
+ifeq ($(strip $(COMPILER)),GCC)
+ ADEFTrans = $(strip -defsym $(1)=$(strip $(2)))
+endif
+
+NEED_CHECK_DEPEND_LIST :=
+MODULE_DEFS := $(DEFINES) $(DRV_DEFS)
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ MODULE_DEFS := $(filter-out __MTK_TARGET__,$(MODULE_DEFS))
+ include $(strip $(MAKE_COMMON))/modisconfig.mak
+ NEED_CHECK_DEPEND_LIST += $(strip $(MAKE_COMMON))/modisconfig.mak
+endif
+
+include $(strip $(TMPDIR))/~categorymapping.mak
+
+MODULE_MAKEFILE := make/$($(call Upper,$(strip $(COMPONENT)))_MODULE_CATEGORY)/$(call Lower,$(strip $(COMPONENT))).mak
+include $(MODULE_MAKEFILE)
+NEED_CHECK_DEPEND_LIST += $(MODULE_MAKEFILE)
+
+CATEGORY_CONFIG_MAKEFILE := make/module/$($(call Upper,$(strip $(COMPONENT)))_CATEGORY)/$($(call Upper,$(strip $(COMPONENT)))_CATEGORY)_config.mak
+ifneq ($(strip $(NOT_USE_CATEGORY_INCLUDE)),TRUE)
+ include $(CATEGORY_CONFIG_MAKEFILE)
+ NEED_CHECK_DEPEND_LIST += $(CATEGORY_CONFIG_MAKEFILE)
+endif
+
+# *************************************************************************
+# Set SUFFIXES
+# *************************************************************************
+.SUFFIXES:
+.SUFFIXES: .obj .c .S .s .cpp .arm .ltp .det
+
+# *************************************************************************
+# Set PHONY
+# *************************************************************************
+.PHONY : update_lib update_dep
+
+# *************************************************************************
+# Set Shell
+# *************************************************************************
+#SHELL = $(ComSpec)
+
+# *************************************************************************
+# Construct $(COMPONENT) specific varible
+# *************************************************************************
+TARGLIB = $(subst \,/,$(strip $(COMPLIBDIR)))/lib$(strip $(COMPONENT)).a
+
+COMPOBJS_DIR = $(subst \,/,$(OBJSDIR))/$(strip $(COMPONENT))
+OBJ_ARCHIVE = $(OBJSDIR)/$(COMPONENT)/$(strip $(COMPONENT)).via
+OBJ_ARCHIVE_SORT = $(OBJSDIR)/$(COMPONENT)/$(strip $(COMPONENT))_sort.via
+
+TARGDEP = $(subst \,/,$(RULESDIR))/$(strip $(COMPONENT)).dep
+COMPDETS_DIR = $(subst \,/,$(RULESDIR))/$(strip $(COMPONENT))
+COMPVIA_DIR = $(TARGDIR)/via
+
+TARGDEP_LIST :=
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ MODULE_FOLDER = $(TARGDIR)/module
+else
+ MODULE_FOLDER = $(strip $(BUILDDIR))/$(strip $(PROJECT_NAME))/$(strip $(FLAVOR))/$(strip $(MODIS_UESIM))/_BUILD_MODULE
+endif
+
+ifdef $($(COMPONENT))
+ COMPONENT_FOLDER = $(MODULE_FOLDER)/$(strip $($(call Lower,$(COMPONENT))))/$(call Lower,$(strip $(COMPONENT)))
+else
+ COMPONENT_FOLDER = $(MODULE_FOLDER)/$(call Lower,$(strip $(COMPONENT)))
+endif
+COMPONENT_LOG = $(COMPONENT_FOLDER)/$(call Lower,$(strip $(COMPONENT)))
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ COMPLOGDIR := $(MODISLOGDIR)
+ TARGLIB := $(MODISPROJDIR)/$(strip $(COMPONENT))/$(strip $(MODIS_MODE))/$(strip $(COMPONENT)).lib
+ COMPOBJS_DIR := $(MODISPROJDIR)/$(strip $(COMPONENT))/$(strip $(MODIS_MODE))
+ OBJ_ARCHIVE := $(COMPONENT_FOLDER)/$(call Lower,$(strip $(COMPONENT)))_lib.via
+ OBJ_ARCHIVE_SORT := $(COMPONENT_FOLDER)/$(call Lower,$(strip $(COMPONENT)))_lib_sort.via
+ TARGDEP := $(MODIS_RULESDIR)/$(call Lower,$(strip $(COMPONENT))).dep
+ COMPDETS_DIR := $(MODIS_RULESDIR)/$(call Lower,$(strip $(COMPONENT)))
+ COMPVIA_DIR := $(COMPONENT_FOLDER)
+ ifeq ($(strip $(MODIS_COMPILER)),MINGW)
+ ifeq ($(strip $(MODIS_MODE)),Debug)
+ DEBUG_MODULES := ALL
+ else ifeq ($(strip $(MODIS_MODE)),Release)
+ NON_DEBUG_MODULES := ALL
+ endif
+ endif
+endif
+
+# *************************************************************************
+# Configure debug symbol compiler arguments
+# *************************************************************************
+ifndef CUSTOM_DEBUG_MODULES
+ CUSTOM_DEBUG_MODULES =
+endif
+
+ifndef CUSTOM_NON_DEBUG_MODULES
+ CUSTOM_NON_DEBUG_MODULES =
+endif
+
+ifneq ($(filter ALL,$(call Upper,$(CUSTOM_DEBUG_MODULES))),)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(COMPILER)),GCC)
+ CFLAGS += $(DWARF_FLAGS)
+ CPLUSFLAGS += $(DWARF_FLAGS)
+ endif
+ endif
+else
+ ifneq ($(filter $(call Upper,$(COMPONENT)),$(call Upper,$(CUSTOM_DEBUG_MODULES))),)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(COMPILER)),GCC)
+ CFLAGS += $(DWARF_FLAGS)
+ CPLUSFLAGS += $(DWARF_FLAGS)
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(filter $(call Upper,$(COMPONENT)),$(call Upper,$(DSP_ASE_MODULES))),)
+ ifneq ($(filter -mdsp -mdspr2,$(CFLAGS)),)
+ $(error Error: Cannot use -mdsp -mdspr2 in module makefile, please check !!)
+ endif
+endif
+
+ifneq ($(filter $(call Upper,$(COMPONENT)),$(call Upper,$(CUSTOM_NON_DEBUG_MODULES))),)
+ CFLAGS := $(filter-out -g -gtp -gdwarf-% -g1 -g2 -g3,$(strip $(CFLAGS)))
+ CPLUSFLAGS := $(filter-out -g -gtp -gdwarf-% -g1 -g2 -g3,$(strip $(CPLUSFLAGS)))
+endif
+
+ifneq ($(filter $(call Upper,$(COMPONENT)),$(call Upper,$(CUSTOM_NON_DEBUG_MODULES))),)
+ $(info Module $(COMPONENT) is in NON_DEBUG mode)
+else
+ ifneq ($(filter ALL,$(call Upper,$(CUSTOM_DEBUG_MODULES))),)
+ $(info Module $(COMPONENT) is in DEBUG mode)
+ else
+ ifneq ($(filter $(call Upper,$(COMPONENT)),$(call Upper,$(CUSTOM_DEBUG_MODULES))),)
+ $(info Module $(COMPONENT) is in DEBUG mode)
+ else
+ $(info Module $(COMPONENT) is in DEFAULT mode)
+ endif
+ endif
+endif
+
+# *************************************************************************
+# Construct the list of object dependencies
+# *************************************************************************
+# THUMB + Assembly
+SRCLIST0 := $(sort $(SRC_LIST) $(filter-out %.c %.C %.cpp,$(SRC_LIST_ARM)))
+# ARM
+SRCLIST5 := $(sort $(filter %.c %.C %.cpp,$(SRC_LIST_ARM)))
+# BOTH
+SRC_LIST := $(SRCLIST0) $(SRCLIST5)
+ifdef SRC_RULE_FLAG32
+ # SRC_RULE_FLAG32 means the asm file should be compiled by armasm using -32 flag
+ SRCLIST9 := $(foreach file,$(SRCLIST0),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_FLAG32))),$(file),))
+ SRCLIST0 := $(foreach file,$(SRCLIST0),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_FLAG32))),,$(file)))
+endif
+ifdef SRC_RULE_PREPROCESS
+ # SRC_RULE_PREPROCESS means the asm file needs to be preprocessed by armcc -E and then armasm
+ SRCLIST8 := $(foreach file,$(SRCLIST0),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_PREPROCESS))),$(file),))
+ SRCLIST0 := $(foreach file,$(SRCLIST0),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_PREPROCESS))),,$(file)))
+endif
+
+ifeq ($(filter __L1_KW_SCAN__,$(DEFINES)),)
+ifdef SRC_RULE_AUTOTCM
+ # SRC_RULE_AUTOTCM means the c file needs to be preprocessed by armcc -E and then auto tcm and then compiled by armcc -c
+ ifeq ($(strip $(SRC_RULE_AUTOTCM)),ALL)
+ SRCLIST1 := $(filter %.c %.C %.cpp,$(SRCLIST0))
+ SRCLIST0 := $(filter-out %.c %.C %.cpp,$(SRCLIST0))
+ SRCLIST6 := $(filter %.c %.C %.cpp,$(SRCLIST5))
+ SRCLIST5 := $(filter-out %.c %.C %.cpp,$(SRCLIST5))
+ else
+ SRCLIST1 := $(foreach file,$(SRCLIST0),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_AUTOTCM))),$(file),))
+ SRCLIST0 := $(foreach file,$(SRCLIST0),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_AUTOTCM))),,$(file)))
+ SRCLIST6 := $(foreach file,$(SRCLIST5),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_AUTOTCM))),$(file),))
+ SRCLIST5 := $(foreach file,$(SRCLIST5),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_AUTOTCM))),,$(file)))
+ endif
+endif
+ifdef SRC_RULE_AUTOAMMS_DRDI
+ ifeq ($(strip $(SRC_RULE_AUTOAMMS_DRDI)),ALL)
+ SRCLIST_AMMS_DRDI := $(filter %.c %.C %.cpp,$(SRC_LIST))
+ SRCLIST0 := $(filter-out %.c %.C %.cpp,$(SRCLIST0))
+ SRCLIST5 := $(filter-out %.c %.C %.cpp,$(SRCLIST5))
+ else
+ SRCLIST_AMMS_DRDI := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_AUTOAMMS_DRDI))),$(file),))
+ SRCLIST0 := $(foreach file,$(SRCLIST0),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_AUTOAMMS_DRDI))),,$(file)))
+ SRCLIST5 := $(foreach file,$(SRCLIST5),$(if $(filter $(notdir $(call Upper,$(file))) $(call Upper,$(file)),$(call Upper,$(SRC_RULE_AUTOAMMS_DRDI))),,$(file)))
+ endif
+endif
+endif
+
+CSRCS := $(filter %.c %.C %.cpp, $(SRCLIST0))
+CSRCS1 := $(filter %.c %.C %.cpp, $(SRCLIST1))
+CSRCS5 := $(filter %.c %.C %.cpp, $(SRCLIST5))
+CSRCS6 := $(filter %.c %.C %.cpp, $(SRCLIST6))
+ASRCS := $(filter %.s %.S %.arm, $(SRCLIST0))
+ASRCS1 := $(filter %.s %.S %.arm, $(SRCLIST9))
+ASRCS2 := $(filter %.s %.S %.arm, $(SRCLIST8))
+CSRCS_AMMS_DRDI := $(filter %.c %.C %.cpp, $(SRCLIST_AMMS_DRDI))
+
+INC_DIR += $(CATEGORY_INCDIRS)
+INCDIRS := $(INC_DIR) $(INCDIRS)
+INCDIRS := $(call uniq,$(INCDIRS))
+
+#CATEGORY_DEFS is from $category_config.mak
+DEFINES += $(CATEGORY_DEFS)
+#COMP_DEFS is from $module.mak
+DEFINES += $(COMP_DEFS)
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifdef MODIS_DIS_INC_PATH
+ INCDIRS := $(filter-out $(MODIS_DIS_INC_PATH),$(INCDIRS))
+ endif
+ ifdef MODIS_DIS_OPTION
+ DEFINES := $(filter-out $(MODIS_DIS_OPTION),$(DEFINES))
+ endif
+endif
+
+CINCDIRS = $(foreach inc, $(subst \,/,$(INCDIRS)),-I$(inc))
+CDEFS = $(foreach def, $(DEFINES),-D$(def))
+A_CDEFS = $(foreach def, $(strip $(DEFINES)),$(if $(findstring =,$(def)),-D$(def),-D$(def)=$(def)))
+
+#*************************************************************************
+# ccache excluding files
+#*************************************************************************
+CCACHE_EXCLUDE_FILE :=
+
+#*************************************************************************
+# folder path check
+#*************************************************************************
+ifneq ($(strip $(NO_PCIBT)),TRUE)
+ -include $(strip $(TMPDIR))/~buildinfo.tmp
+ -include $(strip $(MAKE_COMMON))/comp_pcibt.mak
+endif
+
+#check if non-4g module use the 4g src
+ifeq ($(filter $(COMPONENT),$(FOURG_COMP) $(FIVEG_COMP)),)
+ ifneq ($(filter protocol/lte_sec% l1/lte_sec% protocol/lte_sec%, $(SRC_LIST) $(INC_DIR)),)
+ $(error Error: Can not use lte_sec in $(COMPONENT) module SRC_LIST/INC_DIR, please check !!)
+ endif
+endif
+
+ifneq ($(filter $(COMPONENT),$(FOURG_COMP) $(FIVEG_COMP)),)
+CHK_LTE_COMP = TRUE
+endif
+
+# *************************************************************************
+# Set View Path
+# *************************************************************************
+vpath
+vpath %.obj $(COMPOBJS_DIR)
+vpath %.det $(COMPDETS_DIR)
+
+# XXX!!! To use predefine for assembler is a little difficult and
+# usually can be replaced with C sources.
+ADEFS = $(foreach def, $(COMP_DEFS),$(call ADEFTrans,$(def), TRUE))
+ADEFS += $(foreach def, $(strip $(COM_DEFS_FOR_$(strip $(PLATFORM)))),$(call ADEFTrans,$(def), TRUE))
+ifeq ($(strip $(COMPILER)),GCC)
+ ADEFS += --defsym __SRS_CPS_OPTIMIZE__=1
+endif
+
+ifneq ($(filter $(strip $(PLATFORM)),$(SV5_PLATFORM)),)
+ ADEFS += $(call ADEFTrans,__SV5_ENABLED__, TRUE)
+endif
+
+ifneq ($(filter __KAL_STACK_ISOLATION__,$(strip $(DEFINES))),)
+ ADEFS += $(call ADEFTrans,__KAL_STACK_ISOLATION__, TRUE)
+endif
+
+ifneq ($(filter __KAL_STACK_EXTENSIBLE__,$(strip $(DEFINES))),)
+ ADEFS += $(call ADEFTrans,__KAL_STACK_EXTENSIBLE__, TRUE)
+endif
+
+ifneq ($(filter __EVENT_BASED_TIMER__,$(strip $(DEFINES))),)
+ ADEFS += $(call ADEFTrans,__EVENT_BASED_TIMER__, TRUE)
+endif
+
+ifeq ($(PRODUCTION_RELEASE),TRUE)
+ ADEFS += $(call ADEFTrans,__PRODUCTION_RELEASE__, TRUE)
+endif
+
+ifeq ($(strip $(RTOS)),MERTOS)
+ ADEFS += $(call ADEFTrans,KAL_ON_MERTOS, TRUE)
+endif
+
+ifeq ($(strip $(CHIP_VERSION_CHECK)),TRUE)
+ ADEFS += $(call ADEFTrans,__CHIP_VERSION_CHECK__, TRUE)
+endif
+
+ifdef GADGET_SUPPORT
+ifneq ($(strip $(GADGET_SUPPORT)),NONE)
+ ADEFS += $(call ADEFTrans,__GADGET_SUPPORT__, TRUE)
+endif
+endif
+
+ifeq ($(strip $(KEYPAD_DEBUG_TRACE)),TRUE)
+ ADEFS += $(call ADEFTrans,__KEYPAD_DEBUG_TRACE__, TRUE)
+endif
+
+ifneq ($(filter $(strip $(PLATFORM)),$(ARM9_PLATFORM)),)
+ ADEFS += $(call ADEFTrans,ARM9_MMU, TRUE)
+endif
+
+ifneq ($(filter $(strip $(PLATFORM)),$(ARM11_PLATFORM)),)
+ ADEFS += $(call ADEFTrans,$(strip $(PLATFORM)), TRUE)
+ ADEFS += $(call ADEFTrans,ARM11_MMU, TRUE)
+ ADEFS += $(call ADEFTrans,__ARM1176__, TRUE)
+endif
+
+ifneq ($(filter $(strip $(PLATFORM)),$(CR4_PLATFORM)),)
+ ADEFS += $(call ADEFTrans,$(strip $(PLATFORM)), TRUE)
+ ADEFS += $(call ADEFTrans,CR4, TRUE)
+endif
+## end of ADEFS
+
+# if any component needs to interwork with other ARM mode components, it should
+
+# Compiler settings for specific components
+#the following will be removed after *.def are updated
+
+
+ifeq ($(strip $(COMPONENT)),dp_engine)
+ ifeq ($(strip $(COMPILER)),GCC)
+ CFLAGS += -O3
+ else
+ CFLAGS += -Otime -Ono_autoinline
+ endif
+endif
+
+ifeq ($(strip $(COMPILER)),GCC)
+ depend = -MMD -MP -MF
+ AS_depend = -MD
+else
+ depend = --depend
+ AS_depend = --depend
+endif
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(MODIS_COMPILER)),CLANG)
+ CFLAGS := $(CFLAGS_CLANG_MODIS)
+ ifeq ($(strip $(COMPONENT)),c2k_xsim_gw)
+ # One byte alignment is required for GKI send/receive signal operations.
+ # Only applies to c2k_xsim_gw because it is the only entry point for GKI operations for UESIM/Modis
+ CFLAGS += /Zp1
+ else
+ # Default alignment of 8 bytes
+ CFLAGS += /Zp8
+ endif
+ CPLUSFLAGS := $(CFLAGS)
+ LIB := $(LIB_MODIS)
+ else ifeq ($(strip $(MODIS_COMPILER)),MINGW)
+ CFLAGS := $(CFLAGS_MODIS)
+ CPLUSFLAGS := $(CFLAGS)
+ LIB := $(LIB_MODIS)
+ endif
+endif
+
+
+# Generate module information
+ifeq ($(strip $(GEN_MODULE_INFO)),TRUE)
+
+COMP_TEMP:=$(shell $(IF_NOT_EXIST) $(strip $(MODULE_FOLDER)) $(THEN) $(MKDIR) $(strip $(MODULE_FOLDER)) $(CMD_END))
+COMP_TEMP:=$(shell $(IF_EXIST) $(COMPONENT_LOG).lis $(THEN) $(DEL_FILE) $(COMPONENT_LOG).lis $(CMD_END))
+COMP_TEMP:=$(shell $(IF_EXIST) $(COMPONENT_LOG).ade $(THEN) $(DEL_FILE) $(COMPONENT_LOG).ade $(CMD_END))
+COMP_TEMP:=$(shell $(IF_EXIST) $(COMPONENT_LOG).inc $(THEN) $(DEL_FILE) $(COMPONENT_LOG).inc $(CMD_END))
+COMP_TEMP:=$(shell $(IF_NOT_EXIST) $(strip $(COMPONENT_FOLDER)) $(THEN) $(MKDIR) $(strip $(COMPONENT_FOLDER)) $(CMD_END))
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+COMP_TEMP:=$(shell $(IF_EXIST) $(COMPONENT_LOG).def.bak $(THEN) $(DEL_FILE) $(COMPONENT_LOG).def.bak $(CMD_END))
+COMP_TEMP:=$(shell $(IF_EXIST) $(COMPONENT_LOG).def $(THEN) mv $(COMPONENT_LOG).def $(COMPONENT_LOG).def.bak $(CMD_END))
+endif
+
+ifneq ($(words $(SRC_LIST)),0)
+ ifeq ($(call lte,$(call strlen,$(SRC_LIST)),32000),T)
+ COMP_TEMP:=$(shell perl ./tools/echoLongString4.pl $(COMPONENT_LOG).lis $(SRC_LIST))
+ COMP_TEMP:=$(shell perl ./tools/lnitem.pl $(COMPONENT_LOG).lis)
+ else
+ COMP_TEMP:=$(foreach com,$(SRC_LIST),$(shell echo $(com)>>$(COMPONENT_LOG).lis))
+ endif
+else
+ COMP_TEMP:=$(shell $(ECHO) "" >$(COMPONENT_LOG).lis)
+endif
+
+#remove object files if not exist in SRC_LIST
+ifneq ($(wildcard $(COMPOBJS_DIR)),)
+LIST_OBJ_FINAL:=$(filter-out $(basename $(notdir $(SRC_LIST))),$(basename $(notdir $(shell $(LIST_DIR) -n "$(COMPOBJS_DIR)/*.obj"))))
+ifneq ($(words $(LIST_OBJ_FINAL)),0)
+ COMP_TEMP:=$(shell $(IF_EXIST) $(TARGLIB) $(THEN) $(DEL_FILE) $(TARGLIB) $(CMD_END))
+ COMP_TEMP:=$(foreach com,$(LIST_OBJ_FINAL),$(shell $(IF_EXIST) $(COMPOBJS_DIR)/$(com).obj $(THEN) $(DEL_FILE) $(COMPOBJS_DIR)/$(com).obj $(CMD_END)))
+ COMP_TEMP:=$(foreach com,$(LIST_OBJ_FINAL),$(shell $(IF_EXIST) $(COMPDETS_DIR)/$(com).d $(THEN) $(DEL_FILE) $(COMPDETS_DIR)/$(com).d $(CMD_END)))
+endif
+endif
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(words $(INCDIRS)),0)
+ ifeq ($(call lte,$(call strlen,$(INCDIRS)),32000),T)
+ COMP_TEMP:=$(shell $(STRCMPEX) abc abc e $(COMPONENT_LOG).inc $(subst \,/,$(INCDIRS)))
+ COMP_TEMP:=$(shell perl ./tools/lnitem.pl $(COMPONENT_LOG).inc)
+ else
+ COMP_TEMP:=$(foreach com,$(INCDIRS),$(shell echo $(subst \,/,$(com)) >>$(COMPONENT_LOG).inc))
+ endif
+ else
+ COMP_TEMP:=$(shell $(ECHO) "" >$(COMPONENT_LOG).inc)
+ endif
+else
+ ifneq ($(words $(INC_DIR)),0)
+ ifeq ($(call lte,$(call strlen,$(INC_DIR)),32000),T)
+ ifeq ($(strip $(COMPILER)),GCC)
+ COMP_TEMP:=$(shell $(STRCMPEX) abc abc e $(COMPONENT_LOG).inc $(subst \,/,$(INC_DIR)))
+ else
+ COMP_TEMP:=$(shell $(STRCMPEX) abc abc e $(COMPONENT_LOG).inc $(INC_DIR))
+ endif
+ COMP_TEMP:=$(shell perl ./tools/lnitem.pl $(COMPONENT_LOG).inc)
+ else
+ ifeq ($(strip $(COMPILER)),GCC)
+ COMP_TEMP:=$(foreach com,$(INC_DIR),$(shell echo $(subst \,/,$(com)) >>$(COMPONENT_LOG).inc))
+ else
+ COMP_TEMP:=$(foreach com,$(INC_DIR),$(shell echo $(com) >>$(COMPONENT_LOG).inc))
+ endif
+ endif
+ else
+ COMP_TEMP:=$(shell $(ECHO) "" >$(COMPONENT_LOG).inc)
+ endif
+endif
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(words $(DEFINES)),0)
+ ifeq ($(call lte,$(call strlen,$(DEFINES)),32000),T)
+ COMP_TEMP:=$(shell perl ./tools/echoLongString4.pl $(COMPONENT_LOG).def $(DEFINES))
+ COMP_TEMP:=$(shell perl ./tools/lnitem.pl $(COMPONENT_LOG).def)
+ else
+ COMP_TEMP:=$(foreach def,$(DEFINES),$(shell echo $(def) >>$(COMPONENT_LOG).def))
+ endif
+ else
+ COMP_TEMP:=$(shell $(ECHO) "" >$(COMPONENT_LOG).def)
+ endif
+else
+ ifneq ($(words $(COMP_DEFS)),0)
+ COMP_TEMP:=$(shell perl ./tools/echoLongString4.pl $(COMPONENT_LOG).def $(COMP_DEFS))
+ COMP_TEMP:=$(shell perl ./tools/lnitem.pl $(COMPONENT_LOG).def)
+ else
+ COMP_TEMP:=$(shell $(ECHO) "" >$(COMPONENT_LOG).def)
+ endif
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COMP_TEMP:=$(shell perl ./tools/echoLongString5.pl $(COMPONENT_LOG).ade ADEFS $(ADEFS))
+endif
+
+else ifeq ($(filter $(MAKECMDGOALS),setup_env),)
+ SRC_LIST_OUT := $(filter-out %.rec %.ico %.rc %.bmp %.h,$(SRC_LIST))
+ SRC_LIST_TMP := $(foreach file,$(sort $(call Lower,$(SRC_LIST_OUT))),$(if $(filter $(basename $(notdir $(file))),$(basename $(notdir $(filter-out $(file),$(call Lower,$(SRC_LIST_OUT)))))),$(file),))
+ ifneq ($(strip $(SRC_LIST_TMP)),)
+ $(info The following files are conflicted in SRC_LIST from $(strip $(COMPONENT)).mak:)
+ $(info $(strip $(SRC_LIST_TMP)))
+ $(error SRC_LIST)
+ endif
+endif
+# end
+
+# *************************************************************************
+# Library Targets
+# *************************************************************************
+ifneq ($(strip $(DETERMINISTIC)),TRUE)
+ARCHIVE_OPTION := -r
+CLANG_FOR_DETERMINISTIC :=
+else
+ARCHIVE_OPTION := -rD
+CLANG_FOR_DETERMINISTIC := /Brepro
+endif
+
+update_lib: $(TARGLIB)
+# @$(IF_EXIST) $(COMPDETS_DIR) $(THEN) $(DEL_DIR) $(COMPDETS_DIR) $(CMD_END)
+$(TARGLIB):
+ # If library for customer release exists.
+ # Copy and update it or create a new one
+ # mbis time probe
+ifeq ($(strip $(MBIS_EN_OBJ_LOG)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,L," >> $(COMPLOGDIR)/mbis/$(strip $(COMPONENT))/$(basename $(notdir $@))".mbis"
+endif
+ @$(IF_EXIST) $(TARGLIB) $(THEN) ($(DEL_FILE) $(TARGLIB)) $(CMD_END)
+ @$(IF_EXIST) $(OBJ_ARCHIVE) $(THEN) ($(DEL_FILE) $(OBJ_ARCHIVE)) $(CMD_END)
+ @$(IF_EXIST) $(OBJ_ARCHIVE_SORT) $(THEN) ($(DEL_FILE) $(OBJ_ARCHIVE_SORT)) $(CMD_END)
+
+ @$(FOR) $(F_OPT) $(DECLARE_VAR)i $(IN) `$(LIST_DIR) -n "$(COMPOBJS_DIR)/*.obj"` \
+ $(DO) \
+ $(ECHO) -n $(PRE_VAR)i>>$(OBJ_ARCHIVE)\
+ $(DONE)
+ @perl ./tools/sortobj.pl $(OBJ_ARCHIVE) $(OBJ_ARCHIVE_SORT)
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(COMPILER)),GCC)
+ @$(strip $(LIB)) $(strip $(ARCHIVE_OPTION)) $(TARGLIB) $(VIA)$(OBJ_ARCHIVE_SORT)
+ else
+ @$(strip $(LIB)) -create $(TARGLIB) $(VIA)$(OBJ_ARCHIVE_SORT)
+ endif
+else
+ ifeq ($(strip $(MODIS_COMPILER)),MINGW)
+ @$(strip $(LIB)) $(strip $(ARCHIVE_OPTION)) $(TARGLIB) $(VIA)$(OBJ_ARCHIVE_SORT)
+ endif
+ ifeq ($(strip $(MODIS_COMPILER)),CLANG)
+ @$(strip $(LIB)) /nologo /out:$(TARGLIB) $(VIA)$(OBJ_ARCHIVE_SORT)
+ endif
+endif
+
+ @$(ECHO) -n "$(TARGLIB) is updated"
+
+ @$(IF_EXIST) $(OBJ_ARCHIVE) $(THEN) ($(DEL_FILE) $(OBJ_ARCHIVE)) $(CMD_END)
+ @$(IF_EXIST) $(OBJ_ARCHIVE_SORT) $(THEN) ($(DEL_FILE) $(OBJ_ARCHIVE_SORT)) $(CMD_END)
+
+ifeq ($(filter remake remake_modis,$(strip $(ACTION))),)
+ ifneq ($(strip $(NO_DEP)),TRUE)
+ @$(IF_EXIST) $(COMPDETS_DIR) $(THEN) perl ./tools/pack_dep_gcc.pl $(TARGDEP) $(COMPDETS_DIR) $(HTOGETHER) $(strip $(HEADER_TEMP)) $(CMD_END)
+ endif
+ ifneq ($(PCIBT_ACTION_LIST),)
+ $(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) $(MODULE_MAKEFILE) $(COMPDETS_DIR) $(PCIBT_ACTION_LIST)
+ endif
+endif
+# @$(IF_EXIST) $(COMPDETS_DIR) $(THEN)$(DEL_DIR) $(COMPDETS_DIR) $(CMD_END)
+ # mbis time probe
+ifeq ($(strip $(MBIS_EN_OBJ_LOG)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,L," >> $(COMPLOGDIR)/mbis/$(strip $(COMPONENT))/$(basename $(notdir $@))".mbis"
+endif
+
+RUN_SETUP_ENV := TRUE
+ifeq ($(strip $(GEN_MODULE_INFO)),TRUE)
+ RUN_SETUP_ENV := FALSE
+endif
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(MODIS_COMPILER)),VC2008)
+ RUN_SETUP_ENV := FALSE
+ endif
+endif
+
+setup_env: gen_setup_env
+gen_setup_env:
+ifeq ($(strip $(RUN_SETUP_ENV)),TRUE)
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_EXIST) $(COMPVIA_DIR)/$(strip $(COMPONENT)).via $(THEN) mv $(COMPVIA_DIR)/$(strip $(COMPONENT)).via $(COMPVIA_DIR)/$(strip $(COMPONENT)).via_bak $(CMD_END)
+ @$(IF_EXIST) $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via $(THEN) mv $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via_bak $(CMD_END)
+endif
+
+ @$(IF_NOT_EXIST) $(COMPVIA_DIR) $(THEN) $(MKDIR) $(COMPVIA_DIR)/$(strip $(COMPONENT)) $(CMD_END)
+ @$(STRCMPEX) abc abc e $(COMPVIA_DIR)/$(strip $(COMPONENT)).via $(CDEFS)
+ @$(STRCMPEX) abc abc e $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via $(CINCDIRS)
+
+ifneq ($(strip $(OS_VERSION)),MSWin32)
+ @$(IF_EXIST) $(COMPVIA_DIR)/$(strip $(COMPONENT)).via_bak $(THEN) \
+ (($(COMPARE) $(COMPVIA_DIR)/$(strip $(COMPONENT)).via_bak $(COMPVIA_DIR)/$(strip $(COMPONENT)).via >$(DEV_NUL) 2>&1) $(WITH) \
+ ($(IF_ERR_FALSE) $(THEN) \
+ (touch -r $(COMPVIA_DIR)/$(strip $(COMPONENT)).via_bak $(COMPVIA_DIR)/$(strip $(COMPONENT)).via >$(DEV_NUL)) $(AND) \
+ (echo $(COMPVIA_DIR)/$(strip $(COMPONENT)).via timestampe is changed from $(COMPVIA_DIR)/$(strip $(COMPONENT)).via_bak!) \
+ $(CMD_END))) $(AND) \
+ ($(DEL_FILE) $(COMPVIA_DIR)/$(strip $(COMPONENT)).via_bak) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via_bak $(THEN) \
+ (($(COMPARE) $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via_bak $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via >$(DEV_NUL) 2>&1) $(WITH) \
+ ($(IF_ERR_FALSE) $(THEN) \
+ (touch -r $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via_bak $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via >$(DEV_NUL)) $(AND) \
+ (echo $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via timestampe is changed from $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via_bak!) \
+ $(CMD_END))) $(AND) \
+ ($(DEL_FILE) $(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via_bak) \
+ $(CMD_END)
+endif
+
+ifeq ($(strip $(OS_VERSION)),MSWin32)
+ @tools\warp.exe $(subst /,\,$(COMPVIA_DIR))\$(strip $(COMPONENT)).via
+ @tools\warp.exe $(subst /,\,$(COMPVIA_DIR))\$(strip $(COMPONENT))_inc.via
+endif
+ @$(IF_NOT_EXIST) $(COMPLOGDIR)/$(strip $(COMPONENT)) $(THEN) $(MKDIR) $(COMPLOGDIR)/$(strip $(COMPONENT)) $(CMD_END)
+ @$(IF_NOT_EXIST) $(COMPDETS_DIR) $(THEN) $(MKDIR) $(COMPDETS_DIR) $(CMD_END)
+ @$(IF_NOT_EXIST) $(COMPOBJS_DIR) $(THEN) $(MKDIR) $(COMPOBJS_DIR) $(CMD_END)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(filter __L1_KW_SCAN__,$(DEFINES)),)
+ ifdef SRC_RULE_AUTOTCM
+ ifneq ($(strip $(SRC_RULE_AUTOTCM)),)
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/$(strip $(COMPONENT))_auto_tcm.log $(THEN) $(DEL_FILE) $(strip $(COMPLOGDIR))/$(strip $(COMPONENT))_auto_tcm.log $(CMD_END)
+ @$(IF_NOT_EXIST) $(PROJ_INTERNAL_DIR)/auto_tcm/$(strip $(COMPONENT)) $(THEN) $(MKDIR) $(PROJ_INTERNAL_DIR)/auto_tcm/$(strip $(COMPONENT)) $(CMD_END)
+ endif
+ endif
+ ifdef SRC_RULE_AUTOAMMS_DRDI
+ ifneq ($(strip $(SRC_RULE_AUTOAMMS_DRDI)),)
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/$(strip $(COMPONENT))_auto_amms_drdi.log $(THEN) $(DEL_FILE) $(strip $(COMPLOGDIR))/$(strip $(COMPONENT))_auto_amms_drdi.log $(CMD_END)
+ @$(IF_NOT_EXIST) $(PROJ_INTERNAL_DIR)/auto_amms/$(strip $(COMPONENT)) $(THEN) $(MKDIR) $(PROJ_INTERNAL_DIR)/auto_amms/$(strip $(COMPONENT)) $(CMD_END)
+ endif
+ endif
+ endif
+ endif
+ # generate vcxproj for modis/uesim.
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ perl ./$(strip $(MODISDIR))/createMoDIS.pl "$(strip $(PROJECT_MAKEFILE))" $(MODIS_UESIM) "$(strip $(COMPONENT))"
+ endif
+
+else
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ @echo Generating $(COMPONENT) information is done.
+ else
+ @echo $(COMPONENT) MoDIS module setup is done.
+ endif
+endif
+ifneq ($(PCIBT_ACTION_LIST),)
+ ifeq ($(strip $(RUN_SETUP_ENV)),TRUE)
+ $(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) $(MODULE_MAKEFILE) $(COMPONENT_LOG).lis,$(COMPVIA_DIR)/$(strip $(COMPONENT))_inc.via $(PCIBT_ACTION_LIST)
+ else
+ $(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) $(MODULE_MAKEFILE) $(COMPONENT_LOG).lis,$(COMPONENT_LOG).inc $(PCIBT_ACTION_LIST)
+ endif
+endif
+
+# *************************************************************************
+# Dependency Targets
+# *************************************************************************
+update_dep: $(TARGDEP)
+ #@$(IF_EXIST) $(COMPDETS_DIR) $(THEN) $(DEL_DIR) $(COMPDETS_DIR) $(CMD_END)
+
+$(TARGDEP):
+ # mbis time probe
+ifeq ($(strip $(MBIS_EN_OBJ_LOG)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,D," >> $(COMPLOGDIR)/mbis/$(strip $(COMPONENT))/$(basename $(notdir $@))".mbis"
+endif
+ @$(IF_EXIST) $(COMPDETS_DIR) $(THEN) perl ./tools/pack_dep_gcc.pl $(TARGDEP) $(COMPDETS_DIR) $(HTOGETHER) $(strip $(HEADER_TEMP)) $(CMD_END)
+ #@$(IF_EXIST) $(COMPDETS_DIR) $(THEN) $(DEL_DIR) $(COMPDETS_DIR) $(CMD_END)
+ifneq ($(PCIBT_ACTION_LIST),)
+ $(PCIBT_SCRIPT_CMD) $(CHK_LTE_COMP) $(MODULE_MAKEFILE) $(TARGDEP) $(PCIBT_ACTION_LIST)
+endif
+ # mbis time probe
+ifeq ($(strip $(MBIS_EN_OBJ_LOG)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,D," >> $(COMPLOGDIR)/mbis/$(strip $(COMPONENT))/$(basename $(notdir $@))".mbis"
+endif
+
+# *************************************************************************
+# Component Targets
+# *************************************************************************
+# %.c: %.txt
+define target_adt_codegen
+$(2): $(1) $(3)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Processing for ADT codegen $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$(IF_NOT_EXIST) $$(strip $$(ADT_RULESDIR))/$$(strip $$(COMPONENT)) $(THEN) $(MKDIR) $$(strip $$(ADT_RULESDIR))/$$(strip $$(COMPONENT)) $(CMD_END)
+ @perl $(3) $(1) $$(strip $$(ADT_RULESDIR))/$$(strip $$(COMPONENT))/$(4).c $$(strip $$(ADT_RULESDIR))/$$(strip $$(COMPONENT))/$(4).h >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.obj: %.c
+# %.obj: %.cpp
+define target_compile_c_obj
+ifneq ($(filter update_lib,$(MAKECMDGOALS)),)
+include $$(wildcard $$(COMPDETS_DIR)/$$(basename $$(notdir $(1))).d)
+endif
+ifeq ($$(strip $$(SMART_CHECK)),TRUE)
+$(2): $$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via
+endif
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ifeq ($$(strip $$(SMART_CHECK)),TRUE)
+ @echo [SMART LOG] $$@ target is triggered by: $$?
+endif
+ @perl ./tools/chk_dsp_ase.pl "$$(strip $$(COMPONENT))" "$$(strip $$(DSP_ASE_MODULES))" "$$($(4))"
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ifeq ($$(strip $$(ACTION)),remake)
+ ifndef CCACHE_DIR
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -c $$($(4)) -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -c $$($(4)) -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -c $$($(4)) -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -c $$($(4)) -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+ endif
+else
+ ifndef CCACHE_DIR
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -c $$($(4)) $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -c $$($(4)) $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -c $$($(4)) $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -c $$($(4)) $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+ endif
+ @$$(ECHO) "$(1):" >> "$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d"
+endif
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.obj: %.c (tcm)
+# %.obj: %.cpp (tcm)
+define target_compile1_c_obj
+ifneq ($(filter update_lib,$(MAKECMDGOALS)),)
+include $$(wildcard $$(COMPDETS_DIR)/$$(basename $$(notdir $(1))).d)
+endif
+ifeq ($$(strip $$(SMART_CHECK)),TRUE)
+$(2): $$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via
+endif
+$(2): $(1) $$(NEED_CHECK_DEPEND_LIST) ./tools/auto_tcm_attribute.pl $$(filter-out NO_LIST,$$(TARGET_AUTOTCM_LIST))
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Pre-compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(IF_EXIST) $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$(THEN) $$(DEL_FILE) $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$(CMD_END)
+ifeq ($$(strip $$(ACTION)),remake)
+ ifndef CCACHE_DIR
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -o $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -o $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -o $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -o $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+ endif
+else
+ ifndef CCACHE_DIR
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+ endif
+ @$$(ECHO) "$(1):" >> "$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d"
+endif
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ifneq ($$(strip $$(MODIS_CONFIG)),TRUE)
+ifneq ($$(filter-out NO_LIST,$$(TARGET_AUTOTCM_LIST)),)
+# writing the same log at the same time is protected by OS
+ @perl ./tools/auto_tcm_attribute.pl $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$(TARGET_AUTOTCM_LIST) $$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))_auto_tcm.log >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log 2>&1
+endif
+endif
+ @echo $(3) -c $$($(4)) -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c
+ @$(3) -c $$($(4)) -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$(PROJ_INTERNAL_DIR)/auto_tcm/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.obj: %.c (amms_drdi)
+# %.obj: %.cpp (amms_drdi)
+define target_compile_c_obj_amms_drdi
+ifneq ($(filter update_lib,$(MAKECMDGOALS)),)
+include $$(wildcard $$(COMPDETS_DIR)/$$(basename $$(notdir $(1))).d)
+endif
+ifeq ($$(strip $$(SMART_CHECK)),TRUE)
+$(2): $$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via
+endif
+$(2): $(1) $$(NEED_CHECK_DEPEND_LIST) ./tools/auto_amms_drdi_attribute.pl $$(filter-out NO_LIST,$$(TARGET_AMMS_DRDI_LIST))
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Pre-compiling $$< to $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(IF_EXIST) $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$(THEN) $$(DEL_FILE) $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$(CMD_END)
+ifeq ($$(strip $$(ACTION)),remake)
+ ifndef CCACHE_DIR
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -o $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -o $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -o $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -o $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+ endif
+else
+ ifndef CCACHE_DIR
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -E -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+ endif
+ @$$(ECHO) "$(1):" >> "$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d"
+endif
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ifneq ($$(strip $$(MODIS_CONFIG)),TRUE)
+ifneq ($$(filter-out NO_LIST,$$(TARGET_AMMS_DRDI_LIST)),)
+# writing the same log at the same time is protected by OS
+ @perl ./tools/auto_amms_drdi_attribute.pl $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c $$(TARGET_AMMS_DRDI_LIST) $$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))_auto_amms_drdi.log >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log 2>&1
+endif
+endif
+ @echo $(3) -c $$($(4)) -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c
+ @$(3) -c $$($(4)) -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$(PROJ_INTERNAL_DIR)/auto_amms/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).c 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.det: %.c
+# %.det: %.cpp
+define target_scan_c_det
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Pre-compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -M $$< >$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.obj: %.s
+define target_compile_asm_obj
+ifneq ($(filter update_lib,$(MAKECMDGOALS)),)
+include $$(wildcard $$(COMPDETS_DIR)/$$(basename $$(notdir $(1))).d)
+endif
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ifeq ($$(strip $$(ACTION)),remake)
+ $$(ASM) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(AFLAGS) $$(EXTRA_AFLAGS) $$(ADEFS) $$< -o $$(COMPOBJS_DIR)/$$(notdir $$@) 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+else
+ $$(ASM) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(AFLAGS) $$(EXTRA_AFLAGS) $$(ADEFS) $$< -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(AS_depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(notdir $$@) 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+
+ @$$(ECHO) "$(1):" >> "$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d"
+endif
+# mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.det: %.s
+define target_scan_asm_det
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Pre-compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.obj: %.s (-32)
+define target_compile1_asm_obj
+ifneq ($(filter update_lib,$(MAKECMDGOALS)),)
+include $$(wildcard $$(COMPDETS_DIR)/$$(basename $$(notdir $(1))).d)
+endif
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ifeq ($$(strip $$(ACTION)),remake)
+ ifeq ($$(strip $$(COMPILER)),GCC)
+ $$(ASM) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(AFLAGS) $$(EXTRA_AFLAGS) $$(ADEFS) -mapcs-32 $$< -o $$(COMPOBJS_DIR)/$$(notdir $$@) 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+else
+ ifeq ($$(strip $$(COMPILER)),GCC)
+ $$(ASM) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(AFLAGS) $$(EXTRA_AFLAGS) $$(ADEFS) -mapcs-32 $$< -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(AS_depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(notdir $$@) 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(ECHO) "$(1):" >> "$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d"
+ endif
+endif
+# mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.obj: %.s (preprocess)
+define target_compile2_asm_obj
+ifneq ($(filter update_lib,$(MAKECMDGOALS)),)
+include $$(wildcard $$(COMPDETS_DIR)/$$(basename $$(notdir $(1))).d)
+endif
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Pre-compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(STRCMPEX) abc abc e $$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(A_CDEFS) -D$$(strip $$(PLATFORM))_$$(strip $$(CHIP_VER))=$$(strip $$(PLATFORM))_$$(strip $$(CHIP_VER))
+ifeq ($$(strip $$(OS_VERSION)),MSWin32)
+ @tools\warp.exe $$(COMPVIA_DIR)\$$(basename $$(notdir $$@))_det.via
+endif
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s $$(CMD_END)
+ifeq ($$(strip $$(ACTION)),remake)
+ ifndef CCACHE_DIR
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+ endif
+else
+ ifndef CCACHE_DIR
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+ endif
+endif
+ @echo Compiling $$< ... >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ifeq ($$(strip $$(ACTION)),remake)
+ $$(ASM) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(AFLAGS) $$(EXTRA_AFLAGS) $$(ADEFS) $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s -o $$(COMPOBJS_DIR)/$$(notdir $$@) 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+else
+ $$(ASM) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(AFLAGS) $$(EXTRA_AFLAGS) $$(ADEFS) $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s -o $$(COMPOBJS_DIR)/$$(notdir $$@) 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(ECHO) "$(1):" >> "$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d"
+endif
+
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.det: %.s (preprocess)
+define target_scan2_asm_det
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Pre-compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(STRCMPEX) abc abc e $$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(A_CDEFS) -D$$(strip $$(PLATFORM))_$$(strip $$(CHIP_VER))=$$(strip $$(PLATFORM))_$$(strip $$(CHIP_VER)) $$(CINCDIRS)
+ifeq ($$(strip $$(OS_VERSION)),MSWin32)
+ @tools\warp.exe $$(COMPVIA_DIR)\$$(basename $$(notdir $$@))_det.via
+endif
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s $$(CMD_END)
+ifndef CCACHE_DIR
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+endif
+ @$$(IF_EXIST) $$(COMPDETS_DIR)/~$$(basename $$(notdir $$@)).d $$(THEN) \
+ $$(CAT) $$(COMPDETS_DIR)/~$$(basename $$(notdir $$@)).d | $$(GREP_V) "$$(basename $$(notdir $$@)).s" >>$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d $$(WITH) (exit 0)\
+ $$(CMD_END)
+ @$$(IF_EXIST) $$(COMPDETS_DIR)/~$$(basename $$(notdir $$@)).d $$(THEN) $$(DEL_FILE) $$(COMPDETS_DIR)/~$$(basename $$(notdir $$@)).d $$(CMD_END)
+
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.obj: %.s (preprocess and -32)
+define target_compile3_asm_obj
+ifneq ($(filter update_lib,$(MAKECMDGOALS)),)
+include $$(wildcard $$(COMPDETS_DIR)/$$(basename $$(notdir $(1))).d)
+endif
+$(2): $(1)
+# mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Pre-compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(STRCMPEX) abc abc e $$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(A_CDEFS) -D$$(strip $$(PLATFORM))_$$(strip $$(CHIP_VER))=$$(strip $$(PLATFORM))_$$(strip $$(CHIP_VER))
+ifeq ($$(strip $$(OS_VERSION)),MSWin32)
+ @tools\warp.exe $$(COMPVIA_DIR)\$$(basename $$(notdir $$@))_det.via
+endif
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s $$(CMD_END)
+ifeq ($$(strip $$(ACTION)),remake)
+ ifndef CCACHE_DIR
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+ endif
+else
+ ifndef CCACHE_DIR
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($(filter $(1),$(strip $(CCACHE_EXCLUDE_FILE))),)
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ ifneq ($$(strip $$(CUSTOM_RELEASE)),FALSE)
+ $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ $(CCACHE) $$(CC) $$(VIA)$$(COMPVIA_DIR)/$$(basename $$(notdir $$@))_det.via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(ASM_CPPFLAGS) $$(AFLAGS) -E $$< -MT '$$(COMPOBJS_DIR)/$$(notdir $$@)' $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ endif
+ endif
+endif
+ @echo Compiling $$< ... >>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ifeq ($$(strip $$(ACTION)),remake)
+ ifeq ($$(strip $$(COMPILER)),GCC)
+ $$(ASM) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(AFLAGS) $$(EXTRA_AFLAGS) $$(ADEFS) -mapcs-32 $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s -o $$(COMPOBJS_DIR)/$$(notdir $$@) 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ @$$(ASM) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(AFLAGS) $$(EXTRA_AFLAGS) $$(ADEFS) -32 $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s -o $$(COMPOBJS_DIR)/$$(notdir $$@) 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+else
+ ifeq ($$(strip $$(COMPILER)),GCC)
+ $$(ASM) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(AFLAGS) $$(EXTRA_AFLAGS) $$(ADEFS) -mapcs-32 $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s -o $$(COMPOBJS_DIR)/$$(notdir $$@) 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ else
+ @$$(ASM) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via $$(AFLAGS) $$(EXTRA_AFLAGS) $$(ADEFS) -32 $$(COMPOBJS_DIR)/$$(basename $$(notdir $$@)).s -o $$(COMPOBJS_DIR)/$$(notdir $$@) 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ endif
+ @$$(ECHO) "$(1):" >> "$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d"
+endif
+
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.obj: %.c (MoDIS Clang)
+define modis_clang_compile_c_obj
+ifneq ($(filter update_lib,$(MAKECMDGOALS)),)
+include $$(wildcard $$(COMPDETS_DIR)/$$(basename $$(notdir $(1))).d)
+endif
+ifeq ($$(strip $$(SMART_CHECK)),TRUE)
+$(2): $$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via
+endif
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ifeq ($$(strip $$(SMART_CHECK)),TRUE)
+ @echo [SMART LOG] $$@ target is triggered by: $$?
+endif
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ifeq ($$(filter remake_modis,$$(strip $$(ACTION))),)
+ @echo "$$(strip $$(ClangDir))/bin/clang $$(CFLAGS_CLANG_MODIS_DEP_OPTS) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -MM -MP -MT $$(COMPOBJS_DIR)/$$(notdir $$@) $$< -MF $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d"
+ @$$(strip $$(ClangDir))/bin/clang $$(CFLAGS_CLANG_MODIS_DEP_OPTS) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -MM -MP -MT $$(COMPOBJS_DIR)/$$(notdir $$@) $$< -MF $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d
+ @$$(ECHO) "$(1):" >> "$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d"
+endif
+ @if [[ "$$(LLVM_COVERAGE)" == "" || "$$<" == */ut/* || $$< == */it/* || $$< == */_BUILD_XGEN/* || $$< == *gtest* ]]; then \
+ echo "$(3) $$(strip $$(CLANG_FOR_DETERMINISTIC)) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via /c $$(CFLAGS) /Fo$$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log" &&\
+ $(3) $$(strip $$(CLANG_FOR_DETERMINISTIC)) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via /c $$(CFLAGS) /Fo$$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log; \
+ else \
+ echo "$(3) $$(strip $$(CLANG_FOR_DETERMINISTIC)) -fprofile-instr-generate -Xclang -fcoverage-mapping $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via /c $$(CFLAGS) /Fo$$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log" &&\
+ $(3) $$(strip $$(CLANG_FOR_DETERMINISTIC)) -fprofile-instr-generate -Xclang -fcoverage-mapping $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via /c $$(CFLAGS) /Fo$$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log; \
+ fi
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+
+
+# %.det: %.c (MoDIS Clang)
+define modis_clang_scan_c_det
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Pre-compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ @$(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -M $$< >$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+# %.obj: %.c (MoDIS)
+define modis_compile_c_obj
+include $$(wildcard $$(COMPDETS_DIR)/$$(basename $$(notdir $(1))).d)
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ifeq ($$(strip $$(ACTION)),remake)
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -c $$(CFLAGS) -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+else
+ $(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -c $$(CFLAGS) $$(depend) $$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d -o $$(COMPOBJS_DIR)/$$(notdir $$@) $$< 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(ECHO) "$(1):" >> "$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d"
+endif
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+
+# %.det: %.c (MoDIS)
+define modis_scan_c_det
+$(2): $(1)
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_S,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+ @echo Pre-compiling $$< ... >$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ @$$(IF_EXIST) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(THEN) $$(DEL_FILE) $$(COMPOBJS_DIR)/$$(notdir $$@) $$(CMD_END)
+ @$(3) $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT)).via $$(VIA)$$(COMPVIA_DIR)/$$(strip $$(COMPONENT))_inc.via -M $$< >$$(COMPDETS_DIR)/$$(basename $$(notdir $$@)).d 2>>$$(strip $$(COMPLOGDIR))/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@)).log
+ # mbis time probe
+ifeq ($$(strip $$(MBIS_EN_OBJ_LOG)),TRUE)
+ @$$(ECHO) -n -t "T_E,$$(@F),O," >> $$(strip $$(COMPLOGDIR))/mbis/$$(strip $$(COMPONENT))/$$(basename $$(notdir $$@))".mbis"
+endif
+endef
+
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(filter __L1_KW_SCAN__,$(DEFINES)),)
+ ifdef SRC_RULE_ADT_CODEGEN
+ $(foreach argu,$(SRC_RULE_ADT_CODEGEN), \
+ $(eval $(call target_adt_codegen,$(TARGET_ADT_CODEGEN_LIST), $(strip $(ADT_RULESDIR))/$(strip $(COMPONENT))/$(argu).c,$(SRC_PERL_ADT_CODEGEN),$(argu))) \
+ )
+ endif
+ endif
+
+$(foreach argu,$(CSRCS_AMMS_DRDI), \
+ $(eval COBJ_AMMS_DRDI := $(patsubst %.C,%, $(patsubst %.c,%, $(patsubst %.cpp,%, $(notdir $(argu)))))) \
+ $(eval $(call target_compile_c_obj_amms_drdi,$(argu),$(strip $(COMPOBJS_DIR))/$(COBJ_AMMS_DRDI).obj,$(CC),$(if $(filter %.cpp,$(argu)),CPLUSFLAGS,CFLAGS))) \
+ $(eval $(TARGLIB): $(strip $(COMPOBJS_DIR))/$(COBJ_AMMS_DRDI).obj) \
+)
+
+$(foreach argu,$(CSRCS), \
+ $(eval COBJ := $(patsubst %.C,%, $(patsubst %.c,%, $(patsubst %.cpp,%, $(notdir $(argu)))))) \
+ $(eval $(call target_compile_c_obj,$(argu),$(strip $(COMPOBJS_DIR))/$(COBJ).obj,$(CC),$(if $(filter %.cpp,$(argu)),CPLUSFLAGS,CFLAGS))) \
+ $(eval $(TARGLIB): $(strip $(COMPOBJS_DIR))/$(COBJ).obj) \
+)
+
+$(foreach argu,$(CSRCS1), \
+ $(eval COBJ1 := $(patsubst %.C,%, $(patsubst %.c,%, $(patsubst %.cpp,%, $(notdir $(argu)))))) \
+ $(eval $(call target_compile1_c_obj,$(argu),$(strip $(COMPOBJS_DIR))/$(COBJ1).obj,$(CC),$(if $(filter %.cpp,$(argu)),CPLUSFLAGS,CFLAGS))) \
+ $(eval $(TARGLIB): $(strip $(COMPOBJS_DIR))/$(COBJ1).obj) \
+)
+
+$(foreach argu,$(CSRCS5), \
+ $(eval COBJ5 := $(patsubst %.C,%, $(patsubst %.c,%, $(patsubst %.cpp,%, $(notdir $(argu)))))) \
+ $(eval $(call target_compile_c_obj,$(argu),$(strip $(COMPOBJS_DIR))/$(COBJ5).obj,$(CC32),$(if $(filter %.cpp,$(argu)),CPLUSFLAGS,CFLAGS))) \
+ $(eval $(TARGLIB): $(strip $(COMPOBJS_DIR))/$(COBJ5).obj) \
+)
+
+$(foreach argu,$(CSRCS6), \
+ $(eval COBJ6 := $(patsubst %.C,%, $(patsubst %.c,%, $(patsubst %.cpp,%, $(notdir $(argu)))))) \
+ $(eval $(call target_compile1_c_obj,$(argu),$(strip $(COMPOBJS_DIR))/$(COBJ6).obj,$(CC32),$(if $(filter %.cpp,$(argu)),CPLUSFLAGS,CFLAGS))) \
+ $(eval $(TARGLIB): $(strip $(COMPOBJS_DIR))/$(COBJ6).obj) \
+)
+
+$(foreach argu,$(ASRCS), \
+ $(eval AOBJ := $(patsubst %.S,%, $(patsubst %.s,%, $(patsubst %.arm,%, $(notdir $(argu)))))) \
+ $(eval $(call target_compile2_asm_obj,$(argu),$(strip $(COMPOBJS_DIR))/$(AOBJ).obj)) \
+ $(eval $(TARGLIB): $(strip $(COMPOBJS_DIR))/$(AOBJ).obj) \
+)
+
+$(foreach argu,$(ASRCS1), \
+ $(eval AOBJ1 := $(patsubst %.S,%, $(patsubst %.s,%, $(notdir $(argu))))) \
+ $(eval $(call target_compile3_asm_obj,$(argu),$(strip $(COMPOBJS_DIR))/$(AOBJ1).obj)) \
+ $(eval $(TARGLIB): $(strip $(COMPOBJS_DIR))/$(AOBJ1).obj) \
+)
+
+$(foreach argu,$(ASRCS2), \
+ $(eval AOBJ2 := $(patsubst %.S,%, $(patsubst %.s,%, $(notdir $(argu))))) \
+ $(eval $(call target_compile2_asm_obj,$(argu),$(strip $(COMPOBJS_DIR))/$(AOBJ2).obj)) \
+ $(eval $(TARGLIB): $(strip $(COMPOBJS_DIR))/$(AOBJ2).obj) \
+)
+
+else
+
+ifeq ($(strip $(MODIS_COMPILER)),CLANG)
+$(foreach argu,$(filter %.c %.cpp,$(SRC_LIST)), \
+ $(eval COBJ := $(patsubst %.c,%, $(patsubst %.cpp,%, $(notdir $(argu))))) \
+ $(eval $(call modis_clang_compile_c_obj,$(argu),$(strip $(COMPOBJS_DIR))/$(COBJ).obj,$(CC_MODIS))) \
+ $(eval $(TARGLIB): $(strip $(COMPOBJS_DIR))/$(COBJ).obj) \
+)
+
+else
+$(foreach argu,$(filter %.c %.cpp,$(SRC_LIST)), \
+ $(eval COBJ0 := $(patsubst %.c,%, $(patsubst %.cpp,%, $(notdir $(argu))))) \
+ $(eval $(call modis_compile_c_obj,$(argu),$(strip $(COMPOBJS_DIR))/$(COBJ0).obj,$(CC_MODIS))) \
+ $(eval $(TARGLIB): $(strip $(COMPOBJS_DIR))/$(COBJ0).obj) \
+)
+endif
+
+endif
diff --git a/mcu/make/common/compiler.mak b/mcu/make/common/compiler.mak
new file mode 100644
index 0000000..c4942d4
--- /dev/null
+++ b/mcu/make/common/compiler.mak
@@ -0,0 +1,279 @@
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2015
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+# *****************************
+# Environment and Tools
+# *****************************
+ifndef COMPILER_VER
+ COMPILER_VER = MIPS_GCCV4
+endif
+
+ifeq ($(strip $(LTO_BUILD)),TRUE)
+ LINK_BY_GCC = TRUE
+else
+ LINK_BY_GCC = FALSE
+ LTO_BUILD = FALSE
+endif
+
+ifdef COMPILER
+ ifeq ($(strip $(COMPILER)),GCC)
+ ifeq ($(strip $(COMPILER_VER)),MIPS_GCCV6)
+ ifneq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ GCC_TOOL_CHAIN := ./tools/GCC/MIPS/6.3.0/linux
+ else
+ GCC_TOOL_CHAIN := ./tools/GCC/NANOMIPS/6.3.0/linux
+ endif
+ else ifeq ($(strip $(COMPILER_VER)),MIPS_GCCV4)
+ GCC_TOOL_CHAIN := ./tools/GCC/MIPS/4.9.2/linux
+ endif
+ ifeq ($(strip $(COMPILER_ARCH)),ARM)
+ VIA = @
+ DEPEND = -MMD -MF
+ BIN_FORMAT = -O binary
+ DIR_TOOL = $(strip $(DIR_TOOL))
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ CROSS = .\mtk_tools\GCC\ARM\bin\arm-none-eabi-
+ CPL = $(CROSS)gcc.exe # compiler
+ CC = $(CROSS)gcc.exe -mthumb # compiler
+ CC32 = $(CROSS)gcc.exe -marm # compiler
+ CPPC = $(CROSS)g++.exe # C++ compiler
+ CPPC32 = $(CROSS)g++.exe -marm # compiler
+ LINK = $(CROSS)ld.exe # Linker
+ DUMP = $(CROSS)objdump.exe # Linker
+ ASM = $(CROSS)as # ARM assembler
+ LIB = $(CROSS)ar.exe # Library tool
+ BIN_CREATE = $(CROSS)objcopy # Binary tool
+ CPLUSFLAGS = $(CFLAGS)
+ MD = ""
+ endif
+ else
+ VIA = @
+ DEPEND = -MMD -MP -MF
+ BIN_FORMAT = -O binary
+ DIR_TOOL = $(strip $(DIR_TOOL))
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ CROSS = .\mtk_tools\GCC\ARM\bin\arm-none-eabi-
+ CPL = $(CROSS)gcc.exe # compiler
+ CC = $(CROSS)gcc.exe -mthumb # compiler
+ CC32 = $(CROSS)gcc.exe -marm # compiler
+ CPPC = $(CROSS)g++.exe # C++ compiler
+ CPPC32 = $(CROSS)g++.exe -marm # compiler
+ LINK = $(CROSS)ld.exe # Linker
+ DUMP = $(CROSS)objdump.exe # Linker
+ ASM = $(CROSS)as # ARM assembler
+ LIB = $(CROSS)ar.exe # Library tool
+ BIN_CREATE = $(CROSS)objcopy # Binary tool
+ CPLUSFLAGS = $(CFLAGS)
+ MD = ""
+ else
+ ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ CROSS = $(strip $(GCC_TOOL_CHAIN))/bin/nanomips-elf-
+ else
+ CROSS = $(strip $(GCC_TOOL_CHAIN))/bin/mips-mti-elf-
+ endif
+ CPL = $(CROSS)gcc # compiler
+ CC = $(CROSS)gcc # compiler
+ CC32 = $(CROSS)gcc # compiler
+ CPPC = $(CROSS)g++ # C++ compiler
+ CPPC32 = $(CROSS)g++ # compiler
+ LINK = $(CROSS)ld # Linker
+ DUMP = $(CROSS)objdump # Linker
+ ASM = $(CROSS)as # ARM assembler
+ LIB = $(CROSS)ar # Library tool
+ BIN_CREATE = $(CROSS)objcopy # Binary tool
+ GDB_CREATE = $(CROSS)gdb # Gdb tool
+ CPLUSFLAGS = $(CFLAGS)
+ MD = ""
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(LINK_BY_GCC)),TRUE)
+ LINK := $(CROSS)gcc
+ LIB := $(CROSS)gcc-ar
+endif
+
+# *****************************
+# C options COPTION16 for thumb mode and COPTION32 for arm mode
+# *****************************
+ifeq ($(strip $(COMPILER)),GCC)
+ CFLAGS := -Wno-attributes -Wno-pragmas -fstrict-volatile-bitfields
+ ifeq ($(strip $(GCC_WARN_AS_ERROR)),TRUE)
+ ifeq ($(strip $(NO_WARNING_AS_ERROR)),FALSE)
+ CFLAGS += -Werror
+ endif
+ endif
+endif
+
+ifneq ($(filter $(strip $(SUPPORT_PLATFORM)), $(strip $(PLATFORM))),)
+ ifeq ($(strip $(COMPILER)),GCC)
+ ifeq ($(strip $(COMPILER_ARCH)),ARM)
+ DWARF_FLAGS := -gdwarf-4
+ PLATFORM_FLAGS := -march=armv7-r -mcpu=cortex-r4 -mlittle-endian -Wa,-mimplicit-it=always -mabi=aapcs
+ PLATFORM_AFLAGS := -march=armv7-r -mcpu=cortex-r4 -mlittle-endian -mimplicit-it=always -mapcs-32
+ OFLAGS := -Os -fno-strict-aliasing -fno-common -fno-exceptions -ffunction-sections -fdata-sections
+ OAFLAGS := $(DWARF_FLAGS)
+ CFLAGS += $(PLATFORM_FLAGS) $(OFLAGS) -fno-delete-null-pointer-checks -Wall -c -mno-unaligned-access -fshort-wchar
+ ifeq ($(strip $(OS_VERSION)),MSWin32)
+ LINK_SEARCH_PATH = -L "./tools/GCC/ARM/4.9.3/win/arm-none-eabi/lib/armv7-ar/thumb" \
+ -L "./tools/GCC/ARM/4.9.3/win/lib/gcc/arm-none-eabi/4.9.3/armv7-ar/thumb"
+ endif
+ else
+ ifneq ($(strip $(OS_VERSION)),MSWin32)
+ DWARF_FLAGS := -gdwarf-4
+ ifeq ($(strip $(COMPILER_ISA)),MIPS16)
+ PLATFORM_FLAGS := -march=interAptiv-mr2 -mips16 -mmips16e2 -EL -mabi=32 -msoft-float -mno-dsp -mmt -mno-gpopt -mno-long-calls -G0 -minterlink-mips16 -mdead-loads -mblockmov-limit=0
+ PLATFORM_AFLAGS := -march=interAptiv-mr2 -mips16 -mmips16e2 -EL -msoft-float -mno-dsp -mmt -G0
+ else ifeq ($(strip $(COMPILER_ISA)),MIPS32)
+ PLATFORM_FLAGS := -march=interAptiv-mr2 -EL -mabi=32 -msoft-float -mno-dsp -mmt -mno-gpopt -mno-long-calls -G0 -minterlink-compressed -mdead-loads -mblockmov-limit=0
+ PLATFORM_AFLAGS := -march=interAptiv-mr2 -EL -msoft-float -mno-dsp -mmt -G0
+ else #nanomips
+ PLATFORM_FLAGS := -std=c11 -march=i7200 -EL -msoft-float -mmt -mno-gpopt -mno-long-calls -G0 -mblockmov-limit=0 -mno-dsp
+ PLATFORM_AFLAGS := -march=i7200 -EL -msoft-float -mmt -G0 -mno-dsp
+ EXTRA_AFLAGS :=
+ endif
+ OFLAGS := -Os -fno-builtin-printf -fstrict-aliasing -fno-common -fno-exceptions -ffunction-sections -fdata-sections
+ OAFLAGS := $(DWARF_FLAGS)
+ ifeq ($(strip $(COMPILER_VER)),MIPS_GCCV6)
+ CFLAGS += $(PLATFORM_FLAGS) $(OFLAGS) -fno-delete-null-pointer-checks -Wall -c -fshort-wchar -fshort-enums -std=c11 -D_GNU_SOURCE
+ ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ LINK_SEARCH_PATH = -L "./tools/GCC/NANOMIPS/6.3.0/linux/nanomips-elf/lib/nanomips-r6-soft-newlib/lib" \
+ -L "./tools/GCC/NANOMIPS/6.3.0/linux/lib/gcc/nanomips-elf/6.3.0/nanomips-r6-soft-newlib/lib"
+ else
+ LINK_SEARCH_PATH = -L "./tools/GCC/MIPS/6.3.0/linux/mips-mti-elf/lib/mipsel-r2-soft-newlib/lib" \
+ -L "./tools/GCC/MIPS/6.3.0/linux/lib/gcc/mips-mti-elf/6.3.0/mipsel-r2-soft-newlib/lib"
+ endif
+ else ifeq ($(strip $(COMPILER_VER)),MIPS_GCCV4)
+ CFLAGS += $(PLATFORM_FLAGS) $(OFLAGS) -fno-delete-null-pointer-checks -Wall -c -fshort-wchar -fshort-enums
+ LINK_SEARCH_PATH = -L "./tools/GCC/MIPS/4.9.2/linux/mips-mti-elf/lib/mipsel-r2-soft-newlib/lib" \
+ -L "./tools/GCC/MIPS/4.9.2/linux/lib/gcc/mips-mti-elf/4.9.2/mipsel-r2-soft-newlib/lib"
+ endif
+ endif
+ endif
+ endif
+endif
+
+CPLUSFLAGS := $(filter-out -fgnu89-inline -std=c11,$(CFLAGS))
+
+CFLAGS += $(CUSTOM_CFLAGS)
+CPLUSFLAGS += $(CUSTOM_CFLAGS)
+
+BUILD_WARNING_CFLAGS :=
+-include make/common/build_warning_def.mak
+ifeq ($(strip $(NO_WARNING_AS_ERROR)),FALSE)
+ ifneq ($(strip $(BUILD_WARNING_CFLAGS)),)
+ ifeq ($(filter $(strip $(PROJECT_NAME))_$(strip $(FLAVOR)),$(CLOSE_WARNING_AS_ERROR_PROJECT)),)
+ CFLAGS += $(BUILD_WARNING_CFLAGS)
+ CPLUSFLAGS += $(BUILD_WARNING_CFLAGS)
+ endif
+ endif
+endif
+
+# *****************************
+# assembly option AOPTION16 for Thumb mode and AOPTION32 for Arm mode
+# *****************************
+ifeq ($(strip $(COMPILER)),GCC)
+ AFLAGS := $(PLATFORM_AFLAGS) $(OAFLAGS) -g
+endif # end of " COMPILER == GCC "
+
+ifeq ($(strip $(LINK_BY_GCC)),TRUE)
+ LINK_OPTION_PREFIX := -Wl,
+else
+ LINK_OPTION_PREFIX :=
+endif
+
+# *****************************
+# Macros definition for GCC
+# *****************************
+ifeq ($(strip $(COMPILER)),GCC)
+ ifeq ($(strip $(COMPILER_ARCH)),ARM)
+ WRAP_LIST = --wrap=memcpy --wrap=memset --wrap=memclr --wrap=strcmp --wrap=sprintf --wrap=vsprintf --wrap=snprintf --wrap=vsnprintf --wrap=sscanf --wrap=vsscanf \
+ --wrap=raise --wrap=__aeabi_div0 --wrap=setlocale --wrap=on_exit --wrap=getenv --wrap=clock --wrap=puts \
+ --wrap=putchar --wrap=printf --wrap=vprintf --wrap=malloc --wrap=_malloc_r --wrap=calloc --wrap=_calloc_r --wrap=realloc --wrap=_realloc_r \
+ --wrap=free --wrap=_free_r --wrap=qsort --wrap=fprintf --wrap=fflush --wrap=_fflush_r --wrap=setbuf --wrap=setvbuf --wrap=fscanf \
+ --wrap=scanf --wrap=vfscanf --wrap=vscanf --wrap=vfprintf --wrap=fgetc --wrap=fgets --wrap=getc --wrap=getchar --wrap=gets \
+ --wrap=putc --wrap=ungetc --wrap=_ungetc_r --wrap=fgetpos --wrap=fseek --wrap=fsetpos --wrap=ftell --wrap=rewind --wrap=clearerr \
+ --wrap=feof --wrap=ferror --wrap=fopen --wrap=freopen --wrap=_fclose_r --wrap=fclose --wrap=fprintf --wrap=fread --wrap=fwrite \
+ --wrap=fputc --wrap=fputs --wrap=perror
+ else
+ WRAP_LIST = $(strip $(LINK_OPTION_PREFIX))--wrap=memset $(strip $(LINK_OPTION_PREFIX))--wrap=memcpy $(strip $(LINK_OPTION_PREFIX))--wrap=setlocale $(strip $(LINK_OPTION_PREFIX))--wrap=clock $(strip $(LINK_OPTION_PREFIX))--wrap=__cxa_atexit $(strip $(LINK_OPTION_PREFIX))--wrap=rand $(strip $(LINK_OPTION_PREFIX))--wrap=srand \
+ $(strip $(LINK_OPTION_PREFIX))--wrap=malloc $(strip $(LINK_OPTION_PREFIX))--wrap=_malloc_r $(strip $(LINK_OPTION_PREFIX))--wrap=calloc $(strip $(LINK_OPTION_PREFIX))--wrap=_calloc_r $(strip $(LINK_OPTION_PREFIX))--wrap=realloc $(strip $(LINK_OPTION_PREFIX))--wrap=_realloc_r $(strip $(LINK_OPTION_PREFIX))--wrap=free $(strip $(LINK_OPTION_PREFIX))--wrap=_free_r $(strip $(LINK_OPTION_PREFIX))--wrap=printf $(strip $(LINK_OPTION_PREFIX))--wrap=vprintf $(strip $(LINK_OPTION_PREFIX))--wrap=sprintf $(strip $(LINK_OPTION_PREFIX))--wrap=snprintf $(strip $(LINK_OPTION_PREFIX))--wrap=vsprintf $(strip $(LINK_OPTION_PREFIX))--wrap=vsnprintf
+ endif
+
+# *************************
+# Settings for TARGET
+# *************************
+ ifeq ($(strip $(COMPILER_ARCH)),ARM)
+ LNKOPT = $(strip $(WRAP_LIST)) -Bstatic --cref --warn-common --gc-sections --nmagic --emit-relocs \
+ -o $(strip $(TARGDIR))\$(IMG_FILE) \
+ -Map $(strip $(TARGDIR))\$(MAP_FILE) \
+ -dT $(strip $(SCATTERFILE)) \
+ $(strip $(LINK_SEARCH_PATH))
+ else
+ LNKOPT = $(strip $(WRAP_LIST)) -EL $(strip $(LINK_OPTION_PREFIX))-Bstatic $(strip $(LINK_OPTION_PREFIX))--cref \
+ $(strip $(LINK_OPTION_PREFIX))--warn-common $(strip $(LINK_OPTION_PREFIX))--gc-sections \
+ $(strip $(LINK_OPTION_PREFIX))--nmagic \
+ $(strip $(LINK_OPTION_PREFIX))--threads \
+ $(strip $(LINK_OPTION_PREFIX))--thread-count-initial $(strip $(LINK_OPTION_PREFIX))10 \
+ $(strip $(LINK_OPTION_PREFIX))--thread-count-middle $(strip $(LINK_OPTION_PREFIX))1 \
+ $(strip $(LINK_OPTION_PREFIX))--thread-count-final $(strip $(LINK_OPTION_PREFIX))5 \
+ $(strip $(LINK_OPTION_PREFIX))--preread-archive-symbols \
+ -o $(strip $(TARGDIR))\$(IMG_FILE) \
+ $(strip $(LINK_SEARCH_PATH))
+ ifeq ($(strip $(LINK_BY_GCC)),TRUE)
+ LNKOPT += $(strip $(LINK_SEARCH_PATH)) $(filter-out -c,$(CFLAGS)) \
+ $(strip $(LINK_OPTION_PREFIX))-Map,$(strip $(TARGDIR))\$(MAP_FILE) \
+ $(strip $(LINK_OPTION_PREFIX))-dT,$(strip $(SCATTERFILE)) \
+ -nostartfiles
+ else
+ LNKOPT += $(strip $(LINK_OPTION_PREFIX))-Map $(strip $(TARGDIR))\$(MAP_FILE) \
+ $(strip $(LINK_OPTION_PREFIX))-dT $(strip $(SCATTERFILE))
+ endif
+ endif
+
+ ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ LNKOPT += $(strip $(LINK_OPTION_PREFIX))--discard-locals $(strip $(LINK_OPTION_PREFIX))--no-print-map-discarded
+ endif
+
+ ifeq ($(strip $(LTO_BUILD)),TRUE)
+ LNKOPT += -flto -fno-fat-lto-objects
+ endif
+
+ ifneq ($(filter $(strip $(SUPPORT_PLATFORM)), $(strip $(PLATFORM))),)
+ ifeq ($(strip $(COMPILER_ARCH)),ARM)
+ LNKOPT += --thumb-entry=INT_Vectors
+ else
+ LNKOPT += --entry=INT_Vectors
+ endif
+ endif
+endif #ifeq ($(strip $(COMPILER)),GCC)
diff --git a/mcu/make/common/extra_dep.mak b/mcu/make/common/extra_dep.mak
new file mode 100644
index 0000000..ab39e5b
--- /dev/null
+++ b/mcu/make/common/extra_dep.mak
@@ -0,0 +1,56 @@
+Upper = $(subst z,Z,$(subst y,Y,$(subst x,X,$(subst w,W,$(subst v,V,$(subst u,U,$(subst t,T,$(subst s,S,$(subst r,R,$(subst q,Q,$(subst p,P,$(subst o,O,$(subst n,N,$(subst m,M,$(subst l,L,$(subst k,K,$(subst j,J,$(subst i,I,$(subst h,H,$(subst g,G,$(subst f,F,$(subst e,E,$(subst d,D,$(subst c,C,$(subst b,B,$(subst a,A,$(1)))))))))))))))))))))))))))
+
+# *************************************************************************
+# Feature Removing / Can't be enabled in custom projects.
+# *************************************************************************
+
+# *************************************************************************
+# Feature Removing / non-MP
+# *************************************************************************
+
+# *************************************************************************
+# Feature Dependency
+# *************************************************************************
+
+ifeq ($(strip $(PRODUCTION_RELEASE)),TRUE)
+ ifdef CUSTOM_CFLAGS
+ ifneq ($(strip $(CUSTOM_CFLAGS)),)
+ $(warning ERROR: Customer projects can not define CUSTOM_CFLAGS such as --debug --no_debug_macros.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifeq ($(strip $(PRODUCTION_RELEASE)),TRUE)
+ifneq ($(filter REL_CR_%,$(strip $(RELEASE_PACKAGE))),)
+ ifdef SCC_SIB_SUPPORT
+ ifeq ($(strip $(SCC_SIB_SUPPORT)),TRUE)
+ $(warning ERROR: SCC_SIB_SUPPORT cannot be enabled in customer projects.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+endif
+
+ifeq ($(strip $(PRODUCTION_RELEASE)),TRUE)
+ifneq ($(filter REL_CR_%,$(strip $(RELEASE_PACKAGE))),)
+ ifdef FCS_SUPPORT
+ ifeq ($(strip $(FCS_SUPPORT)),TRUE)
+ $(warning ERROR: Customer projects can not define FCS_SUPPORT. Internal use only!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+endif
+
+ifeq ($(filter REL_CR_%,$(strip $(RELEASE_PACKAGE))),)
+ ifeq ($(filter __MTK_INTERNAL_ENG_USER__,$(COM_DEFS)),)
+ $(warning ERROR: __MTK_INTERNAL_ENG_USER__ should be enabled in MTK_INTERNAL(eng/user) projects.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+else #neq REL_CR_xxx
+ ifneq ($(filter __MTK_INTERNAL_ENG_USER__,$(COM_DEFS)),)
+ $(warning ERROR: __MTK_INTERNAL_ENG_USER__ cannot be enabled in customer projects.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
diff --git a/mcu/make/common/get_makefile_var.mak b/mcu/make/common/get_makefile_var.mak
new file mode 100755
index 0000000..915b5ac
--- /dev/null
+++ b/mcu/make/common/get_makefile_var.mak
@@ -0,0 +1,48 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+MAK_VAR ?=
+INC_EXTRA_MAKEFILE_LIST ?=
+
+define IncludeExtraMakefile
+include $(strip $(1))
+endef
+$(foreach INC_EXTRA_MAKEFILE, $(INC_EXTRA_MAKEFILE_LIST), $(eval $(call IncludeExtraMakefile,$(INC_EXTRA_MAKEFILE))))
+
+get_mak_var:
+ifneq ($(MAK_VAR),)
+ @perl -e "print \"$(strip $($(MAK_VAR)))\""
+else
+ @echo "Usage: make -f ./get_makefile_var.mak -f <your_makefile> get_mak_var MAK_VAR=<var_name_in_your_makefile> <other make definition> INC_EXTRA_MAKEFILE_LIST=<include extra makefile list>"
+ @echo "Ex: make -f ./get_makefile_var.mak -f XXX.mak get_mak_var MAK_VAR=COM_DEFS PROJECT_NAME=MT6297 FLAVOR=DEFAULT_ASIC INC_EXTRA_MAKEFILE_LIST=\"A.mak B.mak\""
+endif
\ No newline at end of file
diff --git a/mcu/make/common/modem_spec/MTK_MODEM_LWCTG.mak b/mcu/make/common/modem_spec/MTK_MODEM_LWCTG.mak
new file mode 100644
index 0000000..f0da2df
--- /dev/null
+++ b/mcu/make/common/modem_spec/MTK_MODEM_LWCTG.mak
@@ -0,0 +1,175 @@
+#
+# 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.
+#
+# MediaTek Inc.(C)2015.All rights reserved.
+#
+# 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.
+#
+# *************************************************************************
+
+FIVEG_MODE_SUPPORT = NONE
+ # Description:
+ # Specify 5G modem capability
+ # Option Values:
+ # FIVEG_MODE: 5G is supported
+ # NONE: 5G is not supported
+ # Switch-ability:
+ # Non-switchable
+
+C2K_MODE_SUPPORT = C2K_SRLTE
+ # Description:
+ # Specify if CDMA2000 RAT is supported
+ # Option Values:
+ # C2K_SRLTE: CDMA2000 RAT is supported, LTE SRLTE is enabled
+ # C2K_ONLY: CDMA2000 RAT is supported, LTE SRLTE is disabled
+ # NONE: CDMA2000 RAT is not supported, LTE SRLTE is disabled
+ # Switch-ability:
+ # Non-switchable
+
+EUTRAN_MODE_SUPPORT = EUTRAN_MODE
+ # Description:
+ # 4G modem capability
+ # Option Values:
+ # EUTRAN_MODE: Support EUTRAN mode
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+FDD_LTE_SUPPORT = TRUE
+ # Description:
+ # FDD_LTE support capability
+ # Option Values:
+ # TRUE: Support FDD-LTE
+ # FALSE: Do NOT support FDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+GERAN_MODE_SUPPORT = GERAN_EGPRS_MODE
+ # Description:
+ # 2G modem capability
+ # Option Values:
+ # GERAN_GSM_MODE: Support GSM only
+ # GERAN_GPRS_MODE: Support GPRS
+ # GERAN_EGPRS_MODE: Support EGPRS
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+L1_EGPRS = TRUE
+ # Description:
+ # this compile option is only used for L1 Stand alone to turn on/off EDGE function
+ # Option Values:
+ # TRUE: EGPRS enable
+ # FALSE: EGPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_GPRS = TRUE
+ # Description:
+ # Turn on the GPRS support of Layer 1
+ # This is used for internal test
+ # Option Values:
+ # TRUE: GPRS enable
+ # FALSE: GPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_TDD128 = TRUE
+ # Description:
+ # Modem Capability
+ # Option Values:
+ # TRUE: L1 support TDD modem
+ # FALSE: L1 not support TDD modem
+ # Switch-ability:
+ # Non-switchable
+
+L1_WCDMA = TRUE
+ # Description:
+ # Add an option to enable WCDMA L1 support
+ # Option Values:
+ # TRUE: Support UMTS L1
+ # FALSE: Not support UMTS L1
+ # Switch-ability:
+ # Non-switchable
+
+TDD_LTE_SUPPORT = TRUE
+ # Description:
+ # TDD_LTE support capability
+ # Option Values:
+ # TRUE: Support TDD-LTE
+ # Support TDD-LTE: Support TDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_FDD_SUPPORT = UMTS_FDD_MODE_SUPPORT
+ # Description:
+ # Feature option for 3G FDD Modem Mode
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G Modem in FDD Mode
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_MODE_SUPPORT = UMTS_FDD_TDD_SUPPORT
+ # Description:
+ # The option is to switch the FDD or TDD mode for 3G modem
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G modem in FDD mode
+ # UMTS_TDD128_MODE_SUPPORT: 3G modem in TDD mode
+ # NONE: None of 3G modem mode is supported.
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_RELEASE_SUPPORT = UMTS_R11_SUPPORT
+ # Description:
+ # The option is to switch different version of release for 3G modem
+ # Option Values:
+ # UMTS_R6_SUPPORT: 3G modem supports Rel6
+ # UMTS_R4_SUPPORT: 3G modem supports Rel4
+ # UMTS_R5_SUPPORT: 3G modem supports Rel5
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_TDD_SUPPORT = UMTS_TDD128_MODE_SUPPORT
+ # Description:
+ # 3G modem in TDD mode
+ # Option Values:
+ # UMTS_TDD128_MODE_SUPPORT: 3g modem in TDD mode
+ # Switch-ability:
+ # Non-switchable
+
+UTRAN_MODE_SUPPORT = UTRAN_FDD_TDD_SUPPORT
+ # Description:
+ # 3G modem capability
+ # Option Values:
+ # UTRAN_FDD_MODE: Support 3G FDD
+ # UTRAN_TDD128_MODE: Support 3G TDD128
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
diff --git a/mcu/make/common/modem_spec/MTK_MODEM_LWG.mak b/mcu/make/common/modem_spec/MTK_MODEM_LWG.mak
new file mode 100644
index 0000000..02c3faa
--- /dev/null
+++ b/mcu/make/common/modem_spec/MTK_MODEM_LWG.mak
@@ -0,0 +1,175 @@
+#
+# 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.
+#
+# MediaTek Inc.(C)2015.All rights reserved.
+#
+# 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.
+#
+# *************************************************************************
+
+FIVEG_MODE_SUPPORT = NONE
+ # Description:
+ # Specify 5G modem capability
+ # Option Values:
+ # FIVEG_MODE: 5G is supported
+ # NONE: 5G is not supported
+ # Switch-ability:
+ # Non-switchable
+
+C2K_MODE_SUPPORT = NONE
+ # Description:
+ # Specify if CDMA2000 RAT is supported
+ # Option Values:
+ # C2K_SRLTE: CDMA2000 RAT is supported, LTE SRLTE is enabled
+ # C2K_ONLY: CDMA2000 RAT is supported, LTE SRLTE is disabled
+ # NONE: CDMA2000 RAT is not supported, LTE SRLTE is disabled
+ # Switch-ability:
+ # Non-switchable
+
+EUTRAN_MODE_SUPPORT = EUTRAN_MODE
+ # Description:
+ # 4G modem capability
+ # Option Values:
+ # EUTRAN_MODE: Support EUTRAN mode
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+FDD_LTE_SUPPORT = TRUE
+ # Description:
+ # FDD_LTE support capability
+ # Option Values:
+ # TRUE: Support FDD-LTE
+ # FALSE: Do NOT support FDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+GERAN_MODE_SUPPORT = GERAN_EGPRS_MODE
+ # Description:
+ # 2G modem capability
+ # Option Values:
+ # GERAN_GSM_MODE: Support GSM only
+ # GERAN_GPRS_MODE: Support GPRS
+ # GERAN_EGPRS_MODE: Support EGPRS
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+L1_EGPRS = TRUE
+ # Description:
+ # this compile option is only used for L1 Stand alone to turn on/off EDGE function
+ # Option Values:
+ # TRUE: EGPRS enable
+ # FALSE: EGPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_GPRS = TRUE
+ # Description:
+ # Turn on the GPRS support of Layer 1
+ # This is used for internal test
+ # Option Values:
+ # TRUE: GPRS enable
+ # FALSE: GPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_TDD128 = FALSE
+ # Description:
+ # Modem Capability
+ # Option Values:
+ # TRUE: L1 support TDD modem
+ # FALSE: L1 not support TDD modem
+ # Switch-ability:
+ # Non-switchable
+
+L1_WCDMA = TRUE
+ # Description:
+ # Add an option to enable WCDMA L1 support
+ # Option Values:
+ # TRUE: Support UMTS L1
+ # FALSE: Not support UMTS L1
+ # Switch-ability:
+ # Non-switchable
+
+TDD_LTE_SUPPORT = TRUE
+ # Description:
+ # TDD_LTE support capability
+ # Option Values:
+ # TRUE: Support TDD-LTE
+ # Support TDD-LTE: Support TDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_FDD_SUPPORT = UMTS_FDD_MODE_SUPPORT
+ # Description:
+ # Feature option for 3G FDD Modem Mode
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G Modem in FDD Mode
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_MODE_SUPPORT = UMTS_FDD_TDD_SUPPORT
+ # Description:
+ # The option is to switch the FDD or TDD mode for 3G modem
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G modem in FDD mode
+ # UMTS_TDD128_MODE_SUPPORT: 3G modem in TDD mode
+ # NONE: None of 3G modem mode is supported.
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_RELEASE_SUPPORT = UMTS_R11_SUPPORT
+ # Description:
+ # The option is to switch different version of release for 3G modem
+ # Option Values:
+ # UMTS_R6_SUPPORT: 3G modem supports Rel6
+ # UMTS_R4_SUPPORT: 3G modem supports Rel4
+ # UMTS_R5_SUPPORT: 3G modem supports Rel5
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_TDD_SUPPORT = NONE
+ # Description:
+ # 3G modem in TDD mode
+ # Option Values:
+ # UMTS_TDD128_MODE_SUPPORT: 3g modem in TDD mode
+ # Switch-ability:
+ # Non-switchable
+
+UTRAN_MODE_SUPPORT = UTRAN_FDD_TDD_SUPPORT
+ # Description:
+ # 3G modem capability
+ # Option Values:
+ # UTRAN_FDD_MODE: Support 3G FDD
+ # UTRAN_TDD128_MODE: Support 3G TDD128
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
diff --git a/mcu/make/common/modem_spec/MTK_MODEM_LWTG.mak b/mcu/make/common/modem_spec/MTK_MODEM_LWTG.mak
new file mode 100644
index 0000000..c09980d
--- /dev/null
+++ b/mcu/make/common/modem_spec/MTK_MODEM_LWTG.mak
@@ -0,0 +1,175 @@
+#
+# 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.
+#
+# MediaTek Inc.(C)2015.All rights reserved.
+#
+# 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.
+#
+# *************************************************************************
+
+FIVEG_MODE_SUPPORT = NONE
+ # Description:
+ # Specify 5G modem capability
+ # Option Values:
+ # FIVEG_MODE: 5G is supported
+ # NONE: 5G is not supported
+ # Switch-ability:
+ # Non-switchable
+
+C2K_MODE_SUPPORT = NONE
+ # Description:
+ # Specify if CDMA2000 RAT is supported
+ # Option Values:
+ # C2K_SRLTE: CDMA2000 RAT is supported, LTE SRLTE is enabled
+ # C2K_ONLY: CDMA2000 RAT is supported, LTE SRLTE is disabled
+ # NONE: CDMA2000 RAT is not supported, LTE SRLTE is disabled
+ # Switch-ability:
+ # Non-switchable
+
+EUTRAN_MODE_SUPPORT = EUTRAN_MODE
+ # Description:
+ # 4G modem capability
+ # Option Values:
+ # EUTRAN_MODE: Support EUTRAN mode
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+FDD_LTE_SUPPORT = TRUE
+ # Description:
+ # FDD_LTE support capability
+ # Option Values:
+ # TRUE: Support FDD-LTE
+ # FALSE: Do NOT support FDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+GERAN_MODE_SUPPORT = GERAN_EGPRS_MODE
+ # Description:
+ # 2G modem capability
+ # Option Values:
+ # GERAN_GSM_MODE: Support GSM only
+ # GERAN_GPRS_MODE: Support GPRS
+ # GERAN_EGPRS_MODE: Support EGPRS
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+L1_EGPRS = TRUE
+ # Description:
+ # this compile option is only used for L1 Stand alone to turn on/off EDGE function
+ # Option Values:
+ # TRUE: EGPRS enable
+ # FALSE: EGPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_GPRS = TRUE
+ # Description:
+ # Turn on the GPRS support of Layer 1
+ # This is used for internal test
+ # Option Values:
+ # TRUE: GPRS enable
+ # FALSE: GPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_TDD128 = TRUE
+ # Description:
+ # Modem Capability
+ # Option Values:
+ # TRUE: L1 support TDD modem
+ # FALSE: L1 not support TDD modem
+ # Switch-ability:
+ # Non-switchable
+
+L1_WCDMA = TRUE
+ # Description:
+ # Add an option to enable WCDMA L1 support
+ # Option Values:
+ # TRUE: Support UMTS L1
+ # FALSE: Not support UMTS L1
+ # Switch-ability:
+ # Non-switchable
+
+TDD_LTE_SUPPORT = TRUE
+ # Description:
+ # TDD_LTE support capability
+ # Option Values:
+ # TRUE: Support TDD-LTE
+ # Support TDD-LTE: Support TDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_FDD_SUPPORT = UMTS_FDD_MODE_SUPPORT
+ # Description:
+ # Feature option for 3G FDD Modem Mode
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G Modem in FDD Mode
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_MODE_SUPPORT = UMTS_FDD_TDD_SUPPORT
+ # Description:
+ # The option is to switch the FDD or TDD mode for 3G modem
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G modem in FDD mode
+ # UMTS_TDD128_MODE_SUPPORT: 3G modem in TDD mode
+ # NONE: None of 3G modem mode is supported.
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_RELEASE_SUPPORT = UMTS_R11_SUPPORT
+ # Description:
+ # The option is to switch different version of release for 3G modem
+ # Option Values:
+ # UMTS_R6_SUPPORT: 3G modem supports Rel6
+ # UMTS_R4_SUPPORT: 3G modem supports Rel4
+ # UMTS_R5_SUPPORT: 3G modem supports Rel5
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_TDD_SUPPORT = UMTS_TDD128_MODE_SUPPORT
+ # Description:
+ # 3G modem in TDD mode
+ # Option Values:
+ # UMTS_TDD128_MODE_SUPPORT: 3g modem in TDD mode
+ # Switch-ability:
+ # Non-switchable
+
+UTRAN_MODE_SUPPORT = UTRAN_FDD_TDD_SUPPORT
+ # Description:
+ # 3G modem capability
+ # Option Values:
+ # UTRAN_FDD_MODE: Support 3G FDD
+ # UTRAN_TDD128_MODE: Support 3G TDD128
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
diff --git a/mcu/make/common/modem_spec/MTK_MODEM_NLWCG.mak b/mcu/make/common/modem_spec/MTK_MODEM_NLWCG.mak
new file mode 100644
index 0000000..8a47564
--- /dev/null
+++ b/mcu/make/common/modem_spec/MTK_MODEM_NLWCG.mak
@@ -0,0 +1,175 @@
+#
+# 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.
+#
+# MediaTek Inc.(C)2015.All rights reserved.
+#
+# 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.
+#
+# *************************************************************************
+
+FIVEG_MODE_SUPPORT = FIVEG_MODE
+ # Description:
+ # Specify 5G modem capability
+ # Option Values:
+ # FIVEG_MODE: 5G is supported
+ # NONE: 5G is not supported
+ # Switch-ability:
+ # Non-switchable
+
+C2K_MODE_SUPPORT = C2K_SRLTE
+ # Description:
+ # Specify if CDMA2000 RAT is supported
+ # Option Values:
+ # C2K_SRLTE: CDMA2000 RAT is supported, LTE SRLTE is enabled
+ # C2K_ONLY: CDMA2000 RAT is supported, LTE SRLTE is disabled
+ # NONE: CDMA2000 RAT is not supported, LTE SRLTE is disabled
+ # Switch-ability:
+ # Non-switchable
+
+EUTRAN_MODE_SUPPORT = EUTRAN_MODE
+ # Description:
+ # 4G modem capability
+ # Option Values:
+ # EUTRAN_MODE: Support EUTRAN mode
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+FDD_LTE_SUPPORT = TRUE
+ # Description:
+ # FDD_LTE support capability
+ # Option Values:
+ # TRUE: Support FDD-LTE
+ # FALSE: Do NOT support FDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+GERAN_MODE_SUPPORT = GERAN_EGPRS_MODE
+ # Description:
+ # 2G modem capability
+ # Option Values:
+ # GERAN_GSM_MODE: Support GSM only
+ # GERAN_GPRS_MODE: Support GPRS
+ # GERAN_EGPRS_MODE: Support EGPRS
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+L1_EGPRS = TRUE
+ # Description:
+ # this compile option is only used for L1 Stand alone to turn on/off EDGE function
+ # Option Values:
+ # TRUE: EGPRS enable
+ # FALSE: EGPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_GPRS = TRUE
+ # Description:
+ # Turn on the GPRS support of Layer 1
+ # This is used for internal test
+ # Option Values:
+ # TRUE: GPRS enable
+ # FALSE: GPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_TDD128 = FALSE
+ # Description:
+ # Modem Capability
+ # Option Values:
+ # TRUE: L1 support TDD modem
+ # FALSE: L1 not support TDD modem
+ # Switch-ability:
+ # Non-switchable
+
+L1_WCDMA = TRUE
+ # Description:
+ # Add an option to enable WCDMA L1 support
+ # Option Values:
+ # TRUE: Support UMTS L1
+ # FALSE: Not support UMTS L1
+ # Switch-ability:
+ # Non-switchable
+
+TDD_LTE_SUPPORT = TRUE
+ # Description:
+ # TDD_LTE support capability
+ # Option Values:
+ # TRUE: Support TDD-LTE
+ # Support TDD-LTE: Support TDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_FDD_SUPPORT = UMTS_FDD_MODE_SUPPORT
+ # Description:
+ # Feature option for 3G FDD Modem Mode
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G Modem in FDD Mode
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_MODE_SUPPORT = UMTS_FDD_TDD_SUPPORT
+ # Description:
+ # The option is to switch the FDD or TDD mode for 3G modem
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G modem in FDD mode
+ # UMTS_TDD128_MODE_SUPPORT: 3G modem in TDD mode
+ # NONE: None of 3G modem mode is supported.
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_RELEASE_SUPPORT = UMTS_R11_SUPPORT
+ # Description:
+ # The option is to switch different version of release for 3G modem
+ # Option Values:
+ # UMTS_R6_SUPPORT: 3G modem supports Rel6
+ # UMTS_R4_SUPPORT: 3G modem supports Rel4
+ # UMTS_R5_SUPPORT: 3G modem supports Rel5
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_TDD_SUPPORT = NONE
+ # Description:
+ # 3G modem in TDD mode
+ # Option Values:
+ # UMTS_TDD128_MODE_SUPPORT: 3g modem in TDD mode
+ # Switch-ability:
+ # Non-switchable
+
+UTRAN_MODE_SUPPORT = UTRAN_FDD_TDD_SUPPORT
+ # Description:
+ # 3G modem capability
+ # Option Values:
+ # UTRAN_FDD_MODE: Support 3G FDD
+ # UTRAN_TDD128_MODE: Support 3G TDD128
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
diff --git a/mcu/make/common/modem_spec/MTK_MODEM_NLWCTG.mak b/mcu/make/common/modem_spec/MTK_MODEM_NLWCTG.mak
new file mode 100644
index 0000000..4bdd30c
--- /dev/null
+++ b/mcu/make/common/modem_spec/MTK_MODEM_NLWCTG.mak
@@ -0,0 +1,175 @@
+#
+# 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.
+#
+# MediaTek Inc.(C)2015.All rights reserved.
+#
+# 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.
+#
+# *************************************************************************
+
+FIVEG_MODE_SUPPORT = FIVEG_MODE
+ # Description:
+ # Specify 5G modem capability
+ # Option Values:
+ # FIVEG_MODE: 5G is supported
+ # NONE: 5G is not supported
+ # Switch-ability:
+ # Non-switchable
+
+C2K_MODE_SUPPORT = C2K_SRLTE
+ # Description:
+ # Specify if CDMA2000 RAT is supported
+ # Option Values:
+ # C2K_SRLTE: CDMA2000 RAT is supported, LTE SRLTE is enabled
+ # C2K_ONLY: CDMA2000 RAT is supported, LTE SRLTE is disabled
+ # NONE: CDMA2000 RAT is not supported, LTE SRLTE is disabled
+ # Switch-ability:
+ # Non-switchable
+
+EUTRAN_MODE_SUPPORT = EUTRAN_MODE
+ # Description:
+ # 4G modem capability
+ # Option Values:
+ # EUTRAN_MODE: Support EUTRAN mode
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+FDD_LTE_SUPPORT = TRUE
+ # Description:
+ # FDD_LTE support capability
+ # Option Values:
+ # TRUE: Support FDD-LTE
+ # FALSE: Do NOT support FDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+GERAN_MODE_SUPPORT = GERAN_EGPRS_MODE
+ # Description:
+ # 2G modem capability
+ # Option Values:
+ # GERAN_GSM_MODE: Support GSM only
+ # GERAN_GPRS_MODE: Support GPRS
+ # GERAN_EGPRS_MODE: Support EGPRS
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+L1_EGPRS = TRUE
+ # Description:
+ # this compile option is only used for L1 Stand alone to turn on/off EDGE function
+ # Option Values:
+ # TRUE: EGPRS enable
+ # FALSE: EGPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_GPRS = TRUE
+ # Description:
+ # Turn on the GPRS support of Layer 1
+ # This is used for internal test
+ # Option Values:
+ # TRUE: GPRS enable
+ # FALSE: GPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_TDD128 = TRUE
+ # Description:
+ # Modem Capability
+ # Option Values:
+ # TRUE: L1 support TDD modem
+ # FALSE: L1 not support TDD modem
+ # Switch-ability:
+ # Non-switchable
+
+L1_WCDMA = TRUE
+ # Description:
+ # Add an option to enable WCDMA L1 support
+ # Option Values:
+ # TRUE: Support UMTS L1
+ # FALSE: Not support UMTS L1
+ # Switch-ability:
+ # Non-switchable
+
+TDD_LTE_SUPPORT = TRUE
+ # Description:
+ # TDD_LTE support capability
+ # Option Values:
+ # TRUE: Support TDD-LTE
+ # Support TDD-LTE: Support TDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_FDD_SUPPORT = UMTS_FDD_MODE_SUPPORT
+ # Description:
+ # Feature option for 3G FDD Modem Mode
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G Modem in FDD Mode
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_MODE_SUPPORT = UMTS_FDD_TDD_SUPPORT
+ # Description:
+ # The option is to switch the FDD or TDD mode for 3G modem
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G modem in FDD mode
+ # UMTS_TDD128_MODE_SUPPORT: 3G modem in TDD mode
+ # NONE: None of 3G modem mode is supported.
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_RELEASE_SUPPORT = UMTS_R11_SUPPORT
+ # Description:
+ # The option is to switch different version of release for 3G modem
+ # Option Values:
+ # UMTS_R6_SUPPORT: 3G modem supports Rel6
+ # UMTS_R4_SUPPORT: 3G modem supports Rel4
+ # UMTS_R5_SUPPORT: 3G modem supports Rel5
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_TDD_SUPPORT = UMTS_TDD128_MODE_SUPPORT
+ # Description:
+ # 3G modem in TDD mode
+ # Option Values:
+ # UMTS_TDD128_MODE_SUPPORT: 3g modem in TDD mode
+ # Switch-ability:
+ # Non-switchable
+
+UTRAN_MODE_SUPPORT = UTRAN_FDD_TDD_SUPPORT
+ # Description:
+ # 3G modem capability
+ # Option Values:
+ # UTRAN_FDD_MODE: Support 3G FDD
+ # UTRAN_TDD128_MODE: Support 3G TDD128
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
diff --git a/mcu/make/common/modem_spec/MTK_MODEM_NLWG.mak b/mcu/make/common/modem_spec/MTK_MODEM_NLWG.mak
new file mode 100755
index 0000000..09fb2e8
--- /dev/null
+++ b/mcu/make/common/modem_spec/MTK_MODEM_NLWG.mak
@@ -0,0 +1,175 @@
+#
+# 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.
+#
+# MediaTek Inc.(C)2015.All rights reserved.
+#
+# 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.
+#
+# *************************************************************************
+
+FIVEG_MODE_SUPPORT = FIVEG_MODE
+ # Description:
+ # Specify 5G modem capability
+ # Option Values:
+ # FIVEG_MODE: 5G is supported
+ # NONE: 5G is not supported
+ # Switch-ability:
+ # Non-switchable
+
+C2K_MODE_SUPPORT = NONE
+ # Description:
+ # Specify if CDMA2000 RAT is supported
+ # Option Values:
+ # C2K_SRLTE: CDMA2000 RAT is supported, LTE SRLTE is enabled
+ # C2K_ONLY: CDMA2000 RAT is supported, LTE SRLTE is disabled
+ # NONE: CDMA2000 RAT is not supported, LTE SRLTE is disabled
+ # Switch-ability:
+ # Non-switchable
+
+EUTRAN_MODE_SUPPORT = EUTRAN_MODE
+ # Description:
+ # 4G modem capability
+ # Option Values:
+ # EUTRAN_MODE: Support EUTRAN mode
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+FDD_LTE_SUPPORT = TRUE
+ # Description:
+ # FDD_LTE support capability
+ # Option Values:
+ # TRUE: Support FDD-LTE
+ # FALSE: Do NOT support FDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+GERAN_MODE_SUPPORT = GERAN_EGPRS_MODE
+ # Description:
+ # 2G modem capability
+ # Option Values:
+ # GERAN_GSM_MODE: Support GSM only
+ # GERAN_GPRS_MODE: Support GPRS
+ # GERAN_EGPRS_MODE: Support EGPRS
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+L1_EGPRS = TRUE
+ # Description:
+ # this compile option is only used for L1 Stand alone to turn on/off EDGE function
+ # Option Values:
+ # TRUE: EGPRS enable
+ # FALSE: EGPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_GPRS = TRUE
+ # Description:
+ # Turn on the GPRS support of Layer 1
+ # This is used for internal test
+ # Option Values:
+ # TRUE: GPRS enable
+ # FALSE: GPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_TDD128 = FALSE
+ # Description:
+ # Modem Capability
+ # Option Values:
+ # TRUE: L1 support TDD modem
+ # FALSE: L1 not support TDD modem
+ # Switch-ability:
+ # Non-switchable
+
+L1_WCDMA = TRUE
+ # Description:
+ # Add an option to enable WCDMA L1 support
+ # Option Values:
+ # TRUE: Support UMTS L1
+ # FALSE: Not support UMTS L1
+ # Switch-ability:
+ # Non-switchable
+
+TDD_LTE_SUPPORT = TRUE
+ # Description:
+ # TDD_LTE support capability
+ # Option Values:
+ # TRUE: Support TDD-LTE
+ # Support TDD-LTE: Support TDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_FDD_SUPPORT = UMTS_FDD_MODE_SUPPORT
+ # Description:
+ # Feature option for 3G FDD Modem Mode
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G Modem in FDD Mode
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_MODE_SUPPORT = UMTS_FDD_TDD_SUPPORT
+ # Description:
+ # The option is to switch the FDD or TDD mode for 3G modem
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G modem in FDD mode
+ # UMTS_TDD128_MODE_SUPPORT: 3G modem in TDD mode
+ # NONE: None of 3G modem mode is supported.
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_RELEASE_SUPPORT = UMTS_R11_SUPPORT
+ # Description:
+ # The option is to switch different version of release for 3G modem
+ # Option Values:
+ # UMTS_R6_SUPPORT: 3G modem supports Rel6
+ # UMTS_R4_SUPPORT: 3G modem supports Rel4
+ # UMTS_R5_SUPPORT: 3G modem supports Rel5
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_TDD_SUPPORT = NONE
+ # Description:
+ # 3G modem in TDD mode
+ # Option Values:
+ # UMTS_TDD128_MODE_SUPPORT: 3g modem in TDD mode
+ # Switch-ability:
+ # Non-switchable
+
+UTRAN_MODE_SUPPORT = UTRAN_FDD_TDD_SUPPORT
+ # Description:
+ # 3G modem capability
+ # Option Values:
+ # UTRAN_FDD_MODE: Support 3G FDD
+ # UTRAN_TDD128_MODE: Support 3G TDD128
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
diff --git a/mcu/make/common/modem_spec/MTK_MODEM_NLWTG.mak b/mcu/make/common/modem_spec/MTK_MODEM_NLWTG.mak
new file mode 100644
index 0000000..cc883e9
--- /dev/null
+++ b/mcu/make/common/modem_spec/MTK_MODEM_NLWTG.mak
@@ -0,0 +1,175 @@
+#
+# 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.
+#
+# MediaTek Inc.(C)2015.All rights reserved.
+#
+# 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.
+#
+# *************************************************************************
+
+FIVEG_MODE_SUPPORT = FIVEG_MODE
+ # Description:
+ # Specify 5G modem capability
+ # Option Values:
+ # FIVEG_MODE: 5G is supported
+ # NONE: 5G is not supported
+ # Switch-ability:
+ # Non-switchable
+
+C2K_MODE_SUPPORT = NONE
+ # Description:
+ # Specify if CDMA2000 RAT is supported
+ # Option Values:
+ # C2K_SRLTE: CDMA2000 RAT is supported, LTE SRLTE is enabled
+ # C2K_ONLY: CDMA2000 RAT is supported, LTE SRLTE is disabled
+ # NONE: CDMA2000 RAT is not supported, LTE SRLTE is disabled
+ # Switch-ability:
+ # Non-switchable
+
+EUTRAN_MODE_SUPPORT = EUTRAN_MODE
+ # Description:
+ # 4G modem capability
+ # Option Values:
+ # EUTRAN_MODE: Support EUTRAN mode
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+FDD_LTE_SUPPORT = TRUE
+ # Description:
+ # FDD_LTE support capability
+ # Option Values:
+ # TRUE: Support FDD-LTE
+ # FALSE: Do NOT support FDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+GERAN_MODE_SUPPORT = GERAN_EGPRS_MODE
+ # Description:
+ # 2G modem capability
+ # Option Values:
+ # GERAN_GSM_MODE: Support GSM only
+ # GERAN_GPRS_MODE: Support GPRS
+ # GERAN_EGPRS_MODE: Support EGPRS
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+L1_EGPRS = TRUE
+ # Description:
+ # this compile option is only used for L1 Stand alone to turn on/off EDGE function
+ # Option Values:
+ # TRUE: EGPRS enable
+ # FALSE: EGPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_GPRS = TRUE
+ # Description:
+ # Turn on the GPRS support of Layer 1
+ # This is used for internal test
+ # Option Values:
+ # TRUE: GPRS enable
+ # FALSE: GPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_TDD128 = TRUE
+ # Description:
+ # Modem Capability
+ # Option Values:
+ # TRUE: L1 support TDD modem
+ # FALSE: L1 not support TDD modem
+ # Switch-ability:
+ # Non-switchable
+
+L1_WCDMA = TRUE
+ # Description:
+ # Add an option to enable WCDMA L1 support
+ # Option Values:
+ # TRUE: Support UMTS L1
+ # FALSE: Not support UMTS L1
+ # Switch-ability:
+ # Non-switchable
+
+TDD_LTE_SUPPORT = TRUE
+ # Description:
+ # TDD_LTE support capability
+ # Option Values:
+ # TRUE: Support TDD-LTE
+ # Support TDD-LTE: Support TDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_FDD_SUPPORT = UMTS_FDD_MODE_SUPPORT
+ # Description:
+ # Feature option for 3G FDD Modem Mode
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G Modem in FDD Mode
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_MODE_SUPPORT = UMTS_FDD_TDD_SUPPORT
+ # Description:
+ # The option is to switch the FDD or TDD mode for 3G modem
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G modem in FDD mode
+ # UMTS_TDD128_MODE_SUPPORT: 3G modem in TDD mode
+ # NONE: None of 3G modem mode is supported.
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_RELEASE_SUPPORT = UMTS_R11_SUPPORT
+ # Description:
+ # The option is to switch different version of release for 3G modem
+ # Option Values:
+ # UMTS_R6_SUPPORT: 3G modem supports Rel6
+ # UMTS_R4_SUPPORT: 3G modem supports Rel4
+ # UMTS_R5_SUPPORT: 3G modem supports Rel5
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_TDD_SUPPORT = UMTS_TDD128_MODE_SUPPORT
+ # Description:
+ # 3G modem in TDD mode
+ # Option Values:
+ # UMTS_TDD128_MODE_SUPPORT: 3g modem in TDD mode
+ # Switch-ability:
+ # Non-switchable
+
+UTRAN_MODE_SUPPORT = UTRAN_FDD_TDD_SUPPORT
+ # Description:
+ # 3G modem capability
+ # Option Values:
+ # UTRAN_FDD_MODE: Support 3G FDD
+ # UTRAN_TDD128_MODE: Support 3G TDD128
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
diff --git a/mcu/make/common/modem_spec/MTK_MODEM_NONE.mak b/mcu/make/common/modem_spec/MTK_MODEM_NONE.mak
new file mode 100644
index 0000000..18ceaa3
--- /dev/null
+++ b/mcu/make/common/modem_spec/MTK_MODEM_NONE.mak
@@ -0,0 +1,167 @@
+#
+# 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.
+#
+# MediaTek Inc.(C)2015.All rights reserved.
+#
+# 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.
+#
+# *************************************************************************
+
+FIVEG_MODE_SUPPORT = NONE
+ # Description:
+ # Specify 5G modem capability
+ # Option Values:
+ # FIVEG_MODE: 5G is supported
+ # NONE: 5G is not supported
+ # Switch-ability:
+ # Non-switchable
+
+C2K_MODE_SUPPORT = NONE
+ # Description:
+ # Specify if CDMA2000 RAT is supported
+ # Option Values:
+ # C2K_SRLTE: CDMA2000 RAT is supported, LTE SRLTE is enabled
+ # C2K_ONLY: CDMA2000 RAT is supported, LTE SRLTE is disabled
+ # NONE: CDMA2000 RAT is not supported, LTE SRLTE is disabled
+ # Switch-ability:
+ # Non-switchable
+
+EUTRAN_MODE_SUPPORT = NONE
+ # Description:
+ # 4G modem capability
+ # Option Values:
+ # EUTRAN_MODE: Support EUTRAN mode
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+FDD_LTE_SUPPORT = FALSE
+ # Description:
+ # FDD_LTE support capability
+ # Option Values:
+ # TRUE: Support FDD-LTE
+ # FALSE: Do NOT support FDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+GERAN_MODE_SUPPORT = NONE
+ # Description:
+ # 2G modem capability
+ # Option Values:
+ # GERAN_GSM_MODE: Support GSM only
+ # GERAN_GPRS_MODE: Support GPRS
+ # GERAN_EGPRS_MODE: Support EGPRS
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+L1_EGPRS = FALSE
+ # Description:
+ # this compile option is only used for L1 Stand alone to turn on/off EDGE function
+ # Option Values:
+ # TRUE: EGPRS enable
+ # FALSE: EGPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_GPRS = TRUE
+ # Description:
+ # Turn on the GPRS support of Layer 1
+ # This is used for internal test
+ # Option Values:
+ # TRUE: GPRS enable
+ # FALSE: GPRS disable
+ # Switch-ability:
+ # Non-switchable
+
+L1_TDD128 = FALSE
+ # Description:
+ # Modem Capability
+ # Option Values:
+ # TRUE: L1 support TDD modem
+ # FALSE: L1 not support TDD modem
+ # Switch-ability:
+ # Non-switchable
+
+L1_WCDMA = FALSE
+ # Description:
+ # Add an option to enable WCDMA L1 support
+ # Option Values:
+ # TRUE: Support UMTS L1
+ # FALSE: Not support UMTS L1
+ # Switch-ability:
+ # Non-switchable
+
+TDD_LTE_SUPPORT = FALSE
+ # Description:
+ # TDD_LTE support capability
+ # Option Values:
+ # TRUE: Support TDD-LTE
+ # Support TDD-LTE: Support TDD-LTE
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_MODE_SUPPORT = NONE
+ # Description:
+ # The option is to switch the FDD or TDD mode for 3G modem
+ # Option Values:
+ # UMTS_FDD_MODE_SUPPORT: 3G modem in FDD mode
+ # UMTS_TDD128_MODE_SUPPORT: 3G modem in TDD mode
+ # NONE: None of 3G modem mode is supported.
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_RELEASE_SUPPORT = FALSE
+ # Description:
+ # The option is to switch different version of release for 3G modem
+ # Option Values:
+ # UMTS_R6_SUPPORT: 3G modem supports Rel6
+ # UMTS_R4_SUPPORT: 3G modem supports Rel4
+ # UMTS_R5_SUPPORT: 3G modem supports Rel5
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_TDD_SUPPORT = NONE
+ # Description:
+ # 3G modem in TDD mode
+ # Option Values:
+ # UMTS_TDD128_MODE_SUPPORT: 3g modem in TDD mode
+ # Switch-ability:
+ # Non-switchable
+
+UTRAN_MODE_SUPPORT = NONE
+ # Description:
+ # 3G modem capability
+ # Option Values:
+ # UTRAN_FDD_MODE: Support 3G FDD
+ # UTRAN_TDD128_MODE: Support 3G TDD128
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
diff --git a/mcu/make/common/old_features.mak b/mcu/make/common/old_features.mak
new file mode 100644
index 0000000..97d1925
--- /dev/null
+++ b/mcu/make/common/old_features.mak
@@ -0,0 +1,6 @@
+#################################################################
+# Use this file to keep removed or renamed features' reminders
+# Use this file to keep value-changed features' reminders
+#################################################################
+
+# Removed feature
\ No newline at end of file
diff --git a/mcu/make/common/option.mak b/mcu/make/common/option.mak
new file mode 100644
index 0000000..f1d8a39
--- /dev/null
+++ b/mcu/make/common/option.mak
@@ -0,0 +1,792 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+# *************************************************************************
+# Include GNU Make Standard Library (GMSL)
+# *************************************************************************
+include ./tools/GMSL/gmsl
+Upper = $(subst z,Z,$(subst y,Y,$(subst x,X,$(subst w,W,$(subst v,V,$(subst u,U,$(subst t,T,$(subst s,S,$(subst r,R,$(subst q,Q,$(subst p,P,$(subst o,O,$(subst n,N,$(subst m,M,$(subst l,L,$(subst k,K,$(subst j,J,$(subst i,I,$(subst h,H,$(subst g,G,$(subst f,F,$(subst e,E,$(subst d,D,$(subst c,C,$(subst b,B,$(subst a,A,$(1)))))))))))))))))))))))))))
+
+
+CUSTOM_FLD_MAPPING = $(if $($(subst /,_,$(patsubst %/,%,$(subst //,/,$(subst \,/,$(call lc, $(1))))))), \
+ $($(subst /,_,$(patsubst %/,%,$(subst //,/,$(subst \,/,$(call lc, $(1))))))),\
+ $(if $(wildcard $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/$(strip $(CUSTOM_FLAVOR))),\
+ $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/$(strip $(CUSTOM_FLAVOR)),\
+ $(if $(wildcard $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/DEFAULT), \
+ $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/DEFAULT,)))
+
+
+AUTO_MERGE_FILE_CHECK = $(if $(shell $(LIST_DIR) "$(call CUSTOM_FLD_MAPPING,$(1))/$(2)" 2>$(DEV_NUL)), $(call CUSTOM_FLD_MAPPING,$(1))/$(2), \
+ $(if $(shell $(LIST_DIR) "$(1)/_Default_BB/$(strip $(PLATFORM))/$(2)" 2>$(DEV_NUL)), $(1)/_Default_BB/$(strip $(PLATFORM))/$(2),))
+# *************************************************************************
+# Set defaul value to Ckmake flag
+# *************************************************************************
+DEPENDENCY_CONFLICT = FALSE
+# *************************************************************************
+# Dependency Check error message Interfaces
+# *************************************************************************
+# ------------------------------------------------------------------------
+# Usage: $(call DEP_ERR_SETA_OR_SETB,OptA,ValA,OptB,ValB)
+# $(call DEP_ERR_SETA_OR_SETB,OptA,ValA,OptB,ValB1/ValB2/.../ValBn)
+# $(call DEP_ERR_SETA_OR_SETB,OptA,ValA,OptB,non ValB)
+# Output: PLEASE set OptA as ValA or set OptB as ValB
+# PLEASE set OptA as ValA or set OptB as ValB1/ValB2/.../ValBn
+# PLEASE set OptA as ValA or set OptB as non ValB
+#
+# Example: $(call DEP_ERR_SETA_OR_SETB,BROWSER_SUPPORT,OBIGO_Q05A,UNIFIED_MESSAGE_MARK_SEVERAL_SUPPORT,non OBIGO_Q05A)
+# PLEASE set BROWSER_SUPPORT as OBIGO_Q05A or set UNIFIED_MESSAGE_MARK_SEVERAL_SUPPORT as non OBIGO_Q05A
+# ------------------------------------------------------------------------
+DEP_ERR_SETA_OR_SETB = $(warning ERROR: PLEASE set $1 as $2 or set $3 as $4)
+# ------------------------------------------------------------------------
+# Usage: $(call DEP_ERR_ONA_OR_OFFB,OptA,OptB)
+# $(call DEP_ERR_ONA_OR_OFFB,OptA,OptB$OptC&...&OptN)
+# Output: PLEASE turn on OptA or turn off OptB
+#
+# Example: $(call DEP_ERR_ONA_OR_OFFB,NAND_SUPPORT,NAND_FLASH_BOOTING)
+# PLEASE turn on NAND_SUPPORT or turn off NAND_FLASH_BOOTING
+# ------------------------------------------------------------------------
+DEP_ERR_ONA_OR_OFFB = $(warning ERROR: PLEASE turn on $1 or turn off $2)
+# ------------------------------------------------------------------------
+# Usage: $(call DEP_ERR_SETA_OR_OFFB,OptA,ValA,OptB)
+# $(call DEP_ERR_SETA_OR_OFFB,OptA,ValA1/ValA2/.../ValAn,OptB)
+# $(call DEP_ERR_SETA_OR_OFFB,OptA,non ValA,OptB)
+# Output: PLEASE set OptA as ValA or turn off OptB
+# PLEASE set OptA as ValA1/ValA2/.../ValAn or turn off OptB
+# PLEASE set OptA as non ValA or turn off OptB
+#
+# Example: $(call DEP_ERR_SETA_OR_OFFB,MELODY_VER,DSP_WT_SYN,J2ME_SUPPORT)
+# PLEASE set MELODY_VER as DSP_WT_SYN or turn off J2ME_SUPPORT
+# ------------------------------------------------------------------------
+DEP_ERR_SETA_OR_OFFB = $(warning ERROR: PLEASE set $1 as $2 or turn off $3)
+# ------------------------------------------------------------------------
+# Usage: $(call DEP_ERR_SETA_OR_ONB,OptA,ValA,OptB)
+# $(call DEP_ERR_SETA_OR_ONB,OptA,ValA1/ValA2/.../ValAn,OptB)
+# $(call DEP_ERR_SETA_OR_ONB,OptA,non ValA,OptB)
+# Output: PLEASE set OptA as ValA or turn on OptB
+# PLEASE set OptA as ValA1/ValA2/.../ValAn or turn on OptB
+# PLEASE set OptA as non ValA or turn on OptB
+#
+# Example: $(call DEP_ERR_SETA_OR_ONB,MMS_SUPPORT,non OBIGO_Q05A,UNIFIED_MESSAGE_FOLDER)
+# PLEASE set MMS_SUPPORT as non OBIGO_Q05A or turn on UNIFIED_MESSAGE_FOLDER
+# ------------------------------------------------------------------------
+DEP_ERR_SETA_OR_ONB = $(warning ERROR: PLEASE set $1 as $2 or turn on $3)
+# ------------------------------------------------------------------------
+# Usage: $(call DEP_ERR_OFFA_OR_OFFB,OptA,OptB)
+# Output: PLEASE turn off OptA or turn off OptB
+#
+# Example: $(call DEP_ERR_OFFA_OR_OFFB,CMUX_SUPPORT,BLUETOOTH_SUPPORT)
+# PLEASE turn off CMUX_SUPPORT or turn off BLUETOOTH_SUPPORT
+# ------------------------------------------------------------------------
+DEP_ERR_OFFA_OR_OFFB = $(warning ERROR: PLEASE turn off $1 or turn off $2)
+# ------------------------------------------------------------------------
+# Usage: $(call DEP_ERR_ONA_OR_ONB,OptA,OptB)
+# Output: PLEASE turn on OptA or turn on OptB
+#
+# Example: $(call DEP_ERR_ONA_OR_ONB,UCM_SUPPORT,VOIP_SUPPORT)
+# PLEASE turn on UCM_SUPPORT or turn on VOIP_SUPPORT
+# ------------------------------------------------------------------------
+DEP_ERR_ONA_OR_ONB = $(warning ERROR: PLEASE turn on $1 or turn on $2)
+# *************************************************************************
+# Set defaul value to eliminate "option not define" warning
+# *************************************************************************
+BM_NEW = FALSE
+COMPOBJS =
+
+SUPPORT_PLATFORM = TK6291 ELBRUS MT6763 MT6295M MT6739 MT6771 MT3967 MT6779 MT6297 MT6885 MERCURY MT6873 MT6853 MT6893 MT6833 MT6880 MT6890 MT6877 MT2735
+
+ifndef PROJECT_NAME
+$(error PROJECT_NAME is not defined)
+endif
+ifndef PROJECT_MAKEFILE
+$(error PROJECT_MAKEFILE is not defined)
+endif
+ifndef FLAVOR
+$(error FLAVOR is not defined)
+endif
+
+# *************************************************************************
+# Include temporary build script
+# *************************************************************************
+
+# default cmd setting
+include make/common/cmd_cfg.mak
+
+-include make/common/Verno.bld
+ifneq ($(wildcard make/common/Verno.bld),)
+ifdef VERNO
+MTK_INTERNAL_VERNO := $(strip $(VERNO))
+endif
+endif
+
+HW_VER := $(call Upper,$(strip $(PROJECT_NAME)))_HW
+
+
+include $(PROJECT_MAKEFILE)
+include make/common/buildconfig.mak
+-include make/common/build_warning_def.mak
+-include $(strip $(TMPDIR))/~buildinfo.tmp
+-include $(strip $(TMPDIR))/~net_path.tmp
+-include $(strip $(TMPDIR))/cus_folder.tmp
+include $(strip $(MAKE_COMMON))/compiler.mak
+
+VERNO := $(call Upper,$(strip $(VERNO)))
+
+ifndef CUSTOM_FLAVOR
+$(error CUSTOM_FLAVOR is not defined)
+endif
+
+
+# *************************************************************************
+# Determine to build in which domain
+# *************************************************************************
+# Default MPD 5G release
+MPD_SOURCE_FULL_BUILD = FALSE
+ifneq ($(wildcard make/common/rel/mpd/5g),)
+ MPD_SOURCE_FULL_BUILD = TRUE
+endif
+
+# Default MPD 4G release
+MPD_SOURCE_4G_BUILD = FALSE
+ifneq ($(wildcard make/common/rel/mpd/4g),)
+ MPD_SOURCE_4G_BUILD = TRUE
+endif
+
+# Default SWRD release
+MTK_SW_DOMAIN = FALSE
+ifneq ($(wildcard make/common/rel/hq/USR.txt),)
+ ifeq ($(wildcard make/common/rel/mpd),)
+ MTK_SW_DOMAIN = TRUE
+ endif
+endif
+
+# Default custom release
+ifndef CUSTOM_RELEASE
+ CUSTOM_RELEASE = FALSE
+endif
+
+# *************************************************************************
+# Common definitions
+# *************************************************************************
+
+COMMINCDIRS += $(CUSTOM_COMMINC)
+COM_DEFS += $(CUSTOM_OPTION)
+
+NEED_BUILD_BOOTLOADER = FALSE
+
+# MD OFFLOAD COPRO Setting
+MD_COPRO_CONFIG := FALSE
+FORCE_GEN := FALSE
+
+# always off
+DHL_MALMO_SUPPORT = FALSE
+CSD_SUPPORT = NONE
+FEATURE_OVERLOAD = FALSE
+HIF_SDIO_SUPPORT = FALSE
+MDSYS = NONE
+NVRAM_PSEUDO_MERGE = OFF
+OP01_2G_ONLY = FALSE
+
+# always on
+AEC_ENABLE = TRUE
+DRV_DEBUG_MEMORY_TRACE_SUPPORT = TRUE
+
+COM_DEFS += __HW_PFC_SUPPORT__
+COM_DEFS += __USB_COMPORT_SUPPORT_MTK_DRIVER__
+COM_DEFS += __DISABLE_A5_2__
+COM_DEFS += PMIC_INIT_PHONE_ON_EVB
+COM_DEFS += __IPV6__ __IPV4V6__
+COM_DEFS += __VAMOS_1__ __VAMOS_2__
+COM_DEFS += __R99__
+COM_DEFS += __CENTRALIZED_SLEEP_MANAGER__
+COM_DEFS += __L1_GPS_CO_CLOCK_SUPPORT__
+COM_DEFS += __L1_LOCK_AFCDAC_AT_STARTUP_SUPPORT__
+COM_DEFS += __L1_CRYSTAL_ON_PMIC_SUPPORT__
+COM_DEFS += __MMRF_BSIBPIRS_DYNAMIC_ALLOCATION_SUPPORT__
+COM_DEFS += __CGLA__ __UICC_CHANNEL_SUPPORT__
+COM_DEFS += __SIM_RECOVERY_ENHANCEMENT__
+COM_DEFS += __USIM_SUPPORT__ __EF_NETPAR_SUPPORT__ __PHB_USIM_SUPPORT__
+COM_DEFS += __SLIM_MODEM_EM_MODE__ __MODEM_EM_MODE__
+ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ COM_DEFS += __TAS_SUPPORT__
+endif
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __3G_NEW_DATA_PLANE_ARCH__ __RATDM_UL_SHAQ__ __RATDM_SHAQ_HAS_PRIORITY_QUEUE__ __CSHSPA_SUPPORT__
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += __UMTS_TDD128_BAND_A__
+ COM_DEFS += __UMTS_TDD128_BAND_F__
+ endif
+ COM_DEFS += __UL2_HSPA_PLUS_RX_COPRO__
+ COM_DEFS += __UL2_HSPA_PLUS_TX_COPRO__
+ COM_DEFS += __AOC_SUPPORT__
+ COM_DEFS += __ECC_RETRY_ENHANCEMENT__
+ COM_DEFS += __REL4__ __GERAN_R4__
+ COM_DEFS += __REL5__ __GERAN_R5__
+ COM_DEFS += __2G_RF_CUSTOM_TOOL_SUPPORT__
+ ifneq ($(strip $(UE_SIMULATOR)), TRUE)
+ COM_DEFS += MTK_SLEEP_ENABLE
+ endif
+endif
+ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __IS_BYTECOPY_SUPPORT__
+ COM_DEFS += __RFC2507_SUPPORT__
+endif
+ifeq ($(strip $(TEST_LOAD_TYPE)),NONE)
+ COM_DEFS += __RLC_HSDPA_COPRO__ __MAC_HSDPA_COPRO__
+ COM_DEFS += __L2_HSUPA_COPRO__
+ COM_DEFS += __CTM_SUPPORT__
+endif
+# custom option
+COM_DEFS += __MANUAL_MODE_NW_SEL__
+COM_DEFS += __AT_ESWM_SUPPORT__
+COM_DEFS += __CHECK_SYMBOL_MULTIPLE_DEFINITION__
+COM_DEFS += __DRV_NO_USB_CHARGER__
+COM_DEFS += DRV_USB_FORCE_TRIGGER_ONE_EINT
+COM_DEFS += MSDC_MMC40_SUPPORT
+COM_DEFS += __R6_OOS__
+COM_DEFS += __SMP_ARCH__
+COM_DEFS += __USB_HIGH_SPEED_COM_PORT_ENABLE__
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __DYNAMIC_HSPA_PREFERENCE__
+ COM_DEFS += __KAL_CROSS_CORE_SUPPORT__
+ COM_DEFS += __NBR_CELL_INFO__
+ COM_DEFS += TK6268_FPGA1
+ COM_DEFS += __UMTS_NEW_ARCH__
+endif
+ifeq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+ COM_DEFS += MRS_NOT_PRESENT
+endif
+ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ COM_DEFS += UL1_PHASE4_TEST
+endif
+ifeq ($(strip $(TEST_LOAD_TYPE)),NONE)
+ ifdef MODEM_SPEC
+ ifneq ($(strip $(MODEM_SPEC)),MTK_MODEM_C2K)
+ COM_DEFS += __CHANNEL_LOCK__
+ endif
+ endif
+endif
+ifeq ($(filter __FPGA__,$(strip $(COM_DEFS))),)
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ COM_DEFS += __SATCC__ __SATCE__ __SATCL__
+ COM_DEFS += __SATCZ__ __SATCAA__
+ endif
+endif
+
+#Custom Option for SE3 UT
+ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __L4C_GPRS_UT__ __L4BPDN_UT__
+ COM_DEFS += __EM_MODE__ __MODEM_EM_MODE__ UNIT_TEST __TCM_UT__ __TCM_UGTCM_UT__
+ COM_DEFS += __IPV6__ __IPV4V6__ __REL7__ __REL8__
+ COM_DEFS += __SP_GEMINI_3G_SWITCH__ __NRSPCA__
+ COM_DEFS += __SM_UT__ __IPV6_8960_RD_INTERNAL_TEST__ __SM_PRESERVE_RT_PDP_SEVERAL_SECONDS__
+ COM_DEFS += __TCM_RAT_TCM_UT__
+ COM_DEFS += __PAM_UT__
+
+ #RATDM UT
+ COM_DEFS += __RATDM_UT__
+
+ #PDCP/RABM UT
+ COM_DEFS += __PDCP_UT__ __PDCP_LOOPBACK_UT__
+
+ #LLC UT
+ COM_DEFS += __LLC_UT__
+
+ #SNDCP UT
+ COM_DEFS += __SNDCP_UT__ SND_UT_FLC
+
+ ifeq ($(strip $(IMS_SUPPORT)),TRUE)
+ COM_DEFS += __IMS_SUPPORT__
+ endif
+
+ #CSD UT
+ #CSD support is removed from Project Make
+
+ #Removed due to PS1 request (Hope UT logic is same with real target)
+ #COM_DEFS += __MULTI_CARRIER_HSDPA__=3
+ #COM_DEFS += __DCHSUPA_ADJ_FREQ_SUPPORT__
+ endif
+endif
+
+# *************************************************************************
+# COM_DEFS_FOR_xxx defined
+# *************************************************************************
+# Platform Options
+COM_DEFS_FOR_FPGA = FPGA
+COM_DEFS_FOR_$(strip $(PLATFORM)) = $(strip $(PLATFORM)) $(strip $(PLATFORM))_$(strip $(CHIP_VER))
+
+ifeq ($(strip $(PLATFORM)),MT6893)
+ COM_DEFS_FOR_MT6893 += MT6885 MT6885_$(strip $(CHIP_VER))
+endif
+
+COM_DEFS_FOR_PLATFORM = COM_DEFS_FOR_$(strip $(PLATFORM))
+
+# RF Module Options
+#add for UESIM project
+COM_DEFS_FOR_MT6176_UMTS_FDD = MT6176_RF MT6176_UMTS_FDD
+COM_DEFS_FOR_MT6176_LTE = MT6176_RF MT6176_LTE_RF
+COM_DEFS_FOR_MT6179_LTE = MT6179_RF MT6179_LTE_RF
+
+COM_DEFS_FOR_RF_MODULE = COM_DEFS_FOR_$(strip $(RF_MODULE))
+
+ifdef UMTS_RF_MODULE
+ifneq ($(strip $(UMTS_RF_MODULE)),NONE)
+ COM_DEFS_FOR_RF_MODULE = COM_DEFS_FOR_$(strip $(UMTS_RF_MODULE))
+endif
+endif
+
+ifdef UMTS_TDD128_RF_MODULE
+ifneq ($(strip $(UMTS_TDD128_RF_MODULE)),NONE)
+ COM_DEFS_FOR_RF_MODULE = COM_DEFS_FOR_$(strip $(UMTS_TDD128_RF_MODULE))
+endif
+endif
+
+ifdef LTE_RF_MODULE
+ifneq ($(strip $(LTE_RF_MODULE)),NONE)
+ COM_DEFS_FOR_RF_MODULE = COM_DEFS_FOR_$(strip $(LTE_RF_MODULE))
+endif
+endif
+
+# BAND_SUPPORT Options
+COM_DEFS_FOR_PGSM900 = __PGSM900__
+COM_DEFS_FOR_EGSM900 = __EGSM900__
+COM_DEFS_FOR_RGSM900 = __RGSM900__
+COM_DEFS_FOR_DCS1800 = __DCS1800__
+COM_DEFS_FOR_PCS1900 = __PCS1900__
+COM_DEFS_FOR_GSM850 = __GSM850__
+COM_DEFS_FOR_GSM450 = __GSM450__
+COM_DEFS_FOR_DUAL900 = __EGSM900__ __DCS1800__
+COM_DEFS_FOR_TRIPLE = __EGSM900__ __DCS1800__ __PCS1900__
+COM_DEFS_FOR_QUAD = __EGSM900__ __DCS1800__ __PCS1900__ __GSM850__
+COM_DEFS_FOR_DUAL850 = __GSM850__ __PCS1900__
+COM_DEFS_FOR_TRIPLE850 = __GSM850__ __DCS1800__ __PCS1900__ TRIPLE850
+
+COM_DEFS_FOR_BAND_SUPPORT = COM_DEFS_FOR_$(strip $(BAND_SUPPORT))
+# BAND_SUPPORT Options end
+
+# AFC_VCXO_TYPE Options
+COM_DEFS_FOR_VCXO = AFC_VCXO
+COM_DEFS_FOR_VCXO_SC = AFC_VCXO AFC_SC
+COM_DEFS_FOR_VCXO_TC = AFC_VCXO AFC_TC
+COM_DEFS_FOR_VCXO_SC_TC = AFC_VCXO AFC_SC AFC_TC
+COM_DEFS_FOR_VCXO_2G = AFC_VCXO_2G
+
+COM_DEFS_FOR_AFC_VCXO_TYPE = COM_DEFS_FOR_$(strip $(AFC_VCXO_TYPE))
+# AFC_VCXO_TYPE Options end
+
+# *************************************************************************
+# parameter config in para_def.mak
+# *************************************************************************
+include $(strip $(MAKE_COMMON))/rule_def/para_def.mak
+
+# *************************************************************************
+# Component Compile Options
+# *************************************************************************
+include $(strip $(MAKE_COMMON))/rule_def/common_def.mak
+
+# *************************************************************************
+# Components list
+# *************************************************************************
+include $(strip $(MAKE_COMMON))/rule_def/complist_def.mak
+
+# *************************************************************************
+# Common include path
+# *************************************************************************
+include $(strip $(MAKE_COMMON))/rule_def/commincdirs_def.mak
+
+# *************************************************************************
+# L1 TMD Files
+# *************************************************************************
+include $(strip $(MAKE_COMMON))/rule_def/tmd_def.mak
+
+# *************************************************************************
+# Component trace definition header files
+# *************************************************************************
+include $(strip $(MAKE_COMMON))/rule_def/trace_def.mak
+
+# *************************************************************************
+# Include checkvalue.mak to check invalid feature values.
+# *************************************************************************
+-include make/common/checkvalue.mak
+-include make/common/old_features.mak
+
+# *************************************************************************
+# Include MPD specail compile settings.
+# *************************************************************************
+include $(strip $(MAKE_COMMON))/rule_def/mpd_sp_def.mak
+
+
+# *************************************************************************
+# Check rel setting and decide for REL_SRC_COMP(_SW)/REL_MTK_COMP(_SW)
+# *************************************************************************
+
+#For custom UCR package
+ifneq ($(strip $(RELEASE_PACKAGE)), REL_INTERNAL)
+ include make/common/rel/$(strip $(RELEASE_PACKAGE)).mak
+endif
+CUS_REL_SRC_COMP_CUST := $(filter $(REL_SRC_COMP),$(COMPLIST))
+CUS_REL_MTK_COMP_CUST := $(filter $(REL_MTK_COMP),$(COMPLIST))
+
+ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ #Check internal(MPD/SWRD) rel setting
+ include make/common/rel/REL_SUB_MPD_5G.mak
+
+ ifneq ($(NO_PCIBT),TRUE)
+ #Check if module is not defined in internal domain
+ ifneq ($(filter-out $(REL_SUB_COMP), $(FIVEG_COMP) $(FOURG_COMP) $(COMPLIST)),)
+ $(warning ERROR: $(filter-out $(REL_SUB_COMP), $(FIVEG_COMP) $(FOURG_COMP) $(COMPLIST)) is NOT defined in MTK internal domain, please add module to REL_SUB_xxx.mak)
+ $(warning Please refer http://wiki/display/MOLY/How+to+add+a+new+module for internal rel setting.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+
+ #Check if module is not defined in custom domain
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(filter-out $(REL_CR_COMP), $(FIVEG_COMP) $(FOURG_COMP) $(COMPLIST)),)
+ $(warning ERROR: $(filter-out $(REL_CR_COMP), $(FIVEG_COMP) $(FOURG_COMP) $(COMPLIST)) is NOT defined in custom domain, please add module to REL_CR_xxx.mak)
+ $(warning Please refer http://wiki/display/MOLY/How+to+add+a+new+module for custom rel setting.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+
+ #For MPD 5G check
+ REL_FIVEG_SRC_COMP := $(REL_SRC_COMP_SUB_MPD_5G)
+ ifneq ($(filter-out $(REL_FIVEG_SRC_COMP),$(FIVEG_COMP)),)
+ $(warning ERROR: $(filter-out $(REL_FIVEG_SRC_COMP),$(FIVEG_COMP)) is added to FIVEG_COMP and should be defined as REL_SRC_COMP_MPD_5G in REL_SUB_MPD_5G.mak)
+ $(warning Please refer http://wiki/display/MOLY/How+to+add+a+new+module for MPD srel etting.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+
+ #For MPD 4G check
+ REL_FOURG_SRC_COMP := $(REL_SRC_COMP_SUB_MPD_4G)
+ ifneq ($(filter-out $(REL_FOURG_SRC_COMP),$(FOURG_COMP)),)
+ $(warning ERROR:$(filter-out $(REL_FOURG_SRC_COMP),$(FOURG_COMP)) is added to FIVEG_COMP and should be defined as REL_SRC_COMP_MPD_4G in REL_SUB_MPD_4G.mak)
+ $(warning Please refer http://wiki/display/MOLY/How+to+add+a+new+module for MPD rel setting.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+
+ #For MPD common/ SWRD check
+ REL_COMMON_SRC_COMP := $(REL_SRC_COMP_SUB_MPD_COMMON) $(REL_SRC_COMP_SUB_SW)
+ ifneq ($(filter-out $(REL_COMMON_SRC_COMP),$(filter-out $(FIVEG_COMP)$(FOURG_COMP),$(COMPLIST))),)
+ $(warning ERROR:$(filter-out $(REL_COMMON_SRC_COMP),$(filter-out $(FIVEG_COMP)$(FOURG_COMP),$(COMPLIST))) is added to COMPLIST and should be defined in REL_SUB_MPD_COMMON.mak or REL_SUB_SW.mak)
+ $(warning Please refer http://wiki/display/MOLY/How+to+add+a+new+module for other MPD setting.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+
+ ifeq ($(MPD_SOURCE_FULL_BUILD), TRUE)
+ #For SWRD USR package
+ CUS_REL_SRC_COMP_SW := $(filter $(REL_SRC_COMP_SW),$(COMPLIST))
+ CUS_REL_MTK_COMP_SW := $(filter $(REL_MTK_COMP_SW),$(COMPLIST))
+
+ # Dedide for REL_SRC_COMP/REL_MTK_COMP in each domain
+ else ifeq ($(strip $(MPD_SOURCE_4G_BUILD)),TRUE)
+ include make/common/rel/REL_SUB_MPD_4G.mak
+ else ifeq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ include make/common/rel/REL_SUB_SW.mak
+ else
+ include make/common/rel/REL_SUB_MPD_COMMON.mak
+ endif
+endif
+
+# *************************************************************************
+# EXTRA_LTE settings.
+# *************************************************************************
+SP_LTE_COMP += emm esm etc eval
+
+ifneq ($(wildcard $(LTE_SRC_FDR)),)
+COMPLIST += $(SP_LTE_COMP)
+endif
+
+AUTO_MERGE_FLR = ./custom/driver/audio ./custom/driver/drv/misc_drv
+AUTO_MERGE_PTH = $(foreach DIR,$(AUTO_MERGE_FLR),$(call CUSTOM_FLD_MAPPING,$(DIR)) $(DIR)/_Default_BB/$(strip $(PLATFORM)))
+COMMINCDIRS := $(AUTO_MERGE_PTH) $(COMMINCDIRS)
+
+# *************************************************************************
+# COMPOBJS compile settings.
+# *************************************************************************
+
+CUST_REL_LIB := $(wildcard ./cust_rel_lib/lib*.a)
+ifneq ($(strip $(CUST_REL_LIB)),)
+ COMPOBJS += $(strip $(CUST_REL_LIB))
+endif
+
+ifeq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
+ ifdef MTK_BT_CHIP
+ ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libcvsd_codec.a
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libmsbc_codec.a
+ else
+ COMPOBJS += driver/audio/lib/MTKGCC/libcvsd_codec.a
+ COMPOBJS += driver/audio/lib/MTKGCC/libmsbc_codec.a
+ endif
+ else
+ ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libcvsd_codec.a
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libmsbc_codec.a
+ else
+ COMPOBJS += driver/audio/lib/MTKGCC/libcvsd_codec.a
+ COMPOBJS += driver/audio/lib/MTKGCC/libmsbc_codec.a
+ endif
+ endif
+
+ ifeq ($(strip $(VOLTE_SUPPORT)),TRUE)
+ ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ #COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libdtmf.a
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg711.a
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg711plc.a
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg722.a
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg726.a
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg729.a
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg7231.a
+ else
+ COMPOBJS += driver/audio/lib/MTKGCC/libdtmf.a
+ COMPOBJS += driver/audio/lib/MTKGCC/libg711.a
+ COMPOBJS += driver/audio/lib/MTKGCC/libg711plc.a
+ COMPOBJS += driver/audio/lib/MTKGCC/libg722.a
+ COMPOBJS += driver/audio/lib/MTKGCC/libg726.a
+ COMPOBJS += driver/audio/lib/MTKGCC/libg729.a
+ COMPOBJS += driver/audio/lib/MTKGCC/libg7231.a
+ endif
+ endif
+
+ ifdef TEST_LOAD_TYPE
+ ifeq ($(strip $(TEST_LOAD_TYPE)),NONE)
+ ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libblisrc.a
+ CUS_REL_OBJ_LIST += driver/audio/lib/MTKGCC_SHAOLIN/libblisrc.a
+ else
+ COMPOBJS += driver/audio/lib/MTKGCC/libblisrc.a
+ CUS_REL_OBJ_LIST += driver/audio/lib/MTKGCC/libblisrc.a
+ endif
+ endif
+ endif
+endif
+
+ifdef SSS_SUPPORT
+ ifeq ($(strip $(SSS_SUPPORT)),SSS_LIB)
+ ifeq ($(strip $(COMPILER)),GCC)
+ ifneq ($(filter MIPS32 MIPS16 NANOMIPS,$(strip $(COMPILER_ISA))),)
+ ifneq ($(filter MIPS32 MIPS16,$(strip $(COMPILER_ISA))),)
+ COMPOBJS += service/sss/lib/libsss_gcc_sv5.a
+ endif
+ ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ COMPOBJS += service/sss/lib/libsss_gcc_NANOMIPS.a
+ endif
+ else
+ $(warning ERROR: sss can not support compiler $(strip $(COMPILER_ISA), please check!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ CUS_REL_OBJ_LIST += ./service/sss/lib/sss_gcc_sv5.lib
+ else
+ $(warning ERROR: sss can not support compiler $(strip $(COMPILER), please check!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ ifeq ($(strip $(SSS_SUPPORT)),SSS_SOURCE)
+ ifeq ($(strip $(COMPILER)),GCC)
+ ifneq ($(filter MIPS32 MIPS16,$(strip $(COMPILER_ISA))),)
+ SSS_SOURCE_COPY_DST := service/sss/lib/libsss_gcc_sv5.a
+ endif
+ ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ SSS_SOURCE_COPY_DST := service/sss/lib/libsss_gcc_NANOMIPS.a
+ endif
+ endif
+ endif
+endif
+
+# BASIC projects do not need L1_UTMD_FILES
+ifeq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+ L1_UTMD_FILES :=
+endif
+
+# catcher_filter config file
+include interface/service/logging_database/XDD/Catcher_filters_Setting.mak
+
+#####################################################################
+# No whole archive lib (the libs list in below will not check symbol multiple definition)
+#####################################################################
+NO_WHOLE_ARCHIVE_LIB := custom
+
+#####################################################################
+# DSP ASE MODULES define
+#####################################################################
+# lib release, SMP in all core
+DSP_ASE_MODULES := audio
+
+# *************************************************************************
+# Dependency rule
+# *************************************************************************
+include $(strip $(MAKE_COMMON))/rule_def/dep_def.mak
+
+COMP_TRACE_DEFS = $(COMP_TRACE_DEFS_MODEM)
+
+# *************************************************************************
+# Include extra dependency check.
+# *************************************************************************
+-include make/common/extra_dep.mak
+
+ALL_COMPLIST := $(sort $(FIVEG_COMP) $(FOURG_COMP) $(COMPLIST))
+# Generate CUS_REL_SRC_COMP/REL_MTK_COMP
+CUS_REL_SRC_COMP_TEMP := $(filter $(REL_SRC_COMP),$(ALL_COMPLIST))
+CUS_REL_SRC_COMP += $(CUS_REL_SRC_COMP_TEMP)
+
+CUS_REL_MTK_COMP_TEMP := $(filter $(REL_MTK_COMP),$(ALL_COMPLIST))
+CUS_REL_MTK_COMP += $(CUS_REL_MTK_COMP_TEMP)
+
+# Remove the REMOVE_CUSTOM_OPTION specified in project makefile from COM_DEFS
+COM_DEFS := $(filter-out $(REMOVE_CUSTOM_OPTION),$(COM_DEFS))
+
+###########################################
+
+ifeq ($(strip $(ATEST_SYS_ENABLE)),TRUE)
+include make/module/middleware/internal/atest_sys.mak
+endif
+
+ifdef VARIATION_PROJ
+ ifneq ($(strip $(VARIATION_PROJ)),)
+ include make/common/variation/$(strip $(VARIATION_PROJ)).mak
+ ALL_COMPLIST := $(sort $(FIVEG_COMP) $(FOURG_COMP) $(COMPLIST))
+ CUS_REL_SRC_COMP_TEMP := $(filter $(REL_SRC_COMP) $(CUS_REL_SRC_COMP),$(ALL_COMPLIST))
+ CUS_REL_SRC_COMP := $(CUS_REL_SRC_COMP_TEMP)
+ CUS_REL_MTK_COMP_TEMP := $(filter $(REL_MTK_COMP) $(CUS_REL_MTK_COMP),$(ALL_COMPLIST))
+ CUS_REL_MTK_COMP := $(CUS_REL_MTK_COMP_TEMP)
+ endif
+endif
+
+# consistency check for ALL_COMPLIST & CUS_REL_XXX_COMP
+# check each comp in $(CUS_REL_XXX_COMP) if it has been put in $(ALL_COMPLIST)
+CREL_COMP_NOT_COMPLIST = $(filter-out $(ALL_COMPLIST),$(CUS_REL_SRC_COMP) $(CUS_REL_PAR_SRC_COMP) $(CUS_REL_MTK_COMP))
+# CREL_COMP_NOT_COMPLIST := $(filter-out fota,$(CREL_COMP_NOT_COMPLIST))
+ifneq ($(words $(CREL_COMP_NOT_COMPLIST)),0)
+ $(warning ERROR: $(foreach comp,$(CREL_COMP_NOT_COMPLIST),"$(comp)") in CUS_REL_XXX_COMP but NOT in COMPLIST)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+# check no module define in $(CUS_REL_SRC_COMP) and $(CUS_REL_MTK_COMP) both
+COMP_BOTH_IN_SRC_MTK = $(filter $(CUS_REL_SRC_COMP),$(CUS_REL_MTK_COMP))
+ifneq ($(words $(COMP_BOTH_IN_SRC_MTK)),0)
+ $(warning ERROR: $(foreach comp,$(COMP_BOTH_IN_SRC_MTK),"$(comp)") in CUS_REL_SRC_COMP but also in CUS_REL_MTK_COMP)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+# COMPLIST(during CUSTOM_RELEASE) = CUS_REL_SRC_COMP + CUS_REL_PAR_SRC_COMP
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ COMPLIST = $(strip $(CUS_REL_SRC_COMP))
+else
+ ifeq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+ COMPLIST = $(strip $(CUS_REL_SRC_COMP))
+ endif
+endif
+
+# *************************************************************************
+# Check whether module is source code build in sub
+# *************************************************************************
+
+# check the COM_DEFS value
+COM_DEFS_INVALID_LIST := TRUE FALSE ENABLE DISABLE FULL SLIM NONE
+ifdef COM_DEFS
+ COM_DEFS_INVALID_VALUE := $(filter $(strip $(COM_DEFS)),$(COM_DEFS_INVALID_LIST))
+ ifneq ($(COM_DEFS_INVALID_VALUE),)
+ $(warning ERROR: COM_DEFS value ($(strip $(COM_DEFS_INVALID_VALUE))) is NOT allowable, please do Not assign COM_DEFS value as : ($(strip $(COM_DEFS_INVALID_LIST))))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+# L1_UTMD_FILES check: the LTE security files can NOT be added to L1_UTMD_FILES.
+ifdef L1_UTMD_FILES
+L1_UTMD_FILES_TEMP := $(filter protocol/lte_sec/% ,$(L1_UTMD_FILES))
+L1_UTMD_FILES_TEMP := $(filter l1/lte_sec/% ,$(L1_UTMD_FILES_TEMP))
+ ifneq ($(strip $(L1_UTMD_FILES_TEMP)),)
+ $(warning ERROR: L1_UTMD_FILES value $(foreach comp,$(L1_UTMD_FILES_TEMP),"$(comp)") is NOT allowable,)
+ $(warning ERROR: the LTE security files can NOT be added to L1_UTMD_FILES.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+# COMP_TRACE_DEFS_MODEM check: the LTE security files can NOT be added to COMP_TRACE_DEFS_MODEM
+ifdef COMP_TRACE_DEFS_MODEM
+COMP_TRACE_DEFS_MODEM_TEMP := $(filter protocol/lte_sec/% ,$(COMP_TRACE_DEFS_MODEM))
+COMP_TRACE_DEFS_MODEM_TEMP := $(filter l1/lte_sec/% ,$(COMP_TRACE_DEFS_MODEM_TEMP))
+ ifneq ($(strip $(COMP_TRACE_DEFS_MODEM_TEMP)),)
+ $(warning ERROR: COMP_TRACE_DEFS_MODEM value $(foreach comp,$(COMP_TRACE_DEFS_MODEM_TEMP),"$(comp)") is NOT allowable,)
+ $(warning ERROR: the LTE security files can NOT be added to COMP_TRACE_DEFS_MODEM.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+# L1_UTMD_FILES_LTE_SEC check: only the LTE security files can be added.
+ifdef L1_UTMD_FILES_LTE_SEC
+L1_UTMD_FILES_LTE_SEC_TEMP := $(filter-out protocol/lte_sec/% ,$(L1_UTMD_FILES_LTE_SEC))
+L1_UTMD_FILES_LTE_SEC_TEMP := $(filter-out l1/lte_sec/% ,$(L1_UTMD_FILES_LTE_SEC_TEMP))
+ ifneq ($(strip $(L1_UTMD_FILES_LTE_SEC_TEMP)),)
+ #$(warning ERROR: L1_UTMD_FILES_LTE_SEC value $(foreach comp,$(L1_UTMD_FILES_LTE_SEC_TEMP),"$(comp)") is NOT allowable,)
+ #$(warning ERROR: only the LTE security files can be added to L1_UTMD_FILES_LTE_SEC.)
+ #DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+# COMP_TRACE_DEFS_MODEM_LTE_SEC check: only the LTE security files can be added.
+ifdef COMP_TRACE_DEFS_MODEM_LTE_SEC
+COMP_TRACE_DEFS_MODEM_LTE_SEC_TEMP := $(filter-out protocol/lte_sec/% ,$(COMP_TRACE_DEFS_MODEM_LTE_SEC))
+COMP_TRACE_DEFS_MODEM_LTE_SEC_TEMP := $(filter-out l1/lte_sec/% ,$(COMP_TRACE_DEFS_MODEM_LTE_SEC_TEMP))
+ ifneq ($(strip $(COMP_TRACE_DEFS_MODEM_LTE_SEC_TEMP)),)
+ #$(warning ERROR: COMP_TRACE_DEFS_MODEM_LTE_SEC value $(foreach comp,$(COMP_TRACE_DEFS_MODEM_LTE_SEC_TEMP),"$(comp)") is NOT allowable,)
+ #$(warning ERROR: only the LTE security files can be added to COMP_TRACE_DEFS_MODEM_LTE_SEC.)
+ #DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifneq ($(strip $(FLAVOR)), $(strip $(ORIGINAL_FLAVOR)))
+ $(warning ERROR: ORIGINAL_FLAVOR value should be $(FLAVOR))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
+ ifneq ($(strip $(PROJECT_NAME)), $(strip $(ORIGINAL_PROJECT_NAME)))
+ $(warning ERROR: ORIGINAL_PROJECT_NAME value should be $(PROJECT_NAME))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+# temp add
+UNIVERSAL_DATABASE_SUPPORT = TRUE
+
+COMMINCDIRS := $(sort $(COMMINCDIRS))
+
+ifdef DEPENDENCY_CONFLICT
+ ifeq ($(strip $(DEPENDENCY_CONFLICT)),TRUE)
+ $(error PLEASE check above dependency errors!)
+ endif
+endif
diff --git a/mcu/make/common/rel/REL_CR_BASIC.mak b/mcu/make/common/rel/REL_CR_BASIC.mak
new file mode 100644
index 0000000..87ec06e
--- /dev/null
+++ b/mcu/make/common/rel/REL_CR_BASIC.mak
@@ -0,0 +1,539 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+#
+
+# *************************************************************************
+# Custom Release Component Configuration
+# *************************************************************************
+# Be sure the following:
+# 1. COMPLIST(for CUSTOM_RELEASE) = CUS_REL_SRC_COMP + CUS_REL_PAR_SRC_COMP
+# 2. CUS_REL_SRC_COMP + CUS_REL_PAR_SRC_COMP + CUS_REL_MTK_COMP = COMPLIST(CUSTOM_RELEASE = False)
+
+# reset for UCR
+ifneq ($(strip $(IS_OVERLAY_PACKAGE)),TRUE)
+ CUS_REL_BASE_COMP :=
+ CUS_REL_FILES_LIST :=
+ NON_REL_DIRS_LIST :=
+ NON_REL_FILES_LIST :=
+ REL_SRC_COMP :=
+ REL_MTK_COMP :=
+ CHANGE_LIB_TO_SRC_COMP :=
+endif
+
+include make/common/rel/REL_CR_LIB.mak
+
+# Common library release modules
+REL_SRC_COMP_CR_BASIC += asn1_common
+REL_SRC_COMP_CR_BASIC += audio
+REL_SRC_COMP_CR_BASIC += bmt
+REL_SRC_COMP_CR_BASIC += comm
+REL_SRC_COMP_CR_BASIC += config
+REL_SRC_COMP_CR_BASIC += custom
+REL_SRC_COMP_CR_BASIC += custom_driver
+REL_SRC_COMP_CR_BASIC += custom_l1
+REL_SRC_COMP_CR_BASIC += custom_middleware
+REL_SRC_COMP_CR_BASIC += custom_protocol
+REL_SRC_COMP_CR_BASIC += custom_service
+REL_SRC_COMP_CR_BASIC += dbinfo
+REL_SRC_COMP_CR_BASIC += devdrv
+REL_SRC_COMP_CR_BASIC += dispatcher
+REL_SRC_COMP_CR_BASIC += drv
+REL_SRC_COMP_CR_BASIC += drv_sim
+REL_SRC_COMP_CR_BASIC += drvtest
+REL_SRC_COMP_CR_BASIC += el1d_ext
+REL_SRC_COMP_CR_BASIC += fs
+REL_SRC_COMP_CR_BASIC += ft
+REL_SRC_COMP_CR_BASIC += ftc
+REL_SRC_COMP_CR_BASIC += hmu
+REL_SRC_COMP_CR_BASIC += ipc_fragment
+REL_SRC_COMP_CR_BASIC += ipcore
+REL_SRC_COMP_CR_BASIC += kpalv
+REL_SRC_COMP_CR_BASIC += ktest
+REL_SRC_COMP_CR_BASIC += l1_ext
+REL_SRC_COMP_CR_BASIC += l1_ext_pcore
+REL_SRC_COMP_CR_BASIC += l4misc
+REL_SRC_COMP_CR_BASIC += mc
+REL_SRC_COMP_CR_BASIC += mcf
+REL_SRC_COMP_CR_BASIC += media
+REL_SRC_COMP_CR_BASIC += mertos_config
+REL_SRC_COMP_CR_BASIC += meut
+REL_SRC_COMP_CR_BASIC += mml1_rf_ext
+REL_SRC_COMP_CR_BASIC += mml1_rf_ext_pcore
+REL_SRC_COMP_CR_BASIC += modis
+REL_SRC_COMP_CR_BASIC += mtd
+REL_SRC_COMP_CR_BASIC += mtf
+REL_SRC_COMP_CR_BASIC += nl1_ext
+REL_SRC_COMP_CR_BASIC += nvram
+REL_SRC_COMP_CR_BASIC += oscar
+REL_SRC_COMP_CR_BASIC += pciedev
+REL_SRC_COMP_CR_BASIC += peripheral
+REL_SRC_COMP_CR_BASIC += rfd_ext
+REL_SRC_COMP_CR_BASIC += sbp
+REL_SRC_COMP_CR_BASIC += sdio_device
+REL_SRC_COMP_CR_BASIC += sim_driver
+REL_SRC_COMP_CR_BASIC += sss
+REL_SRC_COMP_CR_BASIC += sys_drv
+REL_SRC_COMP_CR_BASIC += sys_svc
+REL_SRC_COMP_CR_BASIC += tty
+REL_SRC_COMP_CR_BASIC += uartcore
+REL_SRC_COMP_CR_BASIC += ubm
+REL_SRC_COMP_CR_BASIC += ul1_ext
+REL_SRC_COMP_CR_BASIC += usb
+REL_SRC_COMP_CR_BASIC += usb_driver
+REL_SRC_COMP_CR_BASIC += usim_hw
+REL_SRC_COMP_CR_BASIC += usim_nw
+REL_SRC_COMP_CR_BASIC += usbcore
+REL_SRC_COMP_CR_BASIC += usbidle
+REL_SRC_COMP_CR_BASIC += verno
+
+CHANGE_LIB_TO_SRC_COMP += $(REL_SRC_COMP_CR_BASIC)
+
+#REL_CR_COMP is from bin/all_mod_rel.mak
+REL_SRC_COMP := $(CHANGE_LIB_TO_SRC_COMP)
+REL_MTK_COMP := $(filter-out $(CHANGE_LIB_TO_SRC_COMP),$(REL_CR_COMP))
+
+#Common release folder
+#from universal common
+CUS_REL_BASE_COMP += ../common/interface/driver/sys_drv/csif
+CUS_REL_BASE_COMP += ../common/interface/driver/sys_drv/cuif
+CUS_REL_BASE_COMP += ../common/interface/driver/sys_drv/cmif
+CUS_REL_BASE_COMP += ../common/interface/driver/sys_drv/config
+CUS_REL_BASE_COMP += ../common/interface/modem/public
+CUS_REL_BASE_COMP += ../common/interface/modem/mt6297/common/nr/external/5g
+CUS_REL_BASE_COMP += ../common/interface/modem/mt6297/common/nr/external/custom
+CUS_REL_BASE_COMP += ../common/interface/modem/external
+CUS_REL_BASE_COMP += ../common/interface/service/dsp_control
+CUS_REL_BASE_COMP += ../common/oss/zlib/v1.2.11/notice
+CUS_REL_BASE_COMP += ../common/oss/libroxml/3.0.2/notice
+CUS_REL_BASE_COMP += ../common/oss/openssl/OpenSSL_1_0_2d/notice
+CUS_REL_BASE_COMP += ../common/oss/ezxml/master_6741f78500/notice
+
+#from mcu
+CUS_REL_BASE_COMP += interface/layout/L2CacheLockSection
+CUS_REL_BASE_COMP += interface/layout/InputSection
+CUS_REL_BASE_COMP += interface/service/logging_database
+CUS_REL_BASE_COMP += interface/driver/devdrv/digrf_platform
+CUS_REL_BASE_COMP += custom/driver/common
+CUS_REL_BASE_COMP += custom/driver/drv/Drv_Tool
+CUS_REL_BASE_COMP += custom/middleware/common
+CUS_REL_BASE_COMP += custom/modem/common
+CUS_REL_BASE_COMP += custom/protocol/common/atci/include
+CUS_REL_BASE_COMP += custom/protocol/common/atci/src
+CUS_REL_BASE_COMP += custom/protocol/common/ps
+CUS_REL_BASE_COMP += custom/service/apncfg
+CUS_REL_BASE_COMP += custom/service/plmn
+CUS_REL_BASE_COMP += custom/service/flc2
+CUS_REL_BASE_COMP += custom/service/fs
+CUS_REL_BASE_COMP += custom/service/nvram
+CUS_REL_BASE_COMP += custom/service/sbp
+CUS_REL_BASE_COMP += custom/service/tst
+CUS_REL_BASE_COMP += custom/service/mcf
+CUS_REL_BASE_COMP += custom/service/cacerts
+CUS_REL_BASE_COMP += interface/service/crypto
+CUS_REL_BASE_COMP += interface/service/mcf
+CUS_REL_BASE_COMP += custom/system/Template
+CUS_REL_BASE_COMP += driver/audio/lib/MTKGCC
+CUS_REL_BASE_COMP += driver/audio/lib/MTKINC
+CUS_REL_BASE_COMP += driver/audio/lib/MTKGCC_SHAOLIN
+CUS_REL_BASE_COMP += driver/audio/src
+CUS_REL_BASE_COMP += driver/audio/src/v1
+CUS_REL_BASE_COMP += driver/audio/src/v1/afes
+CUS_REL_BASE_COMP += driver/audio/src/v1/inc
+CUS_REL_BASE_COMP += driver/audio/src32_inc
+CUS_REL_BASE_COMP += driver/audio/med
+CUS_REL_BASE_COMP += driver/btmt/rf_desense
+CUS_REL_BASE_COMP += driver/che/include
+CUS_REL_BASE_COMP += driver/cipher/include
+CUS_REL_BASE_COMP += driver/connectivity/sdio_device_boot/inc
+CUS_REL_BASE_COMP += driver/connectivity/usb_class/include
+CUS_REL_BASE_COMP += driver/connectivity/usb_driver/inc
+CUS_REL_BASE_COMP += driver/connectivity/usb_driver/src
+CUS_REL_BASE_COMP += driver/devdrv
+CUS_REL_BASE_COMP += driver/devdrv/asm/inc
+CUS_REL_BASE_COMP += driver/devdrv/asm/src
+CUS_REL_BASE_COMP += driver/devdrv/ect/src
+CUS_REL_BASE_COMP += driver/devdrv/gpt/inc
+CUS_REL_BASE_COMP += driver/devdrv/gpt/src
+CUS_REL_BASE_COMP += driver/devdrv/iomux/inc
+CUS_REL_BASE_COMP += driver/devdrv/mdap_interface/src
+CUS_REL_BASE_COMP += driver/devdrv/pcmon/inc
+CUS_REL_BASE_COMP += driver/devdrv/pcmon/src
+CUS_REL_BASE_COMP += driver/devdrv/us_counter/src
+CUS_REL_BASE_COMP += driver/devdrv/l3cache/inc
+CUS_REL_BASE_COMP += driver/devdrv/l3cache/src
+CUS_REL_BASE_COMP += driver/drv/include
+CUS_REL_BASE_COMP += driver/drv/src
+CUS_REL_BASE_COMP += driver/dvfs_drv/internal/inc
+CUS_REL_BASE_COMP += driver/hif/inc/hif_pciedev
+CUS_REL_BASE_COMP += driver/hif/src/hif_pciedev
+CUS_REL_BASE_COMP += driver/peripheral/inc
+CUS_REL_BASE_COMP += driver/sib_drv/mtad/inc
+CUS_REL_BASE_COMP += driver/sleep_drv/internal/inc
+CUS_REL_BASE_COMP += driver/sleep_drv/public/inc
+CUS_REL_BASE_COMP += driver/storage/flash/fdm/inc
+CUS_REL_BASE_COMP += driver/storage/flash/mtd/inc
+CUS_REL_BASE_COMP += driver/storage/flash/mtd/src
+CUS_REL_BASE_COMP += driver/storage/mc/inc
+CUS_REL_BASE_COMP += driver/storage/mc/src
+CUS_REL_BASE_COMP += driver/sys_drv/cache/inc
+CUS_REL_BASE_COMP += driver/sys_drv/cache/src
+CUS_REL_BASE_COMP += driver/sys_drv/dormant/inc
+CUS_REL_BASE_COMP += driver/sys_drv/dormant/src
+CUS_REL_BASE_COMP += driver/sys_drv/hw_itc
+CUS_REL_BASE_COMP += driver/sys_drv/init/inc
+CUS_REL_BASE_COMP += driver/sys_drv/init/src
+CUS_REL_BASE_COMP += driver/sys_drv/mmu
+CUS_REL_BASE_COMP += driver/sys_drv/mpu/inc
+CUS_REL_BASE_COMP += driver/sys_drv/mpu/src
+CUS_REL_BASE_COMP += driver/sys_drv/pmu/inc
+CUS_REL_BASE_COMP += driver/sys_drv/pmu/src
+CUS_REL_BASE_COMP += driver/sys_drv/sfu/inc
+CUS_REL_BASE_COMP += driver/sys_drv/sfu/src
+CUS_REL_BASE_COMP += driver/sys_drv/spu/inc
+CUS_REL_BASE_COMP += driver/sys_drv/spu/src
+CUS_REL_BASE_COMP += driver/sys_drv/task_agent
+CUS_REL_BASE_COMP += driver/sys_drv/task_agent/src
+CUS_REL_BASE_COMP += driver/tty/inc
+CUS_REL_BASE_COMP += driver/tty/src
+CUS_REL_BASE_COMP += interface/common
+CUS_REL_BASE_COMP += interface/driver/audio
+CUS_REL_BASE_COMP += interface/driver/ccismcore
+CUS_REL_BASE_COMP += interface/driver/ccismcore_scp
+CUS_REL_BASE_COMP += interface/driver/cldmacore
+CUS_REL_BASE_COMP += interface/driver/che
+CUS_REL_BASE_COMP += interface/driver/cipher/include
+CUS_REL_BASE_COMP += interface/driver/cmux
+CUS_REL_BASE_COMP += interface/driver/connectivity/sdio_device
+CUS_REL_BASE_COMP += interface/driver/connectivity/usb_driver
+CUS_REL_BASE_COMP += interface/driver/devdrv/asm
+CUS_REL_BASE_COMP += interface/driver/devdrv/btdma
+CUS_REL_BASE_COMP += interface/driver/devdrv/busmon
+CUS_REL_BASE_COMP += interface/driver/devdrv/busmpu
+CUS_REL_BASE_COMP += interface/driver/devdrv/cirq
+CUS_REL_BASE_COMP += interface/driver/devdrv/cmif/inc
+CUS_REL_BASE_COMP += interface/driver/devdrv/cpu
+CUS_REL_BASE_COMP += interface/driver/devdrv/cs_sram_ctrl
+CUS_REL_BASE_COMP += interface/driver/devdrv/csif
+CUS_REL_BASE_COMP += interface/driver/devdrv/cuif/inc
+CUS_REL_BASE_COMP += interface/driver/devdrv/d2d/inc
+CUS_REL_BASE_COMP += interface/driver/devdrv/dcm
+CUS_REL_BASE_COMP += interface/driver/devdrv/ect
+CUS_REL_BASE_COMP += interface/driver/devdrv/eint
+CUS_REL_BASE_COMP += interface/driver/devdrv/emi
+CUS_REL_BASE_COMP += interface/driver/devdrv/gdma
+CUS_REL_BASE_COMP += interface/driver/devdrv/log_seq
+CUS_REL_BASE_COMP += interface/driver/devdrv/mdap_interface
+CUS_REL_BASE_COMP += interface/driver/devdrv/mdipc
+CUS_REL_BASE_COMP += interface/driver/devdrv/mdl_ebc
+CUS_REL_BASE_COMP += interface/driver/devdrv/pcmon
+CUS_REL_BASE_COMP += interface/driver/devdrv/pcie
+CUS_REL_BASE_COMP += interface/driver/devdrv/pdn
+CUS_REL_BASE_COMP += interface/driver/devdrv/pll
+CUS_REL_BASE_COMP += interface/driver/devdrv/rstctl
+CUS_REL_BASE_COMP += interface/driver/devdrv/thermal
+CUS_REL_BASE_COMP += interface/driver/devdrv/tia
+CUS_REL_BASE_COMP += interface/driver/devdrv/us_counter
+CUS_REL_BASE_COMP += interface/driver/drv_def
+CUS_REL_BASE_COMP += interface/driver/drv_sw_def
+CUS_REL_BASE_COMP += interface/driver/drvtest
+CUS_REL_BASE_COMP += interface/driver/dvfs_drv
+CUS_REL_BASE_COMP += interface/driver/hif
+CUS_REL_BASE_COMP += interface/driver/hif/hif_usbdev
+CUS_REL_BASE_COMP += interface/driver/hwdrv
+CUS_REL_BASE_COMP += interface/driver/lhifcore
+CUS_REL_BASE_COMP += interface/driver/md_drv
+CUS_REL_BASE_COMP += interface/driver/peripheral
+CUS_REL_BASE_COMP += interface/driver/regbase
+CUS_REL_BASE_COMP += interface/driver/sdiocore
+CUS_REL_BASE_COMP += interface/driver/sib_drv/scc
+CUS_REL_BASE_COMP += interface/driver/sleep_drv
+CUS_REL_BASE_COMP += interface/driver/storage
+CUS_REL_BASE_COMP += interface/driver/storage/mc
+CUS_REL_BASE_COMP += interface/driver/storage/sim
+CUS_REL_BASE_COMP += interface/driver/sys_drv
+CUS_REL_BASE_COMP += interface/driver/dpcopro/custom
+CUS_REL_BASE_COMP += interface/driver/tfwk_drv
+CUS_REL_BASE_COMP += interface/l1/cl1/common
+CUS_REL_BASE_COMP += interface/l1/el1/external
+CUS_REL_BASE_COMP += interface/l1/gl1/external
+CUS_REL_BASE_COMP += interface/l1/gl1/internal
+CUS_REL_BASE_COMP += interface/l1/mml1/external
+CUS_REL_BASE_COMP += interface/l1/nl1/external
+CUS_REL_BASE_COMP += interface/l1/tl1
+CUS_REL_BASE_COMP += interface/l1/ul1
+CUS_REL_BASE_COMP += interface/l1/ul1/external
+CUS_REL_BASE_COMP += interface/middleware/general
+CUS_REL_BASE_COMP += interface/middleware/hif
+CUS_REL_BASE_COMP += interface/middleware/media
+CUS_REL_BASE_COMP += interface/middleware/meta
+CUS_REL_BASE_COMP += interface/protocol/agps
+CUS_REL_BASE_COMP += interface/protocol/as_c2k
+CUS_REL_BASE_COMP += interface/protocol/as_c2k/common
+CUS_REL_BASE_COMP += interface/protocol/bip
+CUS_REL_BASE_COMP += interface/protocol/xcap
+CUS_REL_BASE_COMP += interface/protocol/sase
+CUS_REL_BASE_COMP += interface/protocol/general
+CUS_REL_BASE_COMP += interface/protocol/l2_c2k
+CUS_REL_BASE_COMP += interface/protocol/l2_utility/flc2_v2
+CUS_REL_BASE_COMP += interface/protocol/l4
+CUS_REL_BASE_COMP += interface/protocol/l5/mipc/common
+CUS_REL_BASE_COMP += interface/protocol/l5/mipc/msg
+CUS_REL_BASE_COMP += interface/protocol/l1misc
+CUS_REL_BASE_COMP += interface/protocol/lte
+CUS_REL_BASE_COMP += interface/protocol/mcd
+CUS_REL_BASE_COMP += interface/protocol/nas_c2k
+CUS_REL_BASE_COMP += interface/protocol/nas_multimode/upcm
+CUS_REL_BASE_COMP += interface/protocol/dispatcher
+CUS_REL_BASE_COMP += interface/protocol/sim
+CUS_REL_BASE_COMP += interface/protocol/enl2
+CUS_REL_BASE_COMP += interface/protocol/3g/csr
+CUS_REL_BASE_COMP += interface/protocol/inet_protocols/http_tls/http/include
+CUS_REL_BASE_COMP += interface/protocol/inet_protocols/http_tls/security
+CUS_REL_BASE_COMP += interface/sap
+CUS_REL_BASE_COMP += interface/sap/drv
+CUS_REL_BASE_COMP += interface/sap/md
+CUS_REL_BASE_COMP += interface/sap/mw
+CUS_REL_BASE_COMP += interface/sap/svc
+CUS_REL_BASE_COMP += interface/service/icd
+CUS_REL_BASE_COMP += interface/service/asn1_common
+CUS_REL_BASE_COMP += interface/service/config
+CUS_REL_BASE_COMP += interface/service/dhl/v1
+CUS_REL_BASE_COMP += interface/service/dhl/v2
+CUS_REL_BASE_COMP += interface/service/em
+CUS_REL_BASE_COMP += interface/service/ethsvc
+CUS_REL_BASE_COMP += interface/service/event_info
+CUS_REL_BASE_COMP += interface/service/fcs
+CUS_REL_BASE_COMP += interface/service/fota
+CUS_REL_BASE_COMP += interface/service/fs
+CUS_REL_BASE_COMP += interface/service/fsm
+CUS_REL_BASE_COMP += interface/service/hif
+CUS_REL_BASE_COMP += interface/service/ipsec
+CUS_REL_BASE_COMP += interface/service/kal
+CUS_REL_BASE_COMP += interface/service/maif
+CUS_REL_BASE_COMP += interface/service/mtf
+CUS_REL_BASE_COMP += interface/service/nal
+CUS_REL_BASE_COMP += interface/service/nvram
+CUS_REL_BASE_COMP += interface/service/prbm
+CUS_REL_BASE_COMP += interface/service/pmc/icd_v1
+CUS_REL_BASE_COMP += interface/service/pmc/icd_v2
+CUS_REL_BASE_COMP += interface/service/qmu_bm
+CUS_REL_BASE_COMP += interface/service/rsra
+CUS_REL_BASE_COMP += interface/service/sbp
+CUS_REL_BASE_COMP += interface/service/sst
+CUS_REL_BASE_COMP += interface/service/stacklib
+CUS_REL_BASE_COMP += interface/service/sys_svc
+CUS_REL_BASE_COMP += interface/service/tcpip
+CUS_REL_BASE_COMP += interface/service/libroxml
+CUS_REL_BASE_COMP += interface/service/wlc
+CUS_REL_BASE_COMP += interface/service/dns
+CUS_REL_BASE_COMP += l1/gl1/l1d_ext
+CUS_REL_BASE_COMP += l1/interface/gl1
+CUS_REL_BASE_COMP += l1/interface/mml1
+CUS_REL_BASE_COMP += middleware/hif/interface
+CUS_REL_BASE_COMP += middleware/hif/ipcore/include
+CUS_REL_BASE_COMP += middleware/hif/ipcore/src
+CUS_REL_BASE_COMP += middleware/hif/ipcore/src/ipc_fragment
+CUS_REL_BASE_COMP += middleware/kpalv/include
+CUS_REL_BASE_COMP += middleware/kpalv/src
+CUS_REL_BASE_COMP += interface/middleware/kpalv
+CUS_REL_BASE_COMP += middleware/hif/uartcore/src
+CUS_REL_BASE_COMP += middleware/hif/usbclass/msd/include
+CUS_REL_BASE_COMP += middleware/hif/usbcore/include
+CUS_REL_BASE_COMP += middleware/hif/usbcore/src
+CUS_REL_BASE_COMP += middleware/hif/usbidle/include
+CUS_REL_BASE_COMP += middleware/hif/usbidle/src
+CUS_REL_BASE_COMP += middleware/media/audio/src
+CUS_REL_BASE_COMP += middleware/media/common/src
+CUS_REL_BASE_COMP += middleware/meta/ft/inc
+CUS_REL_BASE_COMP += middleware/meta/ft/src
+CUS_REL_BASE_COMP += middleware/meta/ftc
+CUS_REL_BASE_COMP += protocol/dispatcher/include
+CUS_REL_BASE_COMP += protocol/dispatcher/src
+CUS_REL_BASE_COMP += protocol/interface/agps
+CUS_REL_BASE_COMP += protocol/interface/asn/asn1lib/include
+CUS_REL_BASE_COMP += protocol/interface/asn/rr/include
+CUS_REL_BASE_COMP += protocol/interface/ddm
+CUS_REL_BASE_COMP += protocol/interface/el2
+CUS_REL_BASE_COMP += protocol/interface/enl2/el2
+CUS_REL_BASE_COMP += protocol/interface/enl2/en_common
+CUS_REL_BASE_COMP += protocol/interface/errc
+CUS_REL_BASE_COMP += protocol/interface/general
+CUS_REL_BASE_COMP += protocol/interface/ims
+CUS_REL_BASE_COMP += protocol/interface/iwlan
+CUS_REL_BASE_COMP += protocol/interface/l4
+CUS_REL_BASE_COMP += protocol/interface/l4misc
+CUS_REL_BASE_COMP += protocol/interface/lte
+CUS_REL_BASE_COMP += protocol/interface/mcd/include
+CUS_REL_BASE_COMP += protocol/interface/nas_multimode/upcm
+CUS_REL_BASE_COMP += protocol/layer4/l4/atci/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/csm/cc/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/csm/ss/asn1/gen/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/csm/ss/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/l4c/include/common
+CUS_REL_BASE_COMP += protocol/layer4/l4/l4c/include/proc
+CUS_REL_BASE_COMP += protocol/layer4/l4/mbci/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/phb/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/phb/src
+CUS_REL_BASE_COMP += protocol/layer4/l4/rac/common/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/rac/erac/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/rac/ugrac/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/smsal/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/smslib/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/smu/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/tcm/etcm/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/tcm/rat_tcm/inc
+CUS_REL_BASE_COMP += protocol/layer4/l4/uem/include
+CUS_REL_BASE_COMP += interface/protocol/uem/include
+CUS_REL_BASE_COMP += protocol/layer4/l4/uem/src
+CUS_REL_BASE_COMP += protocol/layer4/sim/include
+CUS_REL_BASE_COMP += protocol/nas_utility/kdf/lib
+CUS_REL_BASE_COMP += service/config/src/hal
+CUS_REL_BASE_COMP += service/dhl/database
+CUS_REL_BASE_COMP += service/fs/ccci_fs/src
+CUS_REL_BASE_COMP += service/fs/common/include
+CUS_REL_BASE_COMP += service/hif/hmu/include
+CUS_REL_BASE_COMP += service/hif/hmu/src
+CUS_REL_BASE_COMP += service/hif/interface
+CUS_REL_BASE_COMP += service/hif/ubm/include
+CUS_REL_BASE_COMP += service/hif/ubm/src
+CUS_REL_BASE_COMP += service/kal/common/include
+CUS_REL_BASE_COMP += service/kal/lib/mlib/include
+CUS_REL_BASE_COMP += service/kal/os/mertos/include
+CUS_REL_BASE_COMP += service/mtf/translate_elements
+CUS_REL_BASE_COMP += service/mtf/formatter
+CUS_REL_BASE_COMP += service/mtf/inc
+CUS_REL_BASE_COMP += service/mtf/base
+CUS_REL_BASE_COMP += service/mertos/include
+CUS_REL_BASE_COMP += service/mertos_config/include
+CUS_REL_BASE_COMP += service/mertos_config/src
+CUS_REL_BASE_COMP += service/nvram/include
+CUS_REL_BASE_COMP += service/nvram/src
+CUS_REL_BASE_COMP += service/ssf/inc
+CUS_REL_BASE_COMP += service/sss/interface/inc
+CUS_REL_BASE_COMP += service/sss/lib
+CUS_REL_BASE_COMP += service/sst/include
+CUS_REL_BASE_COMP += service/sys_svc/brom_ext/inc
+CUS_REL_BASE_COMP += service/sys_svc/brom_ext/src
+CUS_REL_BASE_COMP += service/sys_svc/dsp_loader/src
+CUS_REL_BASE_COMP += service/sys_svc/dspfm_lte/inc
+CUS_REL_BASE_COMP += service/sys_svc/dspfm_lte/src
+CUS_REL_BASE_COMP += service/sys_svc/excep_hdlr/inc
+CUS_REL_BASE_COMP += service/sys_svc/excep_hdlr/src
+CUS_REL_BASE_COMP += service/sys_svc/ftl/src
+CUS_REL_BASE_COMP += service/sys_svc/gfh/public
+CUS_REL_BASE_COMP += service/sys_svc/profile/inc
+CUS_REL_BASE_COMP += service/sys_svc/region/inc
+CUS_REL_BASE_COMP += service/sys_svc/region/src
+CUS_REL_BASE_COMP += tools
+CUS_REL_BASE_COMP += interface/l1/nl1/external/md97/rf_custom
+CUS_REL_BASE_COMP += interface/l1/idc
+CUS_REL_BASE_COMP += interface/service/mdmp
+CUS_REL_BASE_COMP += service/mdmp
+CUS_REL_BASE_COMP += service/mcf/include
+CUS_REL_BASE_COMP += service/mcf/src
+CUS_REL_BASE_COMP += custom/protocol/common/atp
+ifneq ($(wildcard custom/l1/nl1),)
+CUS_REL_BASE_COMP += custom/l1/nl1
+endif
+
+#C2K
+CUS_REL_BASE_COMP += interface/protocol/l4_c2k
+CUS_REL_BASE_COMP += interface/l1/cl1/rfd
+CUS_REL_BASE_COMP += protocol/interface/as_c2k
+
+# For ESL simulation
+CUS_REL_BASE_COMP += driver/sys_drv/esl/src
+CUS_REL_BASE_COMP += driver/sys_drv/esl/inc
+CUS_REL_BASE_COMP += service/esl_debug/inc
+
+# .
+CUS_REL_FILES_LIST += m
+CUS_REL_FILES_LIST += make.pl
+#CUS_REL_FILES_LIST += make.sh
+CUS_REL_FILES_LIST += make/common/build.mak
+CUS_REL_FILES_LIST += make/common/build_warning_def.mak
+CUS_REL_FILES_LIST += make/common/buildconfig.mak
+CUS_REL_FILES_LIST += make/common/cmd_cfg.mak
+CUS_REL_FILES_LIST += make/common/codegen.mak
+CUS_REL_FILES_LIST += make/common/comp.mak
+CUS_REL_FILES_LIST += make/common/compiler.mak
+CUS_REL_FILES_LIST += make/common/Custom.bld
+CUS_REL_FILES_LIST += make/common/extra_dep.mak
+CUS_REL_FILES_LIST += make/common/old_features.mak
+CUS_REL_FILES_LIST += make/common/option.mak
+CUS_REL_FILES_LIST += make/common/standalone_action.mak
+CUS_REL_FILES_LIST += make/common/user_specific.mak
+CUS_REL_FILES_LIST += make/common/xgeninc.mak
+CUS_REL_FILES_LIST += make/common/get_makefile_var.mak
+CUS_REL_FILES_LIST += make/module/driver/driver_config.mak
+CUS_REL_FILES_LIST += make/module/middleware/middleware_config.mak
+CUS_REL_FILES_LIST += make/module/l1/l1_config.mak
+CUS_REL_FILES_LIST += make/module/protocol/protocol_config.mak
+CUS_REL_FILES_LIST += make/module/service/service_config.mak
+CUS_REL_FILES_LIST += make/module/custom/custom_config.mak
+CUS_REL_FILES_LIST += make/common/rel/REL_CR_BASIC.mak
+CUS_REL_BASE_COMP += make/common/rule_def
+CUS_REL_BASE_COMP += make/module/driver/peripheral/extern/devdrv
+CUS_REL_BASE_COMP += make/common/modem_spec
+
+# special case
+CUS_REL_CUSTOM_FEATURE := BOARD_VER_FLAVOR RF_MODULE UMTS_RF_MODULE UMTS_TDD128_RF_MODULE LTE_RF_MODULE MM_RF_MODULE PLATFORM C2K_RF_MODULE NR_RF_MODULE MM_DEVICE
+CUS_REL_CUSTOM_BOARD_VER_FLAVOR := custom/driver/audio
+CUS_REL_CUSTOM_BOARD_VER_FLAVOR += custom/driver/drv/gps
+CUS_REL_CUSTOM_BOARD_VER_FLAVOR += custom/driver/drv/misc_drv
+CUS_REL_CUSTOM_BOARD_VER_FLAVOR += custom/driver/drv_gen
+CUS_REL_CUSTOM_BOARD_VER_FLAVOR += custom/middleware/meta
+CUS_REL_CUSTOM_BOARD_VER_FLAVOR += custom/modem/ps
+CUS_REL_CUSTOM_BOARD_VER_FLAVOR += custom/system
+CUS_REL_CUSTOM_RF_MODULE := custom/l1/gl1_rf
+CUS_REL_CUSTOM_UMTS_RF_MODULE := custom/l1/ul1_rf
+CUS_REL_CUSTOM_UMTS_TDD128_RF_MODULE := custom/l1/tl1_rf
+CUS_REL_CUSTOM_LTE_RF_MODULE := custom/l1/el1_rf
+CUS_REL_CUSTOM_MM_RF_MODULE := custom/l1/mml1_rf
+CUS_REL_CUSTOM_C2K_RF_MODULE := custom/l1/cl1_rf
+CUS_REL_CUSTOM_NR_RF_MODULE := custom/l1/nl1_rf
+CUS_REL_CUSTOM_PLATFORM := custom/driver/audio/_Default_BB
+CUS_REL_CUSTOM_PLATFORM += custom/driver/drv/misc_drv/_Default_BB
+CUS_REL_CUSTOM_MM_DEVICE := custom/l1/mml1_devices
+
+NON_REL_DIRS_LIST += tools/MSYS
+NON_REL_DIRS_LIST += tools/MinGW
+NON_REL_DIRS_LIST += tools/GCC
+NON_REL_DIRS_LIST += tools/DwarfUtility
+NON_REL_DIRS_LIST += tools/xl1sim
+NON_REL_DIRS_LIST += tools/NVRAMStatistic/lid
+NON_REL_DIRS_LIST += tools/NVRAMStatistic/include/openssl
+
+NON_REL_FILES_LIST += tools/MemoryDeviceList/MemoryDeviceList_*Internal.xls
+
diff --git a/mcu/make/common/rel/REL_CR_LIB.mak b/mcu/make/common/rel/REL_CR_LIB.mak
new file mode 100644
index 0000000..3224701
--- /dev/null
+++ b/mcu/make/common/rel/REL_CR_LIB.mak
@@ -0,0 +1,305 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+# *************************************************************************
+# Custom Release Component Configuration
+# *************************************************************************
+# Be sure the following:
+# 1. COMPLIST(for CUSTOM_RELEASE) = CUS_REL_SRC_COMP + CUS_REL_PAR_SRC_COMP
+# 2. CUS_REL_SRC_COMP + CUS_REL_PAR_SRC_COMP + CUS_REL_MTK_COMP = COMPLIST(CUSTOM_RELEASE = False)
+
+-include $(strip $(ALL_MOD_DIR))/all_mod_rel.mak
+
+#lib release modules
+REL_MTK_COMP_CR_LIB += psdm
+REL_MTK_COMP_CR_LIB += 3g324m_tvt
+REL_MTK_COMP_CR_LIB += aomgr
+REL_MTK_COMP_CR_LIB += arm7wdt
+REL_MTK_COMP_CR_LIB += as_semaphore_utility
+REL_MTK_COMP_CR_LIB += asinterfaces
+REL_MTK_COMP_CR_LIB += atp_sec
+REL_MTK_COMP_CR_LIB += l5_sec
+REL_MTK_COMP_CR_LIB += l1misc
+REL_MTK_COMP_CR_LIB += bip
+REL_MTK_COMP_CR_LIB += btt_agent
+REL_MTK_COMP_CR_LIB += bytecopy
+REL_MTK_COMP_CR_LIB += c2k_dma_model
+REL_MTK_COMP_CR_LIB += ccci
+REL_MTK_COMP_CR_LIB += cccidev
+REL_MTK_COMP_CR_LIB += cccisrv
+REL_MTK_COMP_CR_LIB += ccifcore
+REL_MTK_COMP_CR_LIB += ccifdev
+REL_MTK_COMP_CR_LIB += ccismcore
+REL_MTK_COMP_CR_LIB += cert
+REL_MTK_COMP_CR_LIB += che
+REL_MTK_COMP_CR_LIB += cipher
+REL_MTK_COMP_CR_LIB += cirq
+REL_MTK_COMP_CR_LIB += cl1
+REL_MTK_COMP_CR_LIB += cl1_public
+REL_MTK_COMP_CR_LIB += cl1tst
+REL_MTK_COMP_CR_LIB += cl2_sec
+REL_MTK_COMP_CR_LIB += cldmacore
+REL_MTK_COMP_CR_LIB += cldmadev
+REL_MTK_COMP_CR_LIB += con10
+REL_MTK_COMP_CR_LIB += coresight
+REL_MTK_COMP_CR_LIB += cph
+REL_MTK_COMP_CR_LIB += cpueval
+REL_MTK_COMP_CR_LIB += crypto
+REL_MTK_COMP_CR_LIB += cscdcore
+REL_MTK_COMP_CR_LIB += cscdev
+REL_MTK_COMP_CR_LIB += cxif_check
+REL_MTK_COMP_CR_LIB += ddm
+REL_MTK_COMP_CR_LIB += dem
+REL_MTK_COMP_CR_LIB += devdrv_fakeapi
+REL_MTK_COMP_CR_LIB += devdrv_sec
+REL_MTK_COMP_CR_LIB += dhl
+REL_MTK_COMP_CR_LIB += dhl_ext
+REL_MTK_COMP_CR_LIB += dhl_sub
+REL_MTK_COMP_CR_LIB += dmf
+REL_MTK_COMP_CR_LIB += dp_engine
+REL_MTK_COMP_CR_LIB += dpcopro
+REL_MTK_COMP_CR_LIB += dpfm
+REL_MTK_COMP_CR_LIB += dpmaifdev
+REL_MTK_COMP_CR_LIB += dpmaifdrv_dp
+REL_MTK_COMP_CR_LIB += drv_hif
+REL_MTK_COMP_CR_LIB += drv_pfc
+REL_MTK_COMP_CR_LIB += dsmgr
+REL_MTK_COMP_CR_LIB += dsp_ram
+REL_MTK_COMP_CR_LIB += dummyps
+REL_MTK_COMP_CR_LIB += dummyups
+REL_MTK_COMP_CR_LIB += dvfs_drv
+REL_MTK_COMP_CR_LIB += eap
+REL_MTK_COMP_CR_LIB += edsphwram
+REL_MTK_COMP_CR_LIB += edyn
+REL_MTK_COMP_CR_LIB += eint
+REL_MTK_COMP_CR_LIB += el1
+REL_MTK_COMP_CR_LIB += el1b
+REL_MTK_COMP_CR_LIB += el1d
+REL_MTK_COMP_CR_LIB += el1d_agc
+REL_MTK_COMP_CR_LIB += el1d_fec
+REL_MTK_COMP_CR_LIB += el1d_pub
+REL_MTK_COMP_CR_LIB += el1d_tpc
+REL_MTK_COMP_CR_LIB += el1el2errc_it
+REL_MTK_COMP_CR_LIB += el2_emac_protect_v2
+REL_MTK_COMP_CR_LIB += el2_emac_sec
+REL_MTK_COMP_CR_LIB += el2_protect_v2
+REL_MTK_COMP_CR_LIB += el2_sec
+REL_MTK_COMP_CR_LIB += emi
+REL_MTK_COMP_CR_LIB += emm_sec
+REL_MTK_COMP_CR_LIB += ephysim_w32
+REL_MTK_COMP_CR_LIB += erac
+REL_MTK_COMP_CR_LIB += errc_sec
+REL_MTK_COMP_CR_LIB += esim_phy
+REL_MTK_COMP_CR_LIB += esl_debug
+REL_MTK_COMP_CR_LIB += ethercore
+REL_MTK_COMP_CR_LIB += ethsvc
+REL_MTK_COMP_CR_LIB += etmr
+REL_MTK_COMP_CR_LIB += eutest
+REL_MTK_COMP_CR_LIB += event_info
+REL_MTK_COMP_CR_LIB += evl1
+REL_MTK_COMP_CR_LIB += fcs
+REL_MTK_COMP_CR_LIB += fdm
+REL_MTK_COMP_CR_LIB += flc2_v2_sec
+REL_MTK_COMP_CR_LIB += fs_internal
+REL_MTK_COMP_CR_LIB += fsm
+REL_MTK_COMP_CR_LIB += gas_fdd_sec
+REL_MTK_COMP_CR_LIB += gas_tdd_sec
+REL_MTK_COMP_CR_LIB += gl1
+REL_MTK_COMP_CR_LIB += gl1_pcore
+REL_MTK_COMP_CR_LIB += gmmgr
+REL_MTK_COMP_CR_LIB += gmss_sec
+REL_MTK_COMP_CR_LIB += gpio
+REL_MTK_COMP_CR_LIB += gps
+REL_MTK_COMP_CR_LIB += gpt
+REL_MTK_COMP_CR_LIB += hif
+REL_MTK_COMP_CR_LIB += hmu_sec
+REL_MTK_COMP_CR_LIB += hsc
+REL_MTK_COMP_CR_LIB += http_tls
+REL_MTK_COMP_CR_LIB += imc
+REL_MTK_COMP_CR_LIB += imcsms
+REL_MTK_COMP_CR_LIB += ims
+REL_MTK_COMP_CR_LIB += imsm
+REL_MTK_COMP_CR_LIB += ipfcore
+REL_MTK_COMP_CR_LIB += ipsec
+REL_MTK_COMP_CR_LIB += iwlan
+REL_MTK_COMP_CR_LIB += kal
+REL_MTK_COMP_CR_LIB += keygen
+REL_MTK_COMP_CR_LIB += l1d
+REL_MTK_COMP_CR_LIB += l1edps
+REL_MTK_COMP_CR_LIB += l2_lte_copro
+REL_MTK_COMP_CR_LIB += l2_sec_utility
+REL_MTK_COMP_CR_LIB += l2tps
+REL_MTK_COMP_CR_LIB += lbs
+REL_MTK_COMP_CR_LIB += lhifcore
+REL_MTK_COMP_CR_LIB += lhifdev
+REL_MTK_COMP_CR_LIB += libroxml
+REL_MTK_COMP_CR_LIB += ll1
+REL_MTK_COMP_CR_LIB += llc_sec
+REL_MTK_COMP_CR_LIB += lpp
+REL_MTK_COMP_CR_LIB += ltecsr
+REL_MTK_COMP_CR_LIB += ltm_sim
+REL_MTK_COMP_CR_LIB += ltt
+REL_MTK_COMP_CR_LIB += maif
+REL_MTK_COMP_CR_LIB += mase
+REL_MTK_COMP_CR_LIB += mase_hw_models
+REL_MTK_COMP_CR_LIB += mcd
+REL_MTK_COMP_CR_LIB += mcif
+REL_MTK_COMP_CR_LIB += mcif_drv
+REL_MTK_COMP_CR_LIB += md_drv
+REL_MTK_COMP_CR_LIB += md_idc
+REL_MTK_COMP_CR_LIB += md_sm
+REL_MTK_COMP_CR_LIB += mdfpm
+REL_MTK_COMP_CR_LIB += mertos
+REL_MTK_COMP_CR_LIB += mhccifdev
+REL_MTK_COMP_CR_LIB += mml1
+REL_MTK_COMP_CR_LIB += mml1_pcore
+REL_MTK_COMP_CR_LIB += mml1_rf
+REL_MTK_COMP_CR_LIB += mml1_rf_pcore
+REL_MTK_COMP_CR_LIB += mnwi
+REL_MTK_COMP_CR_LIB += mrs_sec
+REL_MTK_COMP_CR_LIB += mrs_nr_sec
+REL_MTK_COMP_CR_LIB += mt6306
+REL_MTK_COMP_CR_LIB += mtkdebug
+REL_MTK_COMP_CR_LIB += n3ans
+REL_MTK_COMP_CR_LIB += n3cf
+REL_MTK_COMP_CR_LIB += n3epc
+REL_MTK_COMP_CR_LIB += n3sam
+REL_MTK_COMP_CR_LIB += n3sys
+REL_MTK_COMP_CR_LIB += nal
+REL_MTK_COMP_CR_LIB += naltp
+REL_MTK_COMP_CR_LIB += nhlsim_hw
+REL_MTK_COMP_CR_LIB += nhlsim_l1
+REL_MTK_COMP_CR_LIB += nl1
+REL_MTK_COMP_CR_LIB += nl1_modis
+REL_MTK_COMP_CR_LIB += nl1_pub
+REL_MTK_COMP_CR_LIB += nl1b
+REL_MTK_COMP_CR_LIB += nl2_protect
+REL_MTK_COMP_CR_LIB += nmac_protect
+REL_MTK_COMP_CR_LIB += nmu
+REL_MTK_COMP_CR_LIB += nrrc_protect
+REL_MTK_COMP_CR_LIB += nrvrf_bridge
+REL_MTK_COMP_CR_LIB += nucleus_tcpip_v3
+REL_MTK_COMP_CR_LIB += nvram_sec
+REL_MTK_COMP_CR_LIB += pccif4dev
+REL_MTK_COMP_CR_LIB += pccif5dev
+REL_MTK_COMP_CR_LIB += pccifdev
+REL_MTK_COMP_CR_LIB += pcmon
+REL_MTK_COMP_CR_LIB += perf
+REL_MTK_COMP_CR_LIB += pfc
+REL_MTK_COMP_CR_LIB += pmc
+REL_MTK_COMP_CR_LIB += prbm
+REL_MTK_COMP_CR_LIB += qmu_bm
+REL_MTK_COMP_CR_LIB += ratdm_c2k_sec
+REL_MTK_COMP_CR_LIB += ratdm_sec
+REL_MTK_COMP_CR_LIB += rfc2507
+REL_MTK_COMP_CR_LIB += rfd
+REL_MTK_COMP_CR_LIB += rmc
+REL_MTK_COMP_CR_LIB += rohc
+REL_MTK_COMP_CR_LIB += rohc_v2
+REL_MTK_COMP_CR_LIB += rrlp
+REL_MTK_COMP_CR_LIB += rstctl
+REL_MTK_COMP_CR_LIB += rsra
+REL_MTK_COMP_CR_LIB += rsva
+REL_MTK_COMP_CR_LIB += rtp
+REL_MTK_COMP_CR_LIB += sase
+REL_MTK_COMP_CR_LIB += scpccismcore
+REL_MTK_COMP_CR_LIB += scsi
+REL_MTK_COMP_CR_LIB += sdiocore
+REL_MTK_COMP_CR_LIB += sdm
+REL_MTK_COMP_CR_LIB += secpccifdev
+REL_MTK_COMP_CR_LIB += serdes_drv
+REL_MTK_COMP_CR_LIB += sib_drv
+REL_MTK_COMP_CR_LIB += sim_enb
+REL_MTK_COMP_CR_LIB += simmngr
+REL_MTK_COMP_CR_LIB += sleep_drv
+REL_MTK_COMP_CR_LIB += slt
+REL_MTK_COMP_CR_LIB += sph_ipc
+REL_MTK_COMP_CR_LIB += spic
+REL_MTK_COMP_CR_LIB += ssds
+REL_MTK_COMP_CR_LIB += sst
+REL_MTK_COMP_CR_LIB += sst_sec
+REL_MTK_COMP_CR_LIB += stub
+REL_MTK_COMP_CR_LIB += sys_svc_sec
+REL_MTK_COMP_CR_LIB += sys_test
+REL_MTK_COMP_CR_LIB += tas
+REL_MTK_COMP_CR_LIB += tdd_drv
+REL_MTK_COMP_CR_LIB += tft_pf
+REL_MTK_COMP_CR_LIB += tfwk_drv
+REL_MTK_COMP_CR_LIB += tl1
+REL_MTK_COMP_CR_LIB += tl1d
+REL_MTK_COMP_CR_LIB += tmc
+REL_MTK_COMP_CR_LIB += tstm
+REL_MTK_COMP_CR_LIB += tstm_meta
+REL_MTK_COMP_CR_LIB += u4ghlsim_hw
+REL_MTK_COMP_CR_LIB += u4ghlsim_hw_sec
+REL_MTK_COMP_CR_LIB += u4ghlsim_l1
+REL_MTK_COMP_CR_LIB += u4ghlsim_l1_sec
+REL_MTK_COMP_CR_LIB += uart
+REL_MTK_COMP_CR_LIB += ufpm
+REL_MTK_COMP_CR_LIB += ul1
+REL_MTK_COMP_CR_LIB += ul1_fec
+REL_MTK_COMP_CR_LIB += ul1_modis
+REL_MTK_COMP_CR_LIB += ul1b
+REL_MTK_COMP_CR_LIB += ul2_secure_fdd
+REL_MTK_COMP_CR_LIB += ulcs
+REL_MTK_COMP_CR_LIB += upcm
+REL_MTK_COMP_CR_LIB += ups
+REL_MTK_COMP_CR_LIB += urr_fdd_sec
+REL_MTK_COMP_CR_LIB += us_counter
+REL_MTK_COMP_CR_LIB += usb_hif_sim
+REL_MTK_COMP_CR_LIB += usbclass
+REL_MTK_COMP_CR_LIB += usbosd
+REL_MTK_COMP_CR_LIB += usim
+REL_MTK_COMP_CR_LIB += vdm
+REL_MTK_COMP_CR_LIB += vmmi_bridge
+REL_MTK_COMP_CR_LIB += vnif
+REL_MTK_COMP_CR_LIB += volte_core
+REL_MTK_COMP_CR_LIB += wccifdev
+REL_MTK_COMP_CR_LIB += wfpm
+REL_MTK_COMP_CR_LIB += wifi_proxy
+REL_MTK_COMP_CR_LIB += wvrf_bridge
+REL_MTK_COMP_CR_LIB += whlsim_hw
+REL_MTK_COMP_CR_LIB += wlc
+REL_MTK_COMP_CR_LIB += wo
+REL_MTK_COMP_CR_LIB += wrpm
+REL_MTK_COMP_CR_LIB += wtunnel
+REL_MTK_COMP_CR_LIB += xcap
+REL_MTK_COMP_CR_LIB += xl1
+REL_MTK_COMP_CR_LIB += xl1r
+REL_MTK_COMP_CR_LIB += smic
+REL_MTK_COMP_CR_LIB += ltecsr_src
+REL_MTK_COMP_CR_LIB += lgesecurity
+REL_MTK_COMP_CR_LIB += vgmm_protect
+
+#release makefile
+CUS_REL_FILES_LIST += make/common/rel/REL_CR_LIB.mak
diff --git a/mcu/make/common/rule_def/c2k_def.mak b/mcu/make/common/rule_def/c2k_def.mak
new file mode 100644
index 0000000..ba95b45
--- /dev/null
+++ b/mcu/make/common/rule_def/c2k_def.mak
@@ -0,0 +1,1242 @@
+#
+# 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.
+#
+# MediaTek Inc.(C)2011.All rights reserved.
+#
+# 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.
+#
+# *************************************************************************
+
+# Generated at 2015-05-12 10:55:44
+
+
+# *************************************************************************
+# C2K Defines
+# *************************************************************************
+
+################################################################################
+#
+# Configure Options
+#
+################################################################################
+ifeq ($(strip $(CONFIG_UI)),NONE)
+ SUPPORT_UTK=TRUE
+endif
+
+################################################################################
+#
+# System definitions
+#
+################################################################################
+
+# Platform Options
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ SYS_ASIC = SA_CBP82
+ SYS_BOARD = SB_DATACARD
+else
+ SYS_ASIC = SA_ELBRUS
+ SYS_BOARD = SB_ELBRUS
+endif
+
+# RF Module Options
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ SYS_OPTION_RF_HW = SYS_RF_FCI_7790
+else
+ SYS_OPTION_RF_HW = SYS_RF_MT6176
+endif
+
+#
+# Default IMD compiler flag
+#
+#SYS_OPTION_IMD_MODULE = $(SYS_IMD_MODULE_NOTUSED)
+SYS_OPTION_IMD_MODULE = $(SYS_IMD_MODULE_ISUSED)
+SYS_OPTION_IMD_GAIN_TABLE = $(SYS_IMD_GAIN_TABLE_NOSWITCH)
+
+#
+# Setup IMD compiler flag if IMD module is not used
+#
+ifeq ($(strip $(USE_IMD_MODULE)),FALSE)
+ SYS_OPTION_IMD_MODULE = $(SYS_IMD_MODULE_NOTUSED)
+endif
+
+#
+# Setup IMD compiler flag if IMD module turns gain table
+#
+ifeq ($(strip $(TURN_IMD_TABLE)),TRUE)
+ SYS_OPTION_IMD_GAIN_TABLE = $(SYS_IMD_GAIN_TABLE_SWITCH)
+endif
+
+#
+# Default FMP MMSE MRC Switch flag
+#
+SYS_OPTION_FMP_MMSE_MRC = $(SYS_FMP_MMSE_MRC_SWITCH)
+
+#
+# Setup FMP MMSE MRC compiler flag
+#
+ifeq ($(strip $(USE_MMSE_MRC_MODULE)),FALSE)
+ SYS_OPTION_FMP_MMSE_MRC = $(SYS_FMP_MMSE_MRC_NOSWITCH)
+endif
+
+#
+# Default RPC High Threshold Flag
+#
+SYS_OPTION_RPC_THRESHOLD = $(SYS_RPC_HIGH_THRESHOLD_NOTUSED)
+
+#
+# Setup RPC High Threshold Flag
+#
+ifeq ($(strip $(USE_RPC_FIX)),TRUE)
+ SYS_OPTION_RPC_THRESHOLD = $(SYS_RPC_HIGH_THRESHOLD_USED)
+endif
+
+#
+# Default GPS RF compiler flags to SYS_GPS_RF_NONE
+#
+SYS_OPTION_GPS_RF_HW = $(SYS_GPS_RF_NONE)
+
+#
+# Setup GPS RF compiler flags if GLONAV 1040 is used
+#
+ifeq ($(strip $(USE_GLONAV_1040_GPS_RF)),TRUE)
+ SYS_OPTION_GPS_RF_HW = $(SYS_GPS_RF_GLONAV_1040)
+endif
+
+#
+# Default GPS path feature
+#
+SYS_OPTION_GPS_HW = $(SYS_GPS_DEFAULT)
+
+#
+# Default External GPS compiler flags to NONE
+#
+SYS_OPTION_EXTERNAL_GPS_HW = $(SYS_EXT_GPS_NONE)
+
+ifeq ($(strip $(USE_GPS_TYPE)),GPS_TYPE_INTERNAL)
+ SYS_OPTION_GPS_HW = $(SYS_GPS_LOCAL_INTERNAL)
+endif
+
+ifeq ($(strip $(USE_GPS_TYPE)),GPS_TYPE_EXTERNAL_ON_CP)
+ C2K_COM_DEFS += SYS_OPTION_GPS_EXTERNAL
+endif
+
+ifeq ($(strip $(USE_GPS_TYPE)),GPS_TYPE_EXTERNAL_ON_AP)
+ C2K_COM_DEFS += SYS_OPTION_GPS_EXTERNAL
+ SYS_OPTION_EXTERNAL_GPS_HW = $(SYS_EXT_GPS_ON_AP)
+endif
+
+C2K_COM_DEFS += SYS_OPTION_GPS_AP_CALL
+
+SYS_OPTION_AP_GPS_HW = $(SYS_EXT_GPS_ON_AP_DEV0)
+
+SYS_OPTION_AGPS_ENABLE = $(SYS_AGPS_ENABLE)
+ifeq ($(strip $(MODIS_CONFIG)),FALSE)
+ SYS_OPTION_REFERENCE_FREQ = $(SYS_REFERENCE_FREQ_26_00)
+else
+ SYS_OPTION_REFERENCE_FREQ = $(SYS_REFERENCE_FREQ_19_20)
+endif
+SYS_OPTION_32K_CLK_SOURCE = $(SYS_OPTION_32K_CLK_INT_OSC)
+SYS_OPTION_TCXO_CONFIG = $(SYS_OPTION_TCXO_SINGLE)
+
+#
+# Default Audio path feature
+#
+SYS_OPTION_AUDIO_PATH_FEATURE = $(SYS_OPTION_AUDIO_PATH_FEATURE_DEFAULT)
+
+#
+# Audio patch feature
+#
+ifeq ($(strip $(AUDIO_PATH_FEATURE)),DEFAULT)
+ SYS_OPTION_AUDIO_PATH_FEATURE = $(SYS_OPTION_AUDIO_PATH_FEATURE_DEFAULT)
+else
+ ifeq ($(strip $(AUDIO_PATH_FEATURE)),ONE)
+ SYS_OPTION_AUDIO_PATH_FEATURE = $(SYS_OPTION_AUDIO_PATH_FEATURE_ONE)
+ else
+ ifeq ($(strip $(AUDIO_PATH_FEATURE)),TWO)
+ SYS_OPTION_AUDIO_PATH_FEATURE = $(SYS_OPTION_AUDIO_PATH_FEATURE_TWO)
+ endif
+ endif
+endif
+
+
+
+# Default flashless IPC device flags to SYS_IPC_DEV_NONE
+#
+SYS_OPTION_IPC_DEV = $(SYS_IPC_DEV_NONE)
+
+SYS_OPTION_HDET_HW = $(SYS_HDET_DISCRETE)
+#
+# LMV221 power detector
+#
+ifeq ($(strip $(HDET_HW)),LMV221)
+ SYS_OPTION_HDET_HW = $(SYS_HDET_LMV221)
+endif
+
+#
+# ADL550 power detector
+#
+ifeq ($(strip $(HDET_HW)),ADL550)
+ SYS_OPTION_HDET_HW = $(SYS_HDET_ADL550)
+endif
+
+
+# SYS_TARGET = $(ST_??)
+#
+# This define is used to select source code for the primary system target.
+#-------------------------------------------------------------------------
+
+ST_HW = 1
+ST_SIM = 2
+
+SYS_DEFS += ST_HW ST_SIM
+
+ifneq ($(strip $(SYS_TARGET)),)
+ SYS_DEFS += SYS_TARGET
+endif
+
+# SYS_BOARD = $(SB_??)
+#
+# This define is used to select source code for the board type used.
+#-------------------------------------------------------------------
+
+SB_BB7 = 1
+SB_EVB7 = 2
+SB_FEATURE_PHONE = 3
+SB_DATACARD = 4
+SB_EVB8 = 5
+SB_DENALI = 6
+SB_JADE = 7
+SB_EVEREST = 8
+SB_ELBRUS = 10
+
+SYS_DEFS += SB_BB7 SB_EVB7 SB_FEATURE_PHONE SB_DATACARD SB_EVB8 SB_DENALI SB_JADE SB_EVEREST SB_ELBRUS
+
+ifneq ($(strip $(SYS_BOARD)),)
+ SYS_DEFS += SYS_BOARD
+endif
+
+# SYS_BD_VARIANT = $(SBV_??)
+#
+# This define is used to select source code for a specific variant
+# of the SB_EVB8 board.
+# (Other SB_?? boards can have their own variants, too.)
+#-------------------------------------------------------------------
+
+SBV_BASE = 0
+SBV_FP = 1
+
+SYS_DEFS += SBV_BASE SBV_FP
+
+ifneq ($(strip $(SYS_BD_VARIANT)),)
+ SYS_DEFS += SYS_BD_VARIANT
+endif
+
+# SYS_ASIC = $(SA_??)
+#
+# This define is used to select source code for the type of process/ASIC used.
+# Since some code is shared between several ASICs, all of the following must be declared.
+#-----------------------------------------------------------------------------
+
+SA_FPGA = 1
+SA_CBP70 = 2
+SA_CBP71 = 3
+SA_CBP63 = 4
+SA_CBP80 = 5
+SA_CBP82 = 6
+SA_MT6735 = 7
+SA_MT6755 = 8
+SA_MT6797 = 9
+SA_ELBRUS = 11
+
+SYS_DEFS += SA_FPGA SA_CBP70 SA_CBP71 SA_CBP63 SA_CBP80 SA_CBP82 SA_MT6735 SA_MT6755 SA_MT6797 SA_ELBRUS
+
+ifneq ($(strip $(SYS_ASIC)),)
+ SYS_DEFS += SYS_ASIC
+endif
+
+
+# SYS_VERSION = $(SV_REV_??)
+#
+# This define is used to select source code which is specific to a particular
+# revision of the ASIC.
+#----------------------------------------------------------------------------
+
+SV_REV_A0 = 10
+SV_REV_A1 = 11
+SV_REV_B0 = 20
+SV_REV_C0 = 30
+SV_REV_D0 = 40
+
+SYS_VERSION = SV_REV_A0
+SYS_DSPM_PATCH = 0
+
+SYS_DEFS += SV_REV_A0 SV_REV_A1 SV_REV_B0 SV_REV_C0 SV_REV_D0
+
+ifneq ($(strip $(SYS_VERSION)),)
+ SYS_DEFS += SYS_VERSION
+endif
+
+ifeq "$(USE_VER)" "SV_REV_A0"
+ SO_VERSION = $(SV_REV_A0)
+else
+ ifeq "$(USE_VER)" "SV_REV_A1"
+ SO_VERSION = $(SV_REV_A1)
+ else
+ ifeq "$(USE_VER)" "SV_REV_B0"
+ SO_VERSION = $(SV_REV_B0)
+ else
+ ifeq "$(USE_VER)" "SV_REV_C0"
+ SO_VERSION = $(SV_REV_C0)
+ else
+ ifeq "$(USE_VER)" "SV_REV_D0"
+ SO_VERSION = $(SV_REV_D0)
+ else
+ SO_VERSION =
+ endif
+ endif
+ endif
+ endif
+endif
+
+# SYS_DSPM_PATCH = $(SP_??)
+# This define is used to select source code for the specific patch revision.
+#-----------------------------------------------------------------------------
+
+SP_ALL = 0
+SP_ONE = 1
+SP_TWO = 2
+SP_THREE = 3
+SP_FOUR = 4
+
+SYS_DEFS += SP_ALL SP_ONE SP_TWO SP_THREE SP_FOUR
+
+ifneq ($(strip $(SYS_DSPM_PATCH)),)
+ SYS_DEFS += SYS_DSPM_PATCH
+endif
+
+# SYS_OPTION_RF_HW = $(SYS_RF_??)
+#
+# This define is used to set the Target RF Options
+#-----------------------------------------------------------------------------
+SYS_RF_GRF_6413 = 13
+SYS_RF_FCI_7790 = 14
+SYS_RF_MTK_ORIONC = 15
+SYS_RF_MT6176 = 16
+
+SYS_DEFS += SYS_RF_GRF_6413 SYS_RF_FCI_7790 SYS_RF_MTK_ORIONC SYS_RF_MT6176
+
+ifneq ($(strip $(SYS_OPTION_RF_HW)),)
+ SYS_DEFS += SYS_OPTION_RF_HW
+endif
+
+
+# SYS_CUST_PLT = $(SYS_PLT_??)
+#
+# This define is used to set the Target custom platform Options
+# ---------------------------------
+SYS_PLT_SHAMU=0
+SYS_PLT_MT6735_EVB=1
+SYS_PLT_MT6735_PHONE=2
+SYS_PLT_MT6755_EVB=3
+SYS_PLT_MT6755_PHONE=4
+SYS_PLT_MT6797_EVB=5
+SYS_PLT_MT6797_PHONE=6
+
+SYS_DEFS += SYS_PLT_SHAMU SYS_PLT_MT6735_EVB SYS_PLT_MT6735_PHONE SYS_PLT_MT6755_EVB SYS_PLT_MT6755_PHONE SYS_PLT_MT6797_EVB SYS_PLT_MT6797_PHONE
+
+ifneq ($(strip $(SYS_CUST_PLT)),)
+ SYS_DEFS += SYS_CUST_PLT
+endif
+
+# SYS_OPTION_IMD_MODULE = $(SYS_IMD_MODULE_ISUSED/NOTUSED)
+#
+# This define is used to set to use IMD module or not.
+#-----------------------------------------------------------------------------
+# SYS_IMD_MODULE_ISUSED Value to identify IMD module is complied, can be used if enabled
+# SYS_IMD_MODULE_NOTUSED Value to identify IMD module is not complied, so cann not be used
+
+SYS_IMD_MODULE_ISUSED = 0
+SYS_IMD_MODULE_NOTUSED = 1
+
+SYS_DEFS += SYS_IMD_MODULE_ISUSED SYS_IMD_MODULE_NOTUSED
+
+ifneq ($(strip $(SYS_OPTION_IMD_MODULE)),)
+ SYS_DEFS += SYS_OPTION_IMD_MODULE
+endif
+
+# SYS_OPTION_IMD_GAIN_TABLE = $(SYS_IMD_GAIN_TABLE_SWITCH)
+#
+# This define is used to set to switch IMD table or not
+#-----------------------------------------------------------------------------
+# SYS_IMD_GAIN_TABLE_SWITCH Value to identify IMD module switch gain table based detection result.
+# SYS_IMD_GAIN_TABLE_NOSWITCH Value to identify IMD module does not switch gain table no matter detection result is.
+
+SYS_IMD_GAIN_TABLE_NOSWITCH = 0
+SYS_IMD_GAIN_TABLE_SWITCH = 1
+
+SYS_DEFS += SYS_IMD_GAIN_TABLE_NOSWITCH SYS_IMD_GAIN_TABLE_SWITCH
+
+ifneq ($(strip $(SYS_OPTION_IMD_GAIN_TABLE)),)
+ SYS_DEFS += SYS_OPTION_IMD_GAIN_TABLE
+endif
+
+# SYS_OPTION_FMP_MMSE_MRC = $(SYS_FMP_MMSE_MRC_??)
+#
+# This define is used to Compile FMP MMSE-MRC Switch Module or not.
+#-----------------------------------------------------------------------------
+# SYS_FMP_MMSE_MRC_SWITCH Value to identify Compile FMP MMSE-MRC Switch Module is complied, can be used if enabled
+# SYS_FMP_MMSE_MRC_NOSWITCH Value to identify Compile FMP MMSE-MRC Switch Module is not complied
+
+SYS_FMP_MMSE_MRC_NOSWITCH = 0
+SYS_FMP_MMSE_MRC_SWITCH = 1
+
+SYS_DEFS += SYS_FMP_MMSE_MRC_NOSWITCH SYS_FMP_MMSE_MRC_SWITCH
+
+ifneq ($(strip $(SYS_OPTION_FMP_MMSE_MRC)),)
+ SYS_DEFS += SYS_OPTION_FMP_MMSE_MRC
+endif
+
+# SYS_OPTION_RPC_THRESHOLD = $(SYS_RPC_HIGH_THRESHOLD_??)
+#
+# This define is used to Use High value of MBP_MCD_RPC_RTH or not.
+#-----------------------------------------------------------------------------
+# SYS_RPC_HIGH_THRESHOLD_USED
+# SYS_RPC_HIGH_THRESHOLD_NOTUSED
+
+SYS_RPC_HIGH_THRESHOLD_USED = 0
+SYS_RPC_HIGH_THRESHOLD_NOTUSED = 1
+
+SYS_DEFS += SYS_RPC_HIGH_THRESHOLD_USED SYS_RPC_HIGH_THRESHOLD_NOTUSED
+
+ifneq ($(strip $(SYS_OPTION_RPC_THRESHOLD)),)
+ SYS_DEFS += SYS_OPTION_RPC_THRESHOLD
+endif
+
+# SYS_OPTION_GPS_RF_HW = $(SYS_GPS_RF_??)
+#
+# This define is used to set the Target GPS RF Options
+#-----------------------------------------------------------------------------
+# SYS_GPS_RF_NONE Value to NON GPS RF is in use
+# SYS_GPS_RF_GLONAV_1040 Value to identify GloNav 1040
+
+SYS_GPS_RF_NONE = 0
+SYS_GPS_RF_GLONAV_1040 = 3
+
+SYS_DEFS += SYS_GPS_RF_NONE SYS_GPS_RF_GLONAV_1040
+
+ifneq ($(strip $(SYS_OPTION_GPS_RF_HW)),)
+ SYS_DEFS += SYS_OPTION_GPS_RF_HW
+endif
+
+# SYS_OPTION_EXTERNAL_GPS_HW = $(SYS_EXT_GPS_??)
+#
+# This define is used to set the Target External GPS Options
+#-----------------------------------------------------------------------------
+# SYS_EXT_GPS_NONE Value to NON External GPS is in use
+# SYS_EXT_GPS_GNS_7560 Value to identify ST GNS7560
+# SYS_EXT_GPS_ON_AP Value to identify GPS Device for GPS on AP (Bypass AA Msg)
+
+SYS_EXT_GPS_NONE = 0
+SYS_EXT_GPS_ON_AP = 2
+SYS_EXT_GPS_ON_AP_DEV0 = 3
+
+SYS_DEFS += SYS_EXT_GPS_NONE SYS_EXT_GPS_ON_AP SYS_EXT_GPS_ON_AP_DEV0
+
+ifneq ($(strip $(SYS_OPTION_EXTERNAL_GPS_HW)),)
+ SYS_DEFS += SYS_OPTION_EXTERNAL_GPS_HW
+endif
+
+# Agps option
+
+SYS_AGPS_ENABLE = 1
+
+SYS_DEFS += SYS_AGPS_ENABLE
+
+ifneq ($(strip $(SYS_OPTION_AGPS_ENABLE)),)
+ SYS_DEFS += SYS_OPTION_AGPS_ENABLE
+endif
+
+ifneq ($(strip $(SYS_OPTION_AP_GPS_HW)),)
+ SYS_DEFS += SYS_OPTION_AP_GPS_HW
+endif
+
+
+# SYS_OPTION_REFERENCE_FREQ = $(SYS_REFERENCE_??)
+#
+# This define is used to identify the Target Clock Reference
+#-----------------------------------------------------------------------------
+# SYS_REFERENCE_FREQ_19_20 Value to identify 19.20 MHz clock reference
+# SYS_TEST_REF_FREQ_39_32 Value to identify 39.3216 MHz clock reference (for test only)
+# SYS_REFERENCE_FREQ_26_00 Value to identify 26.00 MHz clock reference (for Denali)
+# Used for PLL bypass, so never use with option SYS_OPTION_INTERNAL_PLL
+# defined!!!
+
+SYS_REFERENCE_FREQ_19_20 = 0
+SYS_TEST_REF_FREQ_39_32 = 1
+SYS_REFERENCE_FREQ_26_00 = 2
+
+SYS_DEFS += SYS_REFERENCE_FREQ_19_20 SYS_TEST_REF_FREQ_39_32 SYS_REFERENCE_FREQ_26_00
+
+ifneq ($(strip $(SYS_OPTION_REFERENCE_FREQ)),)
+ SYS_DEFS += SYS_OPTION_REFERENCE_FREQ
+endif
+
+# SYS_OPTION_32K_CLK_SOURCE = $(SYS_OPTION_32K_CLK_??)
+#
+# This define is used to identify the 32K clock source
+#-----------------------------------------------------------------------------
+# SYS_OPTION_32K_CLK_INT_OSC Value to identify internal 32K osc
+# SYS_OPTION_32K_CLK_BYPASS Value to identify external 32K osc
+# SYS_OPTION_32K_CLK_DIV_TCXO Value to identify the usage of TCXO/512 instead of 32K osc
+
+SYS_OPTION_32K_CLK_INT_OSC = 0
+SYS_OPTION_32K_CLK_BYPASS = 1
+SYS_OPTION_32K_CLK_DIV_TCXO = 2
+
+SYS_DEFS += SYS_OPTION_32K_CLK_INT_OSC SYS_OPTION_32K_CLK_BYPASS SYS_OPTION_32K_CLK_DIV_TCXO
+
+ifneq ($(strip $(SYS_OPTION_32K_CLK_SOURCE)),)
+ SYS_DEFS += SYS_OPTION_32K_CLK_SOURCE
+endif
+
+
+# SYS_OPTION_AUDIO_PATH_FEATURE = $(SYS_OPTION_AUDIO_PATH_FEATURE_??)
+#
+# This define is used to select audio path feature
+SYS_OPTION_AUDIO_PATH_FEATURE_DEFAULT = 0
+SYS_OPTION_AUDIO_PATH_FEATURE_ONE = 1
+SYS_OPTION_AUDIO_PATH_FEATURE_TWO = 2
+
+SYS_DEFS += SYS_OPTION_AUDIO_PATH_FEATURE_DEFAULT SYS_OPTION_AUDIO_PATH_FEATURE_ONE SYS_OPTION_AUDIO_PATH_FEATURE_TWO
+
+ifneq ($(strip $(SYS_OPTION_AUDIO_PATH_FEATURE)),)
+ SYS_DEFS += SYS_OPTION_AUDIO_PATH_FEATURE
+endif
+
+
+#
+# This define is used to select gps path feature
+SYS_GPS_DEFAULT = 0
+SYS_GPS_LOCAL_INTERNAL = 1
+
+
+SYS_DEFS += SYS_GPS_DEFAULT SYS_GPS_LOCAL_INTERNAL
+
+ifneq ($(strip $(SYS_OPTION_GPS_HW)),)
+ SYS_DEFS += SYS_OPTION_GPS_HW
+endif
+
+
+
+# SYS_OPTION_USB
+#
+# Define USB used
+# SYS_USB_NONE USB not included
+# SYS_USB_SYNOPSYS USB core in cbp7X and older
+# SYS_USB_SYNOPSYS2 - Adds 8 Interface and EP0 stall capability
+# SYS_USB_GUC USB core for cbp8X
+SYS_USB_NONE = 99
+SYS_USB_SYNOPSYS = 0
+SYS_USB_SYNOPSYS2 = 1
+SYS_USB_SYNOPSYS_LAST = 2
+SYS_USB_GUC = 3
+SYS_USB_GUC_LAST = 4
+
+SYS_DEFS += SYS_USB_NONE SYS_USB_SYNOPSYS SYS_USB_SYNOPSYS2 SYS_USB_SYNOPSYS_LAST SYS_USB_GUC SYS_USB_GUC_LAST
+
+ifneq ($(strip $(SYS_OPTION_USB)),)
+ SYS_DEFS += SYS_OPTION_USB
+endif
+
+
+# SYS_OPTION_IPC_DEV
+#
+# Define the device type of AP-CBP, use for flashless support
+# SYS_IPC_DEV_NONE No IPC device
+# SYS_IPC_DEV_USB USB IPC type
+# SYS_IPC_DEV_DPRAM DPRAM IPC type
+# SYS_IPC_DEV_SDIO SDIO IPC type
+# SYS_IPC_DEV_SPI SPI IPC type
+# SYS_IPC_DEV_CCIF CCIF IPC type
+SYS_IPC_DEV_NONE = 99
+SYS_IPC_DEV_USB = 2
+SYS_IPC_DEV_DPRAM = 3
+SYS_IPC_DEV_SDIO = 4
+SYS_IPC_DEV_SPI = 5
+SYS_IPC_DEV_CCIF = 6
+
+SYS_DEFS += SYS_IPC_DEV_NONE SYS_IPC_DEV_USB SYS_IPC_DEV_DPRAM SYS_IPC_DEV_SDIO SYS_IPC_DEV_SPI SYS_IPC_DEV_CCIF
+
+ifneq ($(strip $(SYS_OPTION_IPC_DEV)),)
+ SYS_DEFS += SYS_OPTION_IPC_DEV
+endif
+
+# SYS_OPTION_TCXO_CONFIG = $(SYS_OPTION_TCXO_??)
+#
+# This define is used to identify the TCXO configuration definition
+#-----------------------------------------------------------------------------
+# SYS_OPTION_TCXO_CONFIG TCXO configuration definition
+#
+# SYS_OPTION_TCXO_SINGLE single TCXO
+# SYS_OPTION_TCXO_DBL_MAIN double TCXO - main OSC supplies the ARM reference clock
+# SYS_OPTION_TCXO_DBL_AUX double TCXO - aux OSC supplies the ARM reference clock
+
+SYS_OPTION_TCXO_SINGLE = 0
+SYS_OPTION_TCXO_DBL_MAIN = 1
+SYS_OPTION_TCXO_DBL_AUX = 2
+
+SYS_DEFS += SYS_OPTION_TCXO_SINGLE SYS_OPTION_TCXO_DBL_MAIN SYS_OPTION_TCXO_DBL_AUX
+
+ifneq ($(strip $(SYS_OPTION_TCXO_CONFIG)),)
+ SYS_DEFS += SYS_OPTION_TCXO_CONFIG
+endif
+
+# SYS_OPTION_HDET_HW = $(SYS_HDET_??)
+#
+# This define is used to set the Target power detector option
+#-----------------------------------------------------------------------------
+SYS_HDET_LMV221 = 0
+SYS_HDET_ADL550 = 1
+SYS_HDET_DISCRETE = 2
+
+SYS_DEFS += SYS_HDET_LMV221 SYS_HDET_ADL550 SYS_HDET_DISCRETE
+
+ifneq ($(strip $(SYS_OPTION_HDET_HW)),)
+ SYS_DEFS += SYS_OPTION_HDET_HW
+endif
+
+C2K_COM_DEFS += $(foreach nm, $(SYS_DEFS),$(nm)=$($(nm)))
+
+################################################################################
+#
+# System Options definitions
+#
+################################################################################
+
+C2K_COM_DEFS += SYS_TARGET_HW
+C2K_COM_DEFS += SYS_INVERTER_UART1
+C2K_COM_DEFS += SYS_OPTION_INTERNAL_PLL
+C2K_COM_DEFS += SYS_OPTION_OSCEN_ACTIVE_LOW
+C2K_COM_DEFS += SYS_OPTION_SMS_ENGINE
+C2K_COM_DEFS += SYS_OPTION_OTASP
+C2K_COM_DEFS += SYS_OPTION_RLP
+C2K_COM_DEFS += SYS_OPTION_HL
+C2K_COM_DEFS += EVL1_RXAGC_HISTORY_REC_EN
+
+# SYS_OPTION_TX_TAS_ENABLE :Select the better antenna for TX , for JADE platform
+# MTK_DEV_C2K_TAS:Select the better antenna for c2k voice call , for Denali paltform
+ifeq ($(strip $(MODIS_CONFIG)),FALSE)
+ C2K_COM_DEFS += SYS_OPTION_TX_TAS_ENABLE
+endif
+
+ifeq ($(strip $(TAS_OFF_WHEN_NO_SIM)), TRUE)
+ C2K_COM_DEFS += __TAS_OFF_WHEN_NO_SIM__
+endif
+
+ifeq ($(strip $(TAS_ANTENNA_IDX_ON_TEST_SIM)), TRUE)
+ C2K_COM_DEFS += __TAS_ANTENNA_IDX_ON_TEST_SIM__
+endif
+
+ifeq ($(strip $(GET_META_MODE_OFF)),TRUE)
+ C2K_COM_DEFS += MTK_META_MODE_OFF
+endif
+
+ifdef C2K_BC0_SUBCLASS_3_ENABLE
+ ifeq ($(strip $(C2K_BC0_SUBCLASS_3_ENABLE)), TRUE)
+ C2K_COM_DEFS += __C2K_BC0_SUBCLASS_3_ENABLE__
+ endif
+endif
+
+ifndef AGPS_SYNC
+ AGPS_SYNC = TRUE # Default AGPS On
+endif
+
+ifeq ($(strip $(AGPS_SYNC)),TRUE)
+ C2K_COM_DEFS += MTK_GPS_SYNC_DEV
+endif
+
+ifneq "$(USE_DMU)" "FALSE"
+ C2K_COM_DEFS += SYS_OPTION_MIP
+else
+ ifneq ($(findstring VERIZON_EXTENSIONS,$(SO_EXTRA)),)
+ C2K_COM_DEFS += SYS_OPTION_MIP
+ C2K_COM_DEFS += SYS_OPTION_MIP_DMU
+ else
+ ifneq "$(USE_MOIP)" "FALSE"
+ C2K_COM_DEFS += SYS_OPTION_MIP
+ endif
+ endif
+endif
+
+ifeq "$(USE_THROTTLING)" "TRUE"
+ C2K_COM_DEFS += SYS_OPTION_HSPD_THROTTLING
+else
+ ifneq ($(findstring VERIZON_EXTENSIONS,$(SO_EXTRA)),)
+ C2K_COM_DEFS += SYS_OPTION_HSPD_THROTTLING
+ endif
+endif
+
+ifeq "$(USE_FALLBACK)" "TRUE"
+ C2K_COM_DEFS += SYS_OPTION_HSPD_FALLBACK
+else
+ ifneq ($(findstring VERIZON_EXTENSIONS,$(SO_EXTRA)),)
+ C2K_COM_DEFS += SYS_OPTION_HSPD_FALLBACK
+ endif
+endif
+
+ifeq "$(USE_IRAT_MMC)" "TRUE"
+ C2K_COM_DEFS += SYS_OPTION_IRAT_MMC
+endif
+
+C2K_COM_DEFS += SYS_OPTION_DATA_RAM_INUSE
+
+ifneq "$(NO_SCH_RAM)" "TRUE"
+ C2K_COM_DEFS += SYS_OPTION_SCH_RAM_INUSE
+endif
+
+C2K_COM_DEFS += SYS_OPTION_NTWKRMPKT_RAM_INUSE
+
+ifneq "$(NO_AUTH)" "TRUE"
+ C2K_COM_DEFS += SYS_OPTION_AUTHENTICATION
+endif
+
+C2K_COM_DEFS += SYS_OPTION_DUAL_NAM
+
+SO_UIM = SYS_OPTION_RUIM
+ifeq "$(USE_RUIM)" "TRUE"
+ ifeq "$(USE_REMOTE_UICC)" "TRUE"
+ SO_UIM += SYS_OPTION_REMOTE_UICC
+ endif
+ ifeq "$(USE_LOCAL_UICC)" "TRUE"
+ SO_UIM += SYS_OPTION_LOCAL_UICC
+ endif
+ ifeq "$(USE_UTK)" "TRUE"
+ SO_UIM += FEATURE_UTK FEATURE_CALL_CONTROL FEATURE_BIP FEATURE_EVENT_DOWNLOAD
+ endif
+ ifeq "$(USE_BIP)" "TRUE"
+ SO_UIM += FEATURE_BIP
+ endif
+
+ C2K_COM_DEFS += $(SO_UIM)
+endif
+
+C2K_COM_DEFS += SYS_OPTION_ENHANCEDAT
+
+C2K_COM_DEFS += SYS_OPTION_RPC
+C2K_COM_DEFS += SYS_OPTION_GPS_RPC
+ifeq "$(USE_IRAT_RPC)" "TRUE"
+ C2K_COM_DEFS += SYS_OPTION_RPC
+ C2K_COM_DEFS += SYS_OPTION_IRAT_RPC
+endif
+
+ifneq "$(NO_GPS)" "TRUE"
+ C2K_COM_DEFS += SYS_OPTION_GPS_SIMULTANEOUS
+endif
+
+C2K_COM_DEFS += SYS_OPTION_DIGITAL_RX_AGC
+
+C2K_COM_DEFS += SYS_OPTION_PA2_CTRL
+#
+# Setup Default Rx Hysterisis compiler option is used
+#
+ifneq "$(USE_DEFAULT_RX_HYSTERESIS)" "FALSE"
+ C2K_COM_DEFS += DEFAULT_RX_HYSTERESIS
+endif
+
+ifeq "$(USE_PC_VOICE)" "TRUE"
+ C2K_COM_DEFS += SYS_OPTION_PC_VOICE
+endif
+
+C2K_COM_DEFS += SYS_OPTION_ATCMD_CH SYS_OPTION_ATCMD_CH_2 SYS_OPTION_ATCMD_CH_3 SYS_OPTION_ATCMD_CH_4
+
+C2K_COM_DEFS += SYS_OPTION_ERI
+
+#
+#EHRPD option
+#
+C2K_COM_DEFS += CBP7_EHRPD
+
+#
+#IPV6 option
+#
+C2K_COM_DEFS += CBP7_IPV6
+
+C2K_COM_DEFS += SYS_OPTION_NO_IPV6_STACK
+
+#
+# Setup the compiler/assembler option SYS_OPTION_EVD0 (for 7.0x targets)
+# based on the USE_1X_ONLY command line option
+#
+ifeq "$(USE_1X_ONLY)" "TRUE"
+else
+ C2K_COM_DEFS += SYS_OPTION_EVDO
+endif
+
+
+C2K_COM_DEFS += SYS_OPTION_EXT_AUDIO_CODEC
+
+ifeq "$(XCO_TYPE)" "DCXO"
+ C2K_COM_DEFS += SYS_OPTION_USE_DCXO
+endif
+
+ifeq "$(NO_PPPHA_ENC_ENH)" "TRUE"
+else
+ C2K_COM_DEFS += SYS_OPTION_PPPHA_ENC_ENH
+endif
+
+C2K_COM_DEFS += SYS_OPTION_AUX_ADC_POLL
+C2K_COM_DEFS += SYS_OPTION_WAIT_FOR_BOOT_TO_LOADER
+C2K_COM_DEFS += SYS_OPTION_HWD_PROFILE
+C2K_COM_DEFS += HWD_DBG_TXDAC_DIRECT
+
+C2K_COM_DEFS += HWD_FEATURE_PA_SPDM_CTRL
+
+C2K_COM_DEFS += FEATURE_PS_NOT_TURNON_AUTO
+
+C2K_COM_DEFS += SYS_OPTION_GSM_PROTECTION
+
+C2K_COM_DEFS += $(SO_EXTRA)
+
+C2K_COM_DEFS += SYS_DEBUG_FAULT_FILE_INFO
+
+ifeq ($(strip $(TX_SWTP_ENABLE)),TRUE)
+ C2K_COM_DEFS += __TX_POWER_OFFSET_SUPPORT__
+endif
+
+
+################ UI Feature: ################
+ifeq "$(CONFIG_UI)" "NONE"
+ C2K_COM_DEFS += SYS_OPTION_NO_UI
+ C2K_COM_DEFS += FEATURE_LCD_SIZE_320x240
+endif
+
+ifeq "$(SUPPORT_RTRE)" "TRUE"
+ C2K_COM_DEFS += FEATURE_RTRE
+endif
+
+ifeq "$(SUPPORT_UTK)" "TRUE"
+ C2K_COM_DEFS += FEATURE_UTK
+endif
+
+ifeq "$(SUPPORT_SMS_AUTO_REGISTER)" "TRUE"
+ ifeq "$(USE_RUIM)" "TRUE"
+ C2K_COM_DEFS += FEATURE_SMS_AUTO_REGISTER
+ endif
+endif
+
+ifeq "$(SUPPORT_ESN_TRACK)" "TRUE"
+ ifeq "$(USE_RUIM)" "TRUE"
+ C2K_COM_DEFS += FEATURE_ESN_TRACK
+ endif
+endif
+
+ifeq "$(SUPPORT_ESN_TRACK_TATA)" "TRUE"
+ ifeq "$(USE_RUIM)" "TRUE"
+ C2K_COM_DEFS += FEATURE_ESN_TRACK_TATA
+ endif
+endif
+
+ifeq "$(SUPPORT_LSM)" "TRUE"
+ C2K_COM_DEFS += FEATURE_LSM
+endif
+
+ifeq "$(SUPPORT_SMARTMSG)" "TRUE"
+ ifeq "$(SUPPORT_VCARD)" "TRUE"
+ C2K_COM_DEFS += FEATURE_SMARTMSG
+ else
+ ifeq "$(SUPPORT_VCALENDAR)" "TRUE"
+ C2K_COM_DEFS += FEATURE_SMARTMSG
+ endif
+ endif
+endif
+
+ifeq "$(SUPPORT_SMS_CHAT)" "TRUE"
+ C2K_COM_DEFS += FEATURE_SMS_CHAT
+endif
+
+ifeq "$(SUPPORT_VOICE_MAIL)" "TRUE"
+ C2K_COM_DEFS += FEATURE_VOICE_MAIL
+endif
+
+ifeq "$(SUPPORT_UNITTEST)" "TRUE"
+ C2K_COM_DEFS += FEATURE_UNITTEST
+endif
+
+ifeq "$(SUPPORT_MMS)" "TRUE"
+ C2K_COM_DEFS += FEATURE_MMS
+endif
+ifeq "$(SUPPORT_WAP_TYPE)" "VAAWEB"
+ C2K_COM_DEFS += FEATURE_VAAWEB
+endif
+ifeq "$(SUPPORT_QCLX)" "TRUE"
+ C2K_COM_DEFS += FEATURE_APP_QCLX
+endif
+ifeq "$(SUPPORT_WAP_MMS_TYPE)" "JUPITOR"
+ C2K_COM_DEFS += FEATURE_JUPITOR
+endif
+ifeq "$(SUPPORT_MMS_TYPE)" "VAAMMS"
+ C2K_COM_DEFS += FEATURE_VAAMMS
+endif
+ifeq "$(SUPPORT_VOICEMEMO)" "TRUE"
+ C2K_COM_DEFS += FEATURE_VOICEMEMO
+endif
+
+################ Driver Feature: ################
+ifeq "$(RTC_TYPE)" "RTC_NONE"
+ C2K_COM_DEFS += RTC_NONE
+endif
+
+ifeq "$(SUPPORT_DUMP_FAULT_LOG)" "TRUE"
+ C2K_COM_DEFS += SYS_EXE_FAULT_DATA_DUMP
+endif
+
+ifeq "$(SUPPORT_GFX)" "TRUE"
+ C2K_COM_DEFS += FEATURE_GFX_2D_BITBILT
+endif
+
+################################################################################
+#
+# MTK Main Definitions
+#
+################################################################################
+
+#USE_MTK_CBP
+# Description:
+# Enable MTK changes
+# Option Values:
+# DEVELOPMENT: Enable MTK formal and informal changes
+# RELEASE: Enable MTK formal changes only
+#
+
+#**************** FOR DEVELOPMENT VERSION *************************
+USE_MTK_CBP=DEVELOPMENT
+ifeq ($(strip $(USE_MTK_CBP)),DEVELOPMENT)
+ C2K_COM_DEFS += MTK_CBP
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_OTA
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_XL2
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_PE
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_VAL
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_HLP
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_GPS
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_SMS
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_EVL1
+ C2K_COM_DEFS += MTK_DEV_OPTIMIZE_EVL1
+ C2K_COM_DEFS += MTK_DEV_HLP_OPTIMIZE_CP
+ C2K_COM_DEFS += MTK_DEV_HLP_OPTIMIZE_UP
+ C2K_COM_DEFS += MTK_DEV_TRACE_ENHANCEMENT
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_EVL2
+ C2K_COM_DEFS += MTK_DEV_OPTIMIZE_EVL2
+ C2K_COM_DEFS += MTK_DEV_OPTIMIZE_XL2
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_SLC
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_CLC
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_SS
+ C2K_COM_DEFS += MTK_DEV_ETS_ENHANCEMENT
+ C2K_COM_DEFS += MTK_DEV_OPTIMIZE_PE
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_RUP
+ C2K_COM_DEFS += MTK_DEV_OPTIMIZE_RUP
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_CSS
+ C2K_COM_DEFS += MTK_DEV_FIX_KW
+ C2K_COM_DEFS += MTK_DEV_FIX_BUILDWARN
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_EHRPD
+ C2K_COM_DEFS += MTK_DEV_BUG_FIX_UIM
+ C2K_COM_DEFS += MTK_DEV_ENGINEER_MODE
+ C2K_COM_DEFS += MTK_DEV_FACTORY_MODE
+ C2K_COM_DEFS += MTK_DEV_HSC_SHDR
+ C2K_COM_DEFS += MTK_DEV_META_LOGGING
+ C2K_COM_DEFS += MTK_DEV_GPSONE_ON_LTE
+ #C2K_COM_DEFS += MTK_DEV_BRING_UP_DISABLE_SLOTTED_DO
+ #C2K_COM_DEFS += MTK_DEV_DUMP_REG
+
+ ##Used for workarounds in codes. disabled after all issue resolved.
+ C2K_COM_DEFS += MTK_DEV_WORKAROUND
+
+ #C2K Legacy development macro
+ C2K_COM_DEFS += MTK_DEV_93M_PREIT
+
+ ifeq ($(strip $(USE_LOG_BUFFER_SIZE_96K)),TRUE)
+ C2K_COM_DEFS += MTK_DEV_LOG_BUFFER_96K
+ endif
+
+ C2K_COM_DEFS += MTK_DEV_C2K_IRAT
+ ifeq ($(strip $(PLATFORM)),MT6735)
+ C2K_COM_DEFS += MTK_DEV_TX_POWER_RPT_SUPPORT
+ endif
+
+ C2K_COM_DEFS += MTK_DEV_C2K_SRLTE
+ ifeq ($(strip $(USE_RTB_CHECK)),TRUE)
+ C2K_COM_DEFS += MTK_DEV_C2K_SRLTE_RTB_CHECK
+ endif
+ C2K_COM_DEFS += MTK_DEV_C2K_SRLTE_L1
+ C2K_COM_DEFS += MTK_DEV_C2K_SRLTE_BASE
+ C2K_COM_DEFS += MTK_CBP_SYNC_OPTIMIZE
+
+ ifeq ($(strip $(PLATFORM)),MT6735)
+ C2K_COM_DEFS += MTK_DEV_DENALI_SRLTE_PRE_IT
+ endif
+##Enable the Function for Modem send TX Power to AP;Only enable MT6755 and follow version
+ C2K_COM_DEFS += MTK_DEV_TX_RPT_AP
+
+
+ ifeq ($(strip $(USE_ENCRYPT_VOICE)),TRUE)
+ COM_DEFS += MTK_CBP_ENCRYPT_VOICE
+ endif
+
+ C2K_COM_DEFS += MTK_DEV_MEMORY_OPT
+
+ ifeq ($(strip $(MODIS_CONFIG)),FALSE)
+ ifeq ($(strip $(SLT)),TRUE)
+ C2K_COM_DEFS += MTK_DEV_SLT
+ endif
+ endif
+
+ ifeq ($(strip $(SLT_TX)),TRUE)
+ C2K_COM_DEFS += MTK_DEV_SLT_TX
+ endif
+
+ ifeq ($(strip $(SLT_LOGON)),TRUE)
+ C2K_COM_DEFS += MTK_DEV_SLT_LOGON
+ endif
+
+#
+# DISABLE_SLEEP option
+#
+ ifeq ($(strip $(DISABLE_SLEEP)),TRUE)
+ # C2K_COM_DEFS += SYS_OPTION_DISABLE_SLEEP
+ endif
+endif
+C2K_COM_DEFS += MTK_DEV_32K_LESS
+
+C2K_COM_DEFS += SYS_OPTION_MORE_AT_CHANNEL
+
+C2K_COM_DEFS += MTK_DEV_CCCI_FS
+
+#**********get version value from C2K_COM_DEFS******************
+NV_VERNO_STRING=$(filter MTK_VERNO_STRING=%,$(C2K_COM_DEFS))
+#remove '\' in string
+NV_VERNO_STRING:=$(shell echo $(shell echo $(shell echo $(shell echo $(NV_VERNO_STRING)))))
+NV_VERNO_STRING:=$(patsubst MTK_VERNO_STRING=%, %, $(NV_VERNO_STRING))
+#**********************************************************
+
+C2K_COM_DEFS += MTK_DEV_GCC_WARN_FIX
+
+ifeq ($(strip $(PMU_TYPE)),PMU_MT6328)
+ C2K_COM_DEFS += PMU_MT6328
+else
+ C2K_COM_DEFS += PMU_MT6351
+endif
+
+# UIM DISABLED
+ifeq ($(strip $(UIM_DISABLE)),TRUE)
+ C2K_COM_DEFS += MTK_PLT_ON_PC_UIM_DISABLE
+endif
+
+# MODIS Compile Options
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ C2K_COM_DEFS += MTK_PLT_ON_PC
+ C2K_COM_DEFS += BOARD_CBP80_FLASH
+ C2K_COM_DEFS += MTK_PLT_ON_PC_CODEGEN
+
+ # Default UIM DISABLED in MODIS
+ ifndef UIM_DISABLE
+ C2K_COM_DEFS += MTK_PLT_ON_PC_UIM_DISABLE
+ else
+ ifeq ($(strip $(UIM_DISABLE)),TRUE)
+ C2K_COM_DEFS += MTK_PLT_ON_PC_UIM_DISABLE
+ endif
+ endif
+
+ ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ C2K_COM_DEFS += MTK_PLT_ON_PC_IT
+ C2K_COM_DEFS += C2K_UESIM_ON_PC_IT
+ # CL1 HSC UESIM STUB macro
+ C2K_COM_DEFS += MTK_DEV_HSC_UT_STUB
+ else
+ C2K_COM_DEFS += MTK_PLT_ON_PC_UT
+ C2K_COM_DEFS += MTK_DEV_RTM_RLSI_OPTIMIZE
+ # CT: PSW UT cases only pass on CT carrier
+ C2K_COM_DEFS += CHINATELECOM_EXTENSIONS
+ endif
+else #IF !MODIS_CONFIG
+ C2K_COM_DEFS += MTK_DEV_SHARED_AFC_TEST
+
+ # for LWCTG3_MODEM flavor
+ ifeq ($(strip $(ORIGINAL_FLAVOR)),LWCTG3_MODEM)
+ C2K_COM_DEFS += SRLTE_RSVA_STUB
+ C2K_COM_DEFS += MTK_C2K_L1_TST
+ # C2K_COM_DEFS += MTK_EVL1_FLBSRP_REGDUMP
+# C2K_COM_DEFS += MTK_EVL1_SCH_REGDUMP
+# C2K_COM_DEFS += MTK_EVL1_RLBSRP_REGDUMP
+ # C2K_COM_DEFS += MTK_1XL1_FLBSRP_REGDUMP
+# C2K_COM_DEFS += MTK_1XL1_SCH_REGDUMP
+# C2K_COM_DEFS += MTK_1XL1_RLBSRP_REGDUMP
+ C2K_COM_DEFS += C2K_L4_AT_CMD
+ endif
+
+ # C2K DDL Workaround
+ ifneq ($(findstring LWCTG3,$(ORIGINAL_FLAVOR)),)
+ C2K_COM_DEFS += C2K_EVL1_BRINGUP_WORKAROUND
+ ifeq ($(strip $(MODIS_CONFIG)),FALSE)
+ C2K_COM_DEFS += C2K_FIRST_BOOT_EN
+ endif
+ endif
+
+ ifeq ($(strip $(ORIGINAL_PROJECT_NAME)),MT6763_FPGA)
+ ifeq ($(strip $(ORIGINAL_FLAVOR)),CL1S)
+ C2K_COM_DEFS += MTK_C2K_L1_TST
+ # C2K_COM_DEFS += MTK_EVL1_FLBSRP_REGDUMP
+# C2K_COM_DEFS += MTK_EVL1_SCH_REGDUMP
+# C2K_COM_DEFS += MTK_EVL1_RLBSRP_REGDUMP
+ # C2K_COM_DEFS += MTK_1XL1_FLBSRP_REGDUMP
+# C2K_COM_DEFS += MTK_1XL1_SCH_REGDUMP
+# C2K_COM_DEFS += MTK_1XL1_RLBSRP_REGDUMP
+ endif
+ #Enable LWCTG3 options for project MT6763_FPGA(LWCTG)
+ ifeq ($(strip $(ORIGINAL_FLAVOR)),LWCTG)
+ C2K_COM_DEFS += SRLTE_RSVA_STUB
+ C2K_COM_DEFS += MTK_C2K_L1_TST
+ # C2K_COM_DEFS += MTK_EVL1_FLBSRP_REGDUMP
+# C2K_COM_DEFS += MTK_EVL1_SCH_REGDUMP
+# C2K_COM_DEFS += MTK_EVL1_RLBSRP_REGDUMP
+ # C2K_COM_DEFS += MTK_1XL1_FLBSRP_REGDUMP
+# C2K_COM_DEFS += MTK_1XL1_SCH_REGDUMP
+# C2K_COM_DEFS += MTK_1XL1_RLBSRP_REGDUMP
+ endif
+ endif #IF MT6763_FPGA
+
+ ifeq ($(strip $(ORIGINAL_PROJECT_NAME)),MT6297_EVB)
+ # for NLWCTG_MODEM flavor
+ ifeq ($(strip $(ORIGINAL_FLAVOR)),NLWCTG_MODEM)
+ #C2K_COM_DEFS += SRLTE_RSVA_STUB
+ C2K_COM_DEFS += MTK_C2K_L1_TST
+ #C2K_COM_DEFS += MTK_PLT_ON_PC_UIM_DISABLE
+ C2K_COM_DEFS += MTK_EVL1_FLBSRP_REGDUMP
+ C2K_COM_DEFS += MTK_EVL1_SCH_REGDUMP
+ C2K_COM_DEFS += MTK_EVL1_RLBSRP_REGDUMP
+ C2K_COM_DEFS += MTK_1XL1_FLBSRP_REGDUMP
+ C2K_COM_DEFS += MTK_1XL1_SCH_REGDUMP
+ C2K_COM_DEFS += MTK_1XL1_RLBSRP_REGDUMP
+ C2K_COM_DEFS += C2K_L4_AT_CMD
+ endif #IF NLWCTG_MODEM
+
+ # C2K DDL Workaround
+ ifneq ($(findstring NLWCTG,$(ORIGINAL_FLAVOR)),)
+ C2K_COM_DEFS += C2K_EVL1_BRINGUP_WORKAROUND
+ ifeq ($(strip $(MODIS_CONFIG)),FALSE)
+ C2K_COM_DEFS += C2K_FIRST_BOOT_EN
+ endif
+ endif
+ endif #IF MT6297_EVB
+
+ #Enable Modem Only options for project MT6297_FPGA
+ ifeq ($(strip $(ORIGINAL_PROJECT_NAME)),MT6297_FPGA)
+ C2K_COM_DEFS += SRLTE_RSVA_STUB
+ C2K_COM_DEFS += MTK_C2K_L1_TST
+ C2K_COM_DEFS += MTK_PLT_ON_PC_UIM_DISABLE
+ C2K_COM_DEFS += MTK_EVL1_FLBSRP_REGDUMP
+ C2K_COM_DEFS += MTK_EVL1_SCH_REGDUMP
+ C2K_COM_DEFS += MTK_EVL1_RLBSRP_REGDUMP
+ C2K_COM_DEFS += MTK_1XL1_FLBSRP_REGDUMP
+ C2K_COM_DEFS += MTK_1XL1_SCH_REGDUMP
+ C2K_COM_DEFS += MTK_1XL1_RLBSRP_REGDUMP
+ endif #IF MT6297_FPGA
+endif #IF MODIS_CONFIG
+
+# if L1SDISABLE flavor
+ifneq ($(findstring L1DISABLE,$(ORIGINAL_FLAVOR)),)
+ # Use this complie option in modem_2g3g_task_config.h
+ # to disabel the task entry.
+ C2K_COM_DEFS += __CL1_TASK_DISABLE__
+ C2K_COM_DEFS += __C2K_PS_TASK_DISABLE__
+endif
+
+## if L1S flavor
+#ifneq ($(findstring L1S,$(ORIGINAL_FLAVOR)),)
+## Use this complie option in modem_2g3g_task_config.h
+## to disabel the task entry.
+# #C2K_COM_DEFS += __C2K_PS_TASK_DISABLE__
+# C2K_COM_DEFS += __C2K_L1S__
+## UIM DISABLED in L1S load
+# C2K_COM_DEFS += MTK_PLT_ON_PC_UIM_DISABLE
+#endif
+
+# if SLT flavor
+ifneq ($(findstring SLT,$(IC_TEST_TYPE)),)
+ C2K_COM_DEFS += MTK_DEV_SLT
+ C2K_COM_DEFS += MTK_DEV_SLT_TX
+ C2K_COM_DEFS += MTK_PLT_ON_PC_UIM_DISABLE
+ C2K_COM_DEFS += MTK_DEV_SLT_ON_RF_GENERATOR
+# C2K_COM_DEFS += SRLTE_RSVA_STUB
+endif
+
+ifeq ($(strip $(GEMINI)),FALSE)
+# GEMINI is set to FASLE in L1S project
+ C2K_COM_DEFS += SRLTE_RSVA_STUB
+endif
+# SCC PE Interface OPTIMIZE
+C2K_COM_DEFS += MTK_CBP_REL_OPTIMIZE
+C2K_COM_DEFS += RCP_RI_HRT_DEV
+
+# C2K DHL trace
+COMP_TRACE_DEFS_MODEM += protocol/l4_c2k/val/val_dhl_trace_mod_cval_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/l2_c2k/lmd/lmd_dhl_trace_mod_lmd_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/agps/c2k/lec/lec_dhl_trace_mod_clec_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/l2_c2k/rcp/rcp_dhl_trace_mod_evrcp_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/l2_c2k/rlp/xrlp_dhl_trace_mod_xrlp_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/l2_c2k/fcp/fcp_dhl_trace_mod_evfcp_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/as_c2k/clc/clc_dhl_trace_mod_evclc_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/as_c2k/slc/slc_dhl_trace_mod_evslc_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/as_c2k/sec/sec_dhl_trace_mod_csec_utmd.json
+COMP_TRACE_DEFS_MODEM += interface/protocol/l2_c2k/common/hlp_dhl_trace_mod_chlp_utmd.json
+COMP_TRACE_DEFS_MODEM += interface/protocol/as_c2k/1xrtt/psw_dhl_trace_mod_cpsw_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/as_c2k/psw/psws_dhl_trace_mod_cpsw_s_utmd.json
+COMP_TRACE_DEFS_MODEM += l1/cl1/hsc/hsc_dhl_trace_mod_chsc_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/as_c2k/clc/clc_dhl_trace_mod_evclc_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/as_c2k/slc/slc_dhl_trace_mod_evslc_utmd.json
+
+ifeq ($(strip $(USE_MTK_CBP)),DEVELOPMENT)
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ COMP_TRACE_DEFS_MODEM += l1/cl1/stub/cstub_dhl_trace_mod_cstub_utmd.json
+ endif
+ endif
+endif
+COMP_TRACE_DEFS_MODEM += protocol/nas_c2k/css/css_dhl_trace_mod_css_utmd.json
+COMP_TRACE_DEFS_MODEM += l1/cl1/l1d/c2k_l1d_dhl_trace_mod_l1d_mdm_utmd.json
+COMP_TRACE_DEFS_MODEM += l1/cl1/rmc/rmc_dhl_trace_mod_evrmc_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/l4_c2k/uim/cuim_dhl_trace_mod_uim_proxy_utmd.json protocol/l4_c2k/uim/cuim_dhl_trace_mod_uim_utmd.json
+COMP_TRACE_DEFS_MODEM += l1/cl1/atpal/xl1/atpal_xl1_dhl_trace_mod_xl1_utmd.json
+COMP_TRACE_DEFS_MODEM += l1/cl1/atpal/evl1/atpal_evl1_dhl_trace_mod_evl1_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/l2_c2k/common/cpbuf_dhl_trace_mod_evcp_utmd.json
+# C2K BRINGUP WORK AROUND
+C2K_COM_DEFS += C2K_EVL1_BRINGUP_WORKAROUND
+# C2K_COM_DEFS += MTK_EVL1_FLBSRP_REGDUMP
+# C2K_COM_DEFS += MTK_EVL1_RLBSRP_REGDUMP
+# C2K_COM_DEFS += MTK_1XL1_FLBSRP_REGDUMP
+# C2K_COM_DEFS += MTK_1XL1_RLBSRP_REGDUMP
+COM_DEFS += $(C2K_COM_DEFS)
diff --git a/mcu/make/common/rule_def/commincdirs_def.mak b/mcu/make/common/rule_def/commincdirs_def.mak
new file mode 100644
index 0000000..5e5d6f4
--- /dev/null
+++ b/mcu/make/common/rule_def/commincdirs_def.mak
@@ -0,0 +1,363 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+CUSTOM_FLD_MAPPING = $(if $($(subst /,_,$(patsubst %/,%,$(subst //,/,$(subst \,/,$(call lc, $(1))))))), \
+ $($(subst /,_,$(patsubst %/,%,$(subst //,/,$(subst \,/,$(call lc, $(1))))))),\
+ $(if $(wildcard $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/$(strip $(CUSTOM_FLAVOR))),\
+ $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/$(strip $(CUSTOM_FLAVOR)),\
+ $(if $(wildcard $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/DEFAULT), \
+ $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/DEFAULT,)))
+
+# *************************************************************************
+# COMMON
+# *************************************************************************
+COMMINCDIRS += $(UNIVERSAL_COMMON)/interface/modem/external
+COMMINCDIRS += $(UNIVERSAL_COMMON)/interface/modem/public
+COMMINCDIRS += $(UNIVERSAL_COMMON)/interface/service/dsp_control
+COMMINCDIRS += $(UNIVERSAL_COMMON)/interface/driver
+COMMINCDIRS += $(UNIVERSAL_COMMON)/interface/driver/sys_drv/cuif
+COMMINCDIRS += $(UNIVERSAL_COMMON)/interface/driver/sys_drv/cmif
+COMMINCDIRS += driver/connectivity/usb_driver/src
+COMMINCDIRS += driver/devdrv/drv_def
+COMMINCDIRS += driver/devdrv/pcmon/inc/$(MD_VER_FOLDER)
+COMMINCDIRS += driver/audio/med/audio/include
+COMMINCDIRS += driver/audio/med/common/include
+COMMINCDIRS += interface/driver/devdrv/mdap_interface
+COMMINCDIRS += interface/driver/devdrv/pdn
+COMMINCDIRS += interface/driver/devdrv/pll
+COMMINCDIRS += driver/storage/flash/fdm/inc
+COMMINCDIRS += driver/storage/flash/mtd/inc
+COMMINCDIRS += driver/sys_drv/pmu/inc
+COMMINCDIRS += interface/common
+COMMINCDIRS += interface/driver/drv_def
+COMMINCDIRS += interface/driver/audio
+COMMINCDIRS += interface/driver/che
+COMMINCDIRS += interface/driver/cipher/include
+COMMINCDIRS += interface/driver/cmux
+COMMINCDIRS += interface/driver/connectivity/sdio_device
+COMMINCDIRS += interface/driver/connectivity/usb_driver
+COMMINCDIRS += interface/driver/devdrv/asm
+COMMINCDIRS += interface/driver/devdrv/busmon/$(MD_VER_FOLDER)
+COMMINCDIRS += interface/driver/devdrv/cirq/$(MD_VER_FOLDER)
+COMMINCDIRS += interface/driver/devdrv/cpu
+COMMINCDIRS += interface/driver/devdrv/dcm
+COMMINCDIRS += interface/driver/devdrv/eint
+COMMINCDIRS += interface/driver/devdrv/emi
+COMMINCDIRS += interface/driver/devdrv/mdipc
+COMMINCDIRS += interface/driver/devdrv/pcmon
+COMMINCDIRS += interface/driver/devdrv/rstctl
+COMMINCDIRS += interface/driver/devdrv/us_counter
+COMMINCDIRS += interface/driver/drv_sw_def
+COMMINCDIRS += interface/driver/drvtest
+COMMINCDIRS += interface/driver/hwdrv
+COMMINCDIRS += interface/driver/md_drv
+COMMINCDIRS += interface/driver/peripheral
+COMMINCDIRS += interface/driver/regbase
+COMMINCDIRS += interface/driver/sleep_drv
+COMMINCDIRS += interface/driver/dvfs_drv/$(MD_VER_FOLDER)
+COMMINCDIRS += interface/driver/storage
+COMMINCDIRS += interface/driver/storage/mc
+COMMINCDIRS += interface/driver/storage/sim
+COMMINCDIRS += interface/driver/sys_drv
+COMMINCDIRS += interface/middleware/meta
+COMMINCDIRS += interface/l1/cl1/rfd
+COMMINCDIRS += interface/service/icd
+COMMINCDIRS += interface/service/em
+COMMINCDIRS += interface/service/mtf
+COMMINCDIRS += interface/protocol/general
+COMMINCDIRS += interface/protocol/3g/csr
+COMMINCDIRS += interface/l1/ul1/external
+COMMINCDIRS += interface/l1/gl1/external
+COMMINCDIRS += interface/l1/el1/external
+COMMINCDIRS += interface/l1/nl1/external
+COMMINCDIRS += interface/l1/nl1/external/5g
+COMMINCDIRS += interface/l1/nl1/external/4g
+COMMINCDIRS += interface/l1/mml1/external
+COMMINCDIRS += interface/l1/mml1/external/mml1_rf/mmrf_util
+COMMINCDIRS += interface/l1/mml1/external/mml1_cdf/inc/common
+COMMINCDIRS += interface/l1/mml1/external/mml1_rf/mmrf_common
+COMMINCDIRS += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe
+COMMINCDIRS += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_rf
+COMMINCDIRS += interface/l1/mml1/external/mml1_cdf/inc/sku_mgr
+COMMINCDIRS += interface/l1/mml1/external/mml1_etdpd
+COMMINCDIRS += interface/l1/tl1
+COMMINCDIRS += interface/protocol/l4
+COMMINCDIRS += interface/protocol/sim
+COMMINCDIRS += interface/sap
+COMMINCDIRS += interface/sap/drv
+COMMINCDIRS += interface/sap/md
+COMMINCDIRS += interface/sap/mw
+COMMINCDIRS += interface/sap/svc
+COMMINCDIRS += interface/service/asn1_common
+COMMINCDIRS += interface/service/config
+COMMINCDIRS += interface/service/config/kal_config
+COMMINCDIRS += interface/service/event_info
+COMMINCDIRS += interface/service/wlc
+COMMINCDIRS += interface/protocol/l2_utility/flc2_v2
+ifeq ($(strip $(FCS_SUPPORT)),TRUE)
+COMMINCDIRS += interface/service/fcs
+endif
+COMMINCDIRS += interface/service/fota
+COMMINCDIRS += interface/service/fs
+COMMINCDIRS += interface/service/fsm
+COMMINCDIRS += interface/service/kal
+COMMINCDIRS += interface/service/mcf
+COMMINCDIRS += interface/service/nvram
+COMMINCDIRS += interface/service/qmu_bm
+COMMINCDIRS += interface/service/sst
+COMMINCDIRS += interface/service/stacklib
+COMMINCDIRS += interface/service/sys_svc
+COMMINCDIRS += interface/service/tcpip
+COMMINCDIRS += interface/service/nal
+COMMINCDIRS += interface/service/ipsec
+COMMINCDIRS += interface/service/crypto
+COMMINCDIRS += interface/service/dns
+COMMINCDIRS += interface/service/ethsvc
+
+COMMINCDIRS += interface/driver/devdrv/digrf_platform
+ifneq ($(filter __NAL_TEST__, $(strip $(MODULE_DEFS))),)
+COMMINCDIRS += interface/service/naltp
+endif
+COMMINCDIRS += interface/protocol/l4_c2k
+COMMINCDIRS += interface/protocol/general
+COMMINCDIRS += interface/protocol/bip
+COMMINCDIRS += interface/protocol/xcap
+COMMINCDIRS += interface/service/libroxml
+COMMINCDIRS += interface/protocol/sase
+
+ifneq ($(filter __DHL_V2_ENABLE__,$(COM_DEFS)),) # DHL2.0
+ COMMINCDIRS += interface/service/dhl/v2
+else # DHL1.0
+ COMMINCDIRS += interface/service/dhl/v1
+endif
+
+ifneq ($(filter __DHL_V2_ENABLE__,$(COM_DEFS)),) # DHL2.0
+ COMMINCDIRS += interface/service/pmc/icd_v2
+else # DHL1.0
+ COMMINCDIRS += interface/service/pmc/icd_v1
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)),MT6297P)
+ COMMINCDIRS += interface/driver/devdrv/gdma/md97
+endif
+ifeq ($(strip $(MTK_MODEM_ARCH)),MT6297)
+ COMMINCDIRS += interface/driver/devdrv/gdma/md97
+ COMMINCDIRS += $(UNIVERSAL_COMMON)/interface/modem/mt6297/common/nr/external/custom
+ COMMINCDIRS += $(UNIVERSAL_COMMON)/interface/modem/mt6297/common/nr/external/5g
+endif
+ifeq ($(strip $(MTK_MODEM_ARCH)),MT6295)
+ COMMINCDIRS += interface/driver/devdrv/gdma/md95
+endif
+ifeq ($(strip $(MTK_MODEM_ARCH)),MT6293)
+ COMMINCDIRS += interface/driver/devdrv/gdma/md93
+endif
+
+ifeq ($(strip $(RTOS)),THREADX)
+COMMINCDIRS += ./service/kal/threadx/include
+endif
+
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(ORIGINAL_FLAVOR),BASIC_HIF)
+ ifeq ($(strip $(KPALV_SUPPORT)),TRUE)
+ COMMINCDIRS += interface/middleware/kpalv
+ endif
+ endif
+endif
+
+#fdr_reorg
+COMMINCDIRS += interface/protocol/as_c2k/common \
+ interface/service/sbp \
+ custom/protocol/common/ps
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+COMMINCDIRS += interface/driver/dpcopro
+COMMINCDIRS += $(UNIVERSAL_COMMON)/interface/modem
+endif
+
+COMMINCDIRS += interface/protocol/inet_protocols/http_tls/http/include
+COMMINCDIRS += interface/protocol/inet_protocols/http_tls/security
+
+COMMINCDIRS += $(call CUSTOM_FLD_MAPPING,./custom/modem/ps)
+COMMINCDIRS += custom/driver/common
+COMMINCDIRS += custom/middleware/common
+COMMINCDIRS += custom/modem/common
+COMMINCDIRS += custom/protocol/common/ps
+COMMINCDIRS += custom/service/flc2
+COMMINCDIRS += custom/service/mcf
+COMMINCDIRS += custom/service/nvram
+COMMINCDIRS += interface/middleware/general
+COMMINCDIRS += interface/middleware/media
+COMMINCDIRS += interface/protocol/mcd
+COMMINCDIRS += interface/protocol/nas_multimode/upcm
+COMMINCDIRS += interface/protocol/dispatcher
+
+ifeq ($(strip $(L1_WCDMA)),TRUE)
+ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+COMMINCDIRS += custom/l1/ul1_rf/$(UMTS_RF_MODULE)
+endif
+endif
+
+ifeq ($(strip $(L1_TDD128)),TRUE)
+COMMINCDIRS += custom/l1/tl1_rf/$(UMTS_TDD128_RF_MODULE)
+endif
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ ifneq ($(strip $(LTE_RF_MODULE)),NONE)
+ COMMINCDIRS += custom/l1/el1_rf/$(LTE_RF_MODULE)
+ COMMINCDIRS += custom/l1/el1_rf/$(LTE_RF_MODULE)/Toolgen
+ endif
+endif
+
+ifneq ($(strip $(C2K_RF_MODULE)),NONE)
+ COMMINCDIRS += custom/l1/cl1_rf/$(C2K_RF_MODULE)
+endif
+
+ifneq ($(strip $(RF_MODULE)),NONE)
+ COMMINCDIRS += custom/l1/gl1_rf/$(RF_MODULE)
+endif
+
+ifneq ($(strip $(MM_RF_MODULE)),NONE)
+ COMMINCDIRS += custom/l1/mml1_rf/$(MM_RF_MODULE)
+ COMMINCDIRS += custom/l1/mml1_rf/$(MM_RF_MODULE)/DRDI
+ COMMINCDIRS += custom/l1/mml1_devices/$(strip $(MM_DEVICE))
+endif
+
+ifdef NR_RF_MODULE
+ifneq ($(strip $(NR_RF_MODULE)),NONE)
+ COMMINCDIRS += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))
+ #COMMINCDIRS += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))/Toolgen
+endif
+endif
+
+ifneq ($(filter __CL1_TASK_ENABLE__, $(COM_DEFS)),)
+COMMINCDIRS += interface/l1/cl1/rfd
+endif
+
+ifdef IPSEC_SUPPORT
+ifneq ($(strip $(IPSEC_SUPPORT)),FALSE)
+COMMINCDIRS += interface/security
+endif
+endif
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ifeq ($(strip $(L1D_LOOPBACK)),1)
+ifneq ($(strip $(L1_UMTS)),TRUE)
+COMMINCDIRS += l1/gl1/l1d_lp1
+endif
+endif
+ifeq ($(strip $(L1D_LOOPBACK)),2)
+ifneq ($(strip $(L1_UMTS)),TRUE)
+COMMINCDIRS += l1/gl1/l1d_lp2
+endif
+endif
+ifeq ($(strip $(L1D_LOOPBACK)),3)
+ifneq ($(strip $(L1_UMTS)),TRUE)
+COMMINCDIRS += l1/gl1/l1d_lp3
+endif
+endif
+ifeq ($(strip $(L1D_LOOPBACK)),5)
+COMMINCDIRS += l1/gl1/l1d_lp5
+endif
+ifeq ($(strip $(L1D_LOOPBACK)),6)
+COMMINCDIRS += l1/gl1/l1d_lp6
+endif
+ifeq ($(strip $(L1D_LOOPBACK)),7)
+COMMINCDIRS += l1/gl1/l1d_lp7
+endif
+ifeq ($(strip $(L1D_LOOPBACK)),8)
+COMMINCDIRS += l1/gl1/l1d_lp8
+endif
+endif
+
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ COMMINCDIRS += interface/protocol/lte
+ COMMINCDIRS += interface/l1/el1/external
+endif
+
+COMMINCDIRS += interface/driver/hif
+COMMINCDIRS += interface/driver/hif/hif_usbdev
+COMMINCDIRS += interface/driver/hif/hif_sdiodev
+COMMINCDIRS += interface/driver/hif/hif_cldmadev
+COMMINCDIRS += interface/service/maif
+# *************************************************************************
+# Build folder
+# *************************************************************************
+COMMINCDIRS += $(BUILD_TSTDIR)/include
+COMMINCDIRS += $(BUILD_TST_DB)/pstrace_db
+COMMINCDIRS += $(strip $(BUILD_SYSDIR))
+COMMINCDIRS += $(strip $(GEN_L4DIR))/mcd
+COMMINCDIRS += $(strip $(GEN_MMIDIR))/mcd
+COMMINCDIRS += $(strip $(GEN_SSDIR))
+COMMINCDIRS += $(strip $(PROJDIR))/modem
+COMMINCDIRS += $(strip $(PROJDIR))/modem/dbme
+COMMINCDIRS += $(strip $(PROJDIR))/modem/mcd
+COMMINCDIRS += $(strip $(PROJDIR))/modem/mcddll
+COMMINCDIRS += $(strip $(PROJDIR))/modem/rrc_asn
+COMMINCDIRS += $(strip $(PROJDIR))/modem/scsi
+COMMINCDIRS += $(strip $(PROJDIR))/nvram_auto_gen
+ifeq ($(strip $(CUST_CODE)),TC01)
+COMMINCDIRS += $(strip $(BUILD_SYSDIR))/ERS
+endif
+
+# *************************************************************************
+# MTK release folder
+# *************************************************************************
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+COMMINCDIRS += $(strip $(CUS_MTK_REL))/dhl/include
+COMMINCDIRS += $(strip $(REL_L4DIR))/mcd
+COMMINCDIRS += $(strip $(REL_MMIDIR))/mcd
+COMMINCDIRS += $(strip $(REL_SCSIDIR))
+COMMINCDIRS += $(strip $(REL_MCDDIR))
+COMMINCDIRS += $(strip $(REL_SSDIR))
+COMMINCDIRS += $(strip $(CUS_MTK_REL))/modem/ldbme \
+ $(strip $(CUS_MTK_REL))/modem/ldbme/fdd \
+ $(strip $(CUS_MTK_REL))/modem/dbme \
+ $(strip $(CUS_MTK_REL))/modem/dbme/fdd \
+ $(strip $(CUS_MTK_REL))/modem/rrc_asn/fdd \
+ $(strip $(CUS_MTK_REL))/modem/rrc_asn \
+ $(strip $(CUS_MTK_REL))/modem/mipc/include
+endif
+
+ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+#MPD domain
+ COMMINCDIRS += l1/gl1/l1d_ext
+ COMMINCDIRS += l1/interface/mml1
+else # MTK_SW_DOMAIN
+ COMMINCDIRS += $(strip $(REL_MMIDIR))/mcd
+ COMMINCDIRS += $(strip $(CUS_MTK_REL))/dhl/include
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ COMMINCDIRS += $(strip $(CUS_MTK_REL))/dhl/database_modis/pstrace_db
+ else
+ COMMINCDIRS += $(strip $(CUS_MTK_REL))/dhl/database/pstrace_db
+ endif
+endif # MTK_SW_DOMAIN
diff --git a/mcu/make/common/rule_def/common_def.mak b/mcu/make/common/rule_def/common_def.mak
new file mode 100644
index 0000000..817e07d
--- /dev/null
+++ b/mcu/make/common/rule_def/common_def.mak
@@ -0,0 +1,3987 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+# *************************************************************************
+# always define
+# *************************************************************************
+# for backward compatible, need define a value for MAX_INT_PDP_CONTEXT
+
+MAX_INT_PDP_CONTEXT = 0
+COM_DEFS += MAX_INT_PDP_CONTEXT=0
+
+# WIFI_BB_MODULE Options
+COM_DEFS_FOR_NONE = WIFI_BB_NONE
+# WIFI_RF_MODULE Options
+COM_DEFS_FOR_NONE = WIFI_RF_NONE
+COM_DEFS += $(COM_DEFS_FOR_NONE)
+
+COM_DEFS += IDLE_TASK _DEBUG MTK_KAL
+COM_DEFS += SME_NOT_PRESENT SME_READER_NOT_PRESENT STDC_HEADERS TARGET_BUILD
+COM_DEFS += $(strip $(UMTS_SUPPORT_BAND))
+COM_DEFS += DEBUG_LEVEL=0
+COM_DEFS += EMPTY_MMI
+COM_DEFS += FMT_NOT_PRESENT
+COM_DEFS += MMS_IN_LARGE_STORAGE
+COM_DEFS += MTK_NEW_API
+COM_DEFS += WAP_NOT_PRESENT
+COM_DEFS += WPS_NOT_PRESENT
+COM_DEFS += __3G_MIPI_SUPPORT__
+COM_DEFS += __3G_RX_PATH_SELECTION_SUPPORT__
+COM_DEFS += __AMR_WB_WHITE_LIST__
+COM_DEFS += __ATCI_QUEUE_AT__
+COM_DEFS += __BLIND_HANDOVER__
+COM_DEFS += __BT_SIM_PROFILE__
+COM_DEFS += __CMCC_STD_FR__
+COM_DEFS += __CSMCC_CALLCONFIRM_TIMER__
+COM_DEFS += __DISABLE_2MIN_MINIMUM_HPPLMN_TIMER__
+COM_DEFS += __DYNAMIC_ROAMING_SUPPORT__
+COM_DEFS += __EMPTY_MMI__
+COM_DEFS += __EXT_PDP_CONTEXT_ON__
+COM_DEFS += __EXT_SECONDARY_PDP_FEASIBLE__
+COM_DEFS += __FAST_FRC__
+COM_DEFS += __FLIGHT_MODE_SUPPORT__
+COM_DEFS += __HO_IMPROVE__
+COM_DEFS += __MP4_DEC_ASP_PARTIAL_SUPPORT__
+COM_DEFS += __MSLT__
+COM_DEFS += __MTK_TARGET__
+COM_DEFS += __OPTR_NONE__
+COM_DEFS += __PHB_0x81_SUPPORT__
+COM_DEFS += __R7_MANUAL_RHPLMN_SEL__
+COM_DEFS += __RESUME_GPRS_AFTER_LU_ABNORMAL__
+COM_DEFS += __SMART_PAGING_IN_IDLE__
+COM_DEFS += __SMART_PAGING__
+COM_DEFS += __STACK_ALIGN_MPU__=32
+COM_DEFS += __SW_H264_LOSSY_SUPPORT__
+COM_DEFS += __SW_MP4_LOSSY_SUPPORT__
+COM_DEFS += __SYS_INTERN_RAM__
+COM_DEFS += __THUMB2_UNIFIED__
+COM_DEFS += __TURN_ON_EXTERNAL_SECONDARY_PDP__
+COM_DEFS += __TURN_ON_GENERAL_SECONDARY_PDP__
+COM_DEFS += __USIM_DRV__
+COM_DEFS += __MMRF_MIPI_HW_CHECK_SUPPORT__
+COM_DEFS += __ISIM_SUPPORT__
+COM_DEFS += __2G_MIPI_SUPPORT__
+COM_DEFS += __2G_MIPI_INTERSLOT_RAMPING_OPTIMIZE_SUPPORT__
+COM_DEFS += __2G_BPI_PT3A_SUPPORT__
+COM_DEFS += PPP_NOT_PRESENT
+COM_DEFS += __NO_3G_FULL_BAND_SEARCH_DURING_23G_REDIR__
+COM_DEFS += __NO_3G_FULL_BAND_SEARCH_DURING_CSFB__
+COM_DEFS += __DSS_NO_RESET__
+COM_DEFS += __A54_ALGORITHM_SUPPORT__
+COM_DEFS += __A54_ALGORITHM_SUPPORT_CAPABILITY__
+COM_DEFS += __GEA4_ALGORITHM_SUPPORT_CAPABILITY__
+COM_DEFS += __DISABLE_GEA1__
+COM_DEFS += __L1_BOOTUP_RF_TUNING_SUPPORT__
+COM_DEFS += __GAS_STORED_SI_FEAT__
+COM_DEFS += __DISABLE_4G3_FAST_REDIRECTION_FOR_CU__
+COM_DEFS += __PREFER_3G_IN_23G_MODE__
+COM_DEFS += __MODIFY_CTCH_RECEPTION_PRIO__
+COM_DEFS += MD_GEN93=3
+COM_DEFS += MD_GEN95=5
+COM_DEFS += MD_GEN97=7
+COM_DEFS += MD_GEN97P=9
+COM_DEFS += MD_SPEC_2018SEP=0
+COM_DEFS += MD_SPEC_2018DEC=1
+COM_DEFS += MD_SPEC_2019MAR=2
+COM_DEFS += MD_SPEC_2019JUN=3
+COM_DEFS += MD_SPEC_2019SEP=4
+COM_DEFS += __UL1_BCH_ROUND_ROBIN_WITH_PCH__
+COM_DEFS += __SIM_EXTEND_RECOVERY_PATTERN__
+COM_DEFS += __GAS_REUSE_POWER_SCAN_RESULTS__
+COM_DEFS += __GAS_USE_ACQUIRED_PLMN_CELL_INFO_FOR_SEARCH__
+COM_DEFS += __ANT_RXPWR_OFFSET_SUPPORT__
+COM_DEFS += __ACCESS_STRATUM_RELEASE__
+COM_DEFS += __ECSFB__
+COM_DEFS += __FDD_ECSFB_AVOID_LU_FAIL_CELLS__
+COM_DEFS += __CONNECTED_CONFIG_POINTER__
+COM_DEFS += __ALLOW_CALL_DURING_SMS_IN_OTHER_STACK__
+COM_DEFS += __GSM_INDICATION_FOR_AP_CLOCK_HOPPING_SUPPORT__
+COM_DEFS += __GAS_AVOID_SI_TIMER_EXPIRY_IN_DEDICATED_MODE__
+COM_DEFS += __C2K_RF_HOPPING_SUPPORT__
+COM_DEFS += __2G_CELL_SEL_ENHANCE__
+COM_DEFS += __ENABLE_2G_CELL_SEL_ENHANCE__
+COM_DEFS += __LTE_GAS_IRCR_PRIORITY_BOOST__
+COM_DEFS += __QRXLEVMIN_OPTIMIZATION_3G_MODE__
+COM_DEFS += __DO_NOT_SEARCH_23G_LTE_ONLY_NETWORK__
+COM_DEFS += __INCREASE_MAX_IVSR_GUARD_TIMER_NUM__
+COM_DEFS += __RETRY_IVSR_AFTER_GUARD_TIMER__
+COM_DEFS += __POPLMN_EQUAL_PRIORITY_IN_FAST_ROAMING__
+COM_DEFS += __SBP_EXTEND_LTE_PAGING_CYCLE_IN_VIRTUAL__
+COM_DEFS += __RACH_FAIL_ENHANCEMENT__
+COM_DEFS += __IGNORE_RUDE_WAKEUP_WHEN_TEST_SIM__
+COM_DEFS += __NWSEL_HISTORY_KEEP_REG_SUCCUSS_INFO__
+COM_DEFS += __NWSEL_HISTORY_RESET_LTE_REG_COUNTER_AFTER_POWERON__
+COM_DEFS += __TDD_ECSFB_AVOID_LU_FAIL_CELLS__
+COM_DEFS += __ECSFB_ENHANCED_ASSOCIATION_OF_24G_CELLS__
+COM_DEFS += __TURN_OFF_ECBM_MODE_IN_CHINA__
+COM_DEFS += __POWER_ON_STORED_LIST_SEARCH__
+COM_DEFS += __INACTIVE_MODE_SERVICE_RECOVERY__
+COM_DEFS += __PREFER_HIGH_PRIO_3G_IN_23G_MODE__
+COM_DEFS += __CALL_PREFER_ALWAYS_MONITOR_PCH_IN_PTM__
+COM_DEFS += __DISABLE_REMOVE_BLACK_CELLS_FROM_REDIR_LIST__
+COM_DEFS += __ENABLE_CALL_PREFER_IN_UNACK_MODE__
+COM_DEFS += __SBP_REL_PS_CONN_DURING_MANUAL_PLMN_LIST_ON_PDP_DEACT__
+COM_DEFS += __EXTEND_IMS_STATUS_UNSPECIFIED_WHEN_CAUSE18__
+COM_DEFS += __RAC_CAUSE18_NOT_CHANGE_UEMODE_BY_PLMN__
+COM_DEFS += __MM_CUSTOMIZE_T3240_TIMEOUT_VALUE__
+COM_DEFS += __ACMT_SUPPORT__
+COM_DEFS += __ENABLE_DETACH_WHEN_SET_RAT_G2W__
+COM_DEFS += __GMM_REATTACH_FOR_NW_DETACH_OTHER_CAUSE__
+COM_DEFS += __ENABLE_EMM_CUST_BAR_FAKE_CELL__
+COM_DEFS += __CC_CUSTOMIZED_TIMER__
+COM_DEFS += __SUPPORT_LTE_UE_CAT_D4U5_UL64QAM_CHK__
+COM_DEFS += __2G_SEND_ANY_CHANNEL_FOR_MT_CSFB__
+COM_DEFS += __RESEL_THRES_CUSTOM__
+COM_DEFS += __LBS_CP_PLMN_BLACK_LIST__
+COM_DEFS += __SAR_SENSOR_SUPPORT__
+COM_DEFS += __EVENTB2_THRESHOLD_ADJ__
+COM_DEFS += __EVENTB2_THRESHOLD_MAX_ADJ__
+COM_DEFS += __CB_CHANNEL_ONLY_STORED_IN_NVRAM__
+COM_DEFS += __DISABLE_MMS_TIMER_BY_DEFAULT__
+COM_DEFS += __WCDMA_INDICATION_FOR_AP_CLOCK_HOPPING_SUPPORT__
+COM_DEFS += __FOR_MUTI_FAKE_CELL_REPORT__
+COM_DEFS += __LTE_TX_NSFT_POWER_OFFSET_SUPPORT__
+COM_DEFS += __DISABLE_B7B38_IN_USA__
+COM_DEFS += __DISABLE_LTE_PARTIAL_BAND_BY_SIM_AND_PLMN__
+COM_DEFS += __ENABLE_BAR_FTA_CELL_IN_SBY__
+COM_DEFS += __ENABLE_DEL_IDLE_MOBILITY_WHEN_SMC_REJECT__
+COM_DEFS += __DISABLE_PLMN_LIST_IGNORE_PS_PAGING_WHEN_IMS_DEREG__
+COM_DEFS += __EMM_SEARCH_23G_FOR_AC_BARRED_MO_CSFB__
+COM_DEFS += __IGNORE_INT_CHECK_FOR_NAS_MSG__
+COM_DEFS += __LTE_EMM_PROC_AS_FAIL_BAR_CELL__
+COM_DEFS += __LTE_EMM_PROC_NW_REL_BAR_CELL__
+COM_DEFS += __SHORT_T3417EXT__
+COM_DEFS += __SBP_LTE_AUTH_REJ_MAPPING_TO_15__
+COM_DEFS += __ENABLE_RF_SCAN_FOR_DESENSE_TEST__
+COM_DEFS += __RF_SCAN_FOR_DESENSE_TEST__
+#COM_DEFS += __NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT__
+COM_DEFS += __EM_MAX_TX_POWER_SUPPORT__
+COM_DEFS += __2G_FAST_TIMING_ADJUST_SUPPORT__
+COM_DEFS += __2G_FAST_TIMING_ADJUST_ENABLE__
+COM_DEFS += __A5_3_AND_GEA_WHILTE_LIST__
+COM_DEFS += LTE_DL_CAT4=4
+COM_DEFS += LTE_DL_CAT7=7
+COM_DEFS += LTE_DL_CAT12=12
+COM_DEFS += LTE_DL_CAT13=13
+COM_DEFS += LTE_DL_CAT13_with_CAT9=139
+COM_DEFS += LTE_DL_CAT13_with_CAT10=130
+COM_DEFS += LTE_DL_CAT16=16
+COM_DEFS += LTE_DL_CAT18=18
+COM_DEFS += LTE_DL_CAT19=19
+COM_DEFS += LTE_UL_CAT5=5
+COM_DEFS += LTE_UL_CAT13=13
+COM_DEFS += LTE_UL_CAT15=15
+COM_DEFS += LTE_UL_CAT18=18
+COM_DEFS += LTE_UL_CAT20=20
+COM_DEFS += __MODEM_ELEVATOR_MODE__
+COM_DEFS += __SRVCC_CELL_INFO__
+COM_DEFS += __SBP_BAR_CELL_FOR_CONN_FAIL__
+COM_DEFS += __SBP_VONR_ENH__
+COM_DEFS += __SUBADDR_SUPPORT__
+COM_DEFS += __FAST_PLMN_LIST_INFO_3G__
+COM_DEFS += __LTE_CA_CSR_SUPPORT__
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __3G4_IRRDT_NO_CELL_SET_RAU_NOT_REQUIRED__
+ COM_DEFS += __BAR_CELL_WHEN_NO_CC_SETUP__
+ COM_DEFS += __CELL_BARRING_WHEN_NO_RRC_CONN_SETUP__
+ COM_DEFS += __CUSTOM_QRXLEVL_QQUAL__
+ COM_DEFS += __DDM_SHOW_DATA_ICON__
+ COM_DEFS += __EMM_PROC_FAIL_HANDLING_EXT_1__
+ COM_DEFS += __EMM_REJ_CAUSE_2_ADD_TO_FTAI__
+ COM_DEFS += __EMM_RETRY_PS_PAGING_WHEN_GEMINI_FAIL__
+ COM_DEFS += __EVENTB2_THRESHOLD_ADJ_VILTE__
+ COM_DEFS += __GSM_INCREASE_RACH_TX_POWER_SUPPORT__
+ COM_DEFS += __IGNORE_IR_REDIRECT_TO_LTE_WHEN_NO_CELL__
+ COM_DEFS += __LTE_REDIR_FAIL_ENHANCE__
+ COM_DEFS += __PERFORM_COMBINED_SEARCH_DURING_CSFB__
+ COM_DEFS += __SBP_BARR_CELL_IF_ECC_ESTABLISHMENT_FAIL__
+ COM_DEFS += __SBP_CSFB_CALL_RETRY_ON_CMSERVICE_LU_REJECT_WITH_CAUSE15__
+ COM_DEFS += __SHORT_T3417EXT_BY_PLMN__
+ COM_DEFS += __SMS_FDN_CHECK_DA_ONLY__
+ COM_DEFS += __ATERFTX_ERROR_HANDLE_ENHANCE__
+ COM_DEFS += __GAS_ECC_CELL_SEL_ENHANCEMENT__
+ COM_DEFS += __SBP_BAR_CELL_FOR_CONN_FAIL__
+ COM_DEFS += __SKIP_POWER_SCAN_4G2_CSFB_REDIRECTION__
+ COM_DEFS += __SRVCC_CELL_INFO__
+ COM_DEFS += __VSIM__
+ COM_DEFS += __FDD_EM_TXRX_ENHANCE__
+ COM_DEFS += __INC_BCCH_DECODE_PRIO_BG_LIST__
+ COM_DEFS += __RAC_CHANGE_VDP_BY_ROAMING__
+endif
+
+ifneq ($(strip $(FPGA_L1_ROUTER_SUPPORT)),TRUE)
+COM_DEFS += __EVENT_BASED_TIMER__
+endif
+
+# *************************************************************************
+# defined by rules
+# ************************************************************************
+
+ifdef LTE_DOWNLINK_CAT
+ #NONE: use default DL_CAT4
+ ifeq ($(strip $(call Upper,$(LTE_DOWNLINK_CAT))),NONE)
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT4
+ endif
+
+ ifeq ($(strip $(LTE_DOWNLINK_CAT)), DL_CAT_4)
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT4
+ endif
+ ifeq ($(strip $(LTE_DOWNLINK_CAT)), DL_CAT_7)
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT7
+ endif
+ ifeq ($(strip $(LTE_DOWNLINK_CAT)), DL_CAT_12)
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT12
+ endif
+ ifeq ($(strip $(LTE_DOWNLINK_CAT)), DL_CAT_13)
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT13
+ endif
+ ifeq ($(strip $(LTE_DOWNLINK_CAT)), DL_CAT13_with_CAT9)
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT13_with_CAT9
+ endif
+ ifeq ($(strip $(LTE_DOWNLINK_CAT)), DL_CAT13_with_CAT10)
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT13_with_CAT10
+ endif
+ ifeq ($(strip $(LTE_DOWNLINK_CAT)), DL_CAT_16)
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT16
+ endif
+ ifeq ($(strip $(LTE_DOWNLINK_CAT)), DL_CAT_18)
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT18
+ endif
+ ifeq ($(strip $(LTE_DOWNLINK_CAT)), DL_CAT_19)
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT19
+ endif
+else
+ #not defined; use default DL_CAT4
+ COM_DEFS += LTE_DL_CATEGORY=LTE_DL_CAT4
+endif
+
+ifdef LTE_UPLINK_CAT
+ #NONE: use default UL_CAT5
+ ifeq ($(strip $(call Upper,$(LTE_UPLINK_CAT))),NONE)
+ COM_DEFS += LTE_UL_CATEGORY=LTE_UL_CAT5
+ endif
+
+ ifeq ($(strip $(LTE_UPLINK_CAT)), UL_CAT_5)
+ COM_DEFS += LTE_UL_CATEGORY=LTE_UL_CAT5
+ endif
+ ifeq ($(strip $(LTE_UPLINK_CAT)), UL_CAT_13)
+ COM_DEFS += LTE_UL_CATEGORY=LTE_UL_CAT13
+ endif
+ ifeq ($(strip $(LTE_UPLINK_CAT)), UL_CAT_15)
+ COM_DEFS += LTE_UL_CATEGORY=LTE_UL_CAT15
+ endif
+ ifeq ($(strip $(LTE_UPLINK_CAT)), UL_CAT_18)
+ COM_DEFS += LTE_UL_CATEGORY=LTE_UL_CAT18
+ endif
+ ifeq ($(strip $(LTE_UPLINK_CAT)), UL_CAT_20)
+ COM_DEFS += LTE_UL_CATEGORY=LTE_UL_CAT20
+ endif
+else
+ #not defined; use default UL_CAT5
+ COM_DEFS += LTE_UL_CATEGORY=LTE_UL_CAT5
+endif
+
+ifeq ($(strip $(MTK_USE_97_CIPHER_FILES)),TRUE)
+ COM_DEFS += __MD97_TMP__
+endif
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6293)
+ COM_DEFS += __MD93__
+ COM_DEFS += CUR_GEN=MD_GEN93
+endif
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6295)
+ COM_DEFS += __MD95__
+ COM_DEFS += CUR_GEN=MD_GEN95
+endif
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ COM_DEFS += __MD97__
+ COM_DEFS += CUR_GEN=MD_GEN97
+ ifeq ($(strip $(COMPILER_ISA)), MIPS16)
+ COM_DEFS += MT6297_IA
+ endif
+ ifeq ($(strip $(MTK_3GPP_SPEC_VER)), SPEC_2019SEP)
+ COM_DEFS += CUR_MD_SPEC=MD_SPEC_2019SEP
+ else
+ ifeq ($(strip $(MTK_3GPP_SPEC_VER)), SPEC_2019JUN)
+ COM_DEFS += CUR_MD_SPEC=MD_SPEC_2019JUN
+ else
+ ifeq ($(strip $(MTK_3GPP_SPEC_VER)), SPEC_2019MAR)
+ COM_DEFS += CUR_MD_SPEC=MD_SPEC_2019MAR
+ else
+ ifeq ($(strip $(MTK_3GPP_SPEC_VER)), SPEC_2018DEC)
+ COM_DEFS += CUR_MD_SPEC=MD_SPEC_2018DEC
+ else
+ COM_DEFS += CUR_MD_SPEC=MD_SPEC_2018SEP
+ COM_DEFS += __MCD_VGNAS_24501_SPEC_2018SEP__
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(PLATFORM)),MT6880)
+ COM_DEFS += __RAC_CHANGE_VDP_WHEN_IMS_ONOFF__
+else
+ COM_DEFS += __RAC_CHANGE_VDP_SRVCC_BY_SIM__
+endif
+
+ifneq ($(filter MT6880 MT6890 MT2735,$(strip $(PLATFORM))),)
+ COM_DEFS += CHIP10992
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ COM_DEFS += __MD97P__
+ COM_DEFS += CUR_GEN=MD_GEN97P
+ COM_DEFS += __CONNECTED_CONFIG_POINTER__
+ ifeq ($(strip $(COMPILER_ISA)), MIPS16)
+ COM_DEFS += MT6297P_IA
+ endif
+ ifeq ($(strip $(MTK_3GPP_SPEC_VER)), SPEC_2019SEP)
+ COM_DEFS += CUR_MD_SPEC=MD_SPEC_2019SEP
+ else
+ ifeq ($(strip $(MTK_3GPP_SPEC_VER)), SPEC_2019JUN)
+ COM_DEFS += CUR_MD_SPEC=MD_SPEC_2019JUN
+ else
+ ifeq ($(strip $(MTK_3GPP_SPEC_VER)), SPEC_2019MAR)
+ COM_DEFS += CUR_MD_SPEC=MD_SPEC_2019MAR
+ else
+ ifeq ($(strip $(MTK_3GPP_SPEC_VER)), SPEC_2018DEC)
+ COM_DEFS += CUR_MD_SPEC=MD_SPEC_2018DEC
+ else
+ COM_DEFS += CUR_MD_SPEC=MD_SPEC_2018SEP
+ COM_DEFS += __MCD_VGNAS_24501_SPEC_2018SEP__
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifneq ($(strip $(MTK_MODEM_ARCH)), MT6293)
+ ifneq ($(strip $(MTK_MODEM_ARCH)), MT6295)
+ COM_DEFS += __LOGGING_RATE_ADJ__
+ endif
+endif
+
+# Enable __DUAL_SIM_DUAL_ACTIVATION__ for all non-6293 projects
+ifdef MTK_MODEM_ARCH
+ ifeq ($(filter MT6293,$(MTK_MODEM_ARCH)),)
+ COM_DEFS += __DUAL_SIM_DUAL_ACTIVATION__
+ endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6295)
+ COM_DEFS += __MML1_UTIL_TASK_ENABLE__
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __DYNAMIC_CACHE_LOCK_CENTRAL_CONTROL_SUPPORT__
+ endif
+ ifneq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __DDL_SWITCH_3G_FDD_IN_LTE_FLIGHT_ENABLE__
+ COM_DEFS += __DDL_BRP_FDD__
+ COM_DEFS += __DDL_SCQ16_PM_FDD__
+ COM_DEFS += __DDL_FEC_TX_WCDMA__
+ endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ COM_DEFS += __MML1_UTIL_TASK_ENABLE__
+ ifneq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __NL1_INIT_BASIC_TEST__
+ endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ COM_DEFS += __MML1_UTIL_TASK_ENABLE__
+ ifneq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __NL1_INIT_BASIC_TEST__
+ endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ifdef FIVEG_MODE_SUPPORT
+ ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+ ifneq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __NL1_ONLY_LOAD__
+ endif
+endif
+endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ ifdef FIVEG_MODE_SUPPORT
+ ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+ ifneq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __NL1_ONLY_LOAD__
+ endif
+endif
+endif
+endif
+
+ifneq ($(filter __EL1_FNEYE_INSTRUMENT_ALL_CONTEXT_TRACE__,$(strip $(COM_DEFS))),)
+COM_DEFS += __DHL_ENLARGE_ULSP_THROUGHPUT__
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6293)
+ ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+ ifeq ($(filter __FPGA__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __MML1_ADT_ENABLE__
+ endif
+ endif
+endif
+
+ifdef DISABLE_AUTOTCM
+ ifeq ($(strip $(DISABLE_AUTOTCM)),TRUE)
+ COM_DEFS += __L1_KW_SCAN__
+ CUSTOM_OPTION := $(filter-out __MML1_ADT_ENABLE__,$(CUSTOM_OPTION))
+ COM_DEFS := $(filter-out __MML1_ADT_ENABLE__,$(COM_DEFS))
+ endif
+endif
+
+ifeq ($(strip $(COMPILER_ISA)),MIPS16)
+ COM_DEFS += __MIPS16 __MIPS16__
+endif
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __MODIS_BUILD__
+endif
+
+# For SWITCH MODEM TEMPERATURE RANGE.
+MODEM_TEMPERATURE_RANGE_M10_TO_65 = MT6169_2G_CUSTOM MT6169_2G A1EU_2G_MT6169 A1US_2G_MT6169 K82CMCC_2G_MT6169 K82V2_2G_MT6169 K95_2G_MT6165 K95_2G_MT6169 K95_DEMO_2G_MT6165 \
+ K95_DEMO_2G_MT6169 MT6169_MIFI_2G MT6169_MIFI_2G_CUSTOM MT6582LTE_2G_MT6169 V1UK_2G_MT6169 V1UK_EVB_2G_MT6169 MT6165_DUAL_TALK_2G \
+ MT6582LTE_2G_MT6165 RIO5EU_2G_MT6169 RIO5US_2G_MT6169 AD6546 AD6546_CUSTOM AD6548_AST AD6548_CUSTOM ATHENS15V3_MODEM_6140D LENOVO75_DEMO_MT6162 \
+ MT6140_CUSTOM MT6140D MT6162 MT6162_CUSTOM MT6162_DUAL MT6163_2G MT6163_2G_CUSTOM MT6166_DUAL_TALK_2G MT6280_CUSTOM MT6280RF_2G MT6582LTE_2G_MT6166
+ifeq ($(filter $(strip $(RF_MODULE)),$(MODEM_TEMPERATURE_RANGE_M10_TO_65)),)
+ COM_DEFS += __L1_TEMPERATURE_RANGE_V2__
+endif
+
+ifneq ($(filter TK6291_FPGA ELBRUS_FPGA,$(strip $(ORIGINAL_PROJECT_NAME))),)
+ COM_DEFS += __NO_MD2G_HW_PLATFORM__
+endif
+
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ ifneq ($(strip $(SMART_PHONE_CORE)),NONE)
+ COM_DEFS += __BMT_TASK_DISABLE__
+ endif
+endif
+
+ifeq ($(strip $(FCS_SUPPORT)),TRUE)
+ COM_DEFS += __FCS_SUPPORT__
+endif
+
+ifeq ($(strip $(DHL_SET_FILTER_BY_SCENARIO)),TRUE)
+ COM_DEFS += __DHL_SET_FILTER_BY_SCENARIO__
+endif
+
+ifeq ($(strip $(LOGGING_BUFFER_REALLOCATION_BY_FILTER)),TRUE)
+ COM_DEFS += __LOGGING_BUFFER_REALLOCATION_BY_FILTER__
+endif
+
+ifeq ($(strip $(BIP_SUPPORT)),TRUE)
+ COM_DEFS += __BIP_SUPPORT__
+endif
+
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(ORIGINAL_FLAVOR),BASIC_HIF)
+ ifeq ($(strip $(KPALV_SUPPORT)),TRUE)
+ COM_DEFS += __KPALV_SUPPORT__
+ endif
+ endif
+endif
+
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(WIFI_LTE_DPP_SUPPORT)),TRUE)
+ COM_DEFS += __GMMGR_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(XCAP_SUPPORT)),TRUE)
+ COM_DEFS += __XCAP_SUPPORT__
+endif
+
+ifeq ($(strip $(HTTP_TLS_SUPPORT)),TRUE)
+ COM_DEFS += __HTTP_TLS_SUPPORT__
+endif
+
+ifeq ($(strip $(EUTRAN_MODE_SUPPORT)),EUTRAN_MODE)
+ COM_DEFS += __4G_IDC__
+endif
+
+ifneq ($(strip $(L1_UMTS)),TRUE)
+ ifeq ($(strip $(GERAN_MODE_SUPPORT)),GERAN_GSM_MODE)
+ COM_DEFS += RATDM_NOT_PRESENT
+ endif
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __GSM_RAT__ __MTK_3G_MRAT_ARCH__
+ endif
+endif
+
+ifeq ($(strip $(PRODUCTION_RELEASE)),TRUE)
+ COM_DEFS += __PRODUCTION_RELEASE__
+endif
+
+ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ COM_DEFS += __DHL_MODULE__ TST_TRACE_COMPAT __TST_MODULE__
+
+######## Enable DHL2.0 ########
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ COM_DEFS += __DHL_V2_ENABLE__
+ endif
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ COM_DEFS += __DHL_V2_ENABLE__
+ endif
+###############################
+ # option for Channel & Buffer Decision
+ ifeq ($(strip $(call Upper,$(DHL_LOG_BUF_LOCATION))),SHM)
+ COM_DEFS += __DHL_ALLOC_LOG_BUF_IN_SHM__
+ endif
+ ifeq ($(strip $(call Upper,$(DHL_META_BUF_LOCATION))),SHM)
+ COM_DEFS += __DHL_ALLOC_META_BUF_IN_SHM__
+ endif
+
+ ifeq ($(strip $(call Upper,$(DHL_LOG_CHANNEL))),CCB)
+ COM_DEFS += __ELT_SET_PORT_TO_CCB__
+ endif
+ ifeq ($(strip $(call Upper,$(DHL_META_CHANNEL))),CCB)
+ COM_DEFS += __META_SET_PORT_TO_CCB__
+ endif
+
+ ifeq ($(strip $(call Upper,$(DHL_LOG_CHANNEL))),MD_USB)
+ COM_DEFS += __ELT_SET_PORT_TO_USB__
+ endif
+ ifeq ($(strip $(call Upper,$(DHL_META_CHANNEL))),MD_USB)
+ COM_DEFS += __META_SET_PORT_TO_USB__
+ endif
+
+ ifeq ($(strip $(call Upper,$(DHL_LOG_CHANNEL))),MD_UART)
+ COM_DEFS += __ELT_SET_PORT_TO_UART__
+ endif
+ ifeq ($(strip $(call Upper,$(DHL_META_CHANNEL))),MD_UART)
+ COM_DEFS += __META_SET_PORT_TO_UART__
+ endif
+
+ ifeq ($(strip $(call Upper,$(DHL_LOG_CHANNEL))),MD_PCIE)
+ COM_DEFS += __ELT_SET_PORT_TO_PCIE__
+ endif
+ ifeq ($(strip $(call Upper,$(DHL_META_CHANNEL))),MD_PCIE)
+ COM_DEFS += __META_SET_PORT_TO_PCIE__
+ endif
+
+ ifeq ($(strip $(call Upper,$(DHL_LOG_CHANNEL))),CUSTOM_CONFIG)
+ COM_DEFS += __ELT_SET_PORT_TO_DUAL_IPC__ #TODO remove DIPC keyword
+ endif
+ ifeq ($(strip $(call Upper,$(DHL_META_CHANNEL))),CUSTOM_CONFIG)
+ COM_DEFS += __META_SET_PORT_TO_DUAL_IPC__ #TODO remove DIPC keyword
+ endif
+else
+ ifeq ($(strip $(TST_SUPPORT)),TRUE)
+ COM_DEFS += __TST_MODULE__
+ else
+ COM_DEFS += DRV_DEBUG
+ endif
+endif
+
+ifeq ($(strip $(SPLIT_SYSTEM)),TRUE)
+ COM_DEFS += UT_ON_TARGET SPLIT_SYS
+endif
+
+ifeq ($(strip $(EMAIL_SUPPORT)),TRUE)
+ COM_DEFS += __EMAIL__
+endif
+
+ifeq ($(strip $(IRDA_SUPPORT)),TRUE)
+ COM_DEFS += __IRDA_SUPPORT__
+endif
+
+ifneq ($(strip $(PHB_SIM_ENTRY)),)
+ COM_DEFS += __PHB_SIM_$(strip $(PHB_SIM_ENTRY))__
+endif
+
+ifneq ($(strip $(PHB_PHONE_ENTRY)),)
+ COM_DEFS += __PHB_PHONE_$(strip $(PHB_PHONE_ENTRY))__
+endif
+
+ifeq ($(strip $(PMIC)),MT6305)
+ COM_DEFS += MT6305 __CHARGER_WITH_IMMEDIMATE_ADC__
+endif
+
+ifeq ($(strip $(UGTCM)),TRUE)
+ COM_DEFS += __UGTCM__
+endif
+
+ifeq ($(strip $(ETCM)),TRUE)
+ COM_DEFS += __ETCM__
+endif
+
+ifeq ($(strip $(VGTCM)),TRUE)
+ COM_DEFS += __VGTCM__
+endif
+
+ifeq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += L1_NOT_PRESENT
+endif
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ #enable 4G
+ ifdef FDD_LTE_SUPPORT
+ ifeq ($(strip $(FDD_LTE_SUPPORT)),FALSE)
+ COM_DEFS += __4G_TDD_ONLY__
+ endif
+ endif
+ ifdef TDD_LTE_SUPPORT
+ ifeq ($(strip $(TDD_LTE_SUPPORT)),FALSE)
+ COM_DEFS += __4G_FDD_ONLY__
+ endif
+ endif
+endif
+
+ifeq ($(strip $(IMS_SUPPORT)),TRUE)
+ COM_DEFS += __IMCF_MTK_MD__=1 __IMC_IGNORE_TODO_ASSERT__=1
+ COM_DEFS += __MOD_IMC__=1 __MOD_IMCB__=1 __IMC_SUB_IMC__=1
+ COM_DEFS += __IMC_SUB_IMC_MNGR__=1 __IMC_SUB_IMC_REG__=1 __IMC_SUB_IMC_CC__=1 __IMC_SUB_IMC_SS__=1
+ COM_DEFS += __IMC_MULTIPLE_CONTEXT__
+ COM_DEFS += __IMC_RELAY_TYPE_CCCI__
+ COM_DEFS += __MOD_IMCSMS__
+endif
+
+ifdef N3GPP_OFFLOAD_ENABLE
+ ifeq ($(strip $(N3GPP_OFFLOAD_ENABLE)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __N3GPP_OFFLOAD_ENABLE__
+ COM_DEFS += __MD_WLC_SUPPORT__
+ else
+ ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ COM_DEFS += __N3GPP_OFFLOAD_ENABLE__
+ COM_DEFS += __MD_WLC_SUPPORT__
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(GEMINI_VERSION)),V2)
+ ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ COM_DEFS += __GEMINI_PREEMPT_PEER_SERVICE__ __GEMINI_MONITOR_PAGE_DURING_TRANSFER__ __SMART_PAGING__ __SMART_PAGING_IN_IDLE__
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __MONITOR_PEER_PAGING_IN_CELL_PCH__
+ endif
+ endif
+ endif
+endif
+
+ifndef GPRS_MAX_PDP_SUPPORT
+ GPRS_MAX_PDP_SUPPORT = 2
+endif
+ifdef LTE_MAX_EPSB_SUPPORT
+ COM_DEFS += LTE_MAX_EPSB_SUPPORT=$(strip $(LTE_MAX_EPSB_SUPPORT))
+endif
+# define GPRS_MAX_PDP_SUPPORT = 2~7
+ifdef GPRS_MAX_PDP_SUPPORT
+ COM_DEFS += GPRS_MAX_PDP_SUPPORT=$(strip $(GPRS_MAX_PDP_SUPPORT))
+endif
+ifdef GPRS_MAX_PDP_SUPPORT
+ ifdef LTE_MAX_EPSB_SUPPORT
+ MAX_EXT_PDP_CONTEXT := $(call max,$(strip $(GPRS_MAX_PDP_SUPPORT)),$(strip $(LTE_MAX_EPSB_SUPPORT)))
+ COM_DEFS += MAX_EXT_PDP_CONTEXT=$(call plus,$(strip $(MAX_EXT_PDP_CONTEXT)),3)
+ endif
+endif
+
+ifeq ($(strip $(SCC_SIB_SUPPORT)),TRUE)
+ COM_DEFS += __SCC_SIB_SUPPORT__
+endif
+
+ifeq ($(strip $(SCC_FORCE_LOG_TO_SIB)),TRUE)
+ COM_DEFS += __SCC_FORCE_LOG_TO_SIB__
+endif
+
+ifdef DVFS_ENABLE
+ ifeq ($(strip $(DVFS_ENABLE)),TRUE)
+ COM_DEFS += DVFS_ENABLE
+ endif
+endif
+
+# Add option to select DSP CODEBASE
+ifdef MTK_MODEM_ARCH
+ COM_DEFS += __DSP_CODEBASE_$(strip $(MTK_MODEM_ARCH))__
+endif
+
+ifdef MTK_AUDIO_HIERARCHICAL_PARAM_SUPPORT
+ ifeq ($(strip $(MTK_AUDIO_HIERARCHICAL_PARAM_SUPPORT)),TRUE)
+ COM_DEFS += MTK_AUDIO_HIERARCHICAL_PARAM_SUPPORT
+ endif
+endif
+
+ifeq ($(strip $(RF_BYPASS)),TRUE)
+ COM_DEFS += __RF_BYPASS__
+endif
+
+#DRDI Capability support
+ifeq ($(strip $(RF_DRDI_CAPABILITY_SUPPORT)),TRUE)
+ COM_DEFS += __RF_DRDI_CAPABILITY_SUPPORT__
+endif
+
+ifeq ($(strip $(RF_DRDI_SPECIAL_MEMORY_SUPPORT)),TRUE)
+ COM_DEFS += __RF_DRDI_SPECIAL_MEMORY_SUPPORT__
+endif
+
+ifdef C2K_MODE_SUPPORT
+ ifneq ($(strip $(call Upper,$(C2K_MODE_SUPPORT))),NONE)
+ COM_DEFS += __CDMA2000_RAT__ __EXTERNAL_CDMA_SUPPORT__
+ COM_DEFS += __C2K_RAT__
+ include $(strip $(MAKE_COMMON))/rule_def/c2k_def.mak
+ else
+ COM_DEFS += __SUPPORT_C2K_SMS_OVER_IMS_CDMA_LESS__
+ endif
+else
+ COM_DEFS += __SUPPORT_C2K_SMS_OVER_IMS_CDMA_LESS__
+endif
+
+ifneq ($(filter __CL1_TASK_ENABLE__, $(COM_DEFS)),)
+ include $(strip $(MAKE_COMMON))/rule_def/c2k_def.mak
+endif
+
+ifeq ($(strip $(RTOS)),NUCLEUS)
+ COM_DEFS += KAL_ON_NUCLEUS
+ ifeq ($(strip $(RTOS_DEBUG)),TRUE)
+ COM_DEFS += NU_DEBUG
+ else
+ COM_DEFS += NU_NO_ERROR_CHECKING
+ endif
+endif
+
+ifeq ($(strip $(RTOS)),NUCLEUS_V2)
+ COM_DEFS += KAL_ON_NUCLEUS __NUCLEUS_VERSION_2__
+ ifeq ($(strip $(RTOS_DEBUG)),TRUE)
+ COM_DEFS += NU_DEBUG
+ else
+ COM_DEFS += NU_NO_ERROR_CHECKING
+ endif
+endif
+
+ifeq ($(strip $(RTOS)),NUCLEUS_V3)
+ COM_DEFS += KAL_ON_NUCLEUS __NUCLEUS_VERSION_3__
+ ifeq ($(strip $(RTOS_DEBUG)),TRUE)
+ COM_DEFS += NU_DEBUG
+ else
+ COM_DEFS += NU_NO_ERROR_CHECKING
+ endif
+endif
+
+ifeq ($(strip $(RTOS)),THREADX)
+ COM_DEFS += KAL_ON_THREADX
+ COM_DEFS += TX_ENABLE_IRQ_NESTING TX_DISABLE_NOTIFY_CALLBACKS \
+ TX_DISABLE_PREEMPTION_THRESHOLD TX_DISABLE_STACK_FILLING TX_REACTIVE_INLINE
+ ifneq ($(strip $(RTOS_DEBUG)),TRUE)
+ COM_DEFS += TX_DISABLE_ERROR_CHECKING
+ endif
+endif
+
+ifeq ($(strip $(RTOS)),MERTOS)
+ COM_DEFS += KAL_ON_MERTOS
+endif
+
+ifdef NR_PLUS_LTE_ONLY
+ ifeq ($(strip $(NR_PLUS_LTE_ONLY)),TRUE)
+ COM_DEFS += __NR_PLUS_L_ONLY__
+ endif
+endif
+
+ifneq ($(filter __GEMINI_NR_RAM_REDUCE__,$(strip $(COM_DEFS))),)
+ ifeq ($(filter __NR_PLUS_L_ONLY__,$(strip $(COM_DEFS))),)
+ $(error __GEMINI_NR_RAM_REDUCE__ can only be turned on when __NR_PLUS_L_ONLY__ defined)
+ endif
+endif
+
+ifdef SINGLE_BAND_NUM_EXTENSION_SUPPORT
+ ifeq ($(strip $(SINGLE_BAND_NUM_EXTENSION_SUPPORT)),TRUE)
+ COM_DEFS += __SINGLE_BAND_NUM_EXTENDED__
+ endif
+endif
+
+ifdef LNA_IDX_NUM_EXTENSION_SUPPORT
+ ifeq ($(strip $(LNA_IDX_NUM_EXTENSION_SUPPORT)),TRUE)
+ COM_DEFS += _LNA_IDX_NUM_EXTENSION_
+ endif
+endif
+
+ifdef FIVEG_MODE_SUPPORT
+ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+ifdef GEMINI
+ ifdef DSDA
+ ifeq ($(strip $(DSDA)),TRUE)
+ COM_DEFS += __ENABLE_DSDA__
+ endif
+ endif
+ ifneq ($(strip $(GEMINI)),FALSE)
+ ifdef GEMINI_NR
+ ifneq ($(strip $(GEMINI_NR)),FALSE)
+ COM_DEFS += __GEMINI_NR__
+ COM_DEFS += GEMINI_PLUS_NR=$(strip $(GEMINI_NR))
+ COM_DEFS += MAX_NR_NUM=$(strip $(GEMINI_NR))
+ else
+ ifdef GEMINI_L
+ ifneq ($(strip $(GEMINI_L)),FALSE)
+ COM_DEFS += MAX_NR_NUM=2
+ COM_DEFS += __GEMINI_NR__
+ COM_DEFS += GEMINI_PLUS_NR=2
+ else
+ COM_DEFS += MAX_NR_NUM=1
+ endif
+ else
+ COM_DEFS += MAX_NR_NUM=1
+ endif
+ endif
+ else
+ ifdef GEMINI_L
+ ifneq ($(strip $(GEMINI_L)),FALSE)
+ COM_DEFS += MAX_NR_NUM=2
+ ifeq ($(filter __GEMINI_NR_RAM_REDUCE__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __GEMINI_NR__
+ COM_DEFS += GEMINI_PLUS_NR=2
+ endif
+ else
+ COM_DEFS += MAX_NR_NUM=1
+ endif
+ else
+ COM_DEFS += MAX_NR_NUM=1
+ endif
+ endif
+ else
+ COM_DEFS += MAX_NR_NUM=1
+ endif
+else
+ COM_DEFS += MAX_NR_NUM=1
+endif
+endif
+endif
+
+ifdef GEMINI_L
+ ifneq ($(strip $(GEMINI_L)),FALSE)
+ COM_DEFS += __GEMINI_LTE__
+ COM_DEFS += GEMINI_PLUS_LTE=$(strip $(GEMINI_L))
+ endif
+endif
+
+ifdef GEMINI_W
+ ifneq ($(strip $(GEMINI_W)),FALSE)
+ COM_DEFS += __GEMINI_WCDMA__
+ COM_DEFS += GEMINI_PLUS_WCDMA=$(strip $(GEMINI_W))
+ endif
+endif
+
+# GEMINI
+ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ COM_DEFS += __REMOTE_SIM__ __SRLTE_ENHANCE__
+ COM_DEFS += __GEMINI__ __GEMINI_GSM__ __GSM_RAT__ DRV_MULTIPLE_SIM __CTA_DUAL_SIM_STANDARD__
+ COM_DEFS += __L4C_ROOT__ __GEMINI_3G_SWITCH__
+ COM_DEFS += __MULTIPLE_PS__
+ COM_DEFS += __T_PLUS_W__
+ COM_DEFS += __PLMN_LIST_IN_VIRTUAL_MODE__
+ COM_DEFS += __ENABLE_PLMN_LIST_IN_VIRTUAL_MODE__
+ COM_DEFS += __GEMINI_REPORT_FULL_CAPABILITY__
+ COM_DEFS += __INTRA_BAND_DR__
+ COM_DEFS += __GEMINI_GAP_CUSTOMIZATION__
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += __OP01_FDD__
+ endif
+ # assign GEMINI to GEMINI_PLUS_GSM
+ ifndef GEMINI_PLUS
+ GEMINI_PLUS = $(strip $(GEMINI))
+ endif
+ ifndef GEMINI_PLUS_GSM
+ GEMINI_PLUS_GSM = $(strip $(GEMINI))
+ endif
+
+ COM_DEFS += GEMINI_PLUS=$(strip $(GEMINI))
+ COM_DEFS += GEMINI_PLUS_GSM=$(strip $(GEMINI_PLUS_GSM))
+
+ endif
+endif
+
+ifdef MAX_SW_ALLOWED_ENDC_CC
+ COM_DEFS += MAX_SW_ALLOWED_ENDC_CC=$(strip $(MAX_SW_ALLOWED_ENDC_CC))
+endif
+
+# GPS_SUPPORT
+ifdef GPS_SUPPORT
+ ifeq ($(strip $(GPS_SUPPORT)),SMART_PHONE_MODEM)
+ COM_DEFS += __GPS_SUPPORT__
+ endif
+endif
+
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += IDMA_DOWNLOAD
+endif
+
+ifdef $(COM_DEFS_FOR_PLATFORM)
+ COM_DEFS += $(COM_DEFS_FOR_$(strip $(PLATFORM)))
+endif
+
+ifdef $(COM_DEFS_FOR_RF_MODULE)
+ COM_DEFS += $(COM_DEFS_FOR_$(strip $(RF_MODULE)))
+endif
+
+ifdef UMTS_RF_MODULE
+ifneq ($(strip $(UMTS_RF_MODULE)),NONE)
+ ifdef $(COM_DEFS_FOR_RF_MODULE)
+ COM_DEFS += $(COM_DEFS_FOR_$(strip $(UMTS_RF_MODULE)))
+ endif
+endif
+endif
+
+ifdef UMTS_TDD128_RF_MODULE
+ifneq ($(strip $(UMTS_TDD128_RF_MODULE)),NONE)
+ ifdef $(COM_DEFS_FOR_RF_MODULE)
+ COM_DEFS += $(COM_DEFS_FOR_$(strip $(UMTS_TDD128_RF_MODULE)))
+ endif
+endif
+endif
+
+ifdef LTE_RF_MODULE
+ifneq ($(strip $(LTE_RF_MODULE)),NONE)
+ ifdef $(COM_DEFS_FOR_RF_MODULE)
+ COM_DEFS += $(COM_DEFS_FOR_$(strip $(LTE_RF_MODULE)))
+ endif
+endif
+endif
+
+ifdef C2K_RF_MODULE
+ifneq ($(strip $(C2K_RF_MODULE)),NONE)
+ ifdef $(COM_DEFS_FOR_RF_MODULE)
+ COM_DEFS += $(COM_DEFS_FOR_$(strip $(C2K_RF_MODULE)))
+ endif
+endif
+endif
+
+ifdef MM_RF_MODULE
+ifneq ($(strip $(MM_RF_MODULE)),NONE)
+ ifdef $(COM_DEFS_FOR_RF_MODULE)
+ ifneq ($(COM_DEFS_FOR_$(strip $(MM_RF_MODULE))),)
+ COM_DEFS += $(COM_DEFS_FOR_$(strip $(MM_RF_MODULE)))
+ endif
+ endif
+endif
+endif
+
+ifdef NR_RF_MODULE
+ifneq ($(strip $(NR_RF_MODULE)),NONE)
+ ifdef $(COM_DEFS_FOR_RF_MODULE)
+ COM_DEFS += $(COM_DEFS_FOR_$(strip $(NR_RF_MODULE)))
+ endif
+endif
+endif
+
+ifdef CARRIER_RF_CA_BC_FILTER
+ ifeq ($(strip $(CARRIER_RF_CA_BC_FILTER)), TRUE)
+ COM_DEFS += __PLMN_RF_CA_FILTER__
+ endif
+endif
+
+# Board Options
+ifneq ($(strip $(BOARD_VER)),)
+ COM_DEFS += $(BOARD_VER)
+endif
+
+# Board Subversion
+ifneq ($(strip $(SUB_BOARD_VER)),)
+ COM_DEFS += $(SUB_BOARD_VER)
+endif
+
+ifdef $(COM_DEFS_FOR_BAND_SUPPORT)
+ COM_DEFS += $(COM_DEFS_FOR_$(strip $(BAND_SUPPORT)))
+else
+ # the same as DUAL900
+ COM_DEFS += __EGSM900__ __DCS1800__
+endif
+
+ifdef $(COM_DEFS_FOR_AFC_VCXO_TYPE)
+ COM_DEFS += $(COM_DEFS_FOR_$(strip $(AFC_VCXO_TYPE)))
+endif
+
+ifdef PMIC_PRESENT
+ ifeq ($(strip $(PMIC_PRESENT)),TRUE)
+ COM_DEFS += PMIC_PRESENT
+ endif
+endif
+
+ifdef PMIC
+ ifneq ($(strip $(PMIC)),NONE)
+ COM_DEFS += PMIC_PRESENT
+ COM_DEFS += $(PMIC)
+ endif
+endif
+
+ifdef EXT_PMIC
+ ifneq ($(strip $(EXT_PMIC)),NONE)
+ COM_DEFS += EXT_PMIC_PRESENT
+ COM_DEFS += $(EXT_PMIC)
+ endif
+endif
+
+ifdef NAND_SUPPORT
+ ifeq ($(strip $(NAND_SUPPORT)),TRUE)
+ COM_DEFS += NAND_SUPPORT
+ endif
+endif
+
+ifdef DEMAND_PAGING_LEVEL
+ ifeq ($(strip $(DEMAND_PAGING_LEVEL)),DPV2)
+ COM_DEFS += __DEMAND_PAGING_V2__
+ endif
+endif
+
+ifdef AEC_ENABLE
+ ifeq ($(strip $(AEC_ENABLE)),TRUE)
+ COM_DEFS += AEC_ENABLE
+ endif
+endif
+
+ifdef IC_TEST_TYPE
+ ifneq ($(strip $(IC_TEST_TYPE)),NONE)
+ ifeq ($(findstring _SLT,$(IC_TEST_TYPE)),_SLT)
+ COM_DEFS += __IC_SLT__
+ endif
+ endif
+endif
+
+ifdef AMR_LINK_SUPPORT
+ ifeq ($(strip $(AMR_LINK_SUPPORT)),TRUE)
+ COM_DEFS += __AMR_SUPPORT__
+ endif
+endif
+
+ifdef DEFAULT_WORLD_MODE_ID
+ COM_DEFS += DEFAULT_WORLD_MODE_ID=$(strip $(DEFAULT_WORLD_MODE_ID))
+endif
+
+UART_PORT_USED_COUNT = 0
+UART_PORT_FREE_COUNT = 0
+ifeq ($(strip $(UART_PORT_FREE_COUNT)),1)
+ ifeq ($(strip $(UART_PORT_USED_COUNT)),2)
+ # uart count is not enough for engineer mode
+ COM_DEFS += __ONLY_ONE_UART__
+ endif
+endif
+ifeq ($(strip $(UART_PORT_FREE_COUNT)),0)
+ ifneq ($(strip $(UART_PORT_USED_COUNT)),0)
+ # uart count is not enough for engineer mode
+ COM_DEFS += __ONLY_ONE_UART__
+ endif
+endif
+
+ifdef EDGE_SUPPORT
+ ifeq ($(strip $(EDGE_SUPPORT)),TRUE)
+ COM_DEFS += __EGPRS_MODE__
+ ifeq ($(strip $(L1_EPSK_TX)),TRUE)
+ COM_DEFS += __EPSK_TX__
+ endif
+ endif
+endif
+
+ifeq ($(strip $(L1_GPRS)),TRUE)
+ COM_DEFS += __TBF_EST__
+endif
+
+ifdef DSPIRDBG
+ ifeq ($(strip $(DSPIRDBG)),TRUE)
+ COM_DEFS += __DSPIRDBG__
+ endif
+endif
+
+ifdef DISPLAY_TYPE
+ COM_DEFS += __MMI_DISPLAY_TYPE_$(call Upper,$(strip $(DISPLAY_TYPE)))__
+endif
+
+ifdef SECURE_SUPPORT
+ ifeq ($(strip $(SECURE_SUPPORT)),TRUE)
+ COM_DEFS += __MTK_SECURE_PLATFORM__
+ endif
+endif
+
+ifeq ($(strip $(TST_LOGACC_SUPPORT)),TRUE)
+ ifeq ($(strip $(TST_SUPPORT)),TRUE)
+ COM_DEFS += __LOGACC_ENABLE__
+ endif
+endif
+
+ifeq ($(strip $(USB_MASS_STORAGE_SUPPORT)),TRUE)
+ COM_DEFS += __USB_MASS_STORAGE_ENABLE__
+endif
+
+ifeq ($(strip $(USB_COM_PORT_SUPPORT)),TRUE)
+ COM_DEFS += __USB_COM_PORT_ENABLE__
+endif
+
+ifeq ($(strip $(AMRWB_LINK_SUPPORT)),TRUE)
+ COM_DEFS += __AMRWB_LINK_SUPPORT__
+endif
+
+ifdef UMTS_MODE_SUPPORT
+ ifneq ($(strip $(UMTS_MODE_SUPPORT)),NONE)
+ COM_DEFS += __3G_AUTO_BAND_MECHANISM__
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += __UMTS_FDD_MODE__ __ME_STORED_EHPLMN__
+ endif
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += __UMTS_TDD128_MODE__ __R7_EHPLMN__ __ME_STORED_EHPLMN__ __VSIM__
+ ifneq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __TDD_UMAC_HISR_DISABLE__
+ endif
+ endif
+ else
+ ifeq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
+ ifneq ($(filter MT6575 MT6577,$(strip $(PLATFORM))),)
+ COM_DEFS += __SMARTPHONE_GPRS_ONLY__
+ endif
+ endif
+ endif
+endif
+
+ifdef ECALL_SUPPORT
+ ifeq ($(strip $(ECALL_SUPPORT)),TRUE)
+ COM_DEFS += __ECALL_SUPPORT__
+ COM_DEFS += __ECALL_PSAP_SUPPORT__
+ endif
+endif
+
+ifdef NG_ECALL_SUPPORT
+ ifeq ($(strip $(NG_ECALL_SUPPORT)),TRUE)
+ COM_DEFS += __NG_ECALL_SUPPORT__
+ endif
+endif
+
+# Memory Remap Setting
+# Default is BANK0_BANKF_REMAP
+# For MT629X series, it is BANK0_BANK4_REMAP
+BANK0_BANK4_REMAP_PLATFORM = MT6290
+ifneq ($(filter $(strip $(PLATFORM)),$(BANK0_BANK4_REMAP_PLATFORM)),)
+ COM_DEFS += __BANK0_BANK4_REMAP__
+endif
+
+ifdef GPRS_CLASS_10
+ ifeq ($(strip $(GPRS_CLASS_10)),TRUE)
+ COM_DEFS += __GPRS_MULTISLOT_CLASS_10__
+ endif
+endif
+
+ifdef EDGE_CLASS_10
+ ifeq ($(strip $(EDGE_CLASS_10 )),TRUE)
+ COM_DEFS += __EDGE_MULTISLOT_CLASS_10__
+ endif
+endif
+
+ifdef PS_MCU_CLOCK
+ # convert MCU_XXX_YYM to XXX.YY
+ CLOCK_MHZ = $(subst _,.,$(subst M,,$(subst MCU_,,$(strip $(PS_MCU_CLOCK)))))
+ ifneq ($(CLOCK_MHZ),)
+ COM_DEFS += CPU_CLOCK_MHZ=$(CLOCK_MHZ)
+ endif
+endif
+
+ifeq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
+ COM_DEFS += MED_NOT_PRESENT MED_V_NOT_PRESENT
+endif
+
+ifeq ($(strip $(USB_MASS_STORAGE_CDROM_SUPPORT)),TRUE)
+ COM_DEFS += __USB_MASS_STORAGE_CDROM_ENABLE__
+endif
+
+ifdef AVI_FILE_FORMAT_SUPPORT
+ ifeq ($(strip $(AVI_FILE_FORMAT_SUPPORT)),TRUE)
+ COM_DEFS += __AVI_FILE_FORMAT_SUPPORT__
+ endif
+endif
+
+ifdef RM_FILE_FORMAT_SUPPORT
+ ifeq ($(strip $(RM_FILE_FORMAT_SUPPORT)),TRUE)
+ COM_DEFS += __RM_FILE_FORMAT_SUPPORT__
+ endif
+endif
+
+ifndef FLAVOR
+ COM_DEFS += __FLAVOR_NOT_PRESENT__
+endif
+
+ifdef FLAVOR
+ ifneq ($(strip $(FLAVOR)),NONE)
+ COM_DEFS += __FLAVOR_$(strip $(FLAVOR))__
+ else
+ COM_DEFS += __FLAVOR_NOT_PRESENT__
+ endif
+endif
+
+ifdef KAL_TRACE_OUTPUT
+ ifeq ($(strip $(KAL_TRACE_OUTPUT)),NONE)
+ COM_DEFS += MODULE_TRACE_OFF
+ endif
+ ifeq ($(strip $(KAL_TRACE_OUTPUT)),CUST_PARTIAL)
+ COM_DEFS += MODULE_TRACE_OFF
+ endif
+endif
+
+ifdef DEMO_PROJECT
+ ifeq ($(strip $(DEMO_PROJECT)),TRUE)
+ COM_DEFS += MTK_INTERNAL_MMI_FEATURES
+ COM_DEFS += __MTK_INTERNAL__
+ COM_DEFS += __SIM_UNIT_TEST__
+ COM_DEFS += __SIM_UNIT_TEST_V2__
+ endif
+endif
+
+ifdef SP_VIDEO_CALL_SUPPORT
+ ifeq ($(strip $(SP_VIDEO_CALL_SUPPORT)),TRUE)
+ ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __VT_TRANSPORT_SUPPORT__ __VIDEO_CALL_SUPPORT__
+ endif
+ endif
+endif
+
+ifdef EMLPP_SUPPORT
+ ifeq ($(strip $(EMLPP_SUPPORT)),TRUE)
+ COM_DEFS += __EMLPP_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(L1_CATCHER)),TRUE)
+ ifeq ($(strip $(TST_SUPPORT)),TRUE)
+ COM_DEFS += L1_CATCHER
+ endif
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ COM_DEFS += L1_CATCHER
+ endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ ifeq ($(strip $(DHL_ULSP_SUPPORT)),TRUE)
+ ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ COM_DEFS += __USE_ULSP_SW_SIMULATOR__
+ else
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __USE_ULSP_SW_SIMULATOR__
+ else
+ # Disable for LS check-in 97 API, should re-enable after ULSP ready
+ COM_DEFS += __USE_ULSP__
+ #COM_DEFS += __USE_ULSP_SW_SIMULATOR__
+ endif
+ endif
+ else
+ COM_DEFS += __USE_ULSP_SW_SIMULATOR__ # disable this to enable legacy SW logging
+ endif
+else
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ ifeq ($(strip $(DHL_ULSP_SUPPORT)),TRUE)
+ ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ COM_DEFS += __USE_ULSP_SW_SIMULATOR__
+ else
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __USE_ULSP_SW_SIMULATOR__
+ else
+ # Disable for LS check-in 97 API, should re-enable after ULSP ready
+ COM_DEFS += __USE_ULSP__
+ #COM_DEFS += __USE_ULSP_SW_SIMULATOR__
+ endif
+ endif
+ else
+ COM_DEFS += __USE_ULSP_SW_SIMULATOR__ # disable this to enable legacy SW logging
+ endif
+ else
+ ifeq ($(strip $(DHL_ULSP_SUPPORT)),TRUE)
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __USE_ULSP__
+ endif
+ endif
+ endif
+ endif
+endif
+ifeq ($(strip $(MTK_DSP_DEBUG)),TRUE)
+ COM_DEFS += MTK_DSP_DEBUG
+endif
+
+ifdef CSD_SUPPORT
+ ifneq ($(strip $(CSD_SUPPORT)),NONE)
+ # Support CSD
+ COM_DEFS += CSD_SUPPORT
+ ifeq ($(strip $(CSD_SUPPORT)),T_NT)
+ COM_DEFS += __CSD_NT__ __CSD_T__
+ else
+ ifeq ($(strip $(CSD_SUPPORT)),NT_ONLY)
+ COM_DEFS += __CSD_NT__
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(FAST_UART)),TRUE)
+ COM_DEFS += __FAST_UART__
+endif
+
+ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += ABM_NOT_PRESENT TCPIP_NOT_PRESENT SOC_NOT_PRESENT
+else
+ ifeq ($(strip $(GERAN_MODE_SUPPORT)),GERAN_EGPRS_MODE)
+ COM_DEFS += ABM_NOT_PRESENT TCPIP_NOT_PRESENT SOC_NOT_PRESENT
+ endif
+endif
+
+ifdef BOOT_FAT_RESET
+ ifeq ($(strip $(BOOT_FAT_RESET)),TRUE)
+ COM_DEFS += __BOOT_FAT_RESET__
+ endif
+endif
+
+ifdef FS_OPEN_HINT_SUPPORT
+ ifeq ($(strip $(FS_OPEN_HINT_SUPPORT)),TRUE)
+ COM_DEFS += __FS_OPEN_HINT__
+ endif
+endif
+
+ifdef FS_DEDICATED_BUFFER
+ ifeq ($(strip $(FS_DEDICATED_BUFFER)),TRUE)
+ COM_DEFS += __FS_DEDICATED_BUFFER__
+ endif
+endif
+
+ifdef FS_TRACE_SUPPORT
+ ifdef TST_SUPPORT
+ ifeq ($(strip $(FS_TRACE_SUPPORT)),TRUE)
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ COM_DEFS += __FS_TRACE_SUPPORT__
+ endif
+ endif
+ endif
+endif
+
+ifdef TX_POWER_OFFSET_SUPPORT
+ ifeq ($(strip $(TX_POWER_OFFSET_SUPPORT)),TRUE)
+ COM_DEFS += __TX_POWER_OFFSET_SUPPORT__
+ endif
+endif
+
+ifdef SAR_TX_POWER_BACKOFF_SUPPORT
+ ifeq ($(strip $(SAR_TX_POWER_BACKOFF_SUPPORT)),TRUE)
+ COM_DEFS += __SAR_TX_POWER_BACKOFF_SUPPORT__
+ endif
+endif
+
+ifdef UE_CAP_POWER_CLASS_1_DOT_5_SUPPORT
+ ifeq ($(strip $(UE_CAP_POWER_CLASS_1_DOT_5_SUPPORT)),TRUE)
+ COM_DEFS += __UE_CAP_POWER_CLASS_1_DOT_5_SUPPORT__
+ endif
+endif
+
+ifdef SAR_TX_POWER_BACKOFF_BY_ANT_COMB_SUPPORT
+ ifeq ($(strip $(SAR_TX_POWER_BACKOFF_BY_ANT_COMB_SUPPORT)),TRUE)
+ COM_DEFS += __SAR_TX_POWER_BACKOFF_BY_ANT_COMB_SUPPORT__
+ endif
+endif
+
+ifdef WCDMA_TX_NSFT_POWER_OFFSET_SUPPORT
+ ifeq ($(strip $(WCDMA_TX_NSFT_POWER_OFFSET_SUPPORT)),TRUE)
+ COM_DEFS += __WCDMA_TX_NSFT_POWER_OFFSET_SUPPORT__
+ endif
+endif
+
+ifdef RX_POWER_OFFSET_SUPPORT
+ ifeq ($(strip $(RX_POWER_OFFSET_SUPPORT)),TRUE)
+ COM_DEFS += __RX_POWER_OFFSET_SUPPORT__
+ endif
+endif
+
+ifdef 4G_TX_ALTERNATIVE_ROUTE_SUPPORT_CCA
+ ifeq ($(strip $(4G_TX_ALTERNATIVE_ROUTE_SUPPORT_CCA)),TRUE)
+ COM_DEFS += __4G_TX_ALTERNATIVE_ROUTE_SUPPORT_CCA__
+ endif
+endif
+
+ifdef MMRF_ROUTE_SIZE_ORDER
+ COM_DEFS += __$(strip $(MMRF_ROUTE_SIZE_ORDER))__
+endif
+
+ifdef MMRF_GOLDEN_CALDATA_FOR_OTA_ROUTE_SUPPORT
+ ifeq ($(strip $(MMRF_GOLDEN_CALDATA_FOR_OTA_ROUTE_SUPPORT)),TRUE)
+ COM_DEFS += __MMRF_GOLDEN_CALDATA_FOR_OTA_ROUTE_SUPPORT__
+ endif
+endif
+
+ifdef RFC_ROUTE_SIZE_OPTION
+ COM_DEFS += __$(strip $(RFC_ROUTE_SIZE_OPTION))__
+endif
+
+ifdef GSM_EM_TX_POWER_CONTROL_SUPPORT
+ ifeq ($(strip $(GSM_EM_TX_POWER_CONTROL_SUPPORT)),TRUE)
+ COM_DEFS += __GSM_EM_TX_POWER_CONTROL_SUPPORT__
+ endif
+endif
+
+ifndef PHB_SIM_ENTRY
+ PHB_SIM_ENTRY = 250
+endif
+ifdef PHB_SIM_ENTRY
+ COM_DEFS += MAX_PHB_SIM_ENTRY=$(strip $(PHB_SIM_ENTRY))
+endif
+
+ifndef PHB_PHONE_ENTRY
+ PHB_PHONE_ENTRY = 200
+endif
+ifdef PHB_PHONE_ENTRY
+ COM_DEFS += MAX_PHB_PHONE_ENTRY=$(strip $(PHB_PHONE_ENTRY))
+endif
+
+ifndef PHB_LN_ENTRY
+ PHB_LN_ENTRY = 20
+endif
+ifdef PHB_LN_ENTRY
+ COM_DEFS += MAX_PHB_LN_ENTRY=$(strip $(PHB_LN_ENTRY))
+endif
+
+ifdef EMS_SUPPORT
+ ifeq ($(strip $(EMS_SUPPORT)),EMS_50)
+ COM_DEFS += __EMS_REL5__
+ endif
+ ifeq ($(strip $(EMS_SUPPORT)),EMS_40)
+ # do nothing
+ endif
+ ifeq ($(strip $(EMS_SUPPORT)),EMS_SLIM)
+ COM_DEFS += __SLIM_EMS__
+ endif
+ ifeq ($(strip $(EMS_SUPPORT)),EMS_ULC_SLIM)
+ COM_DEFS += __SLIM_EMS__ __ULC_SLIM_EMS__
+ endif
+endif
+
+MULTI_LNA_MODE_CALIBRATION_SUPPORT_PLATFORM = MT6575 MT6280 MT6577 MT6589 MT6290 MT6595 MT6755 MT6797 $(strip $(SUPPORT_PLATFORM))
+ifneq ($(filter $(MULTI_LNA_MODE_CALIBRATION_SUPPORT_PLATFORM), $(strip $(PLATFORM))),)
+ COM_DEFS += __MULTI_LNA_MODE_CALIBRATION_SUPPORT__
+endif
+
+ifndef SUB_LCD_SIZE
+ SUB_LCD_SIZE = NONE
+endif
+ifdef SUB_LCD_SIZE
+ COM_DEFS += __MMI_SUBLCD_$(call Upper,$(strip $(SUB_LCD_SIZE)))__
+endif
+
+ifdef OTP_SUPPORT
+ ifeq ($(strip $(OTP_SUPPORT)),TRUE)
+ COM_DEFS += __SECURITY_OTP__
+ COM_DEFS += __NVRAM_OTP__
+ endif
+endif
+
+ifndef DLT_ALWAYS_LOAD_BUFFER_SIZE
+ DLT_ALWAYS_LOAD_BUFFER_SIZE = 0
+endif
+ifdef DLT_ALWAYS_LOAD_BUFFER_SIZE
+ COM_DEFS += __DLT_ALWAYS_LOAD_BUFFER_SIZE__=$(strip $(DLT_ALWAYS_LOAD_BUFFER_SIZE))
+endif
+
+ifndef DLT_LOAD_ON_DEMAND_BUFFER_SIZE
+ DLT_LOAD_ON_DEMAND_BUFFER_SIZE = 0
+endif
+ifdef DLT_LOAD_ON_DEMAND_BUFFER_SIZE
+ COM_DEFS += __DLT_LOAD_ON_DEMAND_BUFFER_SIZE__=$(strip $(DLT_LOAD_ON_DEMAND_BUFFER_SIZE))
+endif
+
+ifneq ($(strip $(OPTR_CODE)),OP12)
+ COM_DEFS += __IP_NUMBER__
+endif
+
+ifeq ($(strip $(CLIB_TIME_SUPPORT)), TRUE)
+ COM_DEFS += __SUPPORT_CLIB_TIME__
+endif
+
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ COM_DEFS += __MASK_L4__ __LTE_RAT__ __LTE_REL9__
+ ifeq ($(strip $(SIM_STANDALONE)),TRUE)
+ COM_DEFS += __SIM_STANDALONE__
+ endif
+ COM_DEFS += __23G_PRI_RESEL_SUPPORT__
+endif
+
+ifdef NOR_SUPPORT_RAW_DISK
+ ifeq ($(strip $(NOR_SUPPORT_RAW_DISK)),TRUE)
+ COM_DEFS += __NOR_SUPPORT_RAW_DISK__
+ endif
+endif
+
+ifeq ($(strip $(TST_WRITE_TO_FILE)),TRUE)
+ ifeq ($(strip $(TST_SUPPORT)),TRUE)
+ COM_DEFS += __TST_WRITE_TO_FILE__
+ endif
+endif
+
+ifeq ($(filter REL_CR_%,$(strip $(RELEASE_PACKAGE))),)
+ COM_DEFS += __GIS_INTERNAL__
+ COM_DEFS += __ENABLE_WW_SA_CAP__
+endif
+
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ ifeq ($(strip $(LPP_SUPPORT)),CONTROL_PLANE)
+ COM_DEFS += __LPP_SUPPORT__
+ COM_DEFS += __LPP_CP_SUPPORT__ __LPP_REL_15__
+ endif
+endif
+
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ ifeq ($(strip $(LPP_SUPPORT)),CONTROL_PLANE)
+ ifeq ($(strip $(LPP_EXT_SUPPORT)),TRUE)
+ COM_DEFS += __LPP_EXT_SUPPORT__
+ endif
+ endif
+endif
+
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ ifeq ($(strip $(LPP_SUPPORT)),CONTROL_PLANE)
+ ifeq ($(strip $(LTE_OTDOA_SUPPORT)),TRUE)
+ COM_DEFS += __LTE_OTDOA_SUPPORT__
+ endif
+ endif
+endif
+
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ ifeq ($(strip $(LPP_SUPPORT)),CONTROL_PLANE)
+ ifeq ($(strip $(LTE_ECID_SUPPORT)),TRUE)
+ COM_DEFS += __LTE_ECID_SUPPORT__
+ endif
+ endif
+endif
+
+ifdef L1_GPS_REF_TIME_SUPPORT
+ ifeq ($(strip $(L1_GPS_REF_TIME_SUPPORT)), TRUE)
+ COM_DEFS += __L1_GPS_AUTO_TIMING_SYNC_SUPPORT__
+ COM_DEFS += __GNSS_MD_TIME_SYNC__
+ endif
+endif
+
+ifdef AGPS_SUPPORT
+ ifneq ($(strip $(AGPS_SUPPORT)), NONE)
+ ifneq ($(findstring AGPS,$(AGPS_SUPPORT)),)
+ COM_DEFS += __AGPS_SUPPORT__ __AGNSS_SUPPORT__
+ endif
+ ifneq ($(findstring ABDS,$(AGPS_SUPPORT)),)
+ COM_DEFS += __ABDS_SUPPORT__
+ endif
+ ifneq ($(findstring AGLONASS,$(AGPS_SUPPORT)),)
+ COM_DEFS += __AGLONASS_SUPPORT__
+ endif
+ ifneq ($(findstring AGALILEO,$(AGPS_SUPPORT)),)
+ COM_DEFS += __AGALILEO_SUPPORT__
+ endif
+ COM_DEFS += __RRLP_SUPPORT__ __AGPS_CONTROL_PLANE__ __NBR_CELL_INFO__
+ COM_DEFS += __RRLP_REL_5__ __RRLP_REL_7__ __POS_CAP_TRANSFER_PROCEDURE_SUPPORT__
+ ifdef L1_GPS_REF_TIME_SUPPORT
+ ifeq ($(strip $(L1_GPS_REF_TIME_SUPPORT)), TRUE)
+ COM_DEFS += __L1_GPS_REF_TIME_SUPPORT__
+ endif
+ endif
+ COM_DEFS += __UAGPS_CP_SUPPORT__
+ COM_DEFS += __AGPS_CP_SIB15__
+ COM_DEFS += __ULCS_ASN_SUPPORT_R6__
+ COM_DEFS += __ULCS_ASN_SUPPORT_R7__
+ COM_DEFS += __ULCS_ASN_SUPPORT_R8__
+ COM_DEFS += __ULCS_ASN_SUPPORT_R9__
+ COM_DEFS += __ULCS_ASN_SUPPORT_R10__
+ COM_DEFS += __ULCS_ASN_SUPPORT_R11__
+ endif
+endif
+
+ifdef CNAP_SUPPORT
+ ifeq ($(strip $(CNAP_SUPPORT)),TRUE)
+ COM_DEFS += __CNAP_SUPPORT__
+ endif
+endif
+
+ifdef SMS_PHONE_ENTRY
+ COM_DEFS += SMS_PHONE_ENTRY=$(strip $(SMS_PHONE_ENTRY))
+endif
+
+ifdef SMS_TOTAL_ENTRY
+ COM_DEFS += SMS_TOTAL_ENTRY=$(strip $(SMS_TOTAL_ENTRY))
+endif
+
+ifdef IPSEC_SUPPORT
+ ifneq ($(strip $(IPSEC_SUPPORT)),FALSE)
+ COM_DEFS += __IPSEC__
+ endif
+endif
+
+ifdef PRODUCTION_RELEASE
+ ifeq ($(strip $(PRODUCTION_RELEASE)),FALSE)
+ COM_DEFS += L1A_DEVELOP_DEBUG
+ endif
+endif
+
+ifdef GPRS_DIALUP_PPP_DROP_PACKETS_WHEN_2G_PS_SUSPEND
+ ifeq ($(strip $(GPRS_DIALUP_PPP_DROP_PACKETS_WHEN_2G_PS_SUSPEND)), TRUE)
+ COM_DEFS += __PPP_DROP_PACKETS_WHEN_2G_PS_SUSPEND__
+ endif
+endif
+
+ifneq ($(strip $(MODEM_CARD)),NONE)
+ COM_DEFS += __MODEM_CARD__
+ COM_DEFS += __DISABLE_MODEM_AUTO_POWER_OFF__
+ COM_DEFS += __MODEM_AUTO_STARTUP_TO_FLIGHT_MODE__
+ COM_DEFS += __CSCB_ALL_LANGUAGE_ON__
+ COM_DEFS += __AT_LINUX_DATA_PORT__
+ COM_DEFS += __MOBILE_BROADBAND_PROVISION_CONTEXT__
+ COM_DEFS += __CSMSS_EXPLICIT_SS_OPERATION__
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __SPEECH_OVER_USB__
+ endif
+ ifeq ($(strip $(MODEM_CARD)),CS_CALL_DISABLE)
+ COM_DEFS += __DISABLE_CSCALL__
+ endif
+ COM_DEFS += __SAT_AP_NOT_SUPPORT__
+endif
+
+ifeq ($(strip $(SMS_R8_NATION_LANGUAGE)),TRUE)
+ COM_DEFS += __SMS_R8_NATION_LANGUAGE__
+endif
+
+ifdef SMS_R8_TABLE_MECHANISM
+ COM_DEFS += __$(strip $(SMS_R8_TABLE_MECHANISM))__
+else
+ COM_DEFS += __SMS_R8_DEFAULT__
+endif
+
+ifdef MELODY_BUFFER_LEN
+ COM_DEFS += MAX_MELODY_BUF_LEN=$(strip $(MELODY_BUFFER_LEN))
+endif
+
+ifdef GPRS_DIALUP_PPP_SUPPORT_SPEED_UP_DIALUP
+ ifeq ($(strip $(GPRS_DIALUP_PPP_SUPPORT_SPEED_UP_DIALUP)),TRUE)
+ COM_DEFS += __PPP_SPEED_UP_IPV4_GPRS_DIALUP__
+ endif
+endif
+
+ifdef DRV_DEBUG_MEMORY_TRACE_SUPPORT
+ ifeq ($(strip $(DRV_DEBUG_MEMORY_TRACE_SUPPORT)),TRUE)
+ COM_DEFS += __DRV_DBG_MEMORY_TRACE_SUPPORT__
+ endif
+endif
+
+ifdef SMART_PHONE_CORE
+ ifneq ($(strip $(SMART_PHONE_CORE)),NONE)
+ COM_DEFS += __AT_EPBW_SUPPORT__
+ endif
+endif
+
+ifdef PHB_NAME_LENGTH
+ COM_DEFS += MAX_PHB_NAME_LENGTH=$(strip $(PHB_NAME_LENGTH))
+ COM_DEFS += MAX_PS_NAME_SIZE=$(call plus,$(PHB_NAME_LENGTH),2)
+endif
+
+MCD_DEFS = __R99__
+MCD_DEFS += MAX_PS_NAME_SIZE=$(call plus,$(PHB_NAME_LENGTH),2)
+ifdef MCD_CODESET_SHIFT_SUPPORT
+ ifneq ($(strip $(MCD_CODESET_SHIFT_SUPPORT)),NONE)
+ MCD_DEFS += __MCD_CODESET_SHIFT__
+ MCD_DEFS += $(foreach def, $(MCD_CODESET_SHIFT_SUPPORT), __MCD_CODESET_SHIFT_$(def)__)
+ COM_DEFS += __MCD_CODESET_SHIFT__
+ COM_DEFS += $(foreach def, $(MCD_CODESET_SHIFT_SUPPORT), __MCD_CODESET_SHIFT_$(def)__)
+ endif
+endif
+
+ifeq ($(strip $(PLMN_LIST_PREF_SUPPORT)),ON)
+ COM_DEFS += __PLMN_LIST_PREF_SUPPORT__
+endif
+
+ifdef UART_CHARGER_THE_SAME_INTERFACE
+ ifeq ($(strip $(UART_CHARGER_THE_SAME_INTERFACE)),UART1)
+ COM_DEFS += __UART1_WITH_CHARGER__
+ endif
+ ifeq ($(strip $(UART_CHARGER_THE_SAME_INTERFACE)),UART2)
+ COM_DEFS += __UART2_WITH_CHARGER__
+ endif
+ ifeq ($(strip $(UART_CHARGER_THE_SAME_INTERFACE)),UART3)
+ COM_DEFS += __UART3_WITH_CHARGER__
+ endif
+endif
+
+ifdef SMS_OVER_PS_SUPPORT
+ ifeq ($(strip $(SMS_OVER_PS_SUPPORT)),TRUE)
+ COM_DEFS += __SMS_OVER_PS_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(PHB_SYNC)),ON)
+ COM_DEFS += __PHB_USIM_SYNC__
+endif
+
+ifeq ($(strip $(DEBUG_ASSERT_SUPPORT)),TRUE)
+ COM_DEFS += __DEBUG_ASSERT_SUPPORT__
+endif
+
+ifeq ($(strip $(MINIDUMP_SYMBOL_CLEAR_SUPPORT)),TRUE)
+ COM_DEFS += __MINIDUMP_SYMBOL_CLEAR_SUPPORT__
+endif
+
+ifdef KAL_ASSERT_LEVEL
+ ifeq ($(strip $(KAL_ASSERT_LEVEL)),KAL_ASSERT_LEVEL4)
+ COM_DEFS += __KAL_ASSERT_LEVEL4__
+ endif
+ ifeq ($(strip $(KAL_ASSERT_LEVEL)),KAL_ASSERT_LEVEL3)
+ COM_DEFS += __KAL_ASSERT_LEVEL3__
+ endif
+ ifeq ($(strip $(KAL_ASSERT_LEVEL)),KAL_ASSERT_LEVEL2)
+ COM_DEFS += __KAL_ASSERT_LEVEL2__ __KAL_ASSERT_SHRINKING__
+ endif
+ ifeq ($(strip $(KAL_ASSERT_LEVEL)),KAL_ASSERT_LEVEL1)
+ COM_DEFS += __KAL_ASSERT_LEVEL1__ __KAL_ASSERT_SHRINKING__
+ endif
+ ifeq ($(strip $(KAL_ASSERT_LEVEL)),KAL_ASSERT_LEVEL0)
+ COM_DEFS += __KAL_ASSERT_LEVEL0__ __KAL_ASSERT_SHRINKING__
+ endif
+endif
+
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __TX_NEW_ARCHITECTURE__
+endif
+
+ifeq ($(strip $(TST_DNT_LOGGING)),TRUE)
+ ifneq ($(strip $(TST_SUPPORT)),TRUE)
+ else
+ COM_DEFS += __TST_DNT_LOGGING__ __TST_LMU_LOGGING__ __TST_DCC_ENABLED__
+ endif
+endif
+
+ifeq ($(strip $(SML_SUPPORT)),TRUE)
+ COM_DEFS += __SIM_ME_LOCK__
+ ifdef TMO_SIM_LOCK
+ ifeq ($(strip $(TMO_SIM_LOCK)),TRUE)
+ COM_DEFS += __TMO_SIM_LOCK__
+ endif
+ endif
+endif
+
+ifeq ($(strip $(PHB_ADDITIONAL_SUPPORT)),TRUE)
+ COM_DEFS += __PHB_USIM_ADDITIONAL_SUPPORT__
+endif
+
+ifeq ($(strip $(ICUSB_SUPPORT)),TRUE)
+ COM_DEFS += __ICUSB_SUPPORT__
+endif
+
+ifndef PHB_FDN_ENTRY
+ PHB_FDN_ENTRY = 32
+endif
+ifdef PHB_FDN_ENTRY
+ COM_DEFS += MAX_PHB_FDN_ENTRY=$(strip $(PHB_FDN_ENTRY))
+endif
+
+ifeq ($(strip $(2G_TX_VOLTAGE_COMPENSATION_SUPPORT)),TRUE)
+ COM_DEFS += __2G_TX_VOLTAGE_COMPENSATION_SUPPORT__
+endif
+
+ifeq ($(strip $(2G_RX_DIVERSITY_PATH_SUPPORT)),TRUE)
+ COM_DEFS += __2G_RX_DIVERSITY_PATH_SUPPORT__
+endif
+
+ifeq ($(strip $(MMRF_RF_HAL_SEQ_GEN_SUPPORT)),TRUE)
+ COM_DEFS += __MMRF_RF_HAL_SEQ_GEN_SUPPORT__
+endif
+
+ifeq ($(strip $(RF_BSI_CLK_DIV_BY_AP_ENABLE)),TRUE)
+ COM_DEFS += __RF_BSI_CLK_DIV_BY_AP_ENABLE__
+endif
+
+ifeq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R99_SUPPORT)
+ COM_DEFS += __R99__
+endif
+
+ifeq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R4_SUPPORT)
+ COM_DEFS += __R99__ __GERAN_R4__ __REL4__
+endif
+
+ifeq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R5_SUPPORT)
+ COM_DEFS += __R99__ __GERAN_R4__ __REL4__ __GERAN_R5__ __REL5__ __USIM_SUPPORT__
+endif
+
+ifeq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R6_SUPPORT)
+ COM_DEFS += __R99__ __GERAN_R4__ __REL4__ __GERAN_R5__ __REL5__ __GERAN_R6__ __REL6__ __USIM_SUPPORT__ __FDD_REDIRECTION__ __CMCC_FR__
+endif
+
+ifeq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R7_SUPPORT)
+ COM_DEFS += __R99__ __GERAN_R4__ __REL4__ __GERAN_R5__ __REL5__ __GERAN_R6__ __REL6__ __USIM_SUPPORT__ __NEW_TBF_ARCH__ __REMOVE_FA__ __MAC_NEW_ARCH__ __GERAN_R7__ __FDD_REDIRECTION__ __CMCC_FR__
+endif
+
+ifeq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R8_SUPPORT)
+ COM_DEFS += __R99__ __GERAN_R4__ __REL4__ __GERAN_R5__ __REL5__ __GERAN_R6__ __REL6__ __USIM_SUPPORT__ __NEW_TBF_ARCH__ __REMOVE_FA__ __MAC_NEW_ARCH__ __GERAN_R7__ __GERAN_R8__ __FDD_REDIRECTION__ __CMCC_FR__
+endif
+
+ifeq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R9_SUPPORT)
+ COM_DEFS += __R99__ __GERAN_R4__ __REL4__ __GERAN_R5__ __REL5__ __GERAN_R6__ __REL6__ __USIM_SUPPORT__ __NEW_TBF_ARCH__ __REMOVE_FA__ __MAC_NEW_ARCH__ __GERAN_R7__ __GERAN_R8__ __GERAN_R9__ __FDD_REDIRECTION__ __CMCC_FR__
+ endif
+
+ifeq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R10_SUPPORT)
+ COM_DEFS += __R99__ __GERAN_R4__ __REL4__ __GERAN_R5__ __REL5__ __GERAN_R6__ __REL6__ __USIM_SUPPORT__ __NEW_TBF_ARCH__ __REMOVE_FA__ __MAC_NEW_ARCH__ __GERAN_R7__ __GERAN_R8__ __GERAN_R9__ __GERAN_R10__ __FDD_REDIRECTION__ __CMCC_FR__
+endif
+
+ifeq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R11_SUPPORT)
+ COM_DEFS += __R99__ __GERAN_R4__ __REL4__ __GERAN_R5__ __REL5__ __GERAN_R6__ __REL6__ __USIM_SUPPORT__ __NEW_TBF_ARCH__ __REMOVE_FA__ __MAC_NEW_ARCH__ __GERAN_R7__ __GERAN_R8__ __GERAN_R9__ __GERAN_R10__ __GERAN_R11__ __FDD_REDIRECTION__ __CMCC_FR__
+endif
+
+ifeq ($(strip $(EUTRAN_MODE_SUPPORT)),EUTRAN_MODE)
+ COM_DEFS += __REL4__ __REL5__ __REL6__ __REL7__ __REL8__ __CSG_SUPPORT__ __R6_NETWORK_SHARING__
+endif
+
+ifeq ($(strip $(EUTRAN_MODE_SUPPORT)),EUTRAN_MODE)
+ COM_DEFS += __ETWS_SUPPORT__ __EXT_SEG_CTRL_BLK__
+endif
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R4_SUPPORT)
+ COM_DEFS += __UMTS_R4__ __REL4__
+endif
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R5_SUPPORT)
+ COM_DEFS += __UMTS_R4__ __UMTS_R5__ __REL4__ __REL5__
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSDPA_SUPPORT__ __HSPA_PREFERENCE_SETTING__
+
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += FDD_HSDSCH_CATEGORY=$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY))
+ endif
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += TDD_HSDSCH_CATEGORY=$(strip $(TDD_HSDSCH_PHYSICAL_CATEGORY))
+ endif
+ endif
+endif
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R6_SUPPORT)
+ COM_DEFS += __UMTS_R4__ __UMTS_R5__ __REL4__ __REL5__ __UMTS_R6__ __REL6__ __FDD_REDIRECTION__ __CMCC_FR__
+
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSDPA_SUPPORT__ __HSPA_PREFERENCE_SETTING__
+
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += FDD_HSDSCH_CATEGORY=$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY))
+ endif
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += TDD_HSDSCH_CATEGORY=$(strip $(TDD_HSDSCH_PHYSICAL_CATEGORY))
+ endif
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSUPA_SUPPORT__
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += FDD_EDCH_CATEGORY=$(strip $(FDD_EDCH_PHYSICAL_CATEGORY))
+ endif
+ endif
+ endif
+ ifeq ($(strip $(NOT_BENEFIT_FROM_BATTERY_CONSUMPTION_OPTIMISATION)),TRUE)
+ COM_DEFS += __NOT_BENEFIT_FROM_BATTERY_CONSUMPTION_OPTIMISATION__
+ endif
+endif
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R7_SUPPORT)
+ COM_DEFS += __UMTS_R4__ __UMTS_R5__ __REL4__ __REL5__ __UMTS_R6__ __REL6__ __UMTS_R7__ __REL7__ __FDD_REDIRECTION__ __CMCC_FR__
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSDPA_SUPPORT__ __HSPA_PREFERENCE_SETTING__
+ COM_DEFS += FDD_HSDSCH_CATEGORY=$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY))
+
+ ifeq ($(strip $(R7_HSDPA_PLUS_SUPPORT)),TRUE)
+ COM_DEFS += __R7_HSDPA_PLUS_SUPPORT__ __FDD_MAC_EHS_SUPPORT__ __FDD_ENHANCED_COMMON_STATE_SUPPORT__
+ endif
+
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSUPA_SUPPORT__
+ COM_DEFS += FDD_EDCH_CATEGORY=$(strip $(FDD_EDCH_PHYSICAL_CATEGORY))
+
+ ifeq ($(strip $(R7_HSUPA_PLUS_SUPPORT)),TRUE)
+ COM_DEFS += __R7_HSUPA_PLUS_SUPPORT__ __FDD_CPC_SUPPORT__
+ endif
+
+ ifeq ($(call gt,$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),12),T)
+ ifneq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),15)
+ ifneq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),16)
+ COM_DEFS += __HOM_DL64QAM_SUPPORT__
+ endif
+ endif
+ endif
+
+ ifeq ($(call gt,$(strip $(FDD_EDCH_PHYSICAL_CATEGORY)),6),T)
+ COM_DEFS += __HOM_UL16QAM_SUPPORT__
+ endif
+ endif
+ endif
+ ifeq ($(strip $(R7R8_FULL_SET_SUPPORT)),TRUE)
+ COM_DEFS += __CUSTOMIZE_ENHANCED_COMMON_STATE_SUPPORT__ __CUSTOMIZE_CSHSPA_SUPPORT__ __CUSTOMIZE_HSSCCH_LESS_SUPPORT__ __CUSTOMIZE_UEA2_UIA2_SUPPORT__
+ COM_DEFS += __CUSTOMIZE_RFC2507_SUPPORT__
+ endif
+ endif
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += __HSDPA_SUPPORT__ __HSPA_PREFERENCE_SETTING__
+ COM_DEFS += TDD_HSDSCH_CATEGORY=$(strip $(TDD_HSDSCH_PHYSICAL_CATEGORY))
+ COM_DEFS += __HSUPA_SUPPORT__
+ COM_DEFS += TDD_EDCH_CATEGORY=$(strip $(TDD_EDCH_PHYSICAL_CATEGORY))
+ endif
+endif
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R8_SUPPORT)
+ COM_DEFS += __UMTS_R4__ __UMTS_R5__ __REL4__ __REL5__ __UMTS_R6__ __REL6__ __UMTS_R7__ __REL7__ __UMTS_R8__ __REL8__ \
+ __HSDPA_2MS_DATA_IND__ __HSDPA_2MS_DATA_IND_LATENCY_IMPROVE__ __FDD_REDIRECTION__ __PPACR_SUPPORT__ __CMCC_FR__
+
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSDPA_SUPPORT__ __HSPA_PREFERENCE_SETTING__ __FDD_MAC_EHS_SUPPORT__ __FDD_ENHANCED_COMMON_STATE_SUPPORT__ __FDD_HSDSCH_DRX_CELL_FACH_SUPPORT__
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += FDD_HSDSCH_CATEGORY=$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY))
+ endif
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += TDD_HSDSCH_CATEGORY=$(strip $(TDD_HSDSCH_PHYSICAL_CATEGORY))
+ endif
+
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSUPA_SUPPORT__ __DCHSDPA_ADJ_FREQ_SUPPORT__ __FDD_CPC_SUPPORT__ __FDD_COMMON_EDCH_SUPPORT__ __FDD_MAC_IIS_SUPPORT__ __HSDSCH_CELL_CHANGE_ENHANCE_SUPPORT__
+
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += FDD_EDCH_CATEGORY=$(strip $(FDD_EDCH_PHYSICAL_CATEGORY))
+ endif
+
+ ifeq ($(call gt,$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),12),T)
+ ifneq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),15)
+ ifneq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),16)
+ COM_DEFS += __HOM_DL64QAM_SUPPORT__
+ endif
+ endif
+ endif
+
+ ifeq ($(call gt,$(strip $(FDD_EDCH_PHYSICAL_CATEGORY)),6),T)
+ COM_DEFS += __HOM_UL16QAM_SUPPORT__
+ endif
+
+ endif
+ endif
+ ifeq ($(strip $(NOT_BENEFIT_FROM_BATTERY_CONSUMPTION_OPTIMISATION)),TRUE)
+ COM_DEFS += __NOT_BENEFIT_FROM_BATTERY_CONSUMPTION_OPTIMISATION__
+ endif
+ ifeq ($(strip $(R7R8_FULL_SET_SUPPORT)),TRUE)
+ COM_DEFS += __CUSTOMIZE_ENHANCED_COMMON_STATE_SUPPORT__ __CUSTOMIZE_CSHSPA_SUPPORT__ __CUSTOMIZE_HSSCCH_LESS_SUPPORT__ __CUSTOMIZE_UEA2_UIA2_SUPPORT__
+ COM_DEFS += __CUSTOMIZE_MAC_IIS_SUPPORT__ __CUSTOMIZE_HSDSCH_DRX_CELL_FACH_SUPPORT__ __CUSTOMIZE_COMMON_EDCH_SUPPORT__ __CUSTOMIZE_HSDSCH_CELL_CHANGE_ENHANCE_SUPPORT__
+ COM_DEFS += __CUSTOMIZE_RFC2507_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R9_SUPPORT)
+ COM_DEFS += __UMTS_R4__ __UMTS_R5__ __REL4__ __REL5__ __UMTS_R6__ __REL6__ __UMTS_R7__ __REL7__ __UMTS_R8__ __REL8__ __UMTS_R9__ __REL9__
+ __HSDPA_2MS_DATA_IND__ __HSDPA_2MS_DATA_IND_LATENCY_IMPROVE__ __FDD_REDIRECTION__ __PPACR_SUPPORT__ __CMCC_FR__ __SIB19_DEFFER__
+
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSDPA_SUPPORT__ __HSPA_PREFERENCE_SETTING__ __FDD_MAC_EHS_SUPPORT__ __FDD_ENHANCED_COMMON_STATE_SUPPORT__ __FDD_HSDSCH_DRX_CELL_FACH_SUPPORT__
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += FDD_HSDSCH_CATEGORY=$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY))
+ endif
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += TDD_HSDSCH_CATEGORY=$(strip $(TDD_HSDSCH_PHYSICAL_CATEGORY))
+ endif
+
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSUPA_SUPPORT__ __DCHSDPA_ADJ_FREQ_SUPPORT__ __FDD_CPC_SUPPORT__ __FDD_COMMON_EDCH_SUPPORT__ __FDD_MAC_IIS_SUPPORT__ __HSDSCH_CELL_CHANGE_ENHANCE_SUPPORT__
+
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += FDD_EDCH_CATEGORY=$(strip $(FDD_EDCH_PHYSICAL_CATEGORY))
+ endif
+
+ ifeq ($(call gt,$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),12),T)
+ ifneq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),15)
+ ifneq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),16)
+ COM_DEFS += __HOM_DL64QAM_SUPPORT__
+ endif
+ endif
+ endif
+
+ ifeq ($(call gt,$(strip $(FDD_EDCH_PHYSICAL_CATEGORY)),6),T)
+ COM_DEFS += __HOM_UL16QAM_SUPPORT__
+ endif
+
+
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += TDD_EDCH_CATEGORY=$(strip $(TDD_EDCH_PHYSICAL_CATEGORY))
+ endif
+ endif
+ endif
+ ifeq ($(strip $(NOT_BENEFIT_FROM_BATTERY_CONSUMPTION_OPTIMISATION)),TRUE)
+ COM_DEFS += __NOT_BENEFIT_FROM_BATTERY_CONSUMPTION_OPTIMISATION__
+ endif
+ ifeq ($(strip $(R7R8_FULL_SET_SUPPORT)),TRUE)
+ COM_DEFS += __CUSTOMIZE_ENHANCED_COMMON_STATE_SUPPORT__ __CUSTOMIZE_CSHSPA_SUPPORT__ __CUSTOMIZE_HSSCCH_LESS_SUPPORT__ __CUSTOMIZE_UEA2_UIA2_SUPPORT__
+ COM_DEFS += __CUSTOMIZE_MAC_IIS_SUPPORT__ __CUSTOMIZE_HSDSCH_DRX_CELL_FACH_SUPPORT__ __CUSTOMIZE_COMMON_EDCH_SUPPORT__ __CUSTOMIZE_HSDSCH_CELL_CHANGE_ENHANCE_SUPPORT__
+ COM_DEFS += __CUSTOMIZE_RFC2507_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R11_SUPPORT)
+ COM_DEFS += __UMTS_R4__ __UMTS_R5__ __REL4__ __REL5__ __UMTS_R6__ __REL6__ __UMTS_R7__ __REL7__ __UMTS_R8__ __REL8__ __UMTS_R9__ __REL9__ __UMTS_R10__ __REL10__ __UMTS_R11__ __REL11__ \
+ __HSDPA_2MS_DATA_IND__ __HSDPA_2MS_DATA_IND_LATENCY_IMPROVE__ __FDD_REDIRECTION__ __PPACR_SUPPORT__ __CMCC_FR__ __SIB19_DEFFER__ __3G_CSG_SUPPORT__
+
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSDPA_SUPPORT__ __HSPA_PREFERENCE_SETTING__ __FDD_MAC_EHS_SUPPORT__ __FDD_ENHANCED_COMMON_STATE_SUPPORT__ __FDD_HSDSCH_DRX_CELL_FACH_SUPPORT__ __CUSTOMIZE_ENHANCED_COMMON_STATE_SUPPORT__ __CUSTOMIZE_HSDSCH_DRX_CELL_FACH_SUPPORT__ __CUSTOMIZE_HSSCCH_LESS_SUPPORT__
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += FDD_HSDSCH_CATEGORY=$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY))
+ endif
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += TDD_HSDSCH_CATEGORY=$(strip $(TDD_HSDSCH_PHYSICAL_CATEGORY))
+ endif
+
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COM_DEFS += __HSUPA_SUPPORT__ __DCHSDPA_ADJ_FREQ_SUPPORT__ __FDD_CPC_SUPPORT__ __FDD_COMMON_EDCH_SUPPORT__ __FDD_MAC_IIS_SUPPORT__ __HSDSCH_CELL_CHANGE_ENHANCE_SUPPORT__ __CUSTOMIZE_MAC_IIS_SUPPORT__ __CUSTOMIZE_COMMON_EDCH_SUPPORT__
+
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += FDD_EDCH_CATEGORY=$(strip $(FDD_EDCH_PHYSICAL_CATEGORY))
+ endif
+
+ ifeq ($(call gt,$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),12),T)
+ ifneq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),15)
+ ifneq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),16)
+ COM_DEFS += __HOM_DL64QAM_SUPPORT__
+ endif
+ endif
+ endif
+
+ # we now only handle HSDPA category 29~32 for 3C/4C
+ ifeq ($(call gt,$(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),28),T)
+ ifeq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),29)
+ NUM_SUPPORT_HSDPA_CARRIES=3
+ else
+ ifeq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),30)
+ NUM_SUPPORT_HSDPA_CARRIES=3
+ else
+ ifeq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),31)
+ NUM_SUPPORT_HSDPA_CARRIES=4
+ else
+ ifeq ($(strip $(FDD_HSDSCH_PHYSICAL_CATEGORY)),32)
+ NUM_SUPPORT_HSDPA_CARRIES=4
+ endif
+ endif
+ endif
+ endif
+ COM_DEFS += __MULTI_CARRIER_HSDPA__=$(strip $(NUM_SUPPORT_HSDPA_CARRIES))
+ endif
+
+ ifeq ($(call gt,$(strip $(FDD_EDCH_PHYSICAL_CATEGORY)),6),T)
+ COM_DEFS += __HOM_UL16QAM_SUPPORT__
+ endif
+
+ # UEs of EDCH Category 8 support only QPSK in Dual Cell E-DCH operation, no combine with UL16QAM
+ ifeq ($(call gt,$(strip $(FDD_EDCH_PHYSICAL_CATEGORY)),7),T)
+ COM_DEFS += __DCHSUPA_ADJ_FREQ_SUPPORT__
+ endif
+
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COM_DEFS += TDD_EDCH_CATEGORY=$(strip $(TDD_EDCH_PHYSICAL_CATEGORY))
+ endif
+ endif
+ endif
+ ifeq ($(strip $(NOT_BENEFIT_FROM_BATTERY_CONSUMPTION_OPTIMISATION)),TRUE)
+ COM_DEFS += __NOT_BENEFIT_FROM_BATTERY_CONSUMPTION_OPTIMISATION__
+ endif
+ ifeq ($(strip $(R7R8_FULL_SET_SUPPORT)),TRUE)
+ COM_DEFS += __CUSTOMIZE_ENHANCED_COMMON_STATE_SUPPORT__ __CUSTOMIZE_CSHSPA_SUPPORT__ __CUSTOMIZE_HSSCCH_LESS_SUPPORT__ __CUSTOMIZE_UEA2_UIA2_SUPPORT__
+ COM_DEFS += __CUSTOMIZE_MAC_IIS_SUPPORT__ __CUSTOMIZE_HSDSCH_DRX_CELL_FACH_SUPPORT__ __CUSTOMIZE_COMMON_EDCH_SUPPORT__ __CUSTOMIZE_HSDSCH_CELL_CHANGE_ENHANCE_SUPPORT__
+ COM_DEFS += __CUSTOMIZE_RFC2507_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R5_SUPPORT)
+ COM_DEFS += __UMTS_R5__ __REL4__ __REL5__
+endif
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R6_SUPPORT)
+ COM_DEFS += __UMTS_R5__ __REL4__ __REL5__ __UMTS_R6__ __REL6__
+endif
+
+ifeq ($(findstring LTE_RB,$(LTE_RELEASE_SUPPORT)),LTE_RB)
+ COM_DEFS += __LTE_R11__
+ COM_DEFS += __HSR_ENHANCE__
+ ifeq ($(strip $(LTEA_FEATURE_SET)),STAGE2)
+ COM_DEFS += __LTE_A_CA__ __LTE_A_EDDA__
+ endif
+ ifeq ($(strip $(LTEA_FEATURE_SET)),FULL)
+ COM_DEFS += __LTE_A_CA__ __LTE_A_EDDA__
+ COM_DEFS += __LTE_A_EICIC__ __LTE_A_FEICIC__ __LTE_A_EMBMS__ __LTE_A_UL_COMP__
+ endif
+endif
+
+ifeq ($(findstring LTE_RC,$(LTE_RELEASE_SUPPORT)),LTE_RC)
+ COM_DEFS += __LTE_R11__
+ COM_DEFS += __LTE_R12__
+ COM_DEFS += __REL12__
+ COM_DEFS += __HSR_ENHANCE__
+ ifeq ($(strip $(LTEA_FEATURE_SET)),STAGE2)
+ COM_DEFS += __LTE_A_CA__ __LTE_A_EDDA__
+ endif
+ ifeq ($(strip $(LTEA_FEATURE_SET)),FULL)
+ COM_DEFS += __LTE_A_CA__ __LTE_A_EDDA__
+ COM_DEFS += __LTE_A_EICIC__ __LTE_A_FEICIC__ __LTE_A_EMBMS__ __LTE_A_UL_COMP__
+ endif
+endif
+
+ifeq ($(findstring LTE_RD,$(LTE_RELEASE_SUPPORT)),LTE_RD)
+ COM_DEFS += __LTE_R11__
+ COM_DEFS += __LTE_R12__
+ COM_DEFS += __REL12__
+ COM_DEFS += __LTE_R13__
+ COM_DEFS += __HSR_ENHANCE__
+ ifeq ($(strip $(LTEA_FEATURE_SET)),STAGE2)
+ COM_DEFS += __LTE_A_CA__ __LTE_A_EDDA__
+ endif
+ ifeq ($(strip $(LTEA_FEATURE_SET)),FULL)
+ COM_DEFS += __LTE_A_CA__ __LTE_A_EDDA__
+ COM_DEFS += __LTE_A_EICIC__ __LTE_A_FEICIC__ __LTE_A_EMBMS__ __LTE_A_UL_COMP__
+ endif
+endif
+
+ifeq ($(findstring LTE_RE,$(LTE_RELEASE_SUPPORT)),LTE_RE)
+ COM_DEFS += __LTE_R11__
+ COM_DEFS += __LTE_R12__
+ COM_DEFS += __REL12__
+ COM_DEFS += __LTE_R13__
+ COM_DEFS += __LTE_R14__
+ COM_DEFS += __HSR_ENHANCE__
+ ifeq ($(strip $(LTEA_FEATURE_SET)),STAGE2)
+ COM_DEFS += __LTE_A_CA__ __LTE_A_EDDA__
+ endif
+ ifeq ($(strip $(LTEA_FEATURE_SET)),FULL)
+ COM_DEFS += __LTE_A_CA__ __LTE_A_EDDA__
+ COM_DEFS += __LTE_A_EICIC__ __LTE_A_FEICIC__ __LTE_A_EMBMS__ __LTE_A_UL_COMP__
+ endif
+endif
+
+ifeq ($(findstring LTE_RF,$(LTE_RELEASE_SUPPORT)),LTE_RF)
+ COM_DEFS += __LTE_R11__
+ COM_DEFS += __LTE_R12__
+ COM_DEFS += __REL12__
+ COM_DEFS += __LTE_R13__
+ COM_DEFS += __LTE_R14__
+ COM_DEFS += __LTE_R15__
+ COM_DEFS += __HSR_ENHANCE__
+ ifeq ($(strip $(LTEA_FEATURE_SET)),STAGE2)
+ COM_DEFS += __LTE_A_CA__ __LTE_A_EDDA__
+ endif
+ ifeq ($(strip $(LTEA_FEATURE_SET)),FULL)
+ COM_DEFS += __LTE_A_CA__ __LTE_A_EDDA__
+ COM_DEFS += __LTE_A_EICIC__ __LTE_A_FEICIC__ __LTE_A_EMBMS__ __LTE_A_UL_COMP__
+ endif
+endif
+
+ifeq ($(strip $(LATENCY_REDUCTION)),TRUE)
+ COM_DEFS += __GERAN_RTTI__ __GERAN_FANR__
+# Evelyn temp add for R7 feature detection
+ COM_DEFS += __GERAN_EGPRS2__ __GERAN_RLC_PRESISTEN_MODE__ __GERAN_DLDC__
+endif
+
+ifdef CUST_CODE
+ ifneq ($(strip $(CUST_CODE)),NONE)
+ COM_DEFS += __$(strip $(CUST_CODE))__
+ endif
+ ifeq ($(strip $(CUST_CODE)),TC01)
+ COM_DEFS += __DMF_TC01__
+ COM_DEFS += __ERRC_CUSTOM_NVRAM_WRITEBACK_CONTROL__
+ COM_DEFS += __EUICC_SUPPORT__
+ COM_DEFS += __LATCH_POWER_IN_BOOTLOADER__
+ COM_DEFS += __LATCH_POWER_IN_BOOTLOADER_TC01__
+ COM_DEFS += __FDD_EM_TXRX_ENHANCE__
+ COM_DEFS += __SUBADDR_SUPPORT__
+ COM_DEFS += __FEATURE_TC01_NVRAM_DUAL_RECORD__
+ COM_DEFS += __RMMI_EXTEND_CUSTOM_CMD__
+ COM_DEFS += __AT_ME_IDENTIFICATION_WITHOUT_HEADER__
+ COM_DEFS += __SBP_EMM_CONN_FAIL_ABNORMAL_B__
+ COM_DEFS += __TC01_IMS_SUPPORT__
+ COM_DEFS += __TC01_CALIBRATION__
+ COM_DEFS += __TC01_NVRAM__
+ COM_DEFS += __TC01_NVRAM_PROTECT__
+ COM_DEFS += __LTE_ROAMING_SUPPORT__
+ COM_DEFS += __CHANNEL_LOCK__
+ COM_DEFS += __SUPPLEMENTARY_SERVICES_CS_ONLY__
+ COM_DEFS += __D2RM_ALWAYS_CHOOSE_MOBILE_3GPP__
+ COM_DEFS += __D2_CFUN_EFUN_L4BPWR_FLOW__
+ COM_DEFS += __DISABLE_MD_DATA_RETRY_REPORT__
+ COM_DEFS += __DISABLE_MD_IMS_PCO_NOTIFICATION__
+ COM_DEFS += __VSIM__
+ COM_DEFS += __MDVSIM__
+ COM_DEFS += __TRY_RACH_BAR_CELL_DURING_STORE_LIST__
+ COM_DEFS += __FEATURE_TC01_SIMOFF_EXTENTION__
+ COM_DEFS += __AS_SPECIFIC_CHANNEL_SRCH__
+ COM_DEFS += __TERMINAL_CAP_FLEX__
+ COM_DEFS += __INC_BCCH_DECODE_PRIO_BG_LIST__
+ COM_DEFS += __RAC_CHANGE_VDP_BY_ROAMING__
+ COM_DEFS += __SIM_EXTENDED_APDU__
+ COM_DEFS += __ENABLE_RF_SCAN_FOR_DESENSE_TEST__
+ COM_DEFS += __RF_SCAN_FOR_DESENSE_TEST__
+ COM_DEFS += __A5_3_AND_GEA_WHILTE_LIST__
+ COM_DEFS += __EM_MAX_TX_POWER_SUPPORT__
+ COM_DEFS += __CUSTOMIZABLE_MA_ENABLE__
+ COM_DEFS += __ADIE_MIPI2_DRIVING_8MA__
+ COM_DEFS += __ATT_WIFI_CELLULAR_HO_THRESHOLD__
+ COM_DEFS += __SBP_ATT_WIFI_CELLULAR_HO_THRESHOLD__
+ COM_DEFS += __WIFI_CELLULAR_HO_THRESHOLD_EXTENSION__
+ COM_DEFS += __ENABLE_WW_SA_CAP__
+ COM_DEFS += __DISABLE_CSFB_SCHEDULED_DECISION_BY_23G_SIB_INFO__
+ ifneq ($(strip $(DRM_SUPPORT)),NONE)
+ COM_DEFS += __LONG_AT_CMD_SUPPORT__
+ endif
+ ifdef TC01_ERS_LOCATION
+ ifneq ($(strip $(TC01_ERS_LOCATION)),NONE)
+ COM_DEFS += __TC01_ERS_SUPPORT__
+ endif
+ endif
+ endif
+endif
+
+ifdef TC01_ERS_LOCATION
+ ifeq ($(strip $(TC01_ERS_LOCATION)),NVRAM)
+ COM_DEFS += __TC01_ERS_NVRAM__
+ endif
+ ifeq ($(strip $(TC01_ERS_LOCATION)),BACKUP)
+ COM_DEFS += __TC01_ERS_BACKUP__
+ endif
+endif
+
+ifdef BOOT_CERT_SUPPORT
+ ifeq ($(strip $(BOOT_CERT_SUPPORT)),BOOT_CERT_V1)
+ COM_DEFS += __BOOT_CERT__ __BOOT_CERT_V1__
+ endif
+ ifeq ($(strip $(BOOT_CERT_SUPPORT)),BOOT_CERT_V2)
+ COM_DEFS += __BOOT_CERT__ __BOOT_CERT_V2__
+ endif
+endif
+
+ifeq ($(strip $(DATA_CARD_SPEECH)),TRUE)
+ COM_DEFS += __DATA_CARD_SPEECH__
+endif
+
+ifdef SIM_HOT_SWAP
+ ifneq ($(strip $(SIM_HOT_SWAP)), NONE)
+ COM_DEFS += __SIM_HOT_SWAP_SUPPORT__
+ ifneq ($(findstring SIM_SLOT_1,$(SIM_HOT_SWAP)),)
+ COM_DEFS += __SIM_HOT_SWAP_SLOT_1_SUPPORT__
+ endif
+ ifneq ($(findstring SIM_SLOT_2,$(SIM_HOT_SWAP)),)
+ COM_DEFS += __SIM_HOT_SWAP_SLOT_2_SUPPORT__
+ endif
+ ifneq ($(findstring SIM_SLOT_3,$(SIM_HOT_SWAP)),)
+ COM_DEFS += __SIM_HOT_SWAP_SLOT_3_SUPPORT__
+ endif
+ ifneq ($(findstring SIM_SLOT_4,$(SIM_HOT_SWAP)),)
+ COM_DEFS += __SIM_HOT_SWAP_SLOT_4_SUPPORT__
+ endif
+ endif
+endif
+
+ifdef SMART_PHONE_CORE
+ ifeq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
+ COM_DEFS += __CSCB_ALL_LANGUAGE_ON__
+ COM_DEFS += __AT_EPBUM_SUPPORT__ __PHB_USIM_ADDITIONAL_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(TDD_RF_CUSTOM_TOOL_SUPPORT)),TRUE)
+ COM_DEFS += __TDD_RF_CUSTOM_TOOL_SUPPORT__
+endif
+
+ifeq ($(strip $(3G_DATA_PLANE_MEMORY_SHRINK)),TRUE)
+ COM_DEFS += __DL_MEMORY_SHRINK__ __UL_MEMORY_SHRINK__
+endif
+
+ifeq ($(strip $(NVRAM_BIND_TO_CHIP_CIPHER)),ENABLE)
+ COM_DEFS += __NVRAM_BIND_TO_CHIP_CIPHER__
+endif
+
+ifeq ($(strip $(3D_ANAGLYPH)),TRUE)
+ COM_DEFS += __VIDEO_3D_ANAGLYPH__
+endif
+
+ifeq ($(strip $(call Upper,$(MTK_INTERNAL))),TRUE)
+ COM_DEFS += __FS_AUTO_CONFIG_SUPPORT__
+endif
+
+ifeq ($(strip $(GAMELOFT_CONTENT_SUPPORT)),TRUE)
+ COM_DEFS += __GAMELOFT_CONTENT_SUPPORT__
+endif
+
+ifeq ($(strip $(TST_MALMO_SUPPORT)),TRUE)
+ ifneq ($(strip $(TST_SUPPORT)),TRUE)
+ else
+ COM_DEFS += __TST_MALMO_SUPPORT__ __TST_ALC_SUPPORT__ __TST_ASM_SUPPORT__
+ endif
+endif
+
+ifndef VIRTUAL_PORTS_NUM
+ VIRTUAL_PORTS_NUM = 3
+endif
+ifdef VIRTUAL_PORTS_NUM
+ COM_DEFS += VIRTUAL_PORTS_NUM=$(strip $(VIRTUAL_PORTS_NUM))
+endif
+
+ifdef SSDVT_TEST
+ ifeq ($(strip $(SSDVT_TEST)),TRUE)
+ COM_DEFS += __SSDVT_TEST__
+ endif
+endif
+
+ifeq ($(strip $(FS_RAMDISK)),TRUE)
+ COM_DEFS += __FS_RAMDISK__
+endif
+
+ifdef MDSYS
+ ifeq ($(strip $(MDSYS)),MD1)
+ COM_DEFS += __MD1__
+ else
+ ifeq ($(strip $(MDSYS)),MD2)
+ COM_DEFS += __MD2__
+ endif
+ endif
+endif
+
+ifneq ($(strip $(DHL_MALMO_SUPPORT)),TRUE)
+COM_DEFS += DEBUG_SWLA
+endif
+
+ifeq ($(strip $(DHL_MONITOR_MODE_SUPPORT)),TRUE)
+ COM_DEFS += __DHL_MONITOR_MODE_SUPPORT__
+endif
+
+ifeq ($(strip $(DHL_CCB_LOGGING_SUPPORT)),TRUE)
+ COM_DEFS += __DHL_CCB_LOGGING_SUPPORT__
+ COM_DEFS += __DHL_EBS_LOGGING_SUPPORT__
+endif
+
+ifeq ($(strip $(DHL_ON_DEMAND_LOGGING_SUPPORT)),TRUE)
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __DHL_ON_DEMAND_LOGGING_SUPPORT__
+ endif
+ endif
+endif
+
+ifeq ($(strip $(ICD_SUPPORT)),TRUE)
+ COM_DEFS += __ICD_LOGGING_SUPPORT__
+endif
+
+# LTE single-mode
+ifeq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __LTE_SM__ __MULTI_BOOT__
+endif
+
+# For NONE_FLASH_EXIST Setting
+ifeq ($(strip $(NAND_SUPPORT)),FALSE)
+ ifeq ($(strip $(SERIAL_FLASH_SUPPORT)),FALSE)
+ COM_DEFS += __NONE_FLASH_EXIST__
+ endif
+endif
+
+ifeq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R9_SUPPORT)
+ COM_DEFS += __R99__ __GERAN_R4__ __REL4__ __GERAN_R5__ __REL5__ __GERAN_R6__ __REL6__ __USIM_SUPPORT__ __NEW_TBF_ARCH__ __REMOVE_FA__ __MAC_NEW_ARCH__ __GERAN_R7__ __GERAN_R8__ __GERAN_R9__
+endif
+
+ifeq ($(strip $(ORIGINAL_FLAVOR)),SKYPA_R5)
+ COM_DEFS += __TDD_MODEM__
+endif
+
+ifdef CCCI_FS_SUPPORT
+ ifeq ($(strip $(CCCI_FS_SUPPORT)), TRUE)
+ COM_DEFS += __CCCIFS_SUPPORT__
+ COM_DEFS += __NVRAM_IMPORTANT_PARTITIONS__
+ endif
+endif
+
+ifeq ($(strip $(HIF_USB_SUPPORT)),TRUE)
+ ifeq ($(strip $(HIF_USB30_SUPPORT)),TRUE)
+ COM_DEFS += USB30_ENABLE
+ endif
+endif
+
+ifdef LTE_REPORT_CAP_AS_RELEASE
+ ifeq ($(strip $(LTE_REPORT_CAP_AS_RELEASE)), AS_REL_10)
+ COM_DEFS += __LTE_REPORT_CAP_AS_REL_10__
+ endif
+ ifeq ($(strip $(LTE_REPORT_CAP_AS_RELEASE)), AS_REL_11)
+ COM_DEFS += __LTE_REPORT_CAP_AS_REL_11__
+ endif
+endif
+
+ifdef LTE_REPORT_CAP_AS_RELEASE
+ ifeq ($(strip $(LTE_REPORT_CAP_AS_RELEASE)), AS_REL_10)
+ COM_DEFS += __LTE_REPORT_CAP_AS_REL_10__
+ endif
+ ifeq ($(strip $(LTE_REPORT_CAP_AS_RELEASE)), AS_REL_11)
+ COM_DEFS += __LTE_REPORT_CAP_AS_REL_11__
+ endif
+endif
+
+ifeq ($(strip $(DUAL_SIM_HOT_SWAP_CO_DECK)),TRUE)
+ COM_DEFS += __DUAL_SIM_HOT_SWAP_CO_DECK_SUPPORT__
+endif
+
+ifeq ($(strip $(SMMT_SUPPORT)),TRUE)
+ COM_DEFS += __SMMT_SUPPORT__
+endif
+
+ifeq ($(strip $(IMS_SUPPORT)),TRUE)
+ COM_DEFS += __IMS_SUPPORT__
+ ifeq ($(strip $(VOLTE_SUPPORT)),TRUE)
+ COM_DEFS += __VOLTE_SUPPORT__
+ ifeq ($(strip $(EVS_SUPPORT)),TRUE)
+ COM_DEFS += __EVS_SUPPORT__
+ ifneq ($(strip $(EVS_MAX_BW)),)
+ COM_DEFS += __EVS_MAX_BW_$(strip $(EVS_MAX_BW))__
+ else
+ COM_DEFS += __EVS_MAX_BW_WB__
+ endif
+ ifneq ($(strip $(EVS_SW_BW)),)
+ COM_DEFS += __EVS_SW_BW_$(strip $(EVS_SW_BW))__
+ else
+ COM_DEFS += __EVS_SW_BW_WB__
+ endif
+ ifdef USE_EVS_IO_REPLACE_AWB
+ ifeq ($(strip $(USE_EVS_IO_REPLACE_AWB)),TRUE)
+ COM_DEFS += __USE_EVS_IO_REPLACE_AWB__
+ endif
+ endif
+ endif
+ endif
+
+ ifeq ($(strip $(WFC_SUPPORT)),TRUE)
+ COM_DEFS += __WFC_SUPPORT__
+ ifeq ($(strip $(EVS_SUPPORT)),TRUE)
+ COM_DEFS += __EVS_SUPPORT__
+ ifneq ($(strip $(EVS_MAX_BW)),)
+ COM_DEFS += __EVS_MAX_BW_$(strip $(EVS_MAX_BW))__
+ else
+ COM_DEFS += __EVS_MAX_BW_WB__
+ endif
+ endif
+ endif
+ ifneq ($(strip $(GEMINI)),FALSE)
+ ifeq ($(strip $(MULTIPLE_IMS_SUPPORT)),TRUE)
+ COM_DEFS += __MULTIPLE_IMS_SUPPORT__
+ endif
+ endif
+ ifeq ($(strip $(IMS_OTA_MESSAGE_SUPPORT)),TRUE)
+ COM_DEFS += __IMS_OTA_MESSAGE_SUPPORT__
+ endif
+endif
+
+ifdef MD_TCPIP_SUPPORT
+ ifeq ($(strip $(MD_TCPIP_SUPPORT)), TRUE)
+ COM_DEFS += __MD_TCPIP_SUPPORT__
+ endif
+endif
+
+ifdef SOE_EVP_SUPPORT
+ ifeq ($(strip $(SOE_EVP_SUPPORT)), TRUE)
+ COM_DEFS += __SOE_EVP_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ COM_DEFS += DHL_DEFAULT_FILTER_OFF
+endif
+
+ifeq ($(strip $(CTA_ECC_SUPPORT)),TRUE)
+ COM_DEFS += __CTA_ECC_SUPPORT__
+endif
+
+ifdef LTE_TX_PATH_SWITCH_SUPPORT
+ ifeq ($(strip $(LTE_TX_PATH_SWITCH_SUPPORT)),TRUE)
+ COM_DEFS += __LTE_TX_PATH_SWITCH_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(TCM_ONLY_LOAD)),TRUE)
+ COM_DEFS += __TCM_ONLY_LOAD__
+endif
+
+ifdef TX_POWER_OFFSET_SUPPORT
+ ifeq ($(strip $(TX_POWER_OFFSET_SUPPORT)),TRUE)
+ COM_DEFS += __TX_POWER_OFFSET_SUPPORT__
+ endif
+endif
+
+ifdef DHL_SET_LOG_BUF_SIZ
+ ifneq ($(strip $(DHL_SET_LOG_BUF_SIZ)),NONE)
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ COM_DEFS += FORCE_DHL_RING_BUFFER_SCALE=$(strip $(DHL_SET_LOG_BUF_SIZ))
+ endif
+ endif
+endif
+
+ifdef KAL_DEBUG_LEVEL
+ ifeq ($(strip $(KAL_DEBUG_LEVEL)),RICH_DEBUG_KAL)
+ COM_DEFS += DEBUG_KAL DEBUG_BUF2 DEBUG_BUF3 DEBUG_ITC DEBUG_SWLA DEBUG_TIMER DEBUG_TIMER2
+ endif
+ ifeq ($(strip $(KAL_DEBUG_LEVEL)),NORMAL_DEBUG_KAL)
+ COM_DEFS += DEBUG_KAL DEBUG_BUF2 DEBUG_ITC DEBUG_TIMER
+ endif
+ ifeq ($(strip $(KAL_DEBUG_LEVEL)),SLIM_DEBUG_KAL)
+ COM_DEFS += DEBUG_KAL DEBUG_BUF1
+ endif
+ ifeq ($(strip $(KAL_DEBUG_LEVEL)),RELEASE_KAL)
+ COM_DEFS += RELEASE_KAL
+ endif
+endif
+
+ifdef MCU_PMU_DEFAUT_USER
+ COM_DEFS += MCU_PMU_DEFAUT_USER=$(MCU_PMU_DEFAUT_USER)
+endif
+
+ifdef SIM_SWTICH_CONTROLLER_MT6306
+ ifeq ($(strip $(SIM_SWTICH_CONTROLLER_MT6306)),TRUE)
+ COM_DEFS += __SIM_DRV_SWITCH_MT6306__
+ endif
+endif
+
+ifeq ($(strip $(AMMS_DRDI_SUPPORT)), TRUE)
+ COM_DEFS += __AMMS_DRDI__
+endif
+
+ifdef WCDMA_RFEQ_COEF_SUBBAND_SUPPORT
+ ifeq ($(strip $(WCDMA_RFEQ_COEF_SUBBAND_SUPPORT)),TRUE)
+ COM_DEFS += __WCDMA_RFEQ_COEF_SUBBAND_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(AMMS_POS_SUPPORT)), TRUE)
+ COM_DEFS += __AMMS_POS__
+endif
+
+ifdef IS_MT6177M_CODE_DOMAIN_POWER_IMPROVE
+ ifeq ($(strip $(IS_MT6177M_CODE_DOMAIN_POWER_IMPROVE)),TRUE)
+ COM_DEFS += __IS_MT6177M_CODE_DOMAIN_POWER_IMPROVE__
+ endif
+endif
+
+ifdef 3G_B5_AND_B19_INDICATOR_SUPPORT
+ ifeq ($(strip $(3G_B5_AND_B19_INDICATOR_SUPPORT)),TRUE)
+ COM_DEFS += __3G_B5_AND_B19_INDICATOR_SUPPORT__
+ endif
+endif
+
+ifdef META_SLA_ENHANCEMENT
+ ifeq ($(strip $(META_SLA_ENHANCEMENT)),SLA_BIND_TO_SBC)
+ COM_DEFS += __META_SLA_ENHANCEMENT__
+ COM_DEFS += __META_SLA_BIND_TO_SBC__
+ endif
+ ifeq ($(strip $(META_SLA_ENHANCEMENT)),SLA_BIND_TO_AP_SBC)
+ COM_DEFS += __META_SLA_ENHANCEMENT__
+ COM_DEFS += __META_SLA_BIND_TO_AP_SBC__
+ endif
+ ifeq ($(strip $(META_SLA_ENHANCEMENT)),SLA_ON)
+ COM_DEFS += __META_SLA_ENHANCEMENT__
+ endif
+endif
+
+ifdef AT_SLA_ENHANCEMENT
+ ifeq ($(strip $(AT_SLA_ENHANCEMENT)),TRUE)
+ COM_DEFS += __ENGFACT_MODE__
+ endif
+ ifeq ($(strip $(AT_SLA_ENHANCEMENT)),BIND_TO_AP_SBC_EN)
+ COM_DEFS += __ENGFACT_MODE__
+ COM_DEFS += __AT_SLA_BIND_TO_AP_SBC__
+ endif
+endif
+
+ifdef SIM_DRV_RETRY_3V_WHEN_SIM_RECOVERY
+ ifeq ($(strip $(SIM_DRV_RETRY_3V_WHEN_SIM_RECOVERY)),TRUE)
+ COM_DEFS += __SIM_DRV_RETRY_3V_WHEN_SIM_RECOVERY__
+ endif
+endif
+
+ifdef SIM_GET_CARD_DETECT_STATUS_SUPPORT
+ ifeq ($(strip $(SIM_GET_CARD_DETECT_STATUS_SUPPORT)),TRUE)
+ COM_DEFS += __SIM_GET_CARD_DETECT_STATUS_SUPPORT__
+ endif
+endif
+
+ifdef SIM_NFC_GET_RESPONSE_WHEN_WARNING_SW
+ ifeq ($(strip $(SIM_NFC_GET_RESPONSE_WHEN_WARNING_SW)),TRUE)
+ COM_DEFS += __SIM_NFC_GET_RESPONSE_WHEN_WARNING_SW__
+ endif
+endif
+
+# end of defined by rules
+# *************************************************************************
+# if not BASIC load
+# *************************************************************************
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+
+ COM_DEFS += __PS_L1_DC_ARCH__
+
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __MTK_GL1_GSM__
+ endif
+ ifdef L1_WCDMA
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ COM_DEFS += __UMTS_RAT__ __MTK_3G_MRAT_ARCH__
+ COM_DEFS += MAL1_NOT_PRESENT __MTK_UL1_FDD__
+ endif
+ endif
+ ifdef L1_TDD128
+ ifeq ($(strip $(OP01_2G_ONLY)),FALSE)
+ ifeq ($(strip $(L1_TDD128)),TRUE)
+ COM_DEFS += __UMTS_RAT__ __MTK_3G_MRAT_ARCH__ __TDD_DM_GAP_OPTIMIZATION__
+ COM_DEFS += __AST_TL1_TDD__ __RACH_FACH_TL1_BITOFFSET__
+ endif
+ endif
+ endif
+
+ ifneq ($(filter __FPGA__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __HAPS_FPGA_CLK_ADJUST__
+ endif
+
+endif
+
+# *************************************************************************
+# if not L1S load
+# *************************************************************************
+#
+# *************************************************************************
+# if L1S or BASIC load
+# *************************************************************************
+ifneq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+
+ COM_DEFS += __L1_STANDALONE__ __CS_SERVICE__
+ COM_DEFS += LBS_NOT_PRESENT
+ COM_DEFS += __LAS_TASK_DISABLE__
+ COM_DEFS += L4_NOT_PRESENT MM_NOT_PRESENT CC_NOT_PRESENT CISS_NOT_PRESENT NWSEL_NOT_PRESENT \
+ SMS_NOT_PRESENT SIM_NOT_PRESENT RR_NOT_PRESENT \
+ MMI_NOT_PRESENT SNDCP_NOT_PRESENT SM_NOT_PRESENT REASM_NOT_PRESENT \
+ LLC_NOT_PRESENT DATA_NOT_PRESENT PPP_NOT_PRESENT MED_NOT_PRESENT \
+ WAP_NOT_PRESENT ABM_NOT_PRESENT SOC_NOT_PRESENT TCPIP_NOT_PRESENT \
+ __18V_30V_ME__ MED_V_NOT_PRESENT AT_PROXY_NOT_PRESENT DDM_NOT_PRESENT \
+ SIMMNGR_NOT_PRESENT WO_NOT_PRESENT SSDS_NOT_PRESENT VDM_NOT_PRESENT NAS_NOT_PRESENT
+
+ #For MT6293 EMAC-EL1TX New Arch
+ COM_DEFS += __EL2_EMAC_ONLY__
+
+ # BASIC load
+ ifeq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+ COM_DEFS += L1_NOT_PRESENT NVRAM_NOT_PRESENT
+ COM_DEFS += __MAUI_BASIC__
+ COM_DEFS += __WDT_DISABLE_BY_MD_DBG__
+ ifneq ($(strip $(IC_TEST_TYPE)),IC_BURNIN_TEST)
+ COM_DEFS += MTK_SYSSERV_DEBUG
+ endif
+
+ ifeq ($(strip $(IC_TEST_TYPE)),IC_MODULE_TEST)
+ COM_DEFS += IC_MODULE_TEST
+ COM_DEFS += DEVDRV_TEST
+ endif
+
+ ifeq ($(strip $(IC_TEST_TYPE)),IC_BURNIN_TEST)
+ COM_DEFS += IC_BURNIN_TEST
+ COM_DEFS += DEVDRV_TEST
+ endif
+ endif
+
+ # L1S load
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+
+ COM_DEFS += __IDLE_INTERF_MEAS__ __PKT_EXT_MEAS__
+ COM_DEFS += DUMMY_PROTOCOL __FS_ON__
+
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __MULTI_BOOT__
+ COM_DEFS += __GSM_RAT__
+ endif
+
+ ifeq ($(strip $(NVRAM_SUPPORT)),TRUE)
+ COM_DEFS += __MOD_NVRAM__
+ else
+ COM_DEFS += NVRAM_NOT_PRESENT
+ endif
+
+ ifeq ($(strip $(L1_GPRS)),TRUE)
+ COM_DEFS += __PS_SERVICE__
+ endif
+
+ ifeq ($(strip $(L1_EGPRS)),TRUE)
+
+ COM_DEFS += __EGPRS_MODE__
+
+ ifeq ($(strip $(L1_EPSK_TX)),TRUE)
+ COM_DEFS += __EPSK_TX__
+ endif
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),1)
+ COM_DEFS += L1D_TEST
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),2)
+ COM_DEFS += L1D_TEST
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),3)
+ COM_DEFS += L1D_TEST
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),5)
+ COM_DEFS += L1D_TEST
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),6)
+ COM_DEFS += L1D_TEST
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),7)
+ COM_DEFS += L1D_TEST
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),8)
+ COM_DEFS += L1D_TEST
+ endif
+
+ ifeq ($(strip $(L1D_COSIM)),TRUE)
+ COM_DEFS += L1D_TEST_COSIM
+ endif
+
+ ifeq ($(strip $(ISP_SUPPORT)),TRUE)
+ COM_DEFS += ISP_SUPPORT
+ endif
+
+ ifeq ($(strip $(MCF_SUPPORT)),TRUE)
+ COM_DEFS += __MCF_SUPPORT__
+ endif
+
+ # C2K PS need FLC2 LIB
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ FLC_LIB_INCLUDE_CONDITION = FALSE
+ ifneq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifneq ($(strip $(CSD_SUPPORT)),NONE)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifeq ($(strip $(FLC_LIB_INCLUDE_CONDITION)),TRUE)
+ COM_DEFS += __FLC2__ __FLC_SUPPORT__
+ endif
+ endif
+ endif
+
+ ifdef L1_UMTS
+ ifeq ($(strip $(L1_UMTS)),TRUE)
+ COM_DEFS += RATCM_NOT_PRESENT RATDM_NOT_PRESENT UL2D_NOT_PRESENT UL2_NOT_PRESENT URR_NOT_PRESENT
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COM_DEFS += __UL1_STANDALONE__
+ endif
+ endif
+ endif
+
+ ifneq ($(strip $(L1_UMTS)),TRUE)
+ COM_DEFS += RATDM_NOT_PRESENT RATCM_NOT_PRESENT
+ endif
+
+endif # end of L1S or BASIC load
+
+# *************************************************************************
+# if not L1S or BASIC load
+# *************************************************************************
+ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+
+ COM_DEFS += __MONITOR_PAGE_DURING_TRANSFER__
+ COM_DEFS += __MOD_L4C__ __MOD_RAC__ __MOD_SMU__ __MOD_SMSAL__ \
+ __MOD_PHB__ __MOD_UEM__ \
+ __MOD_NVRAM__ __MOD_SIM__ \
+ __SAT__ __EM_MODE__ __CPHS__ \
+ __18V_30V_ME__ __PHB_COMPARE_NUMBER_9_DIGIT__ \
+ __MOD_L4B__
+
+ COM_DEFS += __L1MISC_SUPPORT__
+ COM_DEFS += __L5_SUPPORT__
+ COM_DEFS += __MD_CRYPTO_SUPPORT__
+
+ #add upcm compile option if upcm module is added
+ COM_DEFS += __UPCM_ENABLE__
+
+ # Non LTE single-mode
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __MULTI_BOOT__ __MOD_CC__ __MOD_CISS__ __MOD_CSM__ __MOD_SMS__ __MOD_NWSEL__ __MOD_MM__
+ else
+ COM_DEFS += MM_NOT_PRESENT ABM_NOT_PRESENT CC_NOT_PRESENT CISS_NOT_PRESENT DATA_NOT_PRESENT LLC_NOT_PRESENT \
+ MED_NOT_PRESENT MED_V_NOT_PRESENT MMI_NOT_PRESENT PPP_NOT_PRESENT RATCM_NOT_PRESENT RATDM_NOT_PRESENT \
+ REASM_NOT_PRESENT RR_NOT_PRESENT SM_NOT_PRESENT SNDCP_NOT_PRESENT SOC_NOT_PRESENT \
+ TCPIP_NOT_PRESENT UL1_NOT_PRESENT UL2D_NOT_PRESENT URR_NOT_PRESENT
+ endif
+
+ COM_DEFS += __MCD__
+
+ ifneq ($(filter NONE MODEM_ONLY,$(SMART_PHONE_CORE)),)
+ COM_DEFS += __FS_ON__
+ endif
+
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __MTK_3G_MRAT_ARCH__
+ endif
+
+ ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __CS_SERVICE__ __PS_SERVICE__ __MOD_TCM__ __MOD_TFTLIB__ __MOD_SMIC__
+ else
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __CS_SERVICE__ __PS_SERVICE__ __MOD_TCM__ __MOD_TFTLIB__ __MOD_SMIC__
+ else
+ ifeq ($(strip $(GERAN_MODE_SUPPORT)),GERAN_EGPRS_MODE)
+ COM_DEFS += __CS_SERVICE__ __PS_SERVICE__ __MOD_TCM__ __MOD_TFTLIB__ __MOD_SMIC__
+ else
+ COM_DEFS += __CS_SERVICE__ SNDCP_NOT_PRESENT SM_NOT_PRESENT REASM_NOT_PRESENT LLC_NOT_PRESENT
+ endif
+ endif
+ endif
+
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COM_DEFS += __GSM_RAT__
+ endif
+
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ FLC_LIB_INCLUDE_CONDITION = FALSE
+ ifneq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifneq ($(strip $(CSD_SUPPORT)),NONE)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifeq ($(strip $(FLC_LIB_INCLUDE_CONDITION)),TRUE)
+ COM_DEFS += __FLC2__ __FLC_SUPPORT__
+ endif
+ endif
+
+ ifdef CMUX_SUPPORT
+ ifeq ($(strip $(CMUX_SUPPORT)),TRUE)
+ COM_DEFS += __CMUX_SUPPORT__
+ endif
+ endif
+
+ ifeq ($(strip $(NDIS_SUPPORT)),UPS)
+ COM_DEFS += __NDIS_SUPPORT__ __UPS_SUPPORT__
+ endif
+
+ COM_DEFS += __STORED_CELL_SELECTION_INFO__
+
+ ifneq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ COM_DEFS += __STORED_CELL_SELECTION_INFO__
+ endif
+
+ ifeq ($(strip $(PLMN_LIST_PREF_SUPPORT)),DEFAULT)
+ COM_DEFS += __PLMN_LIST_PREF_SUPPORT__
+ endif
+
+ ifeq ($(strip $(MCF_SUPPORT)),TRUE)
+ COM_DEFS += __MCF_SUPPORT__
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __MCF_UT_FRAMEWORK_SUPPORT__
+ endif
+ endif
+
+ ifeq ($(strip $(EL2_ARCH_VERSION)), EL2_ARCH_V2)
+ ifneq ($(wildcard protocol/enl2/mac),)
+ COM_DEFS += __EL2_ENABLE__
+ endif
+ endif
+
+ ifeq ($(strip $(R15_DEFLATE_UDC_SUPPORT)), TRUE)
+ COM_DEFS += __SBP_UDC__
+ endif
+
+ COM_DEFS += __PERF_SUPPORT__
+
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __SENSITIVE_DATA_MOSAIC__
+ endif
+
+ COM_DEFS += __SASE_SUPPORT__
+endif #end of not L1S or BASIC
+
+# *************************************************************************
+# define by filtering
+# *************************************************************************
+
+ifneq ($(filter __MONITOR_PAGE_DURING_TRANSFER__ __GEMINI_MONITOR_PAGE_DURING_TRANSFER__,$(COM_DEFS)),)
+ COM_DEFS += __ADAPTIVE_PAGING_PERIOD_IN_UNACK_MODE__ __ENABLE_CALL_PREFER_IN_UNACK_MODE__
+endif
+
+ifneq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ COM_DEFS += KAL_ENH_MUTEX
+else
+ ifneq ($(filter __CS_SERVICE__,$(COM_DEFS)),)
+ ifneq ($(strip $(CSD_SUPPORT)),NONE)
+ COM_DEFS += KAL_ENH_MUTEX
+ endif
+ endif
+endif
+
+ifneq ($(filter $(strip $(PLATFORM)),$(SV5_PLATFORM)),)
+ COM_DEFS += __SV5_ENABLED__
+endif
+
+#previously compiler arch related COM_DEFS are determined by PLATFORM
+#but since PLATFORM = MT6297 has unique COM_DEFS for Shaolin(I7200) and IA,
+#we can't determine it by a single PLATFORM anymore.
+#therefore we use compiler arch & compiler isa(instruction set architecture) instead
+ifeq ($(strip $(COMPILER_ARCH)),ARM)
+ COM_DEFS += __CR4__ __DYNAMIC_SWITCH_CACHEABILITY__ __IS_NAS_ITCM_DTCM__ ARMV6_INST_ENABLE
+else ifeq ($(strip $(COMPILER_ARCH)),MIPS)
+ COM_DEFS += __DYNAMIC_SWITCH_CACHEABILITY__ __IS_NAS_ITCM_DTCM__
+ ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ COM_DEFS += __MIPS_I7200__
+ else
+ COM_DEFS += __MIPS_IA__
+ endif
+endif
+
+ifeq ($(filter $(strip $(PLATFORM)),$(SAIC_NOT_SUPPORT_FLATFORM)),)
+ COM_DEFS += __SAIC__
+endif
+ifeq ($(filter $(strip $(PLATFORM)),$(REPEATED_ACCH_NOT_SUPPORT_FLATFORM)),)
+ COM_DEFS += __REPEATED_ACCH__
+endif
+
+ifeq ($(strip $(R7R8_FULL_SET_SUPPORT)),TRUE)
+ COM_DEFS += __CUSTOMIZE_VAMOS__
+else
+ ifneq ($(strip $(OP01_2G_ONLY)),TRUE)
+ ifeq ($(filter $(strip $(PLATFORM)),$(VAMOS_CAP_DEFAULT_NOT_SUPPORT_FLATFORM)),)
+ COM_DEFS += __CUSTOMIZE_VAMOS__
+ endif
+ endif
+endif
+
+ifneq ($(filter __L4_MAX_NAME_60__,$(COM_DEFS)),)
+ MCD_DEFS += __L4_MAX_NAME_60__
+endif
+
+ifneq ($(filter __MTK_INTERNAL__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __CATCHER_EVENT_INFO__
+endif
+
+ifneq ($(filter __UMTS_RAT__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __R6_OOS__
+endif
+
+ifneq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ COM_DEFS += __NEW_TBF_ARCH__
+ COM_DEFS += __REMOVE_FA__
+endif
+
+ifneq ($(filter __L1_STANDALONE__,$(COM_DEFS)),)
+ COM_DEFS += DRV_LCD_NOT_EXIST
+endif
+
+ifneq ($(filter %_EVB,$(BOARD_VER)),)
+ COM_DEFS += __EVB__
+else
+ COM_DEFS += __PHONE__
+endif
+
+
+ifneq ($(filter __UMTS_RAT__,$(strip $(COM_DEFS))),)
+ ifeq ($(strip $(FAST_DORMANCY_SUPPORT)),TRUE)
+ COM_DEFS += __FAST_DORMANCY__
+ COM_DEFS += __DIALUP_GPRS_COUNTER_SUPPORT__
+ endif
+ ifeq ($(strip $(FAST_DORMANCY_SUPPORT)),FALSE)
+ COM_DEFS += __NO_PSDATA_SEND_SCRI__
+ COM_DEFS += __DIALUP_GPRS_COUNTER_SUPPORT__
+ endif
+endif
+
+2G_TX_POWER_CONTROL_SUPPORT_PLATFORM = MT6575 MT6577 MT6280 MT6589 MT6572 MT6582 MT6290 MT6595 MT6755 MT6797 $(strip $(SUPPORT_PLATFORM))
+ifneq ($(filter $(2G_TX_POWER_CONTROL_SUPPORT_PLATFORM), $(strip $(PLATFORM))),)
+ COM_DEFS += __2G_TX_POWER_CONTROL_SUPPORT__
+endif
+
+HSDSCH_HARQ_OFF_NOT_SUPPORT_PLATFORM = MT6280 MT6589 MT6572 MT6582
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ ifeq ($(filter $(HSDSCH_HARQ_OFF_NOT_SUPPORT_PLATFORM), $(strip $(PLATFORM))),)
+ COM_DEFS += __HSDSCH_HARQ_OFF__
+ endif
+endif
+
+ifeq ($(filter __UMTS_R6__,$(strip $(COM_DEFS))),)
+ ifneq ($(filter __R6_DSAC__,$(strip $(COM_DEFS))),)
+ $(error __R6_DSAC__ can only be turned on when __UMTS_R6__ defined)
+ endif
+endif
+
+ifneq ($(filter __UMTS_R6__,$(strip $(COM_DEFS))),)
+ ifeq ($(filter __R6_DSAC__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __R6_DSAC__
+ endif
+endif
+
+ifneq ($(filter __REL7__,$(strip $(COM_DEFS))),)
+ ifeq ($(filter __R7_EHPLMN__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __R7_EHPLMN__
+ endif
+ ifeq ($(filter __PLMN_LIST_WITH_LAC__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __PLMN_LIST_WITH_LAC__
+ endif
+endif
+
+ifneq ($(filter __REL8__,$(strip $(COM_DEFS))),)
+ ifeq ($(filter __ETWS_SUPPORT__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __ETWS_SUPPORT__ __EXT_SEG_CTRL_BLK__
+ endif
+endif
+
+ifdef MMA_MAX_NUM
+ ifneq ($(filter $(strip $(MMA_MAX_NUM)),$(strip $(MMA_MAX_NUM_VALUE))),)
+ COM_DEFS += MMA_MAX_NUM=$(strip $(MMA_MAX_NUM))
+ endif
+else
+ COM_DEFS += MMA_MAX_NUM=12
+endif
+
+ifeq ($(filter __EM_MODE__,$(COM_DEFS)),)
+ COM_DEFS := $(filter-out __SLIM_MODEM_EM_MODE__ __MODEM_EM_MODE__,$(COM_DEFS))
+endif
+
+ifneq ($(filter __UCM_SUPPORT__,$(COM_DEFS)),)
+ COM_DEFS += __FORCE_RELEASE__
+endif
+
+ifneq ($(filter __R7_EHPLMN__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __SEARCH_ALL_EHPLMN_TOGETHER__
+endif
+
+NVRAM_REDUCTION_NOT_SUPPORT_PLATFORM = MT6236
+ifeq ($(filter $(strip $(PLATFORM)) ,$(NVRAM_REDUCTION_NOT_SUPPORT_PLATFORM)),)
+ COM_DEFS += __CAMERA_NVRAM_REDUCTION_ISP_SUPPORT__
+ COM_DEFS += __CAMERA_NVRAM_REDUCTION__
+endif
+
+ifneq ($(filter __UMTS_RAT__,$(strip $(COM_DEFS))),)
+ COM_DEFS += __SMART_PAGING_3G_FDD__
+ ifeq ($(strip $(PLATFORM)),MT6280)
+ COM_DEFS += __SMART_PAGING_3G_FDD_OFF__
+ endif
+endif
+
+ifdef 32K_XOSC_REMOVE
+ ifeq ($(strip $(32K_XOSC_REMOVE)), TRUE)
+ COM_DEFS += __F32_XOSC_REMOVAL_SUPPORT__
+ ifneq ($(filter $(QUERY_32K_CRYSTAL_FROM_MD_PLATFORM), $(strip $(PLATFORM))),)
+ COM_DEFS += __QUERY_32K_CRYSTAL_FROM_MD__
+ else
+ ifneq ($(filter $(QUERY_32K_CRYSTAL_FROM_AP_PLATFORM), $(strip $(PLATFORM))),)
+ COM_DEFS += __QUERY_32K_CRYSTAL_FROM_AP__
+ endif
+ endif
+ endif
+endif
+
+# Non LTE single-mode
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ ifneq ($(filter __REL7__,$(strip $(COM_DEFS))),)
+ ifneq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ COM_DEFS += __MEDIATEK_SMART_QOS__
+ endif
+ endif
+endif
+
+EDCH_HRT_IMPROVE_NOT_SUPPORT_PLATFORM = MT6280 MT6589
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ ifeq ($(filter $(EDCH_HRT_IMPROVE_NOT_SUPPORT_PLATFORM), $(strip $(PLATFORM))),)
+ COM_DEFS += __EDCH_HRT_IMPROVE__
+ endif
+endif
+
+
+2G_TX_GAIN_RF_CALIBRATION = MT6165_2G_RF
+ifneq ($(filter $(2G_TX_GAIN_RF_CALIBRATION),$(COM_DEFS_FOR_$(strip $(RF_MODULE)))),)
+ COM_DEFS += __2G_TX_GAIN_RF_CALIBRATION__
+endif
+
+ifneq ($(filter __23G_PRI_RESEL_SUPPORT__,$(COM_DEFS)),)
+ COM_DEFS += __PRI_RESEL_SUPPORT__
+endif
+
+MULTI_RAT_AFC_TADC_SHARE_PLATFORM = MT6290 MT6595 MT6755 MT6797 $(strip $(SUPPORT_PLATFORM))
+ifneq ($(filter $(MULTI_RAT_AFC_TADC_SHARE_PLATFORM), $(strip $(PLATFORM))),)
+ COM_DEFS += __MULTI_RAT_AFC_TADC_SHARE_SUPPORT__
+endif
+
+# L1 DISABLE Options
+ifneq ($(filter TK6291_FPGA ELBRUS_FPGA,$(strip $(ORIGINAL_PROJECT_NAME))),)
+ COM_DEFS += __L1_ISR_DISABLE__
+ COM_DEFS += __L1_TASK_DISABLE__
+ COM_DEFS += __L1_PCORE_TASK_DISABLE__
+ #COM_DEFS += __DUMMYMPAL_TASK_DISABLE__
+endif
+
+ifneq ($(filter MT6763_FPGA,$(strip $(ORIGINAL_PROJECT_NAME))),)
+ COM_DEFS += __L1_ISR_DISABLE__
+ COM_DEFS += __L1_TASK_DISABLE__
+ COM_DEFS += __L1_PCORE_TASK_DISABLE__
+ COM_DEFS += __L1_2_TASK_DISABLE__
+ #COM_DEFS += __DUMMYMPAL_TASK_DISABLE__
+endif
+
+ifneq ($(filter MT6295M_FPGA,$(strip $(ORIGINAL_PROJECT_NAME))),)
+ COM_DEFS += __L1_ISR_DISABLE__
+ COM_DEFS += __L1_TASK_DISABLE__
+ COM_DEFS += __L1_PCORE_TASK_DISABLE__
+ COM_DEFS += __L1_2_TASK_DISABLE__
+ #COM_DEFS += __DUMMYMPAL_TASK_DISABLE__
+ COM_DEFS += __NO_MD2G_HW_PLATFORM__
+endif
+
+ifneq ($(findstring FPGA,$(ORIGINAL_PROJECT_NAME)),)
+ ifneq ($(findstring EL1S,$(ORIGINAL_FLAVOR)),)
+ COM_DEFS += __L1_ISR_DISABLE__
+ COM_DEFS += __L1_TASK_DISABLE__
+ COM_DEFS += __L1_PCORE_TASK_DISABLE__
+ #COM_DEFS += __DUMMYMPAL_TASK_DISABLE__
+ COM_DEFS += __UL1_TASK_DISABLE__
+ COM_DEFS += __EL1D_ENABLE__
+ endif
+endif
+
+ifneq ($(findstring L1DISABLE,$(ORIGINAL_FLAVOR)),)
+ COM_DEFS += __L1_ISR_DISABLE__
+ COM_DEFS += __L1_TASK_DISABLE__
+ COM_DEFS += __L1_PCORE_TASK_DISABLE__
+ #COM_DEFS += __DUMMYMPAL_TASK_DISABLE__
+ COM_DEFS += __UL1_TASK_DISABLE__
+ COM_DEFS += __EL1_TASK_DISABLE__
+ COM_DEFS += __MMRF_TASK_DISABLE__
+ COM_DEFS += __TL1_TASK_DISABLE__
+ COM_DEFS += __TL1DATA_TASK_DISABLE__
+ COM_DEFS += __AUDIO_TASK_DISABLE__
+ COM_DEFS += __NL1_TASK_DISABLE__
+ COM_DEFS += __MMRF_XL1TST_TASK_DISABLE__
+endif
+
+ifneq ($(findstring L1S_TL1,$(ORIGINAL_FLAVOR)),)
+ COM_DEFS += __L1_ISR_DISABLE__
+ COM_DEFS += __L1_TASK_DISABLE__
+ COM_DEFS += __L1_PCORE_TASK_DISABLE__
+ #COM_DEFS += __DUMMYMPAL_TASK_DISABLE__
+ COM_DEFS += __UL1_TASK_DISABLE__
+ COM_DEFS += __EL1_TASK_DISABLE__
+ #COM_DEFS += __MMRF_TASK_DISABLE__
+ #COM_DEFS += __TL1_TASK_DISABLE__
+ #COM_DEFS += __TL1DATA_TASK_DISABLE__
+
+ COM_DEFS += __GL1TST_TASK_DISABLE__
+ COM_DEFS += __UL1TST_TASK_DISABLE__
+ COM_DEFS += __EL1TST_TASK_DISABLE__
+ COM_DEFS += __ETSTM_TASK_DISABLE__
+ COM_DEFS += __MMRF_XL1TST_TASK_DISABLE__
+endif
+
+# Inherit from L1S_L1DISABLE Flavor
+ifneq ($(findstring CL1S,$(ORIGINAL_FLAVOR)),)
+ COM_DEFS += __L1_ISR_DISABLE__
+ COM_DEFS += __L1_TASK_DISABLE__
+ COM_DEFS += __L1_PCORE_TASK_DISABLE__
+ COM_DEFS += __UL1_TASK_DISABLE__
+ COM_DEFS += __EL1_TASK_DISABLE__
+ COM_DEFS += __TL1_TASK_DISABLE__
+ COM_DEFS += __TL1DATA_TASK_DISABLE__
+ COM_DEFS += __AUDIO_TASK_DISABLE__
+endif
+
+ifneq ($(filter NL1S NL1_EMULATION NL1S_TX_IN_SLM NL1S_MT6190,$(ORIGINAL_FLAVOR)),)
+ COM_DEFS += __L1_ISR_DISABLE__
+ COM_DEFS += __L1_TASK_DISABLE__
+ COM_DEFS += __L1_PCORE_TASK_DISABLE__
+ COM_DEFS += __UL1_TASK_DISABLE__
+ COM_DEFS += __EL1_TASK_DISABLE__
+ #COM_DEFS += __MMRF_TASK_DISABLE__
+ COM_DEFS += __TL1_TASK_DISABLE__
+ COM_DEFS += __TL1DATA_TASK_DISABLE__
+ COM_DEFS += __AUDIO_TASK_DISABLE__
+ #COM_DEFS += __NL1_TASK_DISABLE__
+ COM_DEFS += __NL1S_ENABLE_NRRC__
+endif
+
+ifeq ($(strip $(UL1_SUPPORT)),TRUE)
+ ifdef L1_WCDMA
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ ifneq ($(filter $(strip $(PLATFORM)),$(UL1_HS_PLUS_PLATFORM)),)
+ ifeq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ COM_DEFS += __U4G_ADAPTOR__
+ endif
+ COM_DEFS += __UL1_HS_PLUS_PLATFORM__
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(FPGA_L1_ROUTER_SUPPORT)),TRUE)
+ COM_DEFS += __FPGA_L1_ROUTER__ __UESIM_KS_FPGA_SIDE__ __DUMMY_L1_ON_TARGET_4G5G__
+endif
+
+ifeq ($(strip $(N5G_ADAPTOR_SUPPORT)),TRUE)
+ COM_DEFS += __N5G_ADAPTOR__ __NL1_TX_C_FILE__ __NL1_C_FILE__ __NL1_RX_C_FILE__
+endif
+
+PPP_MODULE_BUILD=FALSE
+ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ PPP_MODULE_BUILD=TRUE
+ else
+ ifeq ($(strip $(GERAN_MODE_SUPPORT)),GERAN_EGPRS_MODE)
+ PPP_MODULE_BUILD=TRUE
+ endif
+ endif
+endif
+
+ifeq ($(strip $(PPP_MODULE_BUILD)),TRUE)
+ ifndef PPP_SUPPORT
+ ifeq ($(strip $(EUTRAN_MODE_SUPPORT)), EUTRAN_MODE)
+ COM_DEFS += PPP_NOT_PRESENT
+ endif
+ else
+ ifneq ($(strip $(PPP_SUPPORT)),NONE)
+ ifeq ($(strip $(EUTRAN_MODE_SUPPORT)), EUTRAN_MODE)
+ COM_DEFS += PPP_NOT_PRESENT
+ endif
+ endif
+ endif
+endif
+
+
+ifeq ($(strip $(SMART_PHONE_CORE)),MODEM_HOST)
+ COM_DEFS += __MODEM_CCCI_EXIST__
+endif
+
+ifeq ($(strip $(SMART_PHONE_CORE)),MODEM_ONLY)
+ COM_DEFS += __MODEM_ONLY__
+ COM_DEFS += __WDT_DISABLE_BY_MD_DBG__
+endif
+
+ifeq ($(strip $(SMART_PHONE_CORE)),NONE)
+ ifeq ($(strip $(MODEM_CARD)),FULL)
+ COM_DEFS += __TRADITIONAL_MODEM_CARD__
+ endif
+endif
+
+ifdef LTE_GTT_SUPPORT
+ ifeq ($(strip $(LTE_GTT_SUPPORT)),TRUE)
+ COM_DEFS += __LTE_GTT_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(HIF_CCCI_SUPPORT)),TRUE)
+ COM_DEFS += __MODEM_CCCI_EXIST__
+endif
+
+##merge from smart_phone_option.mak
+ifeq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
+# global compile option: __SMART_PHONE_MODEM__
+ COM_DEFS += __SMART_PHONE_MODEM__
+ COM_DEFS += __SP_BOOTTRC_ENABLE__
+ COM_DEFS += __MODEM_CCCI_EXIST__
+ COM_DEFS += __ANDROID_MODEM__
+ COM_DEFS += __ANDROID_RIL_SUPPORT__ __SP_RIL_SUPPORT__ __CUSD_UNICODE_INPUT_SUPPORT__ __CSMSS_EXPLICIT_SS_OPERATION__ __AUTO_CALL_REJECTION__
+ COM_DEFS += __DISABLE_MODEM_AUTO_POWER_OFF__
+ COM_DEFS += __DISABLE_MODEM_AUTO_STARTUP__
+ COM_DEFS += __EIGHT_PORT_MODULE__
+ COM_DEFS += __VTS_LATE_RESPONSE__
+ COM_DEFS += __ATD_EXPLICIT_ECC__
+ COM_DEFS += __CMUX_REDIRECT_DATA_CHANNEL__
+ COM_DEFS += __RUN_AT_COMMAND_BY_AP__
+ COM_DEFS += __CPI_SUPPORT__
+ COM_DEFS += __LONG_MULTIPLE_CMD_SUPPORT__
+ COM_DEFS += __CGSMS_FULL_SUPPORT__
+ COM_DEFS += __CPBW_SUPPORT_ENCODING_FIELD__
+ COM_DEFS += __CSSU_EXTEND__
+ COM_DEFS += __DHL_SP_LOGGING_SUPPORT__
+ COM_DEFS += __LTE_ATTACH_PDN_ESM_BLOCK_INVALID_APN__
+ COM_DEFS += __2STAGE_NW_SELECTION__
+ COM_DEFS += __REPORT_AVAILABLE_PLMN__
+ COM_DEFS += __L5_CALL_SUPPORT__
+
+ ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ COM_DEFS += __SINGLE_AP_DUAL_MODEM__
+ endif
+ endif
+
+ ifeq ($(strip $(DEMO_PROJECT)),TRUE)
+ COM_DEFS += __SIM_UNIT_TEST__
+ endif
+
+ ifdef MTK_BT_CHIP
+ ifneq ($(filter $(strip $(MTK_BT_CHIP)),$(BLUETOOTH_SCO_SW_CODEC_BT_CHIP)),)
+ COM_DEFS += __BT_SCO_CODEC_SUPPORT__
+ COM_DEFS += __CVSD_CODEC_SUPPORT__
+ endif
+ else
+ #Add in case of MTK_BT_CHIP missing definition
+ ifneq ($(filter $(strip $(PLATFORM)),$(BLUETOOTH_SCO_SW_CODEC_PLATFORM)),)
+ COM_DEFS += __BT_SCO_CODEC_SUPPORT__
+ COM_DEFS += __CVSD_CODEC_SUPPORT__
+ endif
+ endif
+
+ ifeq ($(strip $(VOLTE_SUPPORT)),TRUE)
+ COM_DEFS += __MCU_DTMF_SUPPORT__
+ COM_DEFS += __G_CODEC_SUPPORT__
+ endif
+endif
+##merge from smart_phone_option.mak
+
+##for AGPS feature, Disable OTDOA capability report
+ifneq ($(filter __GEN93_MP1__,$(COM_DEFS)),)
+ # MP1 enable option list
+endif
+
+ifdef KAL_HW_ITC_CUSTOM_LOG_SUPPORT
+ ifeq ($(strip $(KAL_HW_ITC_CUSTOM_LOG_SUPPORT)),TRUE)
+ COM_DEFS += __KAL_HW_ITC_SLA_LOG__
+ endif
+endif
+
+ifdef TASK_BATCH_SCHEDULING
+ ifeq ($(strip $(TASK_BATCH_SCHEDULING)),TRUE)
+ COM_DEFS += __LP_SCHEDULE_ENABLE__
+ COM_DEFS += __LP_SCHEDULE_EL12_RESCHEDULE__
+ COM_DEFS += __LP_SCHEDULE_HMU_RESCHEDULE__
+ endif
+endif
+
+ifdef LWA_SUPPORT
+ ifeq ($(strip $(LWA_SUPPORT)),TRUE)
+ COM_DEFS += __LWA_SUPPORT__
+ endif
+endif
+
+ifdef IDC_PTA_VERSION
+ ifeq ($(strip $(IDC_PTA_VERSION)),IDC_PTA_DEFAULT)
+ COM_DEFS += __IDC_PTA_DEFAULT__
+ else
+ ifeq ($(strip $(IDC_PTA_VERSION)),IDC_PTA_3.0)
+ COM_DEFS += __IDC_PTA_3_0__
+ else
+ ifeq ($(strip $(IDC_PTA_VERSION)),IDC_PTA_5.0)
+ COM_DEFS += __IDC_PTA_5_0__
+ endif
+ endif
+ endif
+endif
+
+ifdef SECURITY_FEATURE_TEST
+ ifeq ($(strip $(SECURITY_FEATURE_TEST)),TRUE)
+ COM_DEFS += __NVRAM_CRYPT_TEST__
+ COM_DEFS += __NVRAM_SML_ACCESSIBLE__
+ COM_DEFS += __SEC_TEST__
+ COM_DEFS += __NVRAM_CRITICAL_DATA_SIGN_SUPPORT__
+ COM_DEFS += DBG_FIXED_CPUID_AND_PRODUCT
+ COM_DEFS += TEST_TASK_ENABLE
+ COM_DEFS += TEST_SECTEST_TASK
+ COM_DEFS += __SEC_DRV_TEST__
+endif
+endif
+
+ifeq ($(strip $(UMTS_TDD_SUPPORT)),NONE)
+ COM_DEFS += __MODEM_PACKAGE_DISABLE_UMTS_TDD__
+endif
+
+ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ ifeq ($(strip $(C2K_MODE_SUPPORT)),C2K_SRLTE)
+ COM_DEFS += __SRLTE_ENHANCE__
+ endif
+ endif
+endif
+
+ifdef NVRAM_OTA_SMART_RESET
+ ifeq ($(strip $(NVRAM_OTA_SMART_RESET)), TRUE)
+ COM_DEFS += __NVRAM_STRUCTURE_CHANGE_RESET__
+ COM_DEFS += __NVRAM_DEFVAL_CHANGE_RESET__
+ endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6295)
+ ifeq ($(strip $(MD95_IS_2CORES)),TRUE)
+ COM_DEFS += __MD95_IS_2CORES__
+ endif
+endif
+
+ifdef DYNAMIC_ANTENNA_TUNING
+ ifeq ($(strip $(DYNAMIC_ANTENNA_TUNING)),TRUE)
+ COM_DEFS += __DYNAMIC_ANTENNA_TUNING__
+ endif
+endif
+
+ifeq ($(filter REL_CR_%,$(strip $(RELEASE_PACKAGE))),)
+ COM_DEFS += __MTK_INTERNAL_ENG_USER__
+endif
+
+ifdef MT6177M_RFCCA_SUPPORT
+ ifeq ($(strip $(MT6177M_RFCCA_SUPPORT)),TRUE)
+ COM_DEFS += __MT6177M_RFCCA_SUPPORT__
+ endif
+endif
+
+ifdef IWLAN_FUNCTION_DISABLE
+ ifeq ($(strip $(IWLAN_FUNCTION_DISABLE)),TRUE)
+ COM_DEFS += __IWLAN_FUNCTION_DISABLE__
+ endif
+endif
+
+ifeq ($(strip $(MT_FRAMEWORK_ENABLE)),TRUE)
+ COM_DEFS += __MT_FRAMEWORK_SUPPORT__
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifdef MCIF_SUPPORT #MD Consys Interface
+ ifeq ($(strip $(MCIF_SUPPORT)), TRUE)
+ #
+ # MCIF common compiler option
+ #
+ COM_DEFS += __MCIF_SUPPORT__
+
+ #WiFi
+ ifdef MCIF_WIFI_SUPPORT
+ ifeq ($(strip $(MCIF_WIFI_SUPPORT)), TRUE)
+ #
+ # MCIF_WIFI common compiler option
+ #
+ COM_DEFS += __MCIF_WIFI_SUPPORT__
+ COM_DEFS += __MCIF_PDMA_SUPPORT__
+ COM_DEFS += __ETHERNET_SERVICE_SUPPORT__
+ endif
+ endif # MCIF_WIFI_SUPPORT
+
+ #
+ # Low layer compoment
+ #
+
+ # Consys Interface Share Memory Management
+ ifdef MCIF_SHM_SUPPORT
+ ifeq ($(strip $(MCIF_SHM_SUPPORT)), TRUE)
+ ifeq ($(strip $(HIF_CCCI_SUPPORT)),TRUE)
+ #
+ # MCIF_SHM common compiler option
+ #
+ COM_DEFS += __MCIF_SHM_SUPPORT__
+ endif # HIF_CCCI_SUPPORT
+ endif # MCIF_SHM_SUPPORT
+ endif # MCIF_SHM_SUPPORT
+
+ # EINT
+ ifdef MCIF_EINT_SUPPORT
+ ifeq ($(strip $(MCIF_EINT_SUPPORT)), TRUE)
+ #
+ # MCIF_EINT common compiler option
+ #
+ COM_DEFS += __MCIF_EINT_SUPPORT__
+ endif
+ endif # MCIF_EINT_SUPPORT
+
+ # PCCIF
+ ifdef MCIF_PCCIF_SUPPORT
+ ifeq ($(strip $(MCIF_PCCIF_SUPPORT)), TRUE)
+ #
+ # MCIF_PCCIF common compiler option
+ #
+ COM_DEFS += __MCIF_PCCIF_SUPPORT__
+ endif
+ endif # MCIF_PCCIF_SUPPORT
+
+ # PDMA (Packet DMA)
+ ifdef MCIF_PDMA_SUPPORT
+ ifeq ($(strip $(MCIF_PDMA_SUPPORT)), TRUE)
+ #
+ # MCIF_PDMA common compiler option
+ #
+ COM_DEFS += __MCIF_PDMA_SUPPORT__
+ endif
+ endif # MCIF_PDMA_SUPPORT
+
+ endif #MCIF_SUPPORT = TRUE
+ endif
+endif #MODIS_CONFIG != TRUE
+
+ifdef NV_CHKSUM_ENHANCE
+ ifeq ($(strip $(NV_CHKSUM_ENHANCE)), TRUE)
+ COM_DEFS += __NV_CHKSUM_ENHANCE__
+ endif
+endif
+
+ifdef NVRAM_LID_HASH_CHECK
+ ifeq ($(strip $(NVRAM_LID_HASH_CHECK)), TRUE)
+ COM_DEFS += __NVRAM_LID_HASH_CHECK__
+ endif
+endif
+
+ifdef NVRAM_LID_CACHE
+ ifeq ($(strip $(NVRAM_LID_CACHE)), TRUE)
+ COM_DEFS += __NVRAM_LID_CACHE__
+ COM_DEFS += __NVRAM_LID_PREREAD__
+ COM_DEFS += __NVRAM_CACHE_BYPASS_W_LIST__
+ ifeq ($(strip $(NVRAM_PARTIAL_CACHE)), TRUE)
+ COM_DEFS += __NVRAM_PARTIAL_CACHE__
+ endif
+ endif
+endif
+
+ifdef NVRAM_AUTOGEN_V2
+ ifeq ($(strip $(NVRAM_AUTOGEN_V2)), TRUE)
+ COM_DEFS += __NVRAM_AUTOGEN_V2__
+ endif
+endif
+
+# ENLARGE BAT OPTION
+ifdef ENLARGE_BAT_OPTION
+ COM_DEFS += _ENLARGE_BAT_OPTION_=$(strip $(ENLARGE_BAT_OPTION))
+endif
+
+# $(info RFUT_BUILD_ENABLED="$(RFUT_BUILD_ENABLED)")
+ifdef RFUT_BUILD_ENABLED
+ ifeq ($(strip $(RFUT_BUILD_ENABLED)),TRUE)
+ COM_DEFS += RFUT_SCRIPT_TEST_ENABLED
+ endif
+endif
+
+ifeq ($(strip $(GLOBAL_TRACE_DEBUG_LEVEL)),0)
+ COM_DEFS += _GLOBAL_TRACE_DEBUG_LEVEL_=0
+endif
+ifeq ($(strip $(GLOBAL_TRACE_DEBUG_LEVEL)),1)
+ COM_DEFS += _GLOBAL_TRACE_DEBUG_LEVEL_=1
+endif
+ifeq ($(strip $(GLOBAL_TRACE_DEBUG_LEVEL)),2)
+ COM_DEFS += _GLOBAL_TRACE_DEBUG_LEVEL_=2
+endif
+ifeq ($(strip $(GLOBAL_TRACE_DEBUG_LEVEL)),3)
+ COM_DEFS += _GLOBAL_TRACE_DEBUG_LEVEL_=3
+endif
+ifeq ($(strip $(GLOBAL_TRACE_DEBUG_LEVEL)),4)
+ COM_DEFS += _GLOBAL_TRACE_DEBUG_LEVEL_=4
+endif
+ifeq ($(strip $(GLOBAL_TRACE_DEBUG_LEVEL)),5)
+ COM_DEFS += _GLOBAL_TRACE_DEBUG_LEVEL_=5
+endif
+
+ifdef OS_TICK_PERIOD_IN_US
+ COM_DEFS += OS_TICK_PERIOD_US=$(strip $(OS_TICK_PERIOD_IN_US))
+endif
+
+ifeq ($(strip $(HIF_USB_SUPPORT)),TRUE)
+ COM_DEFS += __CREATE_USB_HISR__
+endif
+
+ifeq ($(strip $(HIF_SDIO_SUPPORT)),TRUE)
+ COM_DEFS += __CREATE_SDIO_HISR__
+endif
+
+ifeq ($(strip $(SYS_TEST_EMSC_ENABLE)),TRUE)
+ COM_DEFS += SYS_TEST_EMSC_ENABLE
+endif
+
+ifdef SUBMARINE_SUPPORT
+ ifeq ($(strip $(SUBMARINE_SUPPORT)),TRUE)
+ ifdef MD_TCPIP_SUPPORT
+ ifeq ($(strip $(MD_TCPIP_SUPPORT)),TRUE)
+ ifeq ($(strip $(IMS_SUPPORT)),TRUE)
+ COM_DEFS += __SUBMARINE_SUPPORT__
+ COM_DEFS += __MD_IPSEC_SUPPORT__
+ COM_DEFS += __MD_CRYPTO_SUPPORT__
+ COM_DEFS += __IMSM_TASK_ENABLE__
+ COM_DEFS += __DISPATCHER_SUPPORT__
+ COM_DEFS += __MD_CERT_SUPPORT__
+ COM_DEFS += __MD_WLC_SUPPORT__
+ ifeq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ COM_DEFS += __UESIM_WIFI_ADAPTOR__
+ endif
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifdef 2G_FDD_FLIGHT_MODE_RETAIN_STORED_SI
+ ifeq ($(strip $(2G_FDD_FLIGHT_MODE_RETAIN_STORED_SI)),TRUE)
+ COM_DEFS += __2G_FDD_FLIGHT_MODE_RETAIN_STORED_SI__
+ endif
+endif
+
+ifdef 2G_FDD_USE_STORED_SI
+ ifeq ($(strip $(2G_FDD_USE_STORED_SI)),TRUE)
+ COM_DEFS += __2G_FDD_USE_STORED_SI__
+ endif
+endif
+
+ifdef MTK_CSFB_APPROVE_SUPPORT
+ ifeq ($(strip $(MTK_CSFB_APPROVE_SUPPORT)),TRUE)
+ COM_DEFS += __MT_CSFB_APPROVE_SUPPORT__
+ endif
+endif
+
+ifdef FR1_PLUS_FR2
+ ifeq ($(strip $(FR1_PLUS_FR2)),FR1_PLUS_FR2)
+ COM_DEFS += __IS_NR_FR2_SUPPORT__
+ COM_DEFS += __IS_NR_FR1_SUPPORT__
+ endif
+ ifeq ($(strip $(FR1_PLUS_FR2)),FR1_ONLY)
+ COM_DEFS += __IS_NR_FR1_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(DMF_SUPPORT)),TRUE)
+ COM_DEFS += __DMF_SUPPORT__
+ COM_DEFS += __DMF_OP01_NW_KPI__
+endif
+
+ifdef FIVEG_MODE_SUPPORT
+ ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+ ifeq ($(strip $(IMS_SUPPORT)), TRUE)
+ COM_DEFS += __FIVEG_VOICE__
+ endif
+ COM_DEFS += __EPSFB_SUPPORT__
+ endif
+endif
+
+ifdef MTK_GWSD_MT_SUPPORT
+ ifeq ($(strip $(MTK_GWSD_MT_SUPPORT)),TRUE)
+ COM_DEFS += __MT_CSFB_APPROVE_SUPPORT__
+ ifdef GEMINI_L
+ ifneq ($(strip $(GEMINI_L)),FALSE)
+ COM_DEFS += __VOLTE_SI_ENH__
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(MCF_SUPPORT)),TRUE)
+ COM_DEFS += __MCF_COMBINE_FILE_SUPPORT__
+endif
+
+#LTE LAA define, enable for MT6297 and later
+ifdef MTK_MODEM_ARCH
+ ifeq ($(filter MT6293 MT6295,$(MTK_MODEM_ARCH)),)
+ COM_DEFS += __MP_LTE_DOWNLINK_LAA_R13__
+ endif
+endif
+
+ifdef NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT
+ ifeq ($(strip $(NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT)),TRUE)
+ COM_DEFS += __NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT__
+ endif
+ endif
+
+# for NLWCTG_C2K_STANDBY flavor
+ifeq ($(strip $(ORIGINAL_FLAVOR)),NLWCTG_C2K_STANDBY)
+ COM_DEFS += MTK_DEV_93M_LL1A_BYPASS_ENABLE
+ COM_DEFS += C2K_LL1_STUB_TARGET_SUPPORT
+ UIM_DISABLE = TRUE
+endif
+ifeq ($(strip $(ORIGINAL_FLAVOR)),NLWCTG_MP2_CN_C2K_STANDBY)
+ COM_DEFS += MTK_DEV_93M_LL1A_BYPASS_ENABLE
+ COM_DEFS += C2K_LL1_STUB_TARGET_SUPPORT
+ UIM_DISABLE = TRUE
+endif
+
+ifeq ($(strip $(ET_SMART_CHAR_SUPPORT)), TRUE)
+ COM_DEFS += __ET_SMART_CHAR_SUPPORT__
+endif
+
+ifeq ($(strip $(VPA_ACOUSTIC_REMOVE)), TRUE)
+ COM_DEFS += __IS_VPA_ACOUSTIC_REMOVE__
+endif
+
+ifeq ($(strip $(DHL_RAM_LOGGING_SUPPORT)),TRUE)
+ COM_DEFS += __DHL_RAM_LOGGING_SUPPORT__
+endif
+
+ifdef DHL_DISABLE_DATA_OUTPUT
+ ifeq ($(strip $(DHL_DISABLE_DATA_OUTPUT)),TRUE)
+ COM_DEFS += __DHL_DISABLE_DATA_OUTPUT__
+ endif
+endif
+
+ifdef DHL_BOOT_UP_TRACE_SUPPORT
+ ifeq ($(strip $(DHL_BOOT_UP_TRACE_SUPPORT)),TRUE)
+ COM_DEFS += __DHL_BOOT_UP_TRACE_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(AES256_SUPPORT)), TRUE)
+ COM_DEFS += __AES256_SUPPORT__
+endif
+
+ifeq ($(strip $(MAIF_SUPPORT)),TRUE)
+ COM_DEFS += __MAIF_SUPPORT__
+ COM_DEFS += __MAIF_MODULE__
+endif
+
+ifdef N3GPP_OFFLOAD_OVER_DATA
+ ifeq ($(strip $(N3GPP_OFFLOAD_OVER_DATA)), TRUE)
+ COM_DEFS += __N3GPP_OVER_DATA__
+ endif
+endif
+
+ifdef WIFIPROXY_SUPPORT
+ ifeq ($(strip $(WIFIPROXY_SUPPORT)),TRUE)
+ COM_DEFS += __WIFIPROXY_SUPPORT__
+ endif
+endif
+
+ifdef NVM_GLOBAL_CABC
+ ifeq ($(strip $(NVM_GLOBAL_CABC)),TRUE)
+ COM_DEFS += __NVM_GLOBAL_CABC__
+ endif
+endif
+
+ifeq ($(strip $(L5_F001)),TRUE)
+ COM_DEFS += __L5_F001__
+ COM_DEFS += __SML_PUK__
+endif
+
+ifdef ONE_BUTTON_CALL_REJECT
+ ifeq ($(strip $(ONE_BUTTON_CALL_REJECT)),TRUE)
+ COM_DEFS += __ONE_BUTTON_CALL_REJECT__
+ endif
+endif
+
+ifeq ($(strip $(TA_SAR_TX_POWER_BACKOFF_SUPPORT)),TRUE)
+ COM_DEFS += __TA_SAR_TX_POWER_BACKOFF_SUPPORT__
+endif
+
+ifdef SA_PLUS_SA_SUPPORT
+ ifeq ($(strip $(SA_PLUS_SA_SUPPORT)),TRUE)
+ COM_DEFS += __SA_PLUS_SA_SUPPORT__
+ endif
+endif
+
+ifdef NR_DL_MAX_CC
+ ifeq ($(strip $(NR_DL_MAX_CC)),2)
+ COM_DEFS +=__NR_CA_DL_2CC__
+ endif
+endif
+
+ifdef MOB_HST_GAME
+ ifeq ($(strip $(MOB_HST_GAME)),TRUE)
+ COM_DEFS += __MOB_HST_GAME__
+ endif
+endif
+
+ifdef GAME_LATENCY_OPT_SMART_HANDOVER
+ ifeq ($(strip $(GAME_LATENCY_OPT_SMART_HANDOVER)),TRUE)
+ COM_DEFS += __GAME_LATENCY_OPT_SMART_HANDOVER__
+ endif
+endif
+
+ifdef NR_N25_40M_SUPPORT
+ ifeq ($(strip $(NR_N25_40M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_N25_40M_SUPPORT__
+ endif
+endif
+
+ifdef NR_N3_40M_SUPPORT
+ ifeq ($(strip $(NR_N3_40M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_N3_40M_SUPPORT__
+ endif
+endif
+
+ifdef NR_N1_40M_50M_SUPPORT
+ ifeq ($(strip $(NR_N1_40M_50M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_N1_40M_50M_SUPPORT__
+ endif
+endif
+
+ifdef NR_70M_SUPPORT
+ ifeq ($(strip $(NR_70M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_70M_SUPPORT__
+ endif
+endif
+
+ifdef NR_N28_30M_SUPPORT
+ ifeq ($(strip $(NR_N28_30M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_N28_30M_SUPPORT__
+ endif
+endif
+
+ifdef NR_N1_25M_30M_SUPPORT
+ ifeq ($(strip $(NR_N1_25M_30M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_N1_25M_30M_SUPPORT__
+ endif
+endif
+
+ifdef MD_TFWK
+ ifeq ($(strip $(MD_TFWK)),TRUE)
+ COM_DEFS += __MD_TFWK__
+ endif
+endif
+
+ifdef WHITE_CELL_LOCK
+ ifeq ($(strip $(WHITE_CELL_LOCK)),TRUE)
+ COM_DEFS += __WHITE_CELL_LOCK__
+ endif
+endif
+
+ifdef DMF_SUPPORT
+ ifeq ($(strip $(DMF_SUPPORT)),TRUE)
+ ifdef DMF_THIN_MODEM
+ ifeq ($(strip $(DMF_THIN_MODEM)),TRUE)
+ COM_DEFS += __DMF_THIN_MODEM__
+ ifdef DMF_QUERY_OTA_MSG
+ COM_DEFS += __DMF_QUERY_OTA_MSG__=$(strip $(DMF_QUERY_OTA_MSG))
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ COM_DEFS += __L5_CALL_SUPPORT__
+endif
+
+ifdef MBIM_MS_NETWORK_BLACKLIST
+ ifeq ($(strip $(MBIM_MS_NETWORK_BLACKLIST)),TRUE)
+ COM_DEFS += __MBIM_MS_NETWORK_BLACKLIST__
+ endif
+endif
+
+ifdef EONS_SUPPORT
+ ifeq ($(strip $(EONS_SUPPORT)),TRUE)
+ COM_DEFS += __EONS_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(HIF_PCIE_SUPPORT)),TRUE)
+ ifeq ($(strip $(PCIE_LTR_SUPPORT)),TRUE)
+ COM_DEFS += __PCIE_LTR_SUPPORT__
+ endif
+ ifeq ($(strip $(PCIE_TRAS_SUPPORT)),TRUE)
+ COM_DEFS += __PCIE_TRAS_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(TX_PWR_EXTENSION)),TRUE)
+ COM_DEFS += __TX_PWR_EXTENSION__
+endif
+
+ifeq ($(strip $(DEL_READ_SMS_EXTENSION)),TRUE)
+ COM_DEFS += __DEL_READ_SMS_EXTENSION__
+endif
+
+ifdef THIN_MODEM_SIM
+ ifeq ($(strip $(THIN_MODEM_SIM)),TRUE)
+ COM_DEFS += __SIM_TERMINAL_CAP__
+ COM_DEFS += __SIM_PASS_THROUGH__
+ COM_DEFS += __SIM_ACCESS_INTEGRATION__
+ COM_DEFS += __SIM_MULTI_PIN__
+ COM_DEFS += __EUICC_SUPPORT__
+ COM_DEFS += __SIM_RECOVERY_SWITCH__
+ endif
+endif
+
+ifeq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
+ COM_DEFS += __RSRA_UL_BYPASS__
+endif
+
+ifdef DISABLE_RAT
+ COM_DEFS += RAT_NEED_DISABLE=$(strip $(DISABLE_RAT))
+endif
+
+ifdef NR_N2_25M_30M_SUPPORT
+ ifeq ($(strip $(NR_N2_25M_30M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_N2_25M_30M_SUPPORT__
+ endif
+endif
+
+ifdef NR_N5_25M_30M_SUPPORT
+ ifeq ($(strip $(NR_N5_25M_30M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_N5_25M_30M_SUPPORT__
+ endif
+endif
+
+ifdef NR_N48_SUPPORT
+ ifeq ($(strip $(NR_N48_SUPPORT)),TRUE)
+ COM_DEFS += __NR_N48_SUPPORT__
+ endif
+endif
+
+ifdef IVT_RF_WIDE_TEMPERATURE_SUPPORT
+ ifeq ($(strip $(IVT_RF_WIDE_TEMPERATURE_SUPPORT)),TRUE)
+ COM_DEFS += __RF_WIDE_TEMPERATURE_SUPPORT__
+ endif
+endif
+
+ifdef IVT_COTMS_TELEMATICS_SUPPORT
+ ifeq ($(strip $(IVT_COTMS_TELEMATICS_SUPPORT)),TRUE)
+ COM_DEFS += __COTMS_TELEMATICS_SUPPORT__
+ endif
+endif
+
+ifdef NR_N38_25M_30M_40M_SUPPORT
+ ifeq ($(strip $(NR_N38_25M_30M_40M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_N38_25M_30M_40M_SUPPORT__
+ endif
+endif
+
+ifdef NR_N7_25M_30M_40M_50M_SUPPORT
+ ifeq ($(strip $(NR_N7_25M_30M_40M_50M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_N7_25M_30M_40M_50M_SUPPORT__
+ endif
+endif
+
+ifeq ($(strip $(NR_CA_MAX_BW)), 100M)
+ COM_DEFS += __NR_CA_DL_BW_100M__
+else ifeq ($(strip $(NR_CA_MAX_BW)), 120M)
+ COM_DEFS += __NR_CA_DL_BW_120M__
+else ifeq ($(strip $(NR_CA_MAX_BW)), 200M)
+ COM_DEFS += __NR_CA_DL_BW_200M__
+else
+ ifeq ($(strip $(PLATFORM)),MT6880)
+ COM_DEFS += __NR_CA_DL_BW_200M__
+ endif
+ ifeq ($(strip $(PLATFORM)),MT6890)
+ COM_DEFS += __NR_CA_DL_BW_200M__
+ endif
+ ifeq ($(strip $(PLATFORM)),MT2735)
+ COM_DEFS += __NR_CA_DL_BW_200M__
+ endif
+endif
+
+ifdef SKIP_VG_OPTION_DURING_INIT
+ COM_DEFS += __SKIP_VG_OPTION_DURING_INIT__=$(strip $(SKIP_VG_OPTION_DURING_INIT))
+endif
+
+ifeq ($(strip $(TELEMATICS_RXONLY_BAND_QUERY)),TRUE)
+ COM_DEFS += __TELEMATICS_RXONLY_BAND_QUERY__
+endif
+
+ifeq ($(strip $(RRC_TELEMATICS_RXONLY_BAND_QUERY)),TRUE)
+ COM_DEFS += __RRC_TELEMATICS_RXONLY_BAND_QUERY__
+endif
+
+ifdef NR_35M_45M_SUPPORT
+ ifeq ($(strip $(NR_35M_45M_SUPPORT)),TRUE)
+ COM_DEFS += __NR_35M_45M_SUPPORT__
+ endif
+endif
+
diff --git a/mcu/make/common/rule_def/complist_def.mak b/mcu/make/common/rule_def/complist_def.mak
new file mode 100644
index 0000000..df7fe58
--- /dev/null
+++ b/mcu/make/common/rule_def/complist_def.mak
@@ -0,0 +1,770 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+# *************************************************************************
+# always define
+# *************************************************************************
+COMPLIST :=
+COMPLIST += audio
+COMPLIST += che
+COMPLIST += config
+COMPLIST += custom
+COMPLIST += custom_driver
+COMPLIST += custom_service
+COMPLIST += custom_middleware
+COMPLIST += custom_protocol
+COMPLIST += devdrv
+COMPLIST += devdrv_sec
+COMPLIST += dsmgr
+COMPLIST += dsp_ram
+COMPLIST += dvfs_drv
+COMPLIST += kal
+COMPLIST += mtkdebug
+COMPLIST += qmu_bm
+COMPLIST += sib_drv
+COMPLIST += sleep_drv
+COMPLIST += sph_ipc
+COMPLIST += sst
+COMPLIST += sst_sec
+COMPLIST += sys_drv
+COMPLIST += sys_svc
+COMPLIST += sys_svc_sec
+COMPLIST += tdd_drv
+COMPLIST += tty
+COMPLIST += tfwk_drv
+COMPLIST += verno
+
+# *************************************************************************
+# defined by rules
+# *************************************************************************
+ifeq ($(strip $(CCCI_FS_SUPPORT)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COMPLIST += fs
+ else
+ COMPLIST += fs_internal
+ endif
+else
+ COMPLIST += fs_internal
+endif
+
+ifeq ($(strip $(HTTP_TLS_SUPPORT)),TRUE)
+COMPLIST += http_tls
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+COMPLIST += cxif_check
+endif
+
+ifneq ($(filter __MD97__ __MD97P__, $(COM_DEFS)),)
+COMPLIST += serdes_drv
+endif
+
+ifeq ($(strip $(BIP_SUPPORT)),TRUE)
+COMPLIST += bip
+endif
+
+ifeq ($(strip $(XCAP_SUPPORT)),TRUE)
+COMPLIST += xcap
+COMPLIST += libroxml
+endif
+
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(ORIGINAL_FLAVOR),BASIC_HIF)
+ ifeq ($(strip $(KPALV_SUPPORT)),TRUE)
+ COMPLIST += kpalv
+ endif
+ endif
+endif
+
+ifeq ($(strip $(EL1_IT)),TRUE)
+COMPLIST += ll1_pcore
+endif
+
+ifeq ($(strip $(RTOS)),MERTOS)
+COMPLIST += mertos mertos_config
+endif
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ COMPLIST += ll1
+else
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COMPLIST += ll1
+ endif
+endif
+
+ifdef EMAIL_SUPPORT
+ ifneq ($(strip $(EMAIL_SUPPORT)),NONE)
+ COMPLIST += email emlst
+ endif
+endif
+
+ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ COMPLIST += dhl
+ COMPLIST += dhl_ext
+ COMPLIST += dhl_sub
+else
+ ifeq ($(strip $(TST_SUPPORT)),TRUE)
+ COMPLIST += tst
+ endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ ifeq ($(strip $(ICD_SUPPORT)),TRUE)
+ COMPLIST += pmc
+ endif
+endif
+
+ifeq ($(strip $(IRDA_SUPPORT)),TRUE)
+ COMPLIST += irda ircomm obex
+endif
+
+ifeq ($(strip $(XML_SUPPORT)),TRUE)
+ COMPLIST += xmlp
+endif
+
+ifdef SDP_SUPPORT
+ ifneq ($(strip $(SDP_SUPPORT)),FALSE)
+ COMPLIST += sdp
+ endif
+endif
+
+ifdef XDM_SUPPORT
+ ifneq ($(strip $(XDM_SUPPORT)),FALSE)
+ COMPLIST += xdm
+ endif
+endif
+
+ifdef IPERF_SUPPORT
+ ifneq ($(strip $(IPERF_SUPPORT)),NONE)
+ COMPLIST += iperf
+ endif
+endif
+
+#add for BASIC_TL1D_COSIM project
+ifneq ($(filter __TL1D_PHASE3__, $(COM_DEFS)),)
+ COMPLIST += tl1d
+endif
+
+ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ ifdef L1_TDD128
+ ifeq ($(strip $(L1_TDD128)),TRUE)
+ COMPLIST += tl1 ll1 # DM (EGPRS + 3G TD) or DM (GPRS + 3G TD)
+ endif
+ endif
+endif
+
+ifeq ($(strip $(IMS_SUPPORT)),TRUE)
+ COMPLIST += imc imcsms
+ COMPLIST += sdm
+ COMPLIST += rtp ltecsr_src ltecsr
+ ifdef MD_TCPIP_SUPPORT
+ ifeq ($(strip $(MD_TCPIP_SUPPORT)),TRUE)
+ ifdef SUBMARINE_SUPPORT
+ ifeq ($(strip $(SUBMARINE_SUPPORT)),TRUE)
+ COMPLIST += wifi_proxy
+ COMPLIST += ims imsm
+ COMPLIST += ipsec
+ COMPLIST += crypto
+ COMPLIST += cert
+ COMPLIST += wtunnel
+ COMPLIST += dispatcher
+ COMPLIST += eap
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(SUBMARINE_SUPPORT)),TRUE)
+ COMPLIST += con10
+ COMPLIST += wlc
+endif
+
+ifdef MD_TCPIP_SUPPORT
+ ifeq ($(strip $(MD_TCPIP_SUPPORT)),TRUE)
+ COMPLIST += rsra
+ endif
+endif
+
+ifeq ($(strip $(WIFIPROXY_SUPPORT)),TRUE)
+ COMPLIST += wifi_proxy
+endif
+
+ifneq ($(filter __N3GPP_OFFLOAD_ENABLE__, $(COM_DEFS)),)
+ COMPLIST += con10
+ COMPLIST += n3cf
+ COMPLIST += n3epc
+ COMPLIST += n3sam
+ COMPLIST += n3sys
+ COMPLIST += eap
+ ifneq ($(strip $(OS_VERSION)),MSWin32)
+ COMPLIST += n3ans
+ endif
+endif
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ COMPLIST += utt
+ else # FOR UESIM
+ ifneq ($(strip $(call Upper,$(C2K_MODE_SUPPORT))),NONE) # FOR C2K
+ COMPLIST += xsim_framework c2k_xsim_platform c2k_xsim_gw c2ksim_hw c2k_vmmi_bridge
+ else
+ ifneq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ COMPLIST += xsim_framework xsim_gw gbst_bridge esim_evrf_bridge vmmi_bridge
+ else
+ COMPLIST += xsim_framework xsim_gw gbst_bridge vmmi_bridge u4ghlsim_hw esim_hl_evrf_bridge usim_uvrf_hl_bridge nrvrf_bridge whlsim_hw wvrf_bridge
+ endif
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COMPLIST += xsim_platform gsim_hw gsim_nw
+ ifneq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ COMPLIST += usim_hw usim_nw
+ endif
+ endif
+ endif
+ endif
+endif
+
+
+# GEMINI
+ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ COMPLIST += rsva
+ COMPLIST += as_semaphore_utility
+ endif
+endif
+
+ifdef IC_TEST_TYPE
+ ifneq ($(strip $(IC_TEST_TYPE)),NONE)
+ ifeq ($(findstring _SLT,$(IC_TEST_TYPE)),_SLT)
+ COMPLIST += slt
+ endif
+ endif
+endif
+
+ifneq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ ifneq ($(filter NONE MODEM_ONLY,$(strip $(SMART_PHONE_CORE))),)
+ COMPLIST += media
+ endif
+ endif
+endif
+
+ifdef TEST_LOAD_TYPE
+ ifeq ($(strip $(TEST_LOAD_TYPE)),NONE)
+ COMPLIST += dp_engine
+ endif
+endif
+
+ifdef ECALL_SUPPORT
+ ifeq ($(strip $(ECALL_SUPPORT)),TRUE)
+ COMPLIST += dp_engine
+ endif
+endif
+
+
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ ifeq ($(strip $(LPP_SUPPORT)),CONTROL_PLANE)
+ COMPLIST += lpp
+ endif
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ #MODEM
+ COMPLIST += tft_pf upcm ratdm ratdm_sec
+ COMPLIST += pam
+ #BSP
+ COMPLIST += el1d_ext
+ ifneq (,$(findstring __EL1_IT__,$(COM_DEFS)))
+ COMPLIST += ll1_pcore
+ endif
+ endif
+ ifneq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ COMPLIST += el1d_ext
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COMPLIST += el1d_pub
+ COMPLIST += el1d_fec
+ endif
+ endif
+endif
+
+ifdef AGPS_SUPPORT
+ ifneq ($(strip $(AGPS_SUPPORT)), NONE)
+ COMPLIST += rrlp asn1_common
+ COMPLIST += ulcs
+ endif
+endif
+
+ifdef IPSEC_SUPPORT
+ ifneq ($(strip $(IPSEC_SUPPORT)),FALSE)
+ COMPLIST += ipsec netkey ike
+ endif
+endif
+
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMPLIST += drv mc
+endif
+
+ifdef SSS_SUPPORT
+ ifeq ($(strip $(SSS_SUPPORT)),SSS_SOURCE)
+ COMPLIST += sss
+ endif
+endif
+
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMPLIST += cipher
+endif
+
+ifdef SSDVT_TEST
+ ifeq ($(strip $(SSDVT_TEST)),TRUE)
+ COMPLIST += ssdvt
+ endif
+endif
+
+ifeq ($(strip $(FS_RAMDISK)),TRUE)
+ COMPLIST += mtd
+endif
+
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMPLIST += cipher
+endif
+
+ifneq ($(filter __MDVSIM__,$(COM_DEFS)),)
+ COMPLIST += keygen
+endif
+
+ifdef MD_TCPIP_SUPPORT
+ ifeq ($(strip $(MD_TCPIP_SUPPORT)),TRUE)
+ COMPLIST += nucleus_tcpip_v3
+ COMPLIST += nal
+ ifeq ($(strip $(FCS_SUPPORT)),TRUE)
+ COMPLIST += fcs
+ endif
+ endif
+endif
+
+ifeq ($(strip $(MT_FRAMEWORK_ENABLE)),TRUE)
+ COMPLIST += mtf
+endif
+
+ifeq ($(strip $(DMF_SUPPORT)),TRUE)
+ COMPLIST += dmf
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifdef MCIF_SUPPORT #MD Consys Interface
+ ifeq ($(strip $(MCIF_SUPPORT)), TRUE)
+ #
+ # MCIF common components
+ #
+ COMPLIST += mcif
+
+ #
+ # Low layer components
+ #
+ COMPLIST += mcif_drv
+
+ ifdef MCIF_WIFI_SUPPORT #MD Consys Interface - WiFi
+ ifeq ($(strip $(MCIF_WIFI_SUPPORT)), TRUE)
+ COMPLIST += wfpm
+ COMPLIST += wrpm
+ COMPLIST += ethsvc
+ endif #MCIF_WIFI_SUPPORT = TRUE
+ endif
+ endif #MCIF_SUPPORT = TRUE
+ endif
+endif #MODIS_CONFIG != TRUE
+
+ifeq ($(strip $(LGE_SECURITY)),TRUE)
+ COMPLIST += lgesecurity
+ COM_DEFS += LGE_FW_COMMON
+ COM_DEFS += __CUSTOMER_TC01_DISK__
+else
+ COM_DEFS += __TC01_SIM_LOCK_OFF__
+endif
+
+# *************************************************************************
+# if not BASIC load
+# *************************************************************************
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ COMPLIST += ft ftc media
+ COMPLIST += mml1 mml1_rf mml1_rf_ext mml1_pcore mml1_rf_pcore mml1_rf_ext_pcore
+ COMPLIST += dbinfo
+ COMPLIST += event_info
+ COMPLIST += gl1 l1_ext gl1_pcore l1_ext_pcore
+ COMPLIST += l2_sec_utility
+ COMPLIST += md_sm
+ COMPLIST += custom_l1
+
+ ifeq ($(strip $(WIFI_LTE_DPP_SUPPORT)),TRUE)
+ COMPLIST += gmmgr
+ endif
+
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ COMPLIST += l4
+ endif
+
+ ifeq ($(strip $(HIF_USB_SUPPORT)),TRUE)
+ COMPLIST += drv_hif
+ else
+ ifeq ($(strip $(HIF_SDIO_SUPPORT)),TRUE)
+ COMPLIST += drv_hif
+ endif
+ endif
+ ifneq ($(call Upper,$(strip $(FIVEG_MODE_SUPPORT))),NONE)
+ COMPLIST += nl1_ext
+ endif
+
+endif
+
+# *************************************************************************
+# if L1S or BASIC load
+# *************************************************************************
+ifneq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMPLIST += md_drv
+ endif
+
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMPLIST += dummyps
+ endif
+ ifeq ($(strip $(NVRAM_SUPPORT)),TRUE)
+ COMPLIST += nvram nvram_sec sbp gmss_public
+ endif
+ ifneq ($(strip $(L1_UMTS)),TRUE)
+ ifeq ($(strip $(L1_GPRS)),TRUE)
+ COMPLIST += md_drv # GPRS classb
+ else
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMPLIST += md_drv # GSM only
+ endif
+ endif
+ endif
+
+ ifeq ($(strip $(L1_GPRS)),TRUE)
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ COMPLIST += md_drv dummyps dummyups ll1 # DM (EGPRS + 3G) or DM (GPRS + 3G)
+ endif
+ ifeq ($(strip $(L1_WCDMA)),FALSE)
+ COMPLIST += md_drv dummyps # 2G Only (EGPRS) or 2G Only (GPRS)
+ endif
+ endif
+
+ ifeq ($(strip $(L1_GPRS)),FALSE)
+ ifeq ($(strip $(L1_EGPRS)),FALSE)
+ ifeq ($(strip $(L1_WCDMA)),FALSE)
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMPLIST += md_drv dummyps # 2G Only (GSM)
+ endif
+ endif
+ endif
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),1)
+ COMPLIST += l1d_lp1
+ endif
+ ifeq ($(strip $(L1D_LOOPBACK)),2)
+ COMPLIST += l1d_lp2
+ endif
+ ifeq ($(strip $(L1D_LOOPBACK)),3)
+ COMPLIST += l1d_lp3
+ endif
+ ifeq ($(strip $(L1D_LOOPBACK)),5)
+ COMPLIST += l1d_lp5
+ endif
+ ifeq ($(strip $(L1D_LOOPBACK)),6)
+ COMPLIST += l1d_lp6
+ endif
+ ifeq ($(strip $(L1D_LOOPBACK)),7)
+ COMPLIST += l1d_lp7
+ endif
+ ifeq ($(strip $(L1D_LOOPBACK)),8)
+ COMPLIST += l1d_lp8
+ endif
+
+ ifeq ($(strip $(MCF_SUPPORT)),TRUE)
+ COMPLIST += mcf
+ endif
+
+ endif
+
+endif # end of L1S or BASIC load
+
+# *************************************************************************
+# if not L1S or BASIC load
+# *************************************************************************
+ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+
+ COMPLIST += nvram nvram_sec l4misc sim nwsel gmss gmss_sec nas_common_utility
+ COMPLIST += sbp gmss_public
+ COMPLIST += tft_pf upcm
+ COMPLIST += mrs mrs_sec
+ COMPLIST += las
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMPLIST += tlas
+ endif
+ COMPLIST += lbs
+ COMPLIST += l4 tftlib asn1_common smic
+ COMPLIST += l1misc
+ ifeq ($(strip $(TA_SAR_TX_POWER_BACKOFF_SUPPORT)),TRUE)
+ COMPLIST += l1misc_tasar
+ endif
+ COMPLIST += l5 l5_sec
+ ifeq ($(strip $(L5_F001)),TRUE)
+ COMPLIST += l5_f001
+ endif
+ COMPLIST += crypto
+ COMPLIST += ddm
+ COMPLIST += con10
+ COMPLIST += n3epc
+ COMPLIST += n3sys
+ COMPLIST += simmngr
+ COMPLIST += iwlan
+ COMPLIST += ssds
+ COMPLIST += rfc2507
+ COMPLIST += vdm
+ COMPLIST += sase
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMPLIST += cc ciss sms
+ ifneq ($(strip $(CSD_SUPPORT)),NONE)
+ COMPLIST += data
+ endif
+ endif
+
+ ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ COMPLIST += sms
+ endif
+
+ ifdef SP_VIDEO_CALL_SUPPORT
+ ifeq ($(strip $(SP_VIDEO_CALL_SUPPORT)),TRUE)
+ COMPLIST += 3g324m_tvt
+ endif
+ endif
+
+ ifdef CMUX_SUPPORT
+ ifeq ($(strip $(CMUX_SUPPORT)),TRUE)
+ COMPLIST += cmux
+ endif
+ endif
+
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMPLIST += scsi
+ endif
+
+ ifeq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ # add scci for LTE single-mode
+ COMPLIST += scsi
+ else
+ COMPLIST += md_drv mm gas_fdd gas_smp ratcm gas_fdd_sec
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMPLIST += gas_tdd gas_smp_tdd gas_tdd_sec
+ endif
+ endif
+
+ ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ COMPLIST += erac etcm mbmsal
+ endif
+
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COMPLIST += ratdm ratdm_sec urr_fdd urr_fdd_sec fsm sndcp sm llc asinterfaces pam llc_sec
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMPLIST += urr_tdd ul2_tdd
+ endif
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COMPLIST += ul2_fdd ul2_secure_fdd
+ endif
+ else
+ ifeq ($(strip $(GERAN_MODE_SUPPORT)),GERAN_EGPRS_MODE)
+ COMPLIST += ratdm ratdm_sec sndcp sm llc pam llc_sec
+ endif
+ endif
+
+ COMPLIST += nas_sv
+ COMPLIST += mcd
+
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ FLC_LIB_INCLUDE_CONDITION = FALSE
+ ifneq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifneq ($(strip $(CSD_SUPPORT)),NONE)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifeq ($(strip $(FLC_LIB_INCLUDE_CONDITION)),TRUE)
+ COMPLIST += flc2_v2 flc2_v2_sec
+ endif
+ endif
+
+ ifeq ($(strip $(MCF_SUPPORT)),TRUE)
+ COMPLIST += mcf
+ endif
+
+ ifneq ($(filter __PERF_SUPPORT__,$(COM_DEFS)),)
+ COMPLIST += perf
+ endif
+
+endif #end of not L1S or BASIC
+
+# *************************************************************************
+# define by filtering
+# *************************************************************************
+ifeq ($(strip $(UL1_SUPPORT)),TRUE)
+ COMPLIST += ll1
+ ifdef L1_WCDMA
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ ifneq ($(filter $(strip $(PLATFORM)),$(UL1_HS_PLUS_PLATFORM)),)
+ ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ COMPLIST += ul1_modis # DM (EGPRS + 3G) or DM (GPRS + 3G)
+ endif
+ endif
+ ifeq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ COMPLIST += ul1b
+ endif
+ COMPLIST += ul1 ul1_fec # DM (EGPRS + 3G) or DM (GPRS + 3G)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COMPLIST += ul1_ext # Remove ul1_ext when Modis build
+ endif
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ COMPLIST += mnwi
+endif
+
+ifeq ($(strip $(N5G_ADAPTOR_SUPPORT)),TRUE)
+ COMPLIST += nhlsim_hw
+endif
+
+ifneq ($(filter __RF_DESENSE_TEST__,$(COM_DEFS)),)
+ COMPLIST += btmt
+endif
+
+ifneq ($(filter __KTEST__,$(COM_DEFS)),)
+ COMPLIST += ktest
+endif
+
+# *************************************************************************
+# C2K Modules
+# *************************************************************************
+# *************************************************************************
+#For BASIC CoSIM Load
+# *************************************************************************
+ifneq ($(filter MTK_C2K_COSIM, $(COM_DEFS)),)
+COMPLIST += cl1
+COMPLIST += cph
+endif
+
+# supply query API for five multi mode query whether C2K is exist
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+COMPLIST += cl1_public
+endif
+
+ifneq ($(filter __CL1_TASK_ENABLE__, $(COM_DEFS)),)
+COMPLIST += rfd
+COMPLIST += rfd_ext
+endif
+
+ifneq ($(strip $(call Upper,$(C2K_MODE_SUPPORT))),NONE)
+
+# *************************************************************************
+# if not BASIC load
+# *************************************************************************
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+COMPLIST += cph
+COMPLIST += cl1
+COMPLIST += ota ps_custom c2k_sms
+COMPLIST += pe locsrv psw scc
+COMPLIST += lmd
+COMPLIST += l1d
+COMPLIST += lec
+COMPLIST += rcp
+COMPLIST += rmc
+COMPLIST += css
+COMPLIST += clc
+COMPLIST += slc
+COMPLIST += val
+COMPLIST += rlpe
+COMPLIST += rlpw
+COMPLIST += rpc
+COMPLIST += atc
+COMPLIST += fcp
+COMPLIST += hlp
+COMPLIST += cl2_sec
+COMPLIST += sec
+COMPLIST += hsc
+COMPLIST += rfd
+COMPLIST += rfd_ext
+COMPLIST += sys
+COMPLIST += xl1
+COMPLIST += evl1
+COMPLIST += cl1tst
+COMPLIST += uim
+COMPLIST += cust
+ifeq ($(strip $(USE_ENCRYPT_VOICE)),TRUE)
+ COMPLIST += crypt
+endif
+
+#FLC2 should be included in L1S for C2K
+COMPLIST += flc2_v2 flc2_v2_sec
+
+# *************************************************************************
+# define by filtering
+# *************************************************************************
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ # Target Only Modules
+ COMPLIST += tas
+ COMPLIST += ratdm_c2k_sec
+else
+ # MoDIS Modules
+ COMPLIST += c2k_dma_model
+ ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ # UESIM Only Modules
+ COMPLIST += stub
+ endif
+endif
+
+endif # if not BASIC load
+
+endif #C2K_MODE_SUPPORT
+
+# *************************************************************************
+# if driver test load
+# *************************************************************************
+ifneq ($(strip $(DRIVER_LOAD_MODE)),)
+ COMPLIST := $(filter-out devdrv_sec mtkdebug,$(COMPLIST))
+endif
diff --git a/mcu/make/common/rule_def/dep_def.mak b/mcu/make/common/rule_def/dep_def.mak
new file mode 100644
index 0000000..788660a
--- /dev/null
+++ b/mcu/make/common/rule_def/dep_def.mak
@@ -0,0 +1,1028 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+# *************************************************************************
+# *************************************************************************
+# merge from checkvalue.mak
+# *************************************************************************
+ifdef CSD_SUPPORT
+CSD_SUPPORT_VALUE = NONE T_NT NT_ONLY
+ ifeq ($(findstring $(strip $(CSD_SUPPORT)) ,$(CSD_SUPPORT_VALUE)),)
+ $(warning ERROR: CSD_SUPPORT value ($(strip $(CSD_SUPPORT))) is not in the valid list: $(strip $(CSD_SUPPORT_VALUE)))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef CAMCORDER_SUPPORT
+CAMCORDER_SUPPORT_VALUE = NONE FULL SLIM STANDARD CUSTOM
+ ifeq ($(findstring $(strip $(CAMCORDER_SUPPORT)) ,$(CAMCORDER_SUPPORT_VALUE)),)
+ $(warning ERROR: CAMCORDER_SUPPORT value ($(strip $(CAMCORDER_SUPPORT))) is not in the valid list: $(strip $(CAMCORDER_SUPPORT_VALUE)))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef WAP_SUPPORT
+ $(warning ERROR: WAP_SUPPORT has been renamed to BROWSER_SUPPORT, please Do Not use the OLD option name anymore!)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+ifdef TELECA_FEATURE
+ $(warning ERROR: TELECA_FEATURE has been renamed to OBIGO_FEATURE, please Do Not use the OLD option name anymore!)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+ifdef GADGET_SUPPORT
+GADGET_SUPPORT_VALUE = NONE STANDARD SHARED_MEMORY
+ ifeq ($(findstring $(strip $(GADGET_SUPPORT)),$(GADGET_SUPPORT_VALUE)),)
+ $(warning ERROR: GADGET_SUPPORT value ($(strip $(GADGET_SUPPORT))) is not in the valid list: $(strip $(GADGET_SUPPORT_VALUE)))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef JOGBALL_SUPPORT
+JOGBALL_SUPPORT_VALUE = NONE JOGBALL OFN
+ ifeq ($(findstring $(strip $(JOGBALL_SUPPORT)),$(JOGBALL_SUPPORT_VALUE)),)
+ $(warning ERROR: JOGBALL_SUPPORT value ($(strip $(JOGBALL_SUPPORT))) is not in the valid list: $(strip $(JOGBALL_SUPPORT_VALUE)))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+#end of checkvalue merged
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifeq ($(strip $(L1_GPRS)),FALSE)
+ ifeq ($(strip $(L1_EGPRS)),TRUE)
+ $(error: Not support EDGE wihtout GPRS)
+ endif
+ endif
+
+ ifeq ($(strip $(L1_GPRS)),FALSE)
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ $(error: Not support WCDMA wihtout GPRS)
+ endif
+ endif
+endif
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ #enable 4G
+ ifeq ($(filter TRUE,$(FDD_LTE_SUPPORT) $(TDD_LTE_SUPPORT)),)
+ $(warning ERROR: One of FDD_LTE_SUPPORT/TDD_LTE_SUPPORT need to be supported at least when EUTRAN_MODE_SUPPORT is supported.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+else
+ #do not enable 4G
+ ifdef FDD_LTE_SUPPORT
+ ifeq ($(strip $(FDD_LTE_SUPPORT)),TRUE)
+ $(warning ERROR: FDD_LTE_SUPPORT only can be supported when EUTRAN_MODE_SUPPORT is not supported.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ ifdef TDD_LTE_SUPPORT
+ ifeq ($(strip $(TDD_LTE_SUPPORT)),TRUE)
+ $(warning ERROR: TDD_LTE_SUPPORT only can be supported when EUTRAN_MODE_SUPPORT is not supported.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifneq ($(filter __SMART_PAGING_IN_IDLE__,$(COM_DEFS)),)
+ ifeq ($(filter __SMART_PAGING__,$(COM_DEFS)),)
+ $(warning ERROR: __SMART_PAGING_IN_IDLE__ can only be defined when __SMART_PAGING__ is defined.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef GEMINI_L
+ ifneq ($(strip $(GEMINI_L)),FALSE)
+ ifeq ($(call gt,$(strip $(GEMINI_L)),$(strip $(GEMINI))),T)
+ $(warning ERROR: GEMINI_L shall not large than GEMINI, GEMINI_L = $(GEMINI_L), GEMINI = $(GEMINI))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ ifeq ($(call gt,$(strip $(GEMINI_L)),$(strip $(GEMINI_W))),T)
+ $(warning ERROR: GEMINI_L shall not large than GEMINI_W, GEMINI_L = $(GEMINI_L), GEMINI_W = $(GEMINI_W))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifdef GEMINI_W
+ ifneq ($(strip $(GEMINI_W)),FALSE)
+ ifeq ($(call gt,$(strip $(GEMINI_W)),$(strip $(GEMINI))),T)
+ $(warning ERROR: GEMINI_W shall not large than GEMINI, GEMINI_W = $(GEMINI_W), GEMINI = $(GEMINI))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+# GEMINI
+ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ ifneq ($(strip $(GEMINI)),2)
+ ifneq ($(filter __LOWCOST_MERGE_TASK__,$(COM_DEFS)),)
+ $(warning ERROR: __LOWCOST_MERGE_TASK__ cannot be defined when GEMINI_PLUS is larger than 2)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+
+ ifdef UNIFIED_MESSAGE_FOLDER
+ ifeq ($(strip $(UNIFIED_MESSAGE_FOLDER)),TRUE)
+ ifneq ($(strip $(MMS_SUPPORT)), OBIGO_Q03C_MMS_V02)
+ $(call DEP_ERR_ONA_OR_OFFB,MMS_SUPPORT,GEMINI & UNIFIED_MESSAGE)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifndef $(COM_DEFS_FOR_PLATFORM)
+ $(warning ERROR: [COM_DEFS_FOR_$(strip $(PLATFORM))] was not defined)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+ifndef $(COM_DEFS_FOR_RF_MODULE)
+ $(warning ERROR: [COM_DEFS_FOR_$(strip $(RF_MODULE))] was not defined)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+ifdef UMTS_RF_MODULE
+ifneq ($(strip $(UMTS_RF_MODULE)),NONE)
+ ifndef $(COM_DEFS_FOR_RF_MODULE)
+ $(warning ERROR: [COM_DEFS_FOR_$(strip $(UMTS_RF_MODULE))] was not defined)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+endif
+
+ifdef UMTS_TDD128_RF_MODULE
+ifneq ($(strip $(UMTS_TDD128_RF_MODULE)),NONE)
+ ifndef $(COM_DEFS_FOR_RF_MODULE)
+ $(warning ERROR: [COM_DEFS_FOR_$(strip $(UMTS_TDD128_RF_MODULE))] was not defined)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+endif
+
+ifdef LTE_RF_MODULE
+ifneq ($(strip $(LTE_RF_MODULE)),NONE)
+ ifndef $(COM_DEFS_FOR_RF_MODULE)
+ $(warning ERROR: [COM_DEFS_FOR_$(strip $(LTE_RF_MODULE))] was not defined)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+endif
+
+ifdef C2K_RF_MODULE
+ifneq ($(strip $(C2K_RF_MODULE)),NONE)
+ ifndef $(COM_DEFS_FOR_RF_MODULE)
+ $(warning ERROR: [COM_DEFS_FOR_$(strip $(C2K_RF_MODULE))] was not defined)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+endif
+# check AFC_VCXO_TYPE matches RF_MODULE
+ifdef AFC_VCXO_TYPE
+ ifdef RF_MODULE
+ VCXO_PLATFORM = MT6139B MT6139C MT6139E
+ ifneq ($(filter $(strip $(RF_MODULE)),$(VCXO_PLATFORM)),)
+ ifneq ($(strip $(AFC_VCXO_TYPE)),VCXO)
+ ifeq ($(filter MT6268A MT6270A MT6276,$(strip $(PLATFORM))),)
+ $(warning ERROR: MT6139 series RF_MODULE project must set AFC_VCXO_TYPE = VCXO )
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+ VCTCXO_RF_MODULE_LIST = MT6129D MT6129 MT6119 BRIGHT4 MT6140A SKY74117 SKY74045 BRIGHT5P FOUNTAIN
+ ifneq ($(filter $(strip $(VCTCXO_RF_MODULE_LIST)),$(strip $(RF_MODULE))),)
+ VCTCXO_RF_MODULE = $(filter $(strip $(VCTCXO_RF_MODULE_LIST)),$(strip $(RF_MODULE)))
+ ifneq ($(strip $(AFC_VCXO_TYPE)),VCTCXO)
+ $(warning WARNING $(VCTCXO_RF_MODULE) series RF_MODULE project must set AFC_VCXO_TYPE = VCTCXO )
+ endif
+ endif
+ VCXO_RF_MODULE_LIST = AERO MT6139
+ ifneq ($(filter $(strip $(VCXO_RF_MODULE_LIST)),$(strip $(RF_MODULE))),)
+ VCXO_RF_MODULE = $(filter $(strip $(VCXO_RF_MODULE_LIST)),$(strip $(RF_MODULE)))
+ ifneq ($(strip $(AFC_VCXO_TYPE)),VCXO)
+ $(warning WARNING $(VCXO_RF_MODULE) series RF_MODULE project must set AFC_VCXO_TYPE = VCXO )
+ endif
+ endif
+ endif
+endif
+
+# Due to uas ul2 RRC Specification (InterRATHandoverInfo message) limitation, UE at most supports 4 bands in band I~VII.
+UMTS_SUPPORT_BAND_I_TO_VII_COUNT = $(words $(filter __UMTS_BAND_I__ __UMTS_BAND_II__ __UMTS_BAND_III__ __UMTS_BAND_IV__ __UMTS_BAND_V__ __UMTS_BAND_VI__ __UMTS_BAND_VII__,$(sort $(strip $(UMTS_SUPPORT_BAND)))))
+ifeq ($(call gt,$(strip $(UMTS_SUPPORT_BAND_I_TO_VII_COUNT)),4),T)
+ $(warning ERROR: UE at most supports 4 bands in band I~VII due to RRC Specification limitation (UE supports $(strip $(UMTS_SUPPORT_BAND))))
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+ifdef PMIC
+ PMIC_MT6339_SUPPORT_PLATFORM = MT6290 $(strip $(SUPPORT_PLATFORM))
+ ifeq ($(strip $(PMIC)),MT6339)
+ ifeq ($(filter $(strip $(PLATFORM)) ,$(PMIC_MT6339_SUPPORT_PLATFORM)),)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) does not support PMIC=$(strip $(PMIC)))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+
+ PMIC_MT6331_MT6332_SUPPORT_PLATFORM = MT6595
+ ifeq ($(strip $(PMIC)),MT6331)
+ ifeq ($(filter $(strip $(PLATFORM)) ,$(PMIC_MT6331_MT6332_SUPPORT_PLATFORM)),)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) does not support PMIC=$(strip $(PMIC)))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+
+ ifeq ($(strip $(PMIC)),MT6332)
+ ifeq ($(filter $(strip $(PLATFORM)) ,$(PMIC_MT6331_MT6332_SUPPORT_PLATFORM)),)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) does not support PMIC=$(strip $(PMIC)))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+
+ ifeq ($(strip $(PMIC)),MT6331_PLUS_MT6332)
+ ifeq ($(filter $(strip $(PLATFORM)) ,$(PMIC_MT6331_MT6332_SUPPORT_PLATFORM)),)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) does not support PMIC=$(strip $(PMIC)))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+
+ PMIC_MT6325_SUPPORT_PLATFORM = MT6752 $(strip $(SUPPORT_PLATFORM))
+ ifeq ($(strip $(PMIC)),MT6325)
+ ifeq ($(filter $(strip $(PLATFORM)) ,$(PMIC_MT6325_SUPPORT_PLATFORM)),)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) does not support PMIC=$(strip $(PMIC)))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+
+ PMIC_MT6351_SUPPORT_PLATFORM = $(strip $(SUPPORT_PLATFORM))
+ ifeq ($(strip $(PMIC)),MT6351)
+ ifeq ($(filter $(strip $(PLATFORM)) ,$(PMIC_MT6351_SUPPORT_PLATFORM)),)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) does not support PMIC=$(strip $(PMIC)))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifdef NAND_SUPPORT
+ ifdef SYSTEM_DRIVE_ON_NAND
+ ifeq ($(strip $(NAND_SUPPORT)),FALSE)
+ ifeq ($(strip $(SYSTEM_DRIVE_ON_NAND)),TRUE)
+ $(call DEP_ERR_ONA_OR_OFFB,NAND_SUPPORT,SYSTEM_DRIVE_ON_NAND)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+endif
+
+ifdef NAND_SUPPORT
+ ifdef SYSTEM_DRIVE_ON_NAND
+ ifeq ($(strip $(SYSTEM_DRIVE_ON_NAND)),TRUE)
+ SYSTEM_DRIVE_ON_NAND_SUPPORT_PLATFORM = MT6575 MT6577 MT6280
+ ifeq ($(filter $(strip $(PLATFORM)) ,$(SYSTEM_DRIVE_ON_NAND_SUPPORT_PLATFORM)),)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) does not support SYSTEM_DRIVE_ON_NAND.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+endif
+
+ifdef AEC_ENABLE
+ ifneq ($(strip $(AEC_ENABLE)),TRUE)
+ ifdef IC_TEST_TYPE
+ ifneq ($(strip $(IC_TEST_TYPE)),IC_BURNIN_TEST)
+ $(warning ERROR: AEC_ENABLE is a mandatory feature. Please turn on AEC_ENABLE!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+endif
+
+ifdef EDGE_SUPPORT
+ ifeq ($(strip $(EDGE_SUPPORT)),TRUE)
+ EDGE_SUPPORT_PLATFORM = MT6575 MT6577 MT6280 MT6589 MT6290 MT6595 $(strip $(SUPPORT_PLATFORM))
+ ifeq ($(filter $(strip $(PLATFORM)) ,$(EDGE_SUPPORT_PLATFORM)),)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) does not support EGPRS.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ else
+ ifdef L1_EPSK_TX
+ ifeq ($(strip $(L1_EPSK_TX)),TRUE)
+ $(call DEP_ERR_ONA_OR_OFFB,EDGE_SUPPORT,L1_EPSK_TX)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(TST_LOGACC_SUPPORT)),TRUE)
+ ifneq ($(strip $(TST_SUPPORT)),TRUE)
+ $(call DEP_ERR_ONA_OR_OFFB,TST_SUPPORT,TST_LOGACC_SUPPORT)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(strip $(AMRWB_LINK_SUPPORT)),TRUE)
+ AMRWB_LINK_SUPPORT_PLATFORM = MT6575 MT6577 MT6280 MT6589 MT6290 MT6595 $(strip $(SUPPORT_PLATFORM))
+ ifeq ($(filter $(strip $(PLATFORM)) ,$(AMRWB_LINK_SUPPORT_PLATFORM)),)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) does not support AMRWB_LINK_SUPPORT)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef UMTS_MODE_SUPPORT
+ ifneq ($(strip $(UMTS_MODE_SUPPORT)),NONE)
+ ifeq ($(filter __UMTS_RAT__,$(strip $(COM_DEFS))),)
+ $(warning ERROR: UMTS_MODE_SUPPORT can only be turned on when __UMTS_RAT__ defined)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifeq ($(strip $(USB_MASS_STORAGE_CDROM_SUPPORT)),TRUE)
+ ifeq ($(strip $(USB_MASS_STORAGE_SUPPORT)),FALSE)
+ $(call DEP_ERR_ONA_OR_OFFB,USB_MASS_STORAGE_SUPPORT,USB_MASS_STORAGE_CDROM_SUPPORT )
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef RM_FILE_FORMAT_SUPPORT
+ ifneq ($(strip $(RM_FILE_FORMAT_SUPPORT)),TRUE)
+ ifeq ($(strip $(COOK_DECODE)),TRUE)
+ $(call DEP_ERR_ONA_OR_OFFB,RM_FILE_FORMAT_SUPPORT,COOK_DECODE)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ ifeq ($(strip $(RM_DECODE)),TRUE)
+ $(call DEP_ERR_ONA_OR_OFFB,RM_FILE_FORMAT_SUPPORT,RM_DECODE)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifneq ($(filter FMT_NOT_PRESENT,$(COM_DEFS)),)
+ ifneq ($(filter fmt,$(COMPLIST)),)
+ $(warning ERROR: Please remove FMT_NOT_PRESENT from COM_DEFS when fmt module is defined in COMPLIST)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(strip $(IC_TEST_TYPE)),IC_BURNIN_TEST)
+ ifneq ($(strip $(KAL_DEBUG_LEVEL)), RELEASE_KAL)
+ $(warning ERROR: Please set KAL_DEBUG_LEVEL=RELEASE_KAL when IC_TEST_TYPE = IC_BURNIN_TEST )
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef CSD_SUPPORT
+ ifneq ($(strip $(CSD_SUPPORT)),NONE)
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ $(warning ERROR: Please turn off CSD_SUPPORT in $(strip $(TEST_LOAD_TYPE)) project.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ # Support CSD
+ ifneq ($(strip $(CSD_SUPPORT)),T_NT)
+ ifneq ($(strip $(CSD_SUPPORT)),NT_ONLY)
+ $(warning ERROR: CSD_SUPPORT setting is wrong)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(filter __KBD_JOYSTICK_SUPPORT__,$(COM_DEFS)),__KBD_JOYSTICK_SUPPORT__)
+ ifeq ($(filter __TWO_KEY_DETECTION_SWITCHABLE__,$(COM_DEFS)),__TWO_KEY_DETECTION_SWITCHABLE__)
+ $(call DEP_ERR_OFFA_OR_OFFB,__TWO_KEY_DETECTION_SWITCHABLE__,__KBD_JOYSTICK_SUPPORT__)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifndef FS_SORT_MAX_ENTRY
+ FS_SORT_MAX_ENTRY = 256
+endif
+ifdef FS_SORT_MAX_ENTRY
+ FS_SORT_MAX_ENTRY_PLATFORM = MT6280
+ ifneq ($(filter $(strip $(PLATFORM)),$(FS_SORT_MAX_ENTRY_PLATFORM)),)
+ ifeq ($(call gt,$(strip $(FS_SORT_MAX_ENTRY)),20000),T)
+ $(warning ERROR: FS_SORT_MAX_ENTRY value ($(FS_SORT_MAX_ENTRY)) on $(strip $(PLATFORM)) should not be larger than 20000)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ ifeq ($(call lt,$(strip $(FS_SORT_MAX_ENTRY)),64),T)
+ $(warning ERROR: FS_SORT_MAX_ENTRY value ($(FS_SORT_MAX_ENTRY)) on $(strip $(PLATFORM)) should not be less than 64)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ else
+ ifeq ($(call gt,$(strip $(FS_SORT_MAX_ENTRY)),256),T)
+ $(warning ERROR: FS_SORT_MAX_ENTRY value ($(FS_SORT_MAX_ENTRY)) on $(strip $(PLATFORM)) should not be larger than 256)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ ifeq ($(call lt,$(strip $(FS_SORT_MAX_ENTRY)),64),T)
+ $(warning ERROR: FS_SORT_MAX_ENTRY value ($(FS_SORT_MAX_ENTRY)) on $(strip $(PLATFORM)) should not be less than 64)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifdef TST_SUPPORT
+ ifeq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+ ifeq ($(strip $(TST_SUPPORT)),TRUE)
+ $(warning ERROR: TST_SUPPORT should be FALSE in BASIC project)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifdef FS_TRACE_SUPPORT
+ ifdef TST_SUPPORT
+ ifeq ($(strip $(FS_TRACE_SUPPORT)),TRUE)
+ ifneq ($(strip $(DHL_SUPPORT)),TRUE)
+ $(call DEP_ERR_ONA_OR_OFFB,DHL_SUPPORT,FS_TRACE_SUPPORT)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+endif
+
+ifneq ($(filter __DISABLE_SMS_CONTROLLED_BY_SIM__,$(strip $(COM_DEFS))),)
+ ifeq ($(filter __SAT__,$(strip $(COM_DEFS))),)
+ $(warning ERROR: Please define __SAT__ or do not define __DISABLE_SMS_CONTROLLED_BY_SIM__)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(strip $(CLIB_TIME_SUPPORT)), TRUE)
+ ifneq ($(strip $(CCCI_DEV_SUPPORT)), TRUE)
+ $(warning ERROR: please turn on CCCI_DEV_SUPPORT and HIF_CCCI_SUPPORT, when CLIB_TIME_SUPPORT is set.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ ifneq ($(strip $(HIF_CCCI_SUPPORT)), TRUE)
+ $(warning ERROR: please turn on CCCI_DEV_SUPPORT and HIF_CCCI_SUPPORT, when CLIB_TIME_SUPPORT is set.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifneq ($(filter __SAIC__,$(COM_DEFS)),)
+ ifneq ($(filter $(strip $(PLATFORM)),$(SAIC_NOT_SUPPORT_FLATFORM)),)
+ $(warning ERROR: __SAIC__ cannot be defined for PLATFORM $(strip $(PLATFORM)).)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifneq ($(filter __REPEATED_ACCH__,$(COM_DEFS)),)
+ ifneq ($(filter $(strip $(PLATFORM)),$(REPEATED_ACCH_NOT_SUPPORT_FLATFORM)),)
+ $(warning ERROR: __REPEATED_ACCH__ cannot be defined for PLATFORM $(strip $(PLATFORM)).)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(strip $(LPP_SUPPORT)),CONTROL_PLANE)
+ ifeq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ $(warning ERROR: please turn on EUTRAN_MODE_SUPPORT, when LPP_SUPPORT is set.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+ifeq ($(strip $(LPP_SUPPORT)),CONTROL_PLANE)
+ ifeq ($(call Upper,$(strip $(LTE_OTDOA_SUPPORT))),FALSE)
+ ifeq ($(call Upper,$(strip $(LTE_ECID_SUPPORT))),FALSE)
+ $(warning ERROR: please turn on at least one of AGPS_SUPPORT, LTE_OTDOA_SUPPORT, LTE_ECID_SUPPORT, when LPP_SUPPORT is set.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifeq ($(strip $(LTE_OTDOA_SUPPORT)),TRUE)
+ ifeq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ $(warning ERROR: please turn on EUTRAN_MODE_SUPPORT and LPP_SUPPORT, when LTE_OTDOA_SUPPORT is set to TRUE.)
+ DEPENDENCY_CONFLICT = TRUE
+ else
+ ifeq ($(strip $(LPP_SUPPORT)),NONE)
+ $(warning ERROR: please turn on EUTRAN_MODE_SUPPORT and LPP_SUPPORT, when LTE_OTDOA_SUPPORT is set to TRUE.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifeq ($(strip $(LTE_ECID_SUPPORT)),TRUE)
+ ifeq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ $(warning ERROR: please turn on EUTRAN_MODE_SUPPORT and LPP_SUPPORT, when LTE_ECID_SUPPORT is set to TRUE.)
+ DEPENDENCY_CONFLICT = TRUE
+ else
+ ifeq ($(strip $(LPP_SUPPORT)), NONE)
+ $(warning ERROR: please turn on EUTRAN_MODE_SUPPORT and LPP_SUPPORT, when LTE_ECID_SUPPORT is set to TRUE.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifndef SMS_PHONE_ENTRY
+ $(warning ERROR: Please define SMS_PHONE_ENTRY in project makefile.)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+ifndef SMS_TOTAL_ENTRY
+ $(warning ERROR: Please define SMS_TOTAL_ENTRY in project makefile.)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+ifdef PRODUCTION_RELEASE
+ ifeq ($(strip $(PRODUCTION_RELEASE)),FALSE)
+ ifneq ($(strip $(DEMO_PROJECT)),TRUE)
+ ifeq ($(findstring REL_CR_OBJ_JAL_SRC,$(strip $(RELEASE_PACKAGE))),)
+ $(call DEP_ERR_ONA_OR_ONB,PRODUCTION_RELEASE,DEMO_PROJECT)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ else
+ ifeq ($(strip $(DEMO_PROJECT)),TRUE)
+ $(call DEP_ERR_OFFA_OR_OFFB,DEMO_PROJECT,PRODUCTION_RELEASE)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifneq ($(filter __SMS_DEPERSONALIZATION__,$(COM_DEFS)),)
+ ifeq ($(filter __MOD_SMU__,$(COM_DEFS)),)
+ $(call DEP_ERR_ONA_OR_OFFB,__MOD_SMU__,__SMS_DEPERSONALIZATION__)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ ifeq ($(filter __MOD_SMS__,$(COM_DEFS)),)
+ $(call DEP_ERR_ONA_OR_OFFB,__MOD_SMS__,__SMS_DEPERSONALIZATION__)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef PHB_NAME_LENGTH
+ ifeq ($(call gt,$(strip $(PHB_NAME_LENGTH)),80),T)
+ $(warning ERROR: PHB_NAME_LENGTH value should not be larger than 80)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifneq ($(filter __MONITOR_PAGE_DURING_TRANSFER__,$(COM_DEFS)),)
+ ifeq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ $(warning ERROR: __MONITOR_PAGE_DURING_TRANSFER__ can only be defined when __PS_SERVICE__ is defined.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(call gt,$(strip $(PHB_SIM_ENTRY)),1000),T)
+ $(warning ERROR: PHB_SIM_ENTRY value ($(PHB_SIM_ENTRY)) of USIM projects should not be larger than 1000)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+ifneq ($(filter __ECC_RETRY_ENHANCEMENT__ ,$(strip $(COM_DEFS))),)
+ ifeq ($(filter __UMTS_RAT__,$(strip $(COM_DEFS))),)
+ $(warning ERROR: __ECC_RETRY_ENHANCEMENT__ can only be turned on when __UMTS_RAT__ defined)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ ifeq ($(filter __GSM_RAT__,$(strip $(COM_DEFS))),)
+ $(warning ERROR: __ECC_RETRY_ENHANCEMENT__ can only be turned on when __GSM_RAT__ defined)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+# Copro dependency check is valid only for FDD mode and non l1s project
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifeq ($(strip $(TEST_LOAD_TYPE)), NONE)
+ ifeq ($(call gt,$(strip $(GPRS_MAX_PDP_SUPPORT)),8),T)
+ $(warning ERROR: GPRS_MAX_PDP_SUPPORT maximum value is 8 when HSDPA Copro exist due to hardware limitation, please reduce GPRS_MAX_PDP_SUPPORT value)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifeq ($(strip $(TST_DNT_LOGGING)),TRUE)
+ ifneq ($(strip $(TST_SUPPORT)),TRUE)
+ $(call DEP_ERR_ONA_OR_OFFB,TST_SUPPORT,TST_DNT_LOGGING)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(filter MTK_SLEEP_ENABLE,$(strip $(COM_DEFS))),)
+ ifneq ($(strip $(DEMO_PROJECT)),TRUE)
+ $(warning ERROR: MTK_SLEEP_ENABLE must be defined in all customer projects .)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(filter __TC02__,$(strip $(COM_DEFS))),)
+ ifneq ($(filter __TC02_SECURITY_REQUIREMENT__,$(strip $(COM_DEFS))),)
+ $(warning ERROR: __TC02_SECURITY_REQUIREMENT__ can only be turned on for MOTO project)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef SML_SUPPORT
+ ifneq ($(strip $(SML_SUPPORT)),TRUE)
+ ifneq ($(filter __TC02_SECURITY_REQUIREMENT__,$(strip $(COM_DEFS))),)
+ $(warning ERROR: __TC02_SECURITY_REQUIREMENT__ need set SML_SUPPORT = TRUE)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifdef COSMOS_3D_VERSION
+ ifneq ($(strip $(COSMOS_3D_VERSION)),NONE)
+ ifeq ($(filter __VENUS_3D_UI_ENGINE__,$(strip $(COM_DEFS))),)
+ $(call DEP_ERR_SETA_OR_OFFB,VENUS_MMI,VENUS_3D,COSMOS_3D_VERSION)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifneq ($(filter __L4_INIT_MULTIUSB_COM__,$(COM_DEFS)),)
+ ifeq ($(filter __USB_MULTIPLE_COMPORT_SUPPORT__,$(COM_DEFS)),)
+ $(warning ERROR: __L4_INIT_MULTIUSB_COM__ can only be defined when __USB_MULTIPLE_COMPORT_SUPPORT__ is defined.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifneq ($(strip $(SSS_SUPPORT)),SSS_LIB)
+ ifneq ($(strip $(SSS_SUPPORT)),SSS_SOURCE)
+ $(warning ERROR: Please define SSS_SUPPORT as SSS_LIB or SSS_SOURCE)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifneq ($(filter __DYNAMIC_HSPA_PREFERENCE__,$(COM_DEFS)),)
+ ifeq ($(filter __HSPA_PREFERENCE_SETTING__,$(strip $(COM_DEFS))),)
+ $(error ERROR: PLEASE turn off __DYNAMIC_HSPA_PREFERENCE__ when __HSPA_PREFERENCE_SETTING__ is not defined.)
+ endif
+endif
+
+ifeq ($(filter __CPHS__,$(COM_DEFS)),)
+ ifeq ($(filter __REL4__,$(COM_DEFS)),)
+ ifneq ($(filter __SS_CPHS_QUERY_CFU_ALWAYS__,$(strip $(COM_DEFS))),)
+ $(error ERROR: PLEASE turn on __CPHS__ or __REL4__ when __SS_CPHS_QUERY_CFU_ALWAYS__ is on)
+ endif
+ endif
+endif
+
+ifeq ($(strip $(LATENCY_REDUCTION)),TRUE)
+ ifneq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R7_SUPPORT)
+ ifneq ($(strip $(GERAN_RELEASE_SUPPORT)),GERAN_R8_SUPPORT)
+ $(call DEP_ERR_SETA_OR_OFFB,GERAN_RELEASE_SUPPORT,GERAN_R7_SUPPORT,LATENCY_REDUCTION)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifneq ($(filter DUAL_LCD,$(COM_DEFS)),)
+ ifeq ($(strip $(SUB_LCD_SIZE)),NONE)
+ ifneq ($(strip $(PLATFORM)),TK6516)
+ $(warning ERROR: Please set SUB_LCD_SIZE when DUAL LCD (LCD_MODULE=$(strip $(LCD_MODULE))) is used)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifdef TC01_ERS_LOCATION
+ ifeq ($(strip $(TC01_ERS_LOCATION)),BACKUP)
+ ifneq ($(strip $(SYSDRV_BACKUP_DISK_SUPPORT)),FAT)
+ $(warning ERROR: PLEASE set SYSDRV_BACKUP_DISK_SUPPORT to be FAT or set TC01_ERS_LOCATION to be NVRAM)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifneq ($(filter __ACL_SUPPORT__,$(COM_DEFS)),)
+ ifeq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ $(warning ERROR: __ACL_SUPPORT__ cannot be defined if __PS_SERVICE__ not defined)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef MMA_MAX_NUM
+ ifeq ($(filter $(strip $(MMA_MAX_NUM)),$(strip $(MMA_MAX_NUM_VALUE))),)
+ $(warning ERROR: Please set MMA_MAX_NUM to 2-12.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(strip $(DATA_CARD_SPEECH)),TRUE)
+ DATA_CARD_SUPPORT_PLATFORM = MT6280 MT6290 $(strip $(SUPPORT_PLATFORM))
+ ifeq ($(filter $(strip $(PLATFORM)) ,$(DATA_CARD_SUPPORT_PLATFORM)),)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) not support DATA_CARD_SPEECH.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ ifeq ($(filter __MODEM_CARD__,$(COM_DEFS)),)
+ $(warning ERROR: only __MODEM_CARD__ project support DATA_CARD_SPEECH.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifneq ($(filter __CTP_SHIFT_FOR_HVGA_LCM__,$(strip $(COM_DEFS))),)
+ ifeq ($(filter __MTK_INTERNAL__,$(strip $(COM_DEFS))),)
+ $(warning ERROR: __CTP_SHIFT_FOR_HVGA_LCM__ is only available for VICTOR56V12 MTK internal project)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+#Rachel 20131125 add dependency for __4G_SW_DISABLE__
+ifneq ($(filter __4G_SW_DISABLE__,$(strip $(COM_DEFS))),)
+ ifeq ($(filter __MTK_INTERNAL__,$(strip $(COM_DEFS))),)
+ $(warning ERROR: __4G_SW_DISABLE__ is only available for MTK internal project)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(strip $(EMS_SUPPORT)),EMS_ULC_SLIM)
+ $(warning ERROR: MMI_VERSION must be PLUTO_MMI/COSMOS_MMI,when EMS_SUPPORT is set to EMS_ULC_SLIM)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+ifeq ($(strip $(TDD_RF_CUSTOM_TOOL_SUPPORT)),TRUE)
+ ifneq ($(strip $(L1_TDD128)),TRUE)
+ $(warning ERROR: TDD_RF_CUSTOM_TOOL_SUPPORT can NOT be TRUE when L1_TDD128 is not TRUE)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(strip $(NVRAM_BIND_TO_CHIP_CIPHER)),ENABLE)
+ ifeq ($(strip $(IC_TEST_TYPE)),IC_MODULE_TEST)
+ $(warning ERROR: please enable NVRAM_BIND_TO_CHIP_CIPHER only when IC_TEST_TYPE is not set as IC_MODULE_TEST.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+CHK_UPPER_CASE = $(shell perl ./tools/chkUpperCase.pl "$(PROJECT_MAKEFILE)")
+ifneq ($(strip $(CHK_UPPER_CASE)),)
+ $(warning ERROR: $(strip $(CHK_UPPER_CASE)).)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+##############rule_2
+ifneq ($(filter MT6575,$(PLATFORM)),)
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ ifeq ($(filter MT6162_RF,$(strip $(COM_DEFS))),)
+ $(warning ERROR: please define MT6162_RF when PLATFORM = MT6575 & UMTS_FDD_SUPPORT = UMTS_FDD_MODE_SUPPORT.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ ifneq ($(strip $(AFC_VCXO_TYPE)),VCTCXO)
+ $(warning ERROR: please set AFC_VCXO_TYPE as VCTCXO, when PLATFORM = MT6575 & UMTS_FDD_SUPPORT = UMTS_FDD_MODE_SUPPORT.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+##############rule_6
+ifeq ($(strip $(PLATFORM)),MT6575)
+ ifeq ($(strip $(UMTS_MODE_SUPPORT)),NONE)
+ ifneq ($(filter MT6162_RF AD6548_RF MT6140D_RF,$(strip $(COM_DEFS))),)
+ ifneq ($(filter AD6548_RF MT6140D_RF,$(strip $(COM_DEFS))),)
+ ifneq ($(strip $(AFC_VCXO_TYPE)),VCXO)
+ $(warning ERROR: please set AFC_VCXO_TYPE as VCXO, when PLATFORM = MT6575 & UMTS_MODE_SUPPORT = NONE & AD6548_RF/MT6140D_RF is defined.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ else
+ ifneq ($(strip $(AFC_VCXO_TYPE)),VCTCXO)
+ $(warning ERROR: please set AFC_VCXO_TYPE as VCTCXO, when PLATFORM = MT6575 & UMTS_MODE_SUPPORT = NONE & MT6162_RF is defined.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ else
+ $(warning ERROR: please define MT6162_RF/AD6548_RF/MT6140D_RF, when PLATFORM = MT6575 & UMTS_MODE_SUPPORT = NONE .)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifeq ($(strip $(TST_MALMO_SUPPORT)),TRUE)
+ ifneq ($(strip $(TST_SUPPORT)),TRUE)
+ $(call DEP_ERR_ONA_OR_OFFB,TST_SUPPORT,TST_MALMO_SUPPORT)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+
+ifdef 32K_XOSC_REMOVE
+ ifeq ($(strip $(32K_XOSC_REMOVE)), TRUE)
+ ifeq ($(filter $(32K_CRYSTAL_REMOVAL_SUPPORT_PLATFORM), $(strip $(PLATFORM))),)
+ DEPENDENCY_CONFLICT = TRUE
+ $(warning ERROR: 32K_XOSC_REMOVE only can be supported in $(32K_CRYSTAL_REMOVAL_SUPPORT_PLATFORM), $(PLATFORM) can not be supported)
+ endif
+ endif
+endif
+ifdef 32K_XOSC_REMOVE
+ ifeq ($(strip $(32K_XOSC_REMOVE)), TRUE)
+ ifeq ($(filter $(QUERY_32K_CRYSTAL_FROM_MD_PLATFORM), $(strip $(PLATFORM))),)
+ ifeq ($(filter $(QUERY_32K_CRYSTAL_FROM_AP_PLATFORM), $(strip $(PLATFORM))),)
+ $(warning ERROR: MUST define query 32K crystal in MD or AP side )
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+endif
+
+DUAL_TALK_SUPPORT_PLATFORM = MT6589 MT6290 MT6595 $(strip $(SUPPORT_PLATFORM))
+ifdef MDSYS
+ ifneq ($(strip $(MDSYS)),NONE)
+ ifeq ($(filter $(PLATFORM), $(strip $(DUAL_TALK_SUPPORT_PLATFORM))),)
+ DEPENDENCY_CHECK = TRUE
+ $(warning ERROR: MDSYS only can be set on $(DUAL_TALK_SUPPORT_PLATFORM).)
+ endif
+ endif
+endif
+
+COMBO_MEMORY_SUPPORT_PLATFORM = MT6280 MT6290 $(strip $(SUPPORT_PLATFORM))
+ifdef COMBO_MEMORY_SUPPORT
+ ifeq ($(strip $(COMBO_MEMORY_SUPPORT)),TRUE)
+ ifeq ($(filter $(PLATFORM), $(strip $(COMBO_MEMORY_SUPPORT_PLATFORM))),)
+ $(warning ERROR: COMBO_MEMORY_SUPPORT = TRUE just can be supported on $(COMBO_MEMORY_SUPPORT_PLATFORM).)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifdef GEMINI
+ ifeq ($(strip $(GEMINI)),2)
+ ifeq ($(strip $(GEMINI_VERSION)),V1)
+ $(warning ERROR: Please set GEMINI_VERSION other than V1 when GEMINI = 2!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+DHL_SUPPORT_PLATFORM = MT6290 MT6595 $(strip $(SUPPORT_PLATFORM))
+ifdef DHL_SUPPORT
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ ifeq ($(filter $(PLATFORM), $(strip $(DHL_SUPPORT_PLATFORM))),)
+ $(warning ERROR: DHL_SUPPORT can NOT be TRUE when PLATFORM = $(strip $(PLATFORM))!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+endif
+
+ifdef RTOS
+ ifeq ($(strip $(RTOS)),NUCLEUS)
+ ifneq ($(strip $(PLATFORM)),MT6589)
+ ifneq ($(strip $(MDSYS)),MD2)
+ $(warning ERROR: Only allow RTOS = NUCLEUS, when PLATFORM = MT6589 and MDSYS = MD2. Otherwise, RTOS = NUCLEUS_V2.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(DUAL_SIM_HOT_SWAP_CO_DECK)),TRUE)
+ ifeq ($(strip $(SIM_HOT_SWAP)),NONE)
+ $(warning ERROR: DUAL_SIM_HOT_SWAP_CO_DECK only can be TRUE when SIM_HOT_SWAP != NONE)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifeq ($(strip $(UL1_SUPPORT)),TRUE)
+ ifdef L1_WCDMA
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ ifneq ($(strip $(UMTS_FDD_PLATFORM)),TRUE)
+ $(warning ERROR: PLATFORM $(strip $(PLATFORM)) is not vaild UMTS_FDD_MODE_SUPPORT platform.)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
+ ifeq ($(strip $(COMPILER_VER)),MIPS_GCCV4)
+ $(warning ERROR: COMPILER_VER only can be MIPS_GCCV4 when COMPILER_ISA != NANOMIPS)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+ifdef KAL_DEBUG_LEVEL
+ ifeq ($(strip $(KAL_DEBUG_LEVEL)),RICH_DEBUG_KAL)
+ DEP_DEBUG_COMPILE_OPTION =DEBUG_KAL DEBUG_BUF2 DEBUG_BUF3 DEBUG_ITC DEBUG_TIMER DEBUG_TIMER2
+ ENABLED_DEBUG_COMPILE_OPTION = $(sort $(filter $(strip $(DEP_DEBUG_COMPILE_OPTION)),$(COM_DEFS)))
+ endif
+ ifeq ($(strip $(KAL_DEBUG_LEVEL)),NORMAL_DEBUG_KAL)
+ DEP_DEBUG_COMPILE_OPTION =DEBUG_KAL DEBUG_BUF2 DEBUG_ITC DEBUG_TIMER
+ ENABLED_DEBUG_COMPILE_OPTION = $(sort $(filter $(strip $(DEP_DEBUG_COMPILE_OPTION)),$(COM_DEFS)))
+ endif
+ ifeq ($(strip $(KAL_DEBUG_LEVEL)),SLIM_DEBUG_KAL)
+ DEP_DEBUG_COMPILE_OPTION = DEBUG_KAL DEBUG_BUF1
+ ENABLED_DEBUG_COMPILE_OPTION = $(sort $(filter $(strip $(DEP_DEBUG_COMPILE_OPTION)),$(COM_DEFS)))
+ endif
+ # dependency rule for KAL,BUFFER & ITC debug compile options
+ ifneq ($(strip $(ENABLED_DEBUG_COMPILE_OPTION)),)
+ ifneq ($(strip $(ENABLED_DEBUG_COMPILE_OPTION)),$(sort $(strip $(DEP_DEBUG_COMPILE_OPTION))))
+ DISABLED_DEBUG_COMPILE_OPTION = $(filter-out $(strip $(ENABLED_DEBUG_COMPILE_OPTION)),$(strip $(DEP_DEBUG_COMPILE_OPTION)))
+ $(warning ERROR: PLEASE turn on $(DISABLED_DEBUG_COMPILE_OPTION) or turn off $(ENABLED_DEBUG_COMPILE_OPTION))
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ # end
+ ifeq ($(strip $(KAL_DEBUG_LEVEL)),RELEASE_KAL)
+ DEP_DEBUG_COMPILE_OPTION =
+ ENABLED_DEBUG_COMPILE_OPTION = $(sort $(filter $(strip $(DEP_DEBUG_COMPILE_OPTION)),$(COM_DEFS)))
+ endif
+endif
+
+# *************************************************************************
+# check no_dsp and update_dsp
+# *************************************************************************
+ifeq ($(strip $(UPDATE_DSP)),TRUE)
+ ifeq ($(strip $(NO_DSP)),TRUE)
+ $(warning ERROR: NO_DSP can only be FALSE when update_dsp is enabled, please check!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ ifneq ($(filter BASIC L1S,$(TEST_LOAD_TYPE)),)
+ $(warning ERROR: update_dsp flow cannot be enabled for the project of BASIC or L1S, please check!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+endif
+
+# *************************************************************************
+# check custom folder exist or not
+# *************************************************************************
+ifndef MM_DEVICE
+ $(warning ERROR: Please define MM_DEVICE in project makefile.)
+ DEPENDENCY_CONFLICT = TRUE
+endif
+
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+define CheckCusFolder
+ ifneq ($(1),RF_MODULE)
+ ifeq ($$(wildcard $$(call CUSTOM_FLD_MAPPING,$$(strip $(2)))),)
+ $$(warning ERROR: $$(strip $(2))/$(BOARD_VER) or $(2)/_Default_BB does not exist, please help to check!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ else
+ ifneq ($$(strip ${3}),NONE)
+ ifeq ($$(wildcard $$(strip $(2))),)
+ $$(warning ERROR: $$(strip $(2)) does not exist, please help to check!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+endef
+
+CUS_FLD_SYS = ./custom/system
+CUS_FLD_DRV_GEN = ./custom/driver/drv_gen
+CUS_FLD_PS = ./custom/modem/ps
+CUS_FLD_AUDIO = ./custom/driver/audio
+CUS_FLD_MISC_DRV = ./custom/driver/drv/misc_drv
+CUS_FLD_META = ./custom/middleware/meta
+CUS_FLD_RF = custom/l1/gl1_rf/$(strip $(RF_MODULE))
+CUS_FLD_MM_RF = custom/l1/mml1_rf/$(strip $(MM_RF_MODULE))
+CUS_FLD_LTE_RF = custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))
+
+$(eval $(call CheckCusFolder,OTHERS,$(strip ${CUS_FLD_SYS})))
+$(eval $(call CheckCusFolder,OTHERS,$(strip ${CUS_FLD_DRV_GEN})))
+$(eval $(call CheckCusFolder,OTHERS,$(strip ${CUS_FLD_PS})))
+$(eval $(call CheckCusFolder,OTHERS,$(strip ${CUS_FLD_AUDIO})))
+$(eval $(call CheckCusFolder,OTHERS,$(strip ${CUS_FLD_MISC_DRV})))
+ifneq ($(strip $(MTK_SW_DOMAIN)),TRUE)
+$(eval $(call CheckCusFolder,OTHERS,$(strip ${CUS_FLD_META})))
+endif
+$(eval $(call CheckCusFolder,RF_MODULE,$(strip ${CUS_FLD_RF}),$(strip $(RF_MODULE))))
+$(eval $(call CheckCusFolder,RF_MODULE,$(strip ${CUS_FLD_MM_RF}),$(strip $(MM_RF_MODULE))))
+$(eval $(call CheckCusFolder,RF_MODULE,$(strip ${CUS_FLD_LTE_RF}),$(strip $(LTE_RF_MODULE))))
+
+
+define CheckRfCusFolder
+ ifneq ($$(strip ${1}),NONE)
+ ifneq ($$(strip ${3}),NONE)
+ ifeq ($$(wildcard $$(strip $(2))),)
+ $$(warning ERROR: $$(strip $(2)) does not exist, please help to check!)
+ DEPENDENCY_CONFLICT = TRUE
+ endif
+ endif
+ endif
+endef
+
+CUS_FLD_UMTS_RF = custom/l1/ul1_rf/$(strip $(UMTS_RF_MODULE))
+CUS_FLD_UMTS_TDD128_RF = custom/l1/tl1_rf/$(strip $(UMTS_TDD128_RF_MODULE))
+CUS_FLD_C2K_RF = custom/l1/cl1_rf/$(strip $(C2K_RF_MODULE))
+$(eval $(call CheckRfCusFolder,$(strip ${UMTS_FDD_SUPPORT}),$(strip ${CUS_FLD_UMTS_RF}),$(strip $(UMTS_RF_MODULE))))
+$(eval $(call CheckRfCusFolder,$(strip ${UMTS_TDD_SUPPORT}),$(strip ${CUS_FLD_UMTS_TDD128_RF}),$(strip $(UMTS_TDD128_RF_MODULE))))
+$(eval $(call CheckRfCusFolder,$(strip ${C2K_MODE_SUPPORT}),$(strip ${CUS_FLD_C2K_RF}),$(strip $(C2K_RF_MODULE))))
+endif
diff --git a/mcu/make/common/rule_def/hif_main.mak b/mcu/make/common/rule_def/hif_main.mak
new file mode 100644
index 0000000..5f30edd
--- /dev/null
+++ b/mcu/make/common/rule_def/hif_main.mak
@@ -0,0 +1,659 @@
+#
+# HIF service interface exported to other catagories (e.g. modem)
+#
+COMMINCDIRS += ./interface/service/hif
+COMMINCDIRS += ./interface/service/hif
+
+#
+# HIF service . components
+#
+COMPLIST += hmu
+COM_DEFS += __HMU_ENABLE__
+
+ifneq ($(ORIGINAL_FLAVOR),BASIC_HIF)
+ COMPLIST += hmu_sec
+endif
+
+#
+# HIF middleware interface exported to other catagories (e.g. modem)
+#
+COMMINCDIRS += interface/middleware/hif
+
+#
+# HIF middleware . compnents
+#
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(ORIGINAL_FLAVOR),BASIC_HIF)
+ COMPLIST += nmu
+ COM_DEFS += __NMU_ENABLE__
+ COMP_TRACE_DEFS_MODEM += middleware/hif/nmu/core/inc/nmu_trace_mod_nmu_utmd.json
+ COMP_TRACE_DEFS_MODEM += middleware/hif/nmu/dhcp4c/include/dhcp4c_trace_mod_dhcp4c_utmd.json
+ COMP_TRACE_DEFS_MODEM += middleware/hif/nmu/ndpc/include/ndpc_trace_mod_ndpc_utmd.json
+ endif
+endif
+
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(ORIGINAL_FLAVOR),BASIC_HIF)
+ COMPLIST += ipcore
+ COMPLIST += tmc
+ COMPLIST += ipc_fragment
+ COMPLIST += dpfm
+ COMPLIST += vnif
+ COM_DEFS += __IPCORE_SUPPORT__
+ COM_DEFS += __TMC_SUPPORT__
+ COM_DEFS += __IPC_FRAG_SUPPORT__
+ COM_DEFS += __DPFM_SUPPORT__
+ COM_DEFS += __VNIF_SUPPORT__
+
+ COMP_TRACE_DEFS_MODEM += middleware/hif/ipcore/include/ipc_trace_mod_ipcore_utmd.json
+ COMP_TRACE_DEFS_MODEM += middleware/hif/tmc/include/tmc_trace_mod_tmc_utmd.json
+ COMP_TRACE_DEFS_MODEM += middleware/hif/dpfm/include/dpfm_trace_mod_dpfm_utmd.json
+ COMP_TRACE_DEFS_MODEM += middleware/hif/vnif/include/vnif_trace_mod_vnif_utmd.json
+ ifneq ($(strip $(MTK_MODEM_ARCH)),MT6293)
+ COMPLIST += ipfcore
+ COMP_TRACE_DEFS_MODEM += middleware/hif/ipfcore/core/include/ipfc_core_trace_mod_ipfcore_utmd.json
+ COMMON_UTMD_FILES += middleware/hif/ipfcore/core/include/ipfcore_data_path_trace_utmd.json
+ COM_DEFS += __IPFCORE_SUPPORT__
+ endif
+ endif
+endif
+
+ifeq ($(strip $(MCIF_WIFI_SUPPORT)),TRUE)
+ COMPLIST += mdfpm
+ COM_DEFS += __MDFPM_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += service/mdfpm/include/mdfpm_trace_mod_mdfpm_utmd.json
+endif
+
+
+#
+# HIF data path trace log
+#
+COMMON_UTMD_FILES += driver/hif_drv/src/hif_drv_data_path_trace_utmd.json
+COMMON_UTMD_FILES += middleware/hif/interface/hif_mw_data_path_ipcore_trace_utmd.json
+
+#COM_DEFS += __TTY_UT__
+#COM_DEFS += __EXCEPT_TTY_UT__
+
+#
+# HIF dependent makefile
+#
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ifdef HIF_USB_SUPPORT
+ifeq ($(strip $(HIF_USB_SUPPORT)), TRUE)
+ #
+ # USB . compiler option
+ #
+ COM_DEFS += __HIF_USB_SUPPORT__
+ COM_DEFS += __USE_USB_CTRL_MD__
+
+ ifdef USB_PORT_CUSTOMIZATION
+ ifeq ($(strip $(USB_PORT_CUSTOMIZATION)), TRUE)
+ COM_DEFS += __USB_PORT_CUSTOMIZATION__
+ endif
+ endif
+
+ ifdef HIF_USB_ENUM_PORT_FOR_AP
+ ifeq ($(strip $(HIF_USB_ENUM_PORT_FOR_AP)), TRUE)
+ COM_DEFS += __HIF_USB_ENUM_PORT_FOR_AP__
+ endif
+ endif
+ #
+ # USB service . components
+ #
+ COMPLIST += ubm
+ COM_DEFS += __UBM_ENABLE__
+ ifdef UBM_UT
+ ifeq ($(strip $(UBM_UT)), TRUE)
+ COM_DEFS += __UBM_UT__
+ endif
+ endif
+
+ #
+ # USB . components
+ #
+ COMPLIST += usbcore
+ COMPLIST += usbidle
+ COM_DEFS += __USBCORE_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += middleware/hif/usbcore/include/usbcore_trace_mod_usbcore_utmd.json
+
+ ifdef MDDP_USB_SUPPORT
+ ifeq ($(strip $(MDDP_USB_SUPPORT)), TRUE)
+ COMPLIST += ufpm
+ COM_DEFS += __MTK_MD_DIRECT_USB_SUPPORT__
+ COM_DEFS += __MTK_MD_DIRECT_TETHERING_SUPPORT__
+ COM_DEFS += __MDDP_USB_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += middleware/hif/ufpm/include/ufpm_trace_mod_ufpm_utmd.json
+ endif
+ endif
+
+ ifdef MTK_MD_DIRECT_LOGGING_SUPPORT
+ ifeq ($(strip $(MTK_MD_DIRECT_LOGGING_SUPPORT)), TRUE)
+ COMPLIST += ufpm
+ COM_DEFS += __MTK_MD_DIRECT_USB_SUPPORT__
+ COM_DEFS += __MTK_MD_DIRECT_LOGGING_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += middleware/hif/ufpm/include/ufpm_trace_mod_ufpm_utmd.json
+ endif
+ endif
+
+ COMPLIST += usbclass
+ COM_DEFS += __USBCLASS_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += middleware/hif/usbclass/task/include/ucd_trace_mod_usbclass_utmd.json
+
+ ifneq ($(strip $(MTK_MODEM_ARCH)),MT6293)
+ COM_DEFS += __USB_HEADER_GENERATOR_SUPPORT__
+ endif
+
+ #
+ # USB Class specific makefile macro and compiler option
+ #
+ ifdef USB_ACM_SUPPORT
+ ifeq ($(strip $(USB_ACM_SUPPORT)), TRUE)
+ COM_DEFS += __USB_ACM_SUPPORT__
+ COM_DEFS += __USB_ADB_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += middleware/hif/usbclass/acm/include/cdcacm_trace_mod_acm_utmd.json
+ endif
+ endif
+
+ ifdef USB_RNDIS_SUPPORT
+ ifeq ($(strip $(USB_RNDIS_SUPPORT)), TRUE)
+ COM_DEFS += __USB_RNDIS_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += middleware/hif/usbclass/rndis/include/rndis_trace_mod_rndis_utmd.json
+
+ # RNDIS needs to attach with ETHERCORE
+ ETHERCORE_SUPPORT = TRUE
+ endif
+ endif
+
+ ifdef USB_ETHERCORE_VIRTUAL_INTERFACE_SUPPORT
+ ifeq ($(strip $(USB_ETHERCORE_VIRTUAL_INTERFACE_SUPPORT)), TRUE)
+ COM_DEFS += __USB_ETHERCORE_VIRTUAL_INTERFACE_SUPPORT__
+ endif
+ endif
+
+ ifdef USB_ECM_SUPPORT
+ ifeq ($(strip $(USB_ECM_SUPPORT)), TRUE)
+ COM_DEFS += __USB_ECM_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += middleware/hif/usbclass/ecm/include/cdcecm_trace_mod_ecm_utmd.json
+
+ # ECM needs to attach with ETHERCORE
+ ETHERCORE_SUPPORT = TRUE
+ endif
+ endif
+
+ ifdef USB_MBIM_SUPPORT
+ ifeq ($(strip $(USB_MBIM_SUPPORT)), TRUE)
+ COM_DEFS += __USB_MBIM_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += middleware/hif/usbclass/mbim/include/mbim_trace_mod_mbim_utmd.json
+ endif
+ endif
+
+ ifdef USB_MSD_SUPPORT
+ ifeq ($(strip $(USB_MSD_SUPPORT)), TRUE)
+ COM_DEFS += __USB_MSD_SUPPORT__
+ COM_DEFS += __USBMSD_TASK_DISABLE__
+ #COMP_TRACE_DEFS_MODEM += middleware/hif/usbclass/msd/include/ms_trace_mod_usbmsd_utmd.json
+ endif
+ endif
+endif
+endif
+endif
+
+ifdef HIF_CLDMA_SUPPORT
+ ifeq ($(strip $(HIF_CLDMA_SUPPORT)), TRUE)
+ #
+ # CLDMA . compiler option
+ #
+ COM_DEFS += __HIF_CLDMA_SUPPORT__
+ COM_DEFS += __APOLLO_CLDMA_SUPPORT__
+ COM_DEFS += __CLDMA1_SUPPORT__
+
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6293)
+ #don't build CLDMA Core
+ else ifeq ($(strip $(MTK_MODEM_ARCH)), MT6295)
+ #don't build CLDMA Core
+ else
+ #
+ # CLDMACORE common compiler option
+ #
+ HIF_CLDMACORE_SUPPORT = TRUE
+ COM_DEFS += __HIF_CLDMACORE_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += driver/cldmacore/include/cldmacore_trace_mod_cldmacore_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/cl_hif/hif_cldmadev/inc/hifcldma_trace_mod_hifcldma_utmd.json
+
+ #
+ # CLDMA common components
+ #
+ COMPLIST += cldmacore
+ COMPLIST += cldmadev
+ COM_DEFS += __CLDMACORE_SUPPORT__
+ #COM_DEFS += __CLDMAIPC_SUPPORT__
+ #
+ # CLDMA . Include Path
+ #
+ INC_DIR += interface/driver/regbase \
+ driver/hif/inc/hif_cldmadev
+
+ COMMINCDIRS += interface/driver/cldmacore
+ endif
+ endif
+endif
+
+ifdef HIF_DPMAIF_SUPPORT
+ ifeq ($(strip $(HIF_DPMAIF_SUPPORT)), TRUE)
+ #
+ # DPMAIF . compiler option
+ #
+ COM_DEFS += __HIF_DPMAIF_SUPPORT__
+ endif
+ ifdef HIF_DPMAIF_DP_MD_SUPPORT
+ ifeq ($(strip $(HIF_DPMAIF_DP_MD_SUPPORT)), TRUE)
+ ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(ORIGINAL_FLAVOR),BASIC_HIF)
+ COM_DEFS += __HIF_DPMAIF_DP_SUPPORT__
+ COMPLIST += dpmaifdrv_dp
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifdef HIF_CCISM_SUPPORT
+ ifeq ($(strip $(HIF_CCISM_SUPPORT)), TRUE)
+ #
+ # CCISM . compiler option
+ #
+ COM_DEFS += __HIF_CCISM_SUPPORT__
+
+ #
+ # CCISM . components
+ #
+ COMPLIST += ccismcore
+ COM_DEFS += __CCISMCORE_SUPPORT__
+
+ #
+ # CCISM IT
+ #
+ #COM_DEFS += __CCISMCORE_IT__
+ #COM_DEFS += __CCISMCORE_IT_BUFF__
+ #COM_DEFS += __CCISMCORE_IT_TTY__
+
+ COMP_TRACE_DEFS_MODEM += driver/ccismcore/include/ccismcore_trace_mod_ccismcore_utmd.json
+
+ #
+ # CCISM interface exported to other catagories (e.g. service/CCCI)
+ #
+ COMMINCDIRS += interface/driver/ccismcore
+ endif
+endif
+
+ifdef HIF_CCISM_SCP_SUPPORT
+ ifeq ($(strip $(HIF_CCISM_SCP_SUPPORT)), TRUE)
+ #
+ # CCISM . compiler option
+ #
+ COM_DEFS += __HIF_CCISM_SCP_SUPPORT__
+
+ #
+ # CCISM . components
+ #
+ COMPLIST += scpccismcore
+
+ COMP_TRACE_DEFS_MODEM += driver/ccismcore_scp/include/ccismcore_scp_trace_mod_scpccism_utmd.json
+
+ #
+ # CCISM interface exported to other catagories (e.g. service/CCCI)
+ #
+ COMMINCDIRS += interface/driver/ccismcore_scp
+ endif
+endif
+
+ifdef HIF_WCCIF_SUPPORT
+ ifeq ($(strip $(HIF_WCCIF_SUPPORT)), TRUE)
+ #
+ # CCIF . compiler option
+ #
+ COM_DEFS += __HIF_WCCIF_SUPPORT__
+ COMPLIST += wccifdev
+ #
+ # CCIF . components
+ #
+ #COMPLIST += wccifcore
+ ifeq ($(strip $(HIF_CLDMA_SUPPORT)), FALSE)
+ COM_DEFS += __CCIFCORE_SUPPORT__ __CCIFRX_HISR_DISABLE__
+ COMPLIST += ccifcore
+ endif
+ #
+ # CCIF . Include Path
+ #
+ INC_DIR = interface/driver/regbase \
+ driver/hif/inc/hif_ccif
+
+ #COMMINCDIRS += interface/driver/wccifcore
+ endif
+endif
+
+ifdef HIF_MHCCIF_SUPPORT
+ ifeq ($(strip $(HIF_MHCCIF_SUPPORT)), TRUE)
+ COM_DEFS += __HIF_MHCCIF_SUPPORT__
+ COMPLIST += mhccifdev
+
+ INC_DIR = interface/driver/regbase \
+ driver/hif/inc/hif_mhccifdev
+
+ endif
+endif
+
+ifdef HIF_PCIE_SUPPORT
+ ifeq ($(strip $(HIF_PCIE_SUPPORT)), TRUE)
+ COM_DEFS += __HIF_PCIE_SUPPORT__
+ COMPLIST += pciedev
+
+ INC_DIR = interface/driver/regbase \
+ driver/hif/inc/hif_pciedev
+
+ endif
+endif
+ifdef HIF_PCCIF_ARM7_SUPPORT
+ ifeq ($(strip $(HIF_PCCIF_ARM7_SUPPORT)), TRUE)
+ #
+ # PCCIF . compiler option
+ #
+ COM_DEFS += __HIF_PCCIF_ARM7_SUPPORT__
+ COMPLIST += pccifdev
+ #
+ # PCCIF . components
+ #
+ #COMPLIST += wccifcore
+ #ifeq ($(strip $(HIF_CLDMA_SUPPORT)), FALSE)
+ # COM_DEFS += __CCIFCORE_SUPPORT__ __CCIFRX_HISR_DISABLE__
+ # COMPLIST += ccifcore
+ #endif
+ #
+ # PCCIF . Include Path
+ #
+ INC_DIR = interface/driver/regbase \
+ driver/hif/inc/hif_pccif
+ #COMMINCDIRS += interface/driver/wccifcore
+ endif
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifdef HIF_PCCIF4_SUPPORT
+ ifeq ($(strip $(HIF_PCCIF4_SUPPORT)), TRUE)
+ COM_DEFS += __HIF_PCCIF4_SUPPORT__
+ COMPLIST += pccif4dev
+ endif
+ endif # HIF_PCCIF4_SUPPORT
+
+ ifdef HIF_PCCIF5_SUPPORT
+ ifeq ($(strip $(HIF_PCCIF5_SUPPORT)), TRUE)
+ COM_DEFS += __HIF_PCCIF5_SUPPORT__
+ COMPLIST += pccif5dev
+ endif
+ endif # HIF_PCCIF5_SUPPORT
+endif
+
+ifdef HIF_SECPCCIF_SUPPORT
+ ifeq ($(strip $(HIF_SECPCCIF_SUPPORT)), TRUE)
+ #
+ # PCCIF . compiler option
+ #
+ COM_DEFS += __HIF_SECPCCIF_SUPPORT__
+ COMPLIST += secpccifdev
+ #
+ # PCCIF . components
+ #
+ #COMPLIST += wccifcore
+ #ifeq ($(strip $(HIF_CLDMA_SUPPORT)), FALSE)
+ # COM_DEFS += __CCIFCORE_SUPPORT__ __CCIFRX_HISR_DISABLE__
+ # COMPLIST += ccifcore
+ #endif
+ #
+ # PCCIF . Include Path
+ #
+ #INC_DIR = interface/driver/regbase \
+ # driver/hif/inc/hif_pccif
+ endif
+endif
+
+ifdef HIF_UART_SUPPORT
+ ifeq ($(strip $(HIF_UART_SUPPORT)), TRUE)
+ #
+ # UART . compiler option
+ #
+ COM_DEFS += __HIF_UART_SUPPORT__
+
+ #
+ # UART . components
+ #
+ COMPLIST += uartcore
+ COM_DEFS += __UARTCORE_SUPPORT__
+ endif
+endif
+
+#
+# HIF optional components
+#
+ifdef ETHERCORE_SUPPORT
+ ifeq ($(strip $(ETHERCORE_SUPPORT)), TRUE)
+ COMPLIST += ethercore
+ COM_DEFS += __ETHERCORE_SUPPORT__
+
+ COMP_TRACE_DEFS_MODEM +=
+ COMMON_UTMD_FILES += middleware/hif/interface/ethercore_data_path_trace_utmd.json
+ endif
+endif
+
+ifdef LTM_SIMULATION_SUPPORT
+ ifeq ($(strip $(LTM_SIMULATION_SUPPORT)), TRUE)
+ COMPLIST += ltm_sim
+ COM_DEFS += __LTM_SIMULATION_SUPPORT__
+ endif
+endif
+
+ifdef HIF_LHIF_SUPPORT
+ ifeq ($(strip $(HIF_LHIF_SUPPORT)), TRUE)
+ LHIF_ENABLE := TRUE
+ endif
+endif
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ LHIF_ENABLE := TRUE
+endif
+ifeq ($(strip $(HIF_USB_SUPPORT)), TRUE)
+ LHIF_ENABLE := TRUE
+endif
+
+ifeq ($(strip $(LHIF_ENABLE)), TRUE)
+ #
+ # LHIF . compiler option
+ #
+ COM_DEFS += __HIF_LHIF_SUPPORT__
+
+ #
+ # LHIF . components
+ #
+ COMPLIST += lhifcore
+ COM_DEFS += __LHIFCORE_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += driver/lhifcore/include/lhifcore_trace_mod_lhifcore_utmd.json
+ COMMINCDIRS += interface/driver/lhifcore
+ COMMINCDIRS += interface/driver/hif/hif_lhifdev
+endif
+
+
+ifdef HIF_SDIO_SUPPORT
+ ifeq ($(strip $(HIF_SDIO_SUPPORT)), TRUE)
+ #
+ # SDIO . compiler option
+ #
+ COM_DEFS += __HIF_SDIO_SUPPORT__
+
+ #
+ # SDIO . components
+ #
+ COMPLIST += sdiocore
+ COM_DEFS += __SDIOCORE_SUPPORT__
+
+ COMP_TRACE_DEFS_MODEM += driver/sdiocore/include/sdiocore_trace_mod_sdiocore_utmd.json
+
+ #
+ # SDIO interface exported to other catagories (e.g. ./service/CCCI)
+ #
+ COMMINCDIRS += interface/driver/sdiocore
+ endif
+endif
+
+ifdef HIF_CCCI_SUPPORT
+ ifeq ($(strip $(HIF_CCCI_SUPPORT)), TRUE)
+ #
+ # For support multi-product - compile option
+ # SMART_PHONE_CORE == ANDROID_MODEM --> SOC
+ # SMART_PHONE_CORE != ANDROID_MODEM --> Thin Modem
+ #
+ ifeq ($(strip $(SMART_PHONE_CORE)), ANDROID_MODEM)
+ COM_DEFS += __CCCI_PRODUCT_TYPE_SOC__
+ else
+ COM_DEFS += __CCCI_PRODUCT_TYPE_THIN_MODEM__
+ ifeq ($(strip $(HIF_CLDMACORE_SUPPORT)), TRUE)
+ COM_DEFS += __CCCI_PRODUCT_TYPE_PCIE_THIN_MODEM__
+ else
+ # COM_DEFS += __CCCI_PRODUCT_TYPE_USB_THIN_MODEM__ //no need USB option
+ endif
+ endif
+
+ #
+ # CCCI . compiler option
+ #
+ COM_DEFS += __HIF_CCCI_SUPPORT__
+ COM_DEFS += __HIF_NCCCI_SUPPORT__
+ #
+ # CCCI . components
+ #
+ COMPLIST += nccci
+ COM_DEFS += __CCCI_SUPPORT__
+
+ #
+ # For CCCI MT6575 loopback test
+ #
+ #COM_DEFS += __CCCI_LB_IT__ #conflict with __CCCI_FS_IT__
+
+ COMP_TRACE_DEFS_MODEM += service/hif/nccci/include/ccci_trace_mod_ccci_utmd.json
+
+ endif
+
+ ifdef CCCI_DEV_SUPPORT
+ ifeq ($(strip $(CCCI_DEV_SUPPORT)), TRUE)
+ COMPLIST += ncccidev ncccisrv
+ COM_DEFS += __CCCIDEV_SUPPORT__ __CCCITTY_SUPPORT__ __CCCIIPC_SUPPORT__ __CCCIRPC_SUPPORT__
+
+ #
+ # For CCCI_FS/EMCS IT
+ #
+ #COM_DEFS += __CCCI_FS_IT__ #conflict with __CCCI_LB_IT__
+
+ #
+ # For CCCI_TTY IT
+ #
+ #COM_DEFS += __CCCI_TTY_IT__ #conflict with __CCCI_LB_IT__
+
+ #
+ # For CCCI IT MODE CONTROL
+ #
+ #COM_DEFS += __CCCI_IT_CTRL__ CCCI_IT_MODE_CONTROL_CCCI_IPC CCCI_IT_MODE_CONTROL_CCCI_RPC
+
+ COMP_TRACE_DEFS_MODEM += middleware/hif/ncccidev/cccidev_task/include/cccidev_trace_mod_cccidev_utmd.json
+ COMP_TRACE_DEFS_MODEM += middleware/hif/ncccidev/ccci_tty/include/cccitty_trace_mod_cccitty_utmd.json
+ ifdef CCCI_CCMNI_SUPPORT
+ ifeq ($(strip $(CCCI_CCMNI_SUPPORT)), TRUE)
+ COM_DEFS += __NCCMNI_SUPPORT__
+ COMP_TRACE_DEFS_MODEM += middleware/hif/ncccidev/ccci_nccmni/include/nccmni_trace_mod_nccmni_utmd.json
+ endif
+ endif
+ COMP_TRACE_DEFS_MODEM += service/hif/ncccisrv/ccci_ipc/include/ccci_ipc_trace_mod_ccciipc_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/hif/ncccisrv/ccci_rpc/include/ccci_rpc_trace_mod_cccirpc_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/hif/ncccisrv/cccisrv_task/include/cccisrv_trace_mod_cccisrv_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/hif/ncccisrv/ccci_sys_msg/include/ccci_sys_msg_trace_mod_cccimsg_utmd.json
+ #RPC IPC shall add here like ccci_fs
+
+ ifdef CCCI_FS_SUPPORT
+ ifeq ($(strip $(CCCI_FS_SUPPORT)), TRUE)
+ COMP_TRACE_DEFS_MODEM += service/hif/ncccisrv/ccci_fs/include/ccci_fs_trace_mod_cccifs_utmd.json
+ endif
+ endif
+ endif
+ endif
+endif
+
+
+#
+# HIF Latency Trace
+#
+COMPLIST += hlt
+COM_DEFS += __HLT_SUPPORT__
+COMP_TRACE_DEFS_MODEM +=
+
+ifeq ($(strip $(call Upper,$(UE_SIMULATOR))),TRUE)
+ #
+ # CSCD . compiler option
+ #
+ COM_DEFS += __HIF_CSCDCORE_SUPPORT__
+
+ #
+ # cscd . components
+ #
+ COMPLIST += cscdcore
+
+ #
+ # cscd IT
+ #
+ #COM_DEFS += __CSCDCORE_IT__ #should open with __CSCDCORE_IT2__
+ #COM_DEFS += __CSCDCORE_IT2__ #should open with __CSCDCORE_IT__
+
+ COMP_TRACE_DEFS_MODEM += driver/cscdcore/include/cscdcore_trace_mod_cscdcore_utmd.json
+
+ #
+ # CSCD interface exported to other catagories (e.g. service/CCCI)
+ #
+ COMMINCDIRS += interface/driver/cscdcore
+endif
+
+ifeq ($(strip $(call Upper,$(UE_SIMULATOR))),TRUE)
+ #
+ # CSCD . compiler option
+ #
+ COM_DEFS += __HIF_CSCD_SUPPORT__
+
+ #
+ # cscd . components
+ #
+ COMPLIST += cscdev
+
+ #COMP_TRACE_DEFS_MODEM += driver/cscdcore/include/cscdcore_trace_mod_cscdcore_utmd.json
+
+ #
+ # CSCD interface exported to other catagories (e.g. service/CCCI)
+ #
+ COMMINCDIRS += interface/driver/hif/hif_cscdev
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifdef MDDP_WH_SUPPORT
+ ifeq ($(strip $(MDDP_WH_SUPPORT)), TRUE)
+ COM_DEFS += __MDDP_WH_SUPPORT__
+ COM_DEFS += __TEMP_MDDP_WH_SUPPORT__
+ endif
+ endif
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifdef MCIF_SUPPORT
+ ifeq ($(strip $(MCIF_SUPPORT)), TRUE)
+ COMMON_UTMD_FILES += driver/mcif_drv/common/inc/mcifdrv_trace_utmd.json
+ ifdef MCIF_WIFI_SUPPORT
+ ifeq ($(strip $(MCIF_WIFI_SUPPORT)), TRUE)
+ COMMON_UTMD_FILES += service/mcif/wsvc/inc/wsvc_trace_l2_utmd.json
+ COMMON_UTMD_FILES += service/ethsvc/inc/ethsvc_data_path_trace_utmd.json
+ endif
+ endif
+ endif
+ endif
+endif
diff --git a/mcu/make/common/rule_def/mpd_sp_def.mak b/mcu/make/common/rule_def/mpd_sp_def.mak
new file mode 100644
index 0000000..12c4eb5
--- /dev/null
+++ b/mcu/make/common/rule_def/mpd_sp_def.mak
@@ -0,0 +1,568 @@
+#------------------------------
+#Initial parameter
+#------------------------------
+COMP_TRACE_DEFS_MODEM_4G :=
+L1_UTMD_FILES_4G :=
+FOURG_COMP :=
+FIVEG_COMP :=
+#------------------------------
+# 4G Components
+#------------------------------
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ FOURG_COMP += prbm
+ L1_UTMD_FILES_4G += service/prbm/src/prbm_trace_utmd.json
+ endif
+
+ ifeq ($(strip $(LTE_DUMMY_PROTOCOL_ENABLE)),TRUE)
+ FOURG_COMP += l1edps
+ endif
+
+ ifneq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(strip $(LTE_EL1S_COSIM)),TRUE)
+ FOURG_COMP += el1
+ ifneq ($(filter __LTE_PHY_TEST__,$(COM_DEFS)),)
+ FOURG_COMP += tstm
+ else
+ FOURG_COMP += tstm_meta
+ endif
+ endif
+ FOURG_COMP += el1d edsphwram el1d_tpc el1d_agc
+ else
+ FOURG_COMP += el1
+ ifneq ($(wildcard l1/el1/el1c),)
+ ifeq ($(strip $(LTE_DUMMY_PROTOCOL_ENABLE)),TRUE)
+ COMMINCDIRS += l1/el1/el1c/comm/l1edps/include/internal \
+ interface/protocol/lte
+ endif
+ endif
+ endif
+ endif
+
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V2)
+ FOURG_COMP += rohc_v2
+ else
+ FOURG_COMP += rohc
+ endif
+ endif
+
+ ifneq ($(strip $(LTE_DUMMY_PROTOCOL_ENABLE)),TRUE)
+ FOURG_COMP += emm emm_sec esm eval errc errc_sec etc
+ endif
+
+ ifeq ($(strip $(FPGA_L1_ROUTER_SUPPORT)),TRUE)
+ FOURG_COMP += el1b u4ghlsim_l1_sec
+ endif
+
+ ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V2)
+ COMP_TRACE_DEFS_MODEM_NR_SEC += protocol/enl2/pdcp/epdcp/src/epdcp_trc_mod_enpdcp_utmd.json \
+ protocol/enl2/pdcp/common/src/enpdcp_trc_mod_enpdcp_utmd.json \
+ protocol/enl2/common/enl2_free/src/enl2_free_trc_mod_enl2_free_utmd.json
+
+ COMP_TRACE_DEFS_MODEM_4G += protocol/enl2/trace/el2/el2_trc_mod_el2portal_utmd.json
+
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/emac_trace_public_1_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/emac_trace_public_2_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/emac_trace_internal_1_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/emac_trace_internal_2_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/emac_trace_protect_internal_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/emac_trace_protect_public_utmd.json
+ endif
+
+ COMP_TRACE_DEFS_MODEM_LTE_SEC += protocol/el2/rohc/interface/rohc_trc_mod_rohc_utmd.json
+
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V2)
+ L1_UTMD_FILES_4G += protocol/enl2/trace/enl2_rb_idx_api_trace_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/enpdcp_trace_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/enpdcp_trace_internal_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/enpdcp_trace_public_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/enpdcp_trace_protect_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/enpdcp_trace_pcl_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcdl_trace_protect_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcul_trace_protect_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcdl_trace_internal_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcul_trace_internal_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcdl_trace_designinfo_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcul_trace_designinfo_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcdl_trace_public_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcul_trace_public_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcdl_trace_pcl_public_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcul_trace_pcl_public_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcdl_trace_pcl_internal_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcul_trace_pcl_internal_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcdl_trace_pcl_protect_utmd.json
+ L1_UTMD_FILES_4G += protocol/enl2/trace/el2/erlcul_trace_pcl_protect_utmd.json
+ endif
+ endif
+
+ ifeq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ FOURG_COMP += el1b u4ghlsim_hw_sec u4ghlsim_l1_sec
+ else
+ ifeq ($(strip $(UE_SIMULATOR)), TRUE)
+ ifeq ($(strip $(C2K_MODE_SUPPORT)), NONE)
+ FOURG_COMP += esim_phy
+ endif
+ endif
+ endif
+
+ ifeq ($(__ESL_COSIM_LTE__),TRUE)
+ ifeq ($(MPD_SOURCE_FULL_BUILD),TRUE)
+ COMMINCDIRS += interface/driver/l2copro
+ endif
+ endif
+
+ ifeq ($(strip $(MPD_SOURCE_4G_BUILD)),TRUE)
+ COMMINCDIRS += protocol/lte_sec
+ COMMINCDIRS += protocol/interface/lte_sec
+
+
+ # L1 TRACE FILES
+ ifneq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ ifneq ($(strip $(LTE_DUMMY_PROTOCOL_ENABLE)),TRUE)
+ #ifneq ($(wildcard protocol/nrrc),)
+ L1_UTMD_FILES_4G += protocol/lte_sec/errc/common/include/errc_lisr_trc_utmd.json
+ #else
+ # COMMON_UTMD_FILES += CuStOm_StArT_ERRC protocol/lte_sec/errc/common/include/errc_lisr_trc_utmd.json CuStOm_EnD_ERRC
+ #endif
+ endif
+ ifeq ($(strip $(FPGA_L1_ROUTER_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM_LTE_SEC += protocol/lte_sec/smt/u4gHlAdaptor/el1b/intf/el1b_trc_mod_el1b_utmd.json
+ COMP_TRACE_DEFS_MODEM_NR_SEC += protocol/smt/uesim_lte/nl1b/intf/nl1b_trc_mod_nl1_utmd.json
+ endif
+ else
+ COMP_TRACE_DEFS_MODEM_LTE_SEC += protocol/lte_sec/smt/u4gHlAdaptor/el1b/intf/el1b_trc_mod_el1b_utmd.json
+ COMP_TRACE_DEFS_MODEM_NR_SEC += protocol/smt/uesim_lte/nl1b/intf/nl1b_trc_mod_nl1_utmd.json
+ endif
+
+ # MT6290 FPGA setting
+ ifeq ($(strip $(MT6290_FIRST_CALL)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COM_DEFS += __MT6290_FIRST_CALL__
+ endif
+ endif
+ ifeq ($(strip $(MT6290_FPGA)),TRUE)
+ COM_DEFS += __MT6290_FPGA__
+ endif
+
+ # EVAL trace
+ COMMINCDIRS += protocol/lte_sec/enas/eval/include
+ COMP_TRACE_DEFS_MODEM_4G += protocol/lte_sec/enas/eval/include/eval_trc_mod_eval_utmd.json
+
+ COMPLIST += $(FOURG_COMP)
+ else
+ COMPOBJS += $(call sort,$(foreach lib,$(FOURG_COMP),$(CUS_MTK_LIB)/$(lib).a))
+ endif#ifeq ($(MPD_SOURCE_4G_BUILD),TRUE)
+endif
+
+# L2 TRACE FILES (re-use L1_UTMD_FILES_LTE_SEC)
+
+
+ifneq ($(strip $(FIVEG_MODE_SUPPORT)),NONE)
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_dl_trace_internal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_dl_trace_public_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_dl_trace_normal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_dl_trace_protect_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_main_trace_internal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_main_trace_public_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_main_trace_normal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_main_trace_protect_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_mux_trace_internal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_mux_trace_public_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_mux_trace_normal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nmac_mux_trace_protect_utmd.json
+
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcdl_trace_designinfo_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcdl_trace_internal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcdl_trace_public_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcdl_trace_protect_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcdl_trace_pcl_internal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcdl_trace_pcl_public_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcul_trace_designinfo_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcul_trace_internal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcul_trace_public_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcul_trace_protect_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcul_trace_pcl_internal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nrlcul_trace_pcl_public_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nl2txrlc_trace_designinfo_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nl2txrlc_trace_internal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nl2txrlc_trace_public_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/nl2txrlc_trace_protect_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/npdcp_trace_internal_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/npdcp_trace_protect_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/npdcp_trace_public_utmd.json
+ L1_UTMD_FILES_LTE_SEC += protocol/enl2/trace/nl2/npdcp_trace_pcl_utmd.json
+ endif
+endif
+
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ include make/common/rule_def/hif_main.mak
+else
+ ifeq ($(ORIGINAL_FLAVOR),BASIC_HIF)
+ include make/common/rule_def/hif_main.mak
+ else
+ COMMINCDIRS += interface/middleware/hif
+ COMMINCDIRS += interface/service/hif
+ endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ ifdef FIVEG_MODE_SUPPORT
+ ifeq ($(strip $(FIVEG_MODE_SUPPORT)), FIVEG_MODE)
+ COMP_TRACE_DEFS_MODEM_NR_SEC += l1/nl1/public/md97/ps_trc/nl1_ctrl_trc_mod_nl1_utmd.json \
+ l1/nl1/public/md97/ps_trc/nl1_csm_trc_mod_nl1_csm_utmd.json \
+ l1/nl1/public/md97/ps_trc/nl1_mob_trc_mod_nl1_mob_utmd.json \
+ l1/nl1/public/md97/ps_trc/nl1_icd_trc_mod_nl1_icd_utmd.json
+ endif
+ endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ ifdef FIVEG_MODE_SUPPORT
+ ifeq ($(strip $(FIVEG_MODE_SUPPORT)), FIVEG_MODE)
+ COMP_TRACE_DEFS_MODEM_NR_SEC += l1/nl1/public/md97/ps_trc/nl1_ctrl_trc_mod_nl1_utmd.json \
+ l1/nl1/public/md97/ps_trc/nl1_csm_trc_mod_nl1_csm_utmd.json \
+ l1/nl1/public/md97/ps_trc/nl1_mob_trc_mod_nl1_mob_utmd.json \
+ l1/nl1/public/md97/ps_trc/nl1_icd_trc_mod_nl1_icd_utmd.json
+ endif
+ endif
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(strip $(FIVEG_MODE_SUPPORT)),NONE)
+ L1_UTMD_FILES_LTE_SEC += l1/nl1/public/md97/trc/nl1_trace_mpc_cm_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_mpc_cmpbch_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_mpc_cs_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_mpc_ps_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_mpc_csr_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_fwk_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_tc_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_rfcc_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_tst_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_tx_0_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_rx_0_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_rx_1_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_nbi_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_rx_public_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_tx_public_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_tpc_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_txdfe_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_sched_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_sched_2_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_sched_3_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_bm_0_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_lpwr_dvfs_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_lpwr_sm_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_lpwr_comm_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_rxagc_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_rxdfe_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_tx_1_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_rfd_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_sched_public_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_hrt_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_et_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_etdpd_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_bwp_chg_utmd.json \
+ l1/nl1/public/md97/trc/nl1_trace_cap_utmd.json
+ ifneq ($(filter __NR_PHY_TEST__,$(COM_DEFS)),)
+ L1_UTMD_FILES_LTE_SEC += l1/nl1/public/md97/trc/nl1_trace_phytest_utmd.json
+ endif
+ endif
+ ifneq ($(filter __NL1_COSIM_EMULATION__, $(strip $(COM_DEFS))),)
+ L1_UTMD_FILES_LTE_SEC += l1/nl1/public/md97/trc/nl1_trace_cosim_utmd.json
+ endif
+endif
+
+ifneq ($(strip $(FIVEG_MODE_SUPPORT)),NONE)
+ L1_UTMD_FILES_LTE_SEC += l1/nl1/public/md97/trc/nl1_trace_ctrl_utmd.json
+endif
+
+COM_DEFS += $(foreach mod,$(call Upper,$(FOURG_COMP)), __$(mod)_ENABLE__)
+# ETC CODEGEN PATH
+ifneq (,$(findstring __ETC_ENABLE__,$(COM_DEFS)))
+ COMMINCDIRS += protocol/lte_sec/enas/etc/include
+ COMP_TRACE_DEFS_MODEM_4G += protocol/lte_sec/enas/etc/include/etc_trc_mod_etc_utmd.json
+endif
+
+# ERRC CODEGEN PATH
+# external structure
+ifneq ($(filter __ERRC_ENABLE__ __L1EDPS_ENABLE__,$(COM_DEFS)),)
+ COMMINCDIRS += protocol/lte_sec/enas/emm/interface \
+ protocol/lte_sec/enas/emm/common/include
+ # internal structure
+ COMMINCDIRS += protocol/lte_sec/errc/cel/include \
+ protocol/lte_sec/errc/conn/include \
+ protocol/lte_sec/errc/chm/include \
+ protocol/lte_sec/errc/sys/include \
+ protocol/lte_sec/errc/rcm/include \
+ protocol/lte_sec/errc/mob/include \
+ protocol/lte_sec/errc/spv/include \
+ protocol/lte_sec/errc/evth/include \
+ protocol/lte_sec/errc/lcel/include \
+ protocol/lte_sec/errc/lsys/include
+
+ # trace file path
+ COMP_TRACE_DEFS_MODEM_4G += protocol/lte_sec/errc/evth/include/errc_evth_trc_mod_errc_evth_utmd.json \
+ protocol/lte_sec/errc/conn/include/errc_conn_trc_mod_errc_conn_utmd.json \
+ protocol/lte_sec/errc/chm/include/errc_chm_trc_mod_errc_chm_utmd.json \
+ protocol/lte_sec/errc/sys/include/errc_sys_trc_mod_errc_sys_utmd.json \
+ protocol/lte_sec/errc/rcm/include/errc_rcm_trc_mod_errc_rcm_utmd.json \
+ protocol/lte_sec/errc/mob/include/errc_mob_trc_mod_errc_mob_utmd.json \
+ protocol/lte_sec/errc/cel/include/errc_cel_trc_mod_errc_cel_utmd.json \
+ protocol/lte_sec/errc/spv/include/errc_spv_trc_mod_errc_spv_utmd.json \
+ protocol/lte_sec/errc/common/include/errc_trc_mod_errc_utmd.json \
+ protocol/lte_sec/errc/lcel/include/errc_lcel_trc_mod_errc_lcel_utmd.json \
+ protocol/as_multimode/mrs/include/mrs_trc_mod_mrs_utmd.json \
+ protocol/lte_sec/errc/lsys/include/errc_lsys_trc_mod_errc_lsys_utmd.json
+endif
+
+# ESM CODEGEN PATH
+ifneq (,$(findstring __ESM_ENABLE__,$(COM_DEFS)))
+ COMMINCDIRS += protocol/lte_sec/enas/esm
+
+ COMP_TRACE_DEFS_MODEM_4G += protocol/lte_sec/enas/esm/esm_dhl_trace_mod_esm_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/nas_multimode/pam/pam_trc_mod_pam_utmd.json
+endif
+
+ifneq (,$(findstring __EMM_ENABLE__,$(COM_DEFS)))
+ # EMM CODEGEN PATH
+ COMMINCDIRS += protocol/lte_sec/enas/emm/interface \
+ protocol/lte_sec/enas/emm/common/include \
+ protocol/lte_sec/enas/emm/evtctrl/include \
+ protocol/lte_sec/enas/emm/plmnsel/include \
+ protocol/lte_sec/enas/emm/sv/include \
+ protocol/lte_sec/enas/emm/ratband/include \
+ protocol/lte_sec/enas/emm/call/include \
+ protocol/lte_sec/enas/emm/conn/include \
+ protocol/lte_sec/enas/emm/nasmsg/include \
+ protocol/lte_sec/enas/emm/opidsrv/include \
+ protocol/lte_sec/enas/emm/sec/include \
+ protocol/lte_sec/enas/emm/reg/include \
+ protocol/lte_sec/enas/emm/nmsrv/include \
+ protocol/lte_sec/enas/emm/usimsrv/include \
+ protocol/lte_sec/enas/emm/nvmsrv/include \
+ protocol/lte_sec/enas/emm/cmnproc/include \
+ protocol/lte_sec/enas/emm/errcif/include \
+ protocol/lte_sec/enas/emm/etcif/include \
+ protocol/lte_sec/enas/emm/ratchg/include \
+ protocol/lte_sec/enas/emm/evalif/include \
+ protocol/lte_sec/enas/emm/mspmif/include \
+ protocol/lte_sec/enas/emm/esmif/include \
+ protocol/lte_sec/enas/emm/timermng/include\
+ protocol/lte_sec/enas/emm/statesrv/include
+
+ COMP_TRACE_DEFS_MODEM_4G += protocol/lte_sec/enas/emm/evtctrl/include/emm_evtctrl_trc_mod_emm_evtctrl_utmd.json \
+ protocol/lte_sec/enas/emm/plmnsel/include/emm_plmnsel_trc_mod_emm_plmnsel_utmd.json \
+ protocol/lte_sec/enas/emm/conn/include/emm_conn_trc_mod_emm_conn_utmd.json \
+ protocol/lte_sec/enas/emm/nasmsg/include/emm_nasmsg_trc_mod_emm_nasmsg_utmd.json \
+ protocol/lte_sec/enas/emm/opidsrv/include/emm_opidsrv_trc_mod_emm_opidsrv_utmd.json \
+ protocol/lte_sec/enas/emm/sec/include/emm_sec_trc_mod_emm_sec_utmd.json \
+ protocol/lte_sec/enas/emm/call/include/emm_call_trc_mod_emm_call_utmd.json \
+ protocol/lte_sec/enas/emm/common/include/emm_dhl_trace_mod_emm_utmd.json \
+ protocol/lte_sec/enas/emm/reg/include/emm_reg_trc_mod_emm_reg_utmd.json \
+ protocol/lte_sec/enas/emm/nmsrv/include/emm_nmsrv_trc_mod_emm_nmsrv_utmd.json \
+ protocol/lte_sec/enas/emm/usimsrv/include/emm_usimsrv_trc_mod_emm_usimsrv_utmd.json \
+ protocol/lte_sec/enas/emm/nvmsrv/include/emm_nvmsrv_trc_mod_emm_nvmsrv_utmd.json \
+ protocol/lte_sec/enas/emm/cmnproc/include/emm_cmnproc_trc_mod_emm_cmnproc_utmd.json \
+ protocol/lte_sec/enas/emm/errcif/include/emm_errcif_trc_mod_emm_errcif_utmd.json \
+ protocol/lte_sec/enas/emm/sv/include/emm_sv_trc_mod_emm_sv_utmd.json \
+ protocol/lte_sec/enas/emm/etcif/include/emm_etcif_trc_mod_emm_etcif_utmd.json \
+ protocol/lte_sec/enas/emm/ratband/include/emm_ratband_trc_mod_emm_ratband_utmd.json \
+ protocol/lte_sec/enas/emm/ratchg/include/emm_ratchg_trc_mod_emm_ratchg_utmd.json \
+ protocol/lte_sec/enas/emm/evalif/include/emm_evalif_trc_mod_emm_evalif_utmd.json \
+ protocol/lte_sec/enas/emm/mspmif/include/emm_mspmif_trc_mod_emm_mspmif_utmd.json \
+ protocol/lte_sec/enas/emm/esmif/include/emm_esmif_trc_mod_emm_esmif_utmd.json \
+ protocol/lte_sec/enas/emm/mmif/include/emm_mmif_trc_mod_emm_mmif_utmd.json \
+ protocol/lte_sec/enas/emm/timermng/include/emm_timermng_trc_mod_emm_timermng_utmd.json
+endif
+
+#------------------------------
+# 5G Components
+#------------------------------
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(HIF_LHIF_SUPPORT)), TRUE)
+ FIVEG_COMP += lhifdev
+ endif
+ ifeq ($(strip $(HIF_USB_SUPPORT)), TRUE)
+ FIVEG_COMP += lhifdev
+ endif
+ ifeq ($(strip $(HIF_DPMAIF_SUPPORT)), TRUE)
+ # CLDMA . components
+ FIVEG_COMP += dpmaifdev
+ endif
+endif
+
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ FIVEG_COMP += lhifdev
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V2)
+ FIVEG_COMP += el2_v2
+ FIVEG_COMP += el2_protect_v2
+ else
+ FIVEG_COMP += el2
+ FIVEG_COMP += el2_sec
+ endif
+ else
+ ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V2)
+ FIVEG_COMP += el2_emac_v2
+ FIVEG_COMP += el2_emac_protect_v2
+ else
+ FIVEG_COMP += el2_emac
+ FIVEG_COMP += el2_emac_sec
+ endif
+ endif
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ FIVEG_COMP += dpcopro
+ L1_UTMD_FILES_LTE_SEC += driver/dpcopro/src/dpc_trace_utmd.json
+ endif
+endif
+
+ifneq ($(call Upper,$(strip $(FIVEG_MODE_SUPPORT))),NONE)
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ FIVEG_COMP += vgmm vgsm nl2 nl2_protect nrrc nrrc_protect upds mrs_nr_sec vgmm_protect
+ else
+ FIVEG_COMP += nmac_protect
+ endif
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ FIVEG_COMP += nl1_pub
+ FIVEG_COMP += nl1
+ else
+ FIVEG_COMP += nl1_modis
+ endif
+ ifeq ($(strip $(FPGA_L1_ROUTER_SUPPORT)),TRUE)
+ FIVEG_COMP += nl1b nhlsim_l1 u4ghlsim_l1 xl1r
+ endif
+endif
+
+ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V2)
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ # for 97 4G project
+ ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ FIVEG_COMP += enl2_common
+ else
+ # for 97 5G only project
+ ifneq ($(call Upper,$(strip $(FIVEG_MODE_SUPPORT))),NONE)
+ FIVEG_COMP += enl2_common
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(N5G_ADAPTOR_SUPPORT)),TRUE)
+ FIVEG_COMP += nl1b
+endif
+
+ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ #
+ # IDC common components
+ #
+ ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ FIVEG_COMP += md_idc
+ else ifneq ($(strip $(FIVEG_MODE_SUPPORT)),NONE)
+ FIVEG_COMP += md_idc
+ endif
+ endif
+endif
+
+ifeq ($(strip $(N5G_ADAPTOR_SUPPORT)),TRUE)
+ FIVEG_COMP += nhlsim_l1
+endif
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(UE_SIMULATOR)),TRUE)
+ ifeq ($(strip $(call Upper,$(C2K_MODE_SUPPORT))),NONE) # FOR C2K
+ ifeq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ FIVEG_COMP += u4ghlsim_l1
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(MAIF_SUPPORT)),TRUE)
+ FIVEG_COMP += maif
+ COMP_TRACE_DEFS_MODEM_NR_SEC += service/maif/include/maif_trace_def_mod_maif_utmd.json
+endif
+
+#------------------------------
+# 5G Compile Option
+#------------------------------
+ifneq ($(call Upper,$(strip $(FIVEG_MODE_SUPPORT))),NONE)
+# set COMPLIST and COMMINCDIRS here
+ COMP_TRACE_DEFS_MODEM_NR_SEC += protocol/enl2/pdcp/npdcp/src/npdcp_trc_mod_npdcp_utmd.json \
+ protocol/nrrc/interface/nrrc_common_trc_mod_nrrc_utmd.json \
+ protocol/nrrc/search/include/nrrc_search_trc_mod_nrrc_search_utmd.json \
+ protocol/nrrc/meas/include/nrrc_meas_trc_mod_nrrc_meas_utmd.json \
+ protocol/nrrc/idle/include/nrrc_idle_trc_mod_nrrc_idle_utmd.json \
+ protocol/nrrc/nconn/include/nrrc_nconn_trc_mod_nrrc_nconn_utmd.json \
+ protocol/nrrc/config/include/nrrc_config_trc_mod_nrrc_config_utmd.json \
+ protocol/nrrc/main/include/nrrc_main_trc_mod_nrrc_main_utmd.json \
+ protocol/nrrc/scg/include/nrrc_scg_trc_mod_nrrc_scg_utmd.json \
+ protocol/nrrc/si/include/nrrc_si_trc_mod_nrrc_si_utmd.json \
+ protocol/as_multimode/mrs/include/mrs_trc_mod_mrs_utmd.json \
+ protocol/nrrc/background/include/nrrc_background_trc_mod_nrrc_background_utmd.json
+
+# for 5G only project
+ifeq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ COMP_TRACE_DEFS_MODEM_NR_SEC += protocol/enl2/pdcp/common/src/enpdcp_trc_mod_enpdcp_utmd.json \
+ protocol/enl2/common/enl2_free/src/enl2_free_trc_mod_enl2_free_utmd.json
+endif
+
+ ifeq ($(strip $(FIVEG_OPTION3_ENDC_SUPPORT)),TRUE)
+ COM_DEFS += __ENDC__
+ endif
+
+ ifeq ($(strip $(FIVEG_OPTION2_SANR_SUPPORT)),TRUE)
+ COM_DEFS += __NR_SA__ __FIVEG_NAS__
+ endif
+
+ ifeq ($(strip $(FIVEG_OPTION4_NEDC_SUPPORT)),TRUE)
+ COM_DEFS += __NR_SA__ __NEDC__ __FIVEG_NAS__
+ endif
+
+ ifeq ($(strip $(FIVEG_OPTION5_NGELTE_SUPPORT)),TRUE)
+ COM_DEFS += __NG_ELTE__ __FIVEG_NAS__
+ endif
+
+ ifeq ($(strip $(FIVEG_OPTION7_NGENDC_SUPPORT)),TRUE)
+ COM_DEFS += __NG_ELTE__ __NG_ENDC__ __FIVEG_NAS__
+ endif
+
+ COM_DEFS += __NR_RAT__
+
+ #NL1
+ COM_DEFS += __NR_ENABLE__
+
+endif
+
+COM_DEFS += $(foreach mod,$(call Upper,$(FIVEG_COMP)), __$(mod)_ENABLE__)
+ifeq ($(strip $(MPD_SOURCE_FULL_BUILD)),TRUE)
+ COMPLIST += $(FIVEG_COMP)
+else
+ COMPOBJS += $(foreach lib_mod,$(filter-out $(COMPLIST),$(FIVEG_COMP)), $(CUS_MTK_LIB)/lib$(lib_mod).a)
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ #
+ # IDC common compile option
+ #
+ COM_DEFS += __IDC_ENABLED__
+ #COM_DEFS += __LTE_A_IDC__
+ COM_DEFS += __LTE_INDICATION_FOR_AP_CLOCK_HOPPING_SUPPORT__
+ COM_DEFS += __NR_INDICATION_FOR_AP_CLOCK_HOPPING_SUPPORT__
+ else ifneq ($(strip $(FIVEG_MODE_SUPPORT)),NONE)
+ COM_DEFS += __IDC_ENABLED__
+ #COM_DEFS += __LTE_A_IDC__
+ COM_DEFS += __LTE_INDICATION_FOR_AP_CLOCK_HOPPING_SUPPORT__
+ COM_DEFS += __NR_INDICATION_FOR_AP_CLOCK_HOPPING_SUPPORT__
+ endif
+ endif
+ endif
+endif
\ No newline at end of file
diff --git a/mcu/make/common/rule_def/para_def.mak b/mcu/make/common/rule_def/para_def.mak
new file mode 100644
index 0000000..cfc76f6
--- /dev/null
+++ b/mcu/make/common/rule_def/para_def.mak
@@ -0,0 +1,285 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+# *************************************************************************
+
+GEN_DB_OPTION = -ltedbv12
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6293)
+ MD_VER_FOLDER = md93
+endif
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6295)
+ MD_VER_FOLDER = md95
+endif
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ MD_VER_FOLDER = md97
+endif
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ MD_VER_FOLDER = md97p
+endif
+
+# define 95/97 EL1C co-files
+EL1_CO_FILE_MD_ARCH = MT6295 MT6297 MT6297P
+ifneq ($(filter $(strip $(MTK_MODEM_ARCH)), $(EL1_CO_FILE_MD_ARCH)),)
+ EL1C_MD_VER_FOLDER = md95
+else
+ EL1C_MD_VER_FOLDER = $(MD_VER_FOLDER)
+endif
+
+# define EL2 <--> ENL2 + EL2_V2 switch
+EL2_V2_MD_ARCH = MT6295 MT6297 MT6297P
+ifneq ($(filter $(strip $(MTK_MODEM_ARCH)),$(EL2_V2_MD_ARCH)),)
+ EL2_ARCH_VERSION=EL2_ARCH_V2
+ COM_DEFS += __EL2_ARCH_V2__
+else
+ EL2_ARCH_VERSION=EL2_ARCH_V1
+ COM_DEFS += __EL2_ARCH_V1__
+endif
+
+L1_UMTS=FALSE
+ifeq ($(strip $(L1_WCDMA)),TRUE)
+ L1_UMTS=TRUE
+endif
+ifeq ($(strip $(L1_TDD128)),TRUE)
+ L1_UMTS=TRUE
+endif
+
+ETCM = FALSE
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ ETCM = TRUE
+endif
+
+ifndef SMART_PHONE_CORE
+ SMART_PHONE_CORE = NONE
+endif
+
+ifndef AST_SUPPORT
+ AST_SUPPORT = NONE
+endif
+
+UGTCM = FALSE
+ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ UGTCM = TRUE
+else
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ UGTCM = TRUE
+ endif
+endif
+
+VGTCM = FALSE
+ifneq ($(call Upper,$(strip $(FIVEG_MODE_SUPPORT))),NONE)
+ VGTCM = TRUE
+endif
+
+ifndef RTOS
+ RTOS = NUCLEUS
+endif
+ifndef RTOS_DEBUG
+ RTOS_DEBUG = TRUE
+endif
+
+# UMTS_BAND_SUPPORT Options
+UMTS_SUPPORT_BAND =
+ifdef UMTS_BAND_I
+ ifeq ($(strip $(UMTS_BAND_I)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_I__
+ endif
+endif
+ifdef UMTS_BAND_II
+ ifeq ($(strip $(UMTS_BAND_II)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_II__
+ endif
+endif
+ifdef UMTS_BAND_III
+ ifeq ($(strip $(UMTS_BAND_III)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_III__
+ endif
+endif
+ifdef UMTS_BAND_IV
+ ifeq ($(strip $(UMTS_BAND_IV)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_IV__
+ endif
+endif
+ifdef UMTS_BAND_V
+ ifeq ($(strip $(UMTS_BAND_V)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_V__
+ UMTS_SUPPORT_BAND += __UMTS_BAND_VI__
+ endif
+endif
+ifdef UMTS_BAND_VI
+ ifeq ($(strip $(UMTS_BAND_VI)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_V__
+ UMTS_SUPPORT_BAND += __UMTS_BAND_VI__
+ endif
+endif
+ifdef UMTS_BAND_VII
+ ifeq ($(strip $(UMTS_BAND_VII)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_VII__
+ endif
+endif
+ifdef UMTS_BAND_VIII
+ ifeq ($(strip $(UMTS_BAND_VIII)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_VIII__
+ endif
+endif
+ifdef UMTS_BAND_IX
+ ifeq ($(strip $(UMTS_BAND_IX)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_IX__
+ endif
+endif
+ifdef UMTS_BAND_X
+ ifeq ($(strip $(UMTS_BAND_X)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_X__
+ endif
+endif
+ifeq ($(strip $(UMTS_BAND_XI)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XI__
+endif
+ifeq ($(strip $(UMTS_BAND_XII)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XII__
+endif
+ifeq ($(strip $(UMTS_BAND_XIII)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XIII__
+endif
+ifeq ($(strip $(UMTS_BAND_XIV)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XIV__
+endif
+ifeq ($(strip $(UMTS_BAND_XV)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XV__
+endif
+ifeq ($(strip $(UMTS_BAND_XVI)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XVI__
+endif
+ifeq ($(strip $(UMTS_BAND_XVII)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XVII__
+endif
+ifeq ($(strip $(UMTS_BAND_XVIII)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XVIII__
+endif
+ifeq ($(strip $(UMTS_BAND_XIX)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XIX__
+endif
+ifeq ($(strip $(UMTS_BAND_XX)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XX__
+endif
+ifeq ($(strip $(UMTS_BAND_XXI)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XXI__
+endif
+ifeq ($(strip $(UMTS_BAND_XXII)),TRUE)
+ UMTS_SUPPORT_BAND += __UMTS_BAND_XXII__
+endif
+# UMTS_BAND_SUPPORT Options end
+
+SV5_PLATFORM = MT6280 $(strip $(SUPPORT_PLATFORM))
+
+ifndef MAX_MIDI_FILE_SIZE
+ MAX_MIDI_FILE_SIZE = 2097152
+endif
+
+SAIC_NOT_SUPPORT_FLATFORM = MT6205 MT6205B MT6208 MT6217 MT6218 MT6218B MT6219 MT6225 MT6226 MT6226D MT6226M MT6227 MT6227D MT6228 MT6229 MT6230
+REPEATED_ACCH_NOT_SUPPORT_FLATFORM = MT6205 MT6205B MT6208 MT6217 MT6218 MT6218B MT6219 MT6223 MT6223P MT6225 MT6226 MT6226D MT6226M MT6227 MT6227D MT6228 MT6229 MT6230 MT6235B MT6238 MT6239 MT6268T MT6268H
+VAMOS_CAP_DEFAULT_NOT_SUPPORT_FLATFORM = MT6280
+
+ifndef MELODY_BUFFER_LEN
+ ifeq ($(strip $(MED_PROFILE)),MED_MODEM)
+ MELODY_BUFFER_LEN = 512
+ else
+ ifeq ($(strip $(MED_PROFILE)),MED_LOW)
+ MELODY_BUFFER_LEN = 1300
+ else
+ MELODY_BUFFER_LEN = 102400
+ endif
+ endif
+endif
+
+ifdef OPTR_CODE
+ ifeq ($(strip $(OPTR_CODE)),OP12)
+ MELODY_BUFFER_LEN = 307200
+ endif
+endif
+
+ifndef PHB_NAME_LENGTH
+ PHB_NAME_LENGTH = 40
+endif
+
+MMA_MAX_NUM_VALUE = 2 3 4 5 6 7 8 9 10 11 12
+
+32K_CRYSTAL_REMOVAL_SUPPORT_PLATFORM = MT6280 MT6290 $(strip $(SUPPORT_PLATFORM))
+QUERY_32K_CRYSTAL_FROM_MD_PLATFORM = MT6280 MT6290
+QUERY_32K_CRYSTAL_FROM_AP_PLATFORM = $(strip $(SUPPORT_PLATFORM))
+
+# UL1 COMPLIST
+UL1_HS_PLUS_PLATFORM = TK6280 MT6280 MT6589 MT6290 MT6595 $(strip $(SUPPORT_PLATFORM))
+ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ UL1_SUPPORT = TRUE
+else
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ UL1_SUPPORT = TRUE
+ endif
+ endif
+endif
+ifeq ($(strip $(UL1_SUPPORT)),TRUE)
+ ifdef L1_WCDMA
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ UMTS_FDD_PLATFORM = FALSE
+ ifneq ($(filter $(strip $(PLATFORM)),$(UL1_HS_PLUS_PLATFORM)),)
+ UMTS_FDD_PLATFORM = TRUE
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
+ ifdef MDSYS
+ ifeq ($(strip $(MDSYS)),MD2)
+ BT_SCO_SW_CODEC_PATH = driver/audio/lib/MTKGCC_ARM9
+ else
+ BT_SCO_SW_CODEC_PATH = driver/audio/lib/MTKGCC
+ endif
+ else
+ BT_SCO_SW_CODEC_PATH = driver/audio/lib/MTKGCC_CR4
+ endif
+
+ ifdef MTK_BT_CHIP
+ BLUETOOTH_SCO_SW_CODEC_BT_CHIP = MTK_CONSYS_$(PLATFORM)
+ else
+ #Add in case of MTK_BT_CHIP missing definition
+ BLUETOOTH_SCO_SW_CODEC_PLATFORM = $(PLATFORM)
+ endif
+endif
+
+ARM9_PLATFORM = MT6238 MT6239 MT6235B MT6236 MT6236B MT6268A MT6270A MT6921 MT6255 MT6922
+ARM11_PLATFORM = MT6256 MT6276 MT6573 MT6575 MT6577
+CR4_PLATFORM = TK6280 MT6280 MT6290 MT6595 TK6291 MT6755 MT6797
diff --git a/mcu/make/common/rule_def/tmd_def.mak b/mcu/make/common/rule_def/tmd_def.mak
new file mode 100644
index 0000000..22b5675
--- /dev/null
+++ b/mcu/make/common/rule_def/tmd_def.mak
@@ -0,0 +1,704 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+# *************************************************************************
+# always define
+# *************************************************************************
+
+# *************************************************************************
+# defined by rules
+# *************************************************************************
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+
+ifeq ($(strip $(GERAN_MODE_SUPPORT)),GERAN_EGPRS_MODE)
+ ifeq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ GL1_UTMD_FILES = l1/gl1/common/l1c_trace_utmd.json \
+ l1/gl1/common/l1c_trace_public_utmd.json \
+ l1/gl1/common/l1c2_trace_utmd.json \
+ l1/gl1/common/l1c2_trace_public_utmd.json \
+ l1/gl1/common/l1i_cs_trace_utmd.json \
+ l1/gl1/common/l1i_cs_trace_public_utmd.json \
+ l1/gl1/common/l1i_ps_trace_utmd.json \
+ l1/gl1/common/l1i_ps_trace_public_utmd.json \
+ l1/gl1/common/l1sc_trace_utmd.json \
+ l1/gl1/common/l1sc_trace_public_utmd.json \
+ l1/gl1/common/l1c_csd_trace_utmd.json \
+ l1/gl1/common/l1c_csd_trace_public_utmd.json \
+ l1/gl1/common/L1D_Trace_utmd.json \
+ l1/gl1/common/L1D_Trace_public_utmd.json \
+ l1/gl1/common/L1D2_Trace_utmd.json \
+ l1/gl1/common/L1D2_Trace_public_utmd.json \
+ l1/gl1/common/L1D_EDGE_Trace_utmd.json \
+ l1/gl1/common/L1D_EDGE_Trace_public_utmd.json \
+ l1/gl1/common/l1i_egprs_trace_utmd.json \
+ l1/gl1/common/l1i_egprs_trace_public_utmd.json \
+ l1/gl1/common/l1c_egprs_trace_utmd.json \
+ l1/gl1/common/l1c_egprs_trace_public_utmd.json \
+ l1/gl1/common/l1i_amr_trace_utmd.json \
+ l1/gl1/common/l1t_amr_trace_utmd.json
+ endif
+endif
+
+ifeq ($(strip $(GERAN_MODE_SUPPORT)),GERAN_GSM_MODE)
+ GL1_UTMD_FILES = l1/gl1/common/l1c_trace_utmd.json \
+ l1/gl1/common/l1c_trace_public_utmd.json \
+ l1/gl1/common/l1sc_trace_utmd.json \
+ l1/gl1/common/l1sc_trace_public_utmd.json \
+ l1/gl1/common/l1i_cs_trace_utmd.json \
+ l1/gl1/common/l1i_cs_trace_public_utmd.json \
+ l1/gl1/common/L1D_Trace_utmd.json \
+ l1/gl1/common/L1D_Trace_public_utmd.json \
+ l1/gl1/common/l1c_csd_trace_utmd.json \
+ l1/gl1/common/l1c_csd_trace_public_utmd.json \
+ l1/gl1/common/L1D2_Trace_utmd.json \
+ l1/gl1/common/L1D2_Trace_public_utmd.json \
+ l1/gl1/common/l1i_amr_trace_utmd.json \
+ l1/gl1/common/l1t_amr_trace_utmd.json
+endif
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ GL1_UTMD_FILES = l1/gl1/common/l1c_trace_utmd.json \
+ l1/gl1/common/l1c_trace_public_utmd.json \
+ l1/gl1/common/l1sc_trace_utmd.json \
+ l1/gl1/common/l1sc_trace_public_utmd.json \
+ l1/gl1/common/l1i_cs_trace_utmd.json \
+ l1/gl1/common/l1i_cs_trace_public_utmd.json \
+ l1/gl1/common/L1D_Trace_utmd.json \
+ l1/gl1/common/L1D_Trace_public_utmd.json \
+ l1/gl1/common/l1c_csd_trace_utmd.json \
+ l1/gl1/common/l1c_csd_trace_public_utmd.json \
+ l1/gl1/common/L1D2_Trace_utmd.json \
+ l1/gl1/common/L1D2_Trace_public_utmd.json \
+ l1/gl1/common/l1i_amr_trace_utmd.json \
+ l1/gl1/common/l1t_amr_trace_utmd.json \
+ l1/gl1/common/L1D_EDGE_Trace_utmd.json \
+ l1/gl1/common/L1D_EDGE_Trace_public_utmd.json
+ endif
+ ifeq ($(strip $(L1_GPRS)),TRUE)
+ GL1_UTMD_FILES += l1/gl1/common/l1i_ps_trace_utmd.json \
+ l1/gl1/common/l1i_ps_trace_public_utmd.json
+ GL1_UTMD_FILES += l1/gl1/common/l1c_egprs_trace_utmd.json \
+ l1/gl1/common/l1c_egprs_trace_public_utmd.json \
+ l1/gl1/common/l1i_egprs_trace_utmd.json \
+ l1/gl1/common/l1i_egprs_trace_public_utmd.json \
+ l1/gl1/common/l1c2_trace_utmd.json \
+ l1/gl1/common/l1c2_trace_public_utmd.json
+ endif
+ ifeq ($(strip $(L1_UMTS)),TRUE)
+ GL1_UTMD_FILES += l1/gl1/common/L1D3_Trace_utmd.json \
+ l1/gl1/common/L1D3_Trace_public_utmd.json
+ GL1_UTMD_FILES += l1/gl1/common/L1_AFC_Trace_utmd.json \
+ l1/gl1/common/L1_AFC_Trace_public_utmd.json
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ UL1_UTMD_FILES = l1/ul1/ul1c_public/UL1C_Trace1_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace2_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace3_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace4_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace1_public_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace2_public_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace3_public_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace4_public_utmd.json \
+ l1/ul1/ul1c_public/UL1TST_Trace1_utmd.json \
+ l1/ul1/ul1d_public/UL1D_MLT_Trace1_utmd.json \
+ l1/ul1/ul1d_public/UL1D_MLT_Trace2_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace1_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace2_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace3_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace4_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace5_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace6_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace_dpd_utmd.json \
+ l1/ul1/ul1d_public/UL1D_HSPA_Trace_utmd.json \
+ l1/ul1/ul1d_public/UL1D_HSPA_Trace1_utmd.json \
+ l1/ul1/ul1d_public/UL1D_HSPA_Trace2_utmd.json \
+ l1/ul1/ul1d_public/UL1D_PLUS_Trace1_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace_External_public_utmd.json \
+ l1/md_sm/common/ul1sm/ul1sm_trc_utmd.json \
+ l1/md_sm/common/ul1sm/ul1sm_trc_public_utmd.json
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ UL1_UTMD_FILES += l1/ul1/ul1d_public/ul1d_trace_tpc_gen97_utmd.json
+ endif
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ UL1_UTMD_FILES += l1/ul1/ul1d_public/ul1d_trace_tpc_gen97_utmd.json
+ endif
+ endif
+ endif
+ endif
+ ifeq ($(strip $(L1_GPRS)),TRUE)
+ GL1_UTMD_FILES += l1/gl1/common/l1dm_trace_utmd.json \
+ l1/gl1/common/l1dm_trace_public_utmd.json
+ endif
+ endif
+endif
+
+ifeq ($(strip $(L1_UMTS)),TRUE)
+ GL1_UTMD_FILES = l1/gl1/common/l1c_trace_utmd.json \
+ l1/gl1/common/l1c_trace_public_utmd.json \
+ l1/gl1/common/l1c2_trace_utmd.json \
+ l1/gl1/common/l1c2_trace_public_utmd.json \
+ l1/gl1/common/l1i_cs_trace_utmd.json \
+ l1/gl1/common/l1i_cs_trace_public_utmd.json \
+ l1/gl1/common/l1i_ps_trace_utmd.json \
+ l1/gl1/common/l1i_ps_trace_public_utmd.json \
+ l1/gl1/common/l1sc_trace_utmd.json \
+ l1/gl1/common/l1sc_trace_public_utmd.json \
+ l1/gl1/common/l1c_csd_trace_utmd.json \
+ l1/gl1/common/l1c_csd_trace_public_utmd.json \
+ l1/gl1/common/L1D_Trace_utmd.json \
+ l1/gl1/common/L1D_Trace_public_utmd.json \
+ l1/gl1/common/L1D2_Trace_utmd.json \
+ l1/gl1/common/L1D2_Trace_public_utmd.json \
+ l1/gl1/common/L1D_EDGE_Trace_utmd.json \
+ l1/gl1/common/L1D_EDGE_Trace_public_utmd.json \
+ l1/gl1/common/l1i_egprs_trace_utmd.json \
+ l1/gl1/common/l1i_egprs_trace_public_utmd.json \
+ l1/gl1/common/l1c_egprs_trace_utmd.json \
+ l1/gl1/common/l1c_egprs_trace_public_utmd.json \
+ l1/gl1/common/l1i_amr_trace_utmd.json \
+ l1/gl1/common/l1t_amr_trace_utmd.json
+ ifneq ($(strip $(UMTS_MODE_SUPPORT)),NONE)
+ GL1_UTMD_FILES += l1/gl1/common/l1dm_trace_utmd.json \
+ l1/gl1/common/l1dm_trace_public_utmd.json
+ endif
+
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ UL1_UTMD_FILES = l1/ul1/ul1d_public/UL1D_MLT_Trace1_utmd.json \
+ l1/ul1/ul1d_public/UL1D_MLT_Trace2_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace1_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace2_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace3_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace4_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace5_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace6_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace_dpd_utmd.json \
+ l1/ul1/ul1d_public/UL1D_HSPA_Trace_utmd.json \
+ l1/ul1/ul1d_public/UL1D_HSPA_Trace1_utmd.json \
+ l1/ul1/ul1d_public/UL1D_HSPA_Trace2_utmd.json \
+ l1/ul1/ul1d_public/UL1D_PLUS_Trace1_utmd.json \
+ l1/ul1/ul1d_public/UL1D_Trace_External_public_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace1_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace2_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace3_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace4_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace1_public_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace2_public_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace3_public_utmd.json \
+ l1/ul1/ul1c_public/UL1C_Trace4_public_utmd.json \
+ l1/ul1/ul1c_public/UL1TST_Trace1_utmd.json \
+ l1/md_sm/common/ul1sm/ul1sm_trc_utmd.json \
+ l1/md_sm/common/ul1sm/ul1sm_trc_public_utmd.json
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ UL1_UTMD_FILES += l1/ul1/ul1d_public/ul1d_trace_tpc_gen97_utmd.json
+ UL1_UTMD_FILES += l1/ul1/ul1d_public/ul1d_trace_agc_md97_utmd.json
+ endif
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ UL1_UTMD_FILES += l1/ul1/ul1d_public/ul1d_trace_tpc_gen97_utmd.json
+ UL1_UTMD_FILES += l1/ul1/ul1d_public/ul1d_trace_agc_md97_utmd.json
+ endif
+ endif
+ endif
+endif
+endif # MODIS_CONFIG
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ EL1D_PUB_UTMD_FILES = l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_cm0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_cm1_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_common0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_common1_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_rfcc_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_cs_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_pos_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_ps_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_rf0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_rf1_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_rx0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_rx1_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_rx2_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_agc0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_tpc0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_tx0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_tx_public_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_cosim_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_rxdfe0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_txdfe0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_dpd0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_et0_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_rxdmp_utmd.json \
+ l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_etdpd0_utmd.json
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ EL1D_PUB_UTMD_FILES += l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_lpwr_lpcc_utmd.json
+ endif
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ EL1D_PUB_UTMD_FILES += l1/el1/el1d_pub/$(strip $(MD_VER_FOLDER))/trc/el1d_trace_lpwr_lpcc_utmd.json
+ endif
+ endif
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ COMMON_UTMD_FILES += l1/idc/include/l1_idc_l1_trc_utmd.json
+ endif
+ endif
+endif
+
+ # L1 TRACE FILES
+ ifneq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ COMMON_UTMD_FILES += l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_phs_1_trace_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_phs_2_trace_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_phs_public_trace_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_phs_rtb_1_trace_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_irt_1_trace_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1tx_trace_1_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1tx_trace_2_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1tx_trace_public_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_main_trace_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_main_public_trace_utmd.json
+
+ ADDITIONAL_TMD_COM_DEFS = __MD95__ __MD97__ __MD97P__
+ ifneq ($(filter $(strip $(ADDITIONAL_TMD_COM_DEFS)), $(strip $(COM_DEFS))),)
+ COMMON_UTMD_FILES += l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1tx_trace_3_utmd.json
+ endif
+
+ ifneq ($(filter __LTE_PHY_TEST__,$(COM_DEFS)),)
+ COMMON_UTMD_FILES += l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_phy_tstm_1_trace_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_phy_tstm_2_trace_utmd.json
+ else
+ COMMON_UTMD_FILES += l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_tstm_1_trace_utmd.json \
+ l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_tstm_2_trace_utmd.json
+ endif
+
+ ifneq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ COMMON_UTMD_FILES += l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc/el1_idc_1_trace_utmd.json
+ endif
+
+ endif
+
+ifeq ($(strip $(UL1_SUPPORT)),TRUE)
+ ifdef L1_WCDMA
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ ifneq ($(filter $(strip $(PLATFORM)),$(UL1_HS_PLUS_PLATFORM)),)
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ UL1_PCORE_UTMD_FILES = l1/ul1/ul1d_public/UL1D_Pcore_Trace_utmd.json
+ endif
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ GL1_PCORE_UTMD_FILES = l1/gl1/l1c/gl1_pcore_trace_utmd.json
+endif
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),NONE)
+ifeq ($(filter TRUE,$(MODIS_CONFIG) $(UE_SIMULATOR)),)
+ AUDIO_UTMD_FILES = driver/audio/src/v1/l1audio_trace_utmd.json
+ AUDIO_UTMD_FILES += driver/audio/src/v1/inc/l1audio_voc_utmd.json
+ L1_UTMD_FILES += CuStOm_StArT_AUDIO ${AUDIO_UTMD_FILES} CuStOm_EnD_AUDIO
+endif
+endif
+
+# L1/L2 trace for EL2
+ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V1)
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/emac_trace_public_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/emac_trace_1_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/emac_trace_2_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/emac_trace_internal_utmd.json
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/epdcp_trace_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/epdcp_trace_internal_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/epdcp_trace_public_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/erlcdl_trace_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/erlcul_trace_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/erlcdl_trace_internal_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/erlcul_trace_internal_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/erlcdl_trace_public_utmd.json
+ COMMON_UTMD_FILES += protocol/interface/el2/trace/erlcul_trace_public_utmd.json
+ endif
+endif
+
+
+
+#data path trace macro definition.
+#UPCM data path trace macro definition.
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ UPCM_UTMD_FILES = protocol/nas_multimode/upcm/src/data_path_utmd.json
+ UPCM_UTMD_FILES += protocol/nas_multimode/upcm/src/data_path_detail_utmd.json
+ UPCM_UTMD_FILES += protocol/nas_multimode/upcm/src/data_path_public_utmd.json
+ UPCM_UTMD_FILES += protocol/nas_multimode/upcm/src/data_path_pcl_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_UPCM ${UPCM_UTMD_FILES} CuStOm_EnD_UPCM
+endif
+
+#RATDM data path trace macro definition.
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ COMMON_UTMD_FILES += protocol/as_multimode/ratdm/cmn_data/secure/ratdm_sec_trace_utmd.json
+ COMMON_UTMD_FILES += protocol/as_multimode/ratdm/cmn_data/secure/ratdm_sec_trace_public_utmd.json
+ COMMON_UTMD_FILES += protocol/as_multimode/ratdm/cmn_data/secure/ratdm_sec_trace_pcl_utmd.json
+endif
+
+ifeq ($(filter BASIC UDVT,$(TEST_LOAD_TYPE)),)
+ QMU_BM_UTMD_FILES += service/qmu_bm/src/qmu_bm_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_QMU_BM ${QMU_BM_UTMD_FILES} CuStOm_EnD_QMU_BM
+endif
+
+
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V2)
+ ROHC_UTMD_FILES = protocol/interface/enl2/trace/rohc_trace_utmd.json
+ ROHC_UTMD_FILES += protocol/interface/enl2/trace/rohc_detail_trace_utmd.json
+ ROHC_UTMD_FILES += protocol/interface/enl2/trace/rohc_public_trace_utmd.json
+ ROHC_UTMD_FILES += protocol/interface/enl2/trace/rohc_public_trace2_utmd.json
+ ROHC_UTMD_FILES += protocol/interface/enl2/trace/ral_trace_utmd.json
+ ROHC_UTMD_FILES += protocol/interface/enl2/trace/ral_detail_trace_utmd.json
+ ROHC_UTMD_FILES += protocol/interface/enl2/trace/ral_public_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_ROHC ${ROHC_UTMD_FILES} CuStOm_EnD_ROHC
+ else
+ ROHC_UTMD_FILES = protocol/el2/rohc/rohc_core/rohc_trace_utmd.json
+ ROHC_UTMD_FILES += protocol/el2/rohc/rohc_core/rohc_detail_trace_utmd.json
+ ROHC_UTMD_FILES += protocol/el2/rohc/rohc_core/rohc_public_trace_utmd.json
+ ROHC_UTMD_FILES += protocol/el2/rohc/rohc_core/rohc_public_trace2_utmd.json
+ ROHC_UTMD_FILES += protocol/el2/rohc/ral/ral_trace_utmd.json
+ ROHC_UTMD_FILES += protocol/el2/rohc/ral/ral_detail_trace_utmd.json
+ ROHC_UTMD_FILES += protocol/el2/rohc/ral/ral_public_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_ROHC ${ROHC_UTMD_FILES} CuStOm_EnD_ROHC
+ endif
+ endif
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ SST_UTMD_FILES += service/sst/src/SST_intrCtrl_trace_utmd.json
+ SST_UTMD_FILES += service/sst/src/spv_trace_utmd.json
+ SST_UTMD_FILES += service/sst/src/mpb_main_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_SST $(SST_UTMD_FILES) CuStOm_EnD_SST
+endif
+
+ifneq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifeq ($(strip $(L1D_LOOPBACK)),1)
+ L1_UTMD_FILES += l1/gl1/common/L1DLP_Trace_utmd.json
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),2)
+ L1_UTMD_FILES += l1/gl1/common/L1DLP_Trace_utmd.json
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),3)
+ L1_UTMD_FILES += l1/gl1/common/L1DLP3_Trace_utmd.json
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),5)
+ L1_UTMD_FILES += l1/gl1/common/L1DLP5_Trace_utmd.json
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),6)
+ L1_UTMD_FILES += l1/gl1/common/L1DLP6_Trace_utmd.json
+ endif
+
+ ifeq ($(strip $(L1D_LOOPBACK)),7)
+ L1_UTMD_FILES += l1/gl1/common/L1DLP7_Trace_utmd.json
+ endif
+ ifeq ($(strip $(L1D_LOOPBACK)),8)
+ L1_UTMD_FILES += l1/gl1/common/L1DLP8_Trace_utmd.json
+ endif
+ endif
+endif
+
+#MML1 trace macro
+ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+
+ MML1_RF_UTMD_FILES = l1/mml1/common/mml1_trace_utmd.json \
+ l1/mml1/common/mml1_trace2_utmd.json \
+ l1/mml1/common/mml1_trace_logger_utmd.json \
+ l1/mml1/common/mml1_trace_mmrfd_utmd.json \
+ l1/mml1/common/mml1_trace_mmrfd_public_utmd.json \
+ l1/mml1/common/mml1_trace_dpd_utmd.json \
+ l1/mml1/common/mml1_trace_mmtst_utmd.json \
+ l1/mml1/common/mml1_trace_endc_utmd.json \
+ l1/mml1/common/mml1_trace_rfdb_recfg_sync_utmd.json \
+ l1/mml1/common/mml1_trace_nbi_utmd.json \
+ l1/mml1/common/mml1_trace_agc_utmd.json \
+ l1/mml1/common/mml1_trace_tpc_utmd.json \
+ l1/mml1/common/mml1_trace_rxdfe_utmd.json \
+ l1/mml1/common/mml1_trace_cdf_utmd.json \
+ l1/mml1/common/mml1_trace_cmn_db_utmd.json \
+ l1/mml1/common/mml1_trace_acid_utmd.json
+
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ MML1_RF_UTMD_FILES += l1/mml1/common/mml1_trace_rfc_gen97_utmd.json
+ MML1_RF_UTMD_FILES += l1/mml1/common/mml1_trace_etdpd_utmd.json
+ else ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ MML1_RF_UTMD_FILES += l1/mml1/common/mml1_trace_rfc_gen97_utmd.json
+ MML1_RF_UTMD_FILES += l1/mml1/common/mml1_trace_etdpd_utmd.json
+ else
+ MML1_RF_UTMD_FILES += l1/mml1/common/mml1_trace_rfc_utmd.json
+ endif
+endif
+
+ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ L1_UTMD_FILES += l1/mml1/common/mml1_trace_lpwr_slp_0_utmd.json
+ L1_UTMD_FILES += l1/mml1/common/mml1_trace_lpwr_slp_1_utmd.json
+ L1_UTMD_FILES += l1/mml1/common/mml1_trace_lpwr_slp_2_utmd.json
+ L1_UTMD_FILES += l1/mml1/common/mml1_trace_gnss_utmd.json
+ L1_UTMD_FILES += l1/mml1/common/mml1_trace_rxdmp_utmd.json
+ L1_UTMD_FILES += l1/mml1/common/mml1_trace_fwk_utmd.json
+ L1_UTMD_FILES += l1/mml1/common/mml1_trace_utas_utmd.json
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ L1_UTMD_FILES += l1/mml1/common/mml1_trace_arx_utmd.json
+ endif
+endif
+
+SLEEP_DRV_UTMD_FILES += $(strip $(SLEEPDRV_FOLDER))/common/DCXO_DIV_Trace1_utmd.json \
+ $(strip $(SLEEPDRV_FOLDER))/common/FM_Trace1_utmd.json \
+ $(strip $(SLEEPDRV_FOLDER))/common/MODEM_TOPSM_Trace1_utmd.json \
+ $(strip $(SLEEPDRV_FOLDER))/common/TPPA_SleepDrv_Trace1_utmd.json\
+ $(strip $(SLEEPDRV_FOLDER))/common/PCORE_MD_TOPSM_Trace1_utmd.json \
+ $(strip $(SLEEPDRV_FOLDER))/common/PCORE_OSTD_Trace1_utmd.json \
+ $(strip $(SLEEPDRV_FOLDER))/common/PCORE_SleepDrv_Trace1_utmd.json
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ DVFS_DRV_UTMD_FILES += $(strip $(DVFSDRV_FOLDER))/common/$(MD_VER_FOLDER)/DVFS_MODEM_Trace1_utmd.json \
+ $(strip $(DVFSDRV_FOLDER))/common/$(MD_VER_FOLDER)/DVFS_MD_Trace1_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_DVFS_DRV ${DVFS_DRV_UTMD_FILES} CuStOm_EnD_DVFS_DRV
+ else
+ DVFS_DRV_UTMD_FILES += $(strip $(DVFSDRV_FOLDER))/common/$(MD_VER_FOLDER)/DVFS_MODEM_Trace1_utmd.json \
+ $(strip $(DVFSDRV_FOLDER))/common/$(MD_VER_FOLDER)/DVFS_MD_Trace1_utmd.json
+ L1_UTMD_FILES += CuStOm_StArT_DVFS_DRV ${DVFS_DRV_UTMD_FILES} CuStOm_EnD_DVFS_DRV
+ endif
+else
+ DVFS_DRV_UTMD_FILES += $(strip $(DVFSDRV_FOLDER))/common/$(MD_VER_FOLDER)/DVFS_MODEM_Trace1_utmd.json \
+ $(strip $(DVFSDRV_FOLDER))/common/$(MD_VER_FOLDER)/DVFS_MD_Trace1_utmd.json
+ L1_UTMD_FILES += CuStOm_StArT_DVFS_DRV ${DVFS_DRV_UTMD_FILES} CuStOm_EnD_DVFS_DRV
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ #ELM Profiling Log
+ DEVDRV_UTMD_FILES += driver/devdrv/mdap_interface/src/amif_trace_utmd.json
+ DEVDRV_UTMD_FILES += driver/devdrv/elm/src/$(MD_VER_FOLDER)/elm_trace_utmd.json
+ SYS_DRV_UTMD_FILES += driver/sys_drv/spu/src/spu_trace_utmd.json
+endif
+
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(ORIGINAL_FLAVOR),BASIC_HIF)
+ IPC_FRAGMENT_UTMD_FILES += middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_data_path_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_IPC_FRAGMENT ${IPC_FRAGMENT_UTMD_FILES} CuStOm_EnD_IPC_FRAGMENT
+ COMMON_UTMD_FILES += middleware/hif/interface/dpfm_data_path_trace_utmd.json
+ COMMON_UTMD_FILES += middleware/hif/interface/nmu_data_path_trace_utmd.json
+ endif
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifdef HIF_USB_SUPPORT
+ ifeq ($(strip $(HIF_USB_SUPPORT)), TRUE)
+ UBM_UTMD_FILES += service/hif/ubm/include/ubm_data_path_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_UBM ${UBM_UTMD_FILES} CuStOm_EnD_UBM
+ USBCORE_UTMD_FILES += middleware/hif/usbcore/include/usbcore_data_path_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_USBCORE ${USBCORE_UTMD_FILES} CuStOm_EnD_USBCORE
+ ifdef USB_RNDIS_SUPPORT
+ ifeq ($(strip $(USB_RNDIS_SUPPORT)), TRUE)
+ USBCLASS_UTMD_FILES += middleware/hif/interface/rndis_data_path_trace_utmd.json
+ endif
+ endif
+ ifdef USB_ECM_SUPPORT
+ ifeq ($(strip $(USB_ECM_SUPPORT)), TRUE)
+ USBCLASS_UTMD_FILES += middleware/hif/interface/cdcecm_data_path_trace_utmd.json
+ endif
+ endif
+ ifdef USB_MBIM_SUPPORT
+ ifeq ($(strip $(USB_MBIM_SUPPORT)), TRUE)
+ USBCLASS_UTMD_FILES += middleware/hif/interface/mbim_data_path_trace_utmd.json
+ endif
+ endif
+ ifneq ($(strip $(USBCLASS_UTMD_FILES)),)
+ COMMON_UTMD_FILES += CuStOm_StArT_USBCLASS ${USBCLASS_UTMD_FILES} CuStOm_EnD_USBCLASS
+ endif
+ endif
+ endif
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifneq ($(filter __MTK_3G_MRAT_ARCH__,$(strip $(COM_DEFS))),)
+ GL1_UTMD_FILES += l1/gl1/common/L1D3_Trace_utmd.json \
+ l1/gl1/common/L1D3_Trace_public_utmd.json \
+ l1/gl1/common/L1_AFC_Trace_utmd.json \
+ l1/gl1/common/L1_AFC_Trace_public_utmd.json \
+ l1/gl1/common/l1c3_trace_utmd.json \
+ l1/gl1/common/l1c3_trace_public_utmd.json \
+ l1/rtb/rtb_trace_utmd.json \
+ l1/rtb/rtb_trace_public_utmd.json \
+ l1/gl1/common/l1c5_trace_utmd.json \
+ l1/gl1/common/l1c5_trace_public_utmd.json
+ GL1_UTMD_FILES += l1/md_sm/common/l1sm/l1sm_trc_utmd.json \
+ l1/md_sm/common/l1sm/l1sm_trc_public_utmd.json
+ else
+ ifeq ($(call Upper,$(strip $(L1_WCDMA))),TRUE)
+ GL1_UTMD_FILES += l1/gl1/common/L1D3_Trace_utmd.json \
+ l1/gl1/common/L1D3_Trace_public_utmd.json \
+ l1/gl1/common/L1_AFC_Trace_utmd.json \
+ l1/gl1/common/L1_AFC_Trace_public_utmd.json \
+ l1/gl1/common/l1c3_trace_utmd.json \
+ l1/gl1/common/l1c3_trace_public_utmd.json \
+ l1/rtb/rtb_trace_utmd.json \
+ l1/rtb/rtb_trace_public_utmd.json \
+ l1/gl1/common/l1c5_trace_utmd.json \
+ l1/gl1/common/l1c5_trace_public_utmd.json
+
+ GL1_UTMD_FILES += l1/md_sm/common/l1sm/l1sm_trc_utmd.json \
+ l1/md_sm/common/l1sm/l1sm_trc_public_utmd.json
+ else
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ GL1_UTMD_FILES += l1/gl1/common/L1D3_Trace_utmd.json \
+ l1/gl1/common/L1D3_Trace_public_utmd.json \
+ l1/gl1/common/l1c3_trace_utmd.json \
+ l1/gl1/common/l1c3_trace_public_utmd.json \
+ l1/rtb/rtb_trace_utmd.json \
+ l1/rtb/rtb_trace_public_utmd.json \
+ l1/gl1/common/l1c5_trace_utmd.json \
+ l1/gl1/common/l1c5_trace_public_utmd.json
+ endif
+ endif
+ endif
+
+ ifeq ($(strip $(EUTRAN_MODE_SUPPORT)),EUTRAN_MODE)
+ MD_SM_UTMD_FILES += l1/md_sm/common/el1sm/el1sm_trc_utmd.json \
+ l1/md_sm/common/el1sm/el1sm_trc_public_utmd.json
+ endif
+endif
+
+HMU_UTMD_FILES += service/hif/interface/hif_srv_hmu_trace_utmd.json
+HLT_UTMD_FILES += service/hif/interface/hif_srv_hlt_trace_utmd.json
+COMMON_UTMD_FILES += CuStOm_StArT_HMU $(HMU_UTMD_FILES) CuStOm_EnD_HMU
+COMMON_UTMD_FILES += CuStOm_StArT_HLT $(HLT_UTMD_FILES) CuStOm_EnD_HLT
+
+# make sure TL1_UTMD_FILES are located at the end of all L1_UTMD_FILES
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ TL1_UTMD_FILES = l1/tl1/tl1trace/tl1_trace_tl1a_active_utmd.json \
+ l1/tl1/tl1trace/tl1_trace_tl1a_standby_utmd.json \
+ l1/tl1/tl1trace/tl1_trace_tl1a_tas_utmd.json \
+ l1/tl1/tl1trace/tl1_trace_tl1c_cmd_utmd.json \
+ l1/tl1/tl1trace/tl1_trace_tl1c_common_utmd.json \
+ l1/tl1/tl1trace/tl1_trace_tl1c_meas_utmd.json \
+ l1/tl1/tl1trace/tl1_trace_tl1c_rsp_utmd.json \
+ l1/tl1/tl1trace/tl1_trace_tl1c_sniffer_utmd.json \
+ l1/tl1/tl1trace/tl1_trace_tl1c_standby_utmd.json \
+ l1/tl1/tl1trace/tl1_trace_tl1c_task_utmd.json
+ endif
+endif
+
+ifeq ($(strip $(L1_CATCHER)),TRUE)
+
+ ifneq ($(filter __DHL_V2_ENABLE__,$(COM_DEFS)),) # DHL2.0
+ DHL_L1_UTMD_FILE := interface/service/dhl/v2/dhl_l1_trace_utmd.json
+ else # DHL1.0
+ DHL_L1_UTMD_FILE := interface/service/dhl/v1/dhl_l1_trace_utmd.json
+ endif
+
+endif
+
+CL1_UTMD_FILES = l1/cl1/common/cl1_trace_utmd.json \
+ l1/cl1/common/sys_trace_utmd.json
+EVL1_UTMD_FILES= l1/cl1/common/evl1_trace_utmd.json \
+ l1/cl1/common/c2k_evl1_trace_public_utmd.json
+XL1_UTMD_FILES = l1/cl1/common/xl1_trace_utmd.json
+HSC_UTMD_FILES = l1/cl1/common/hsc_trace_utmd.json \
+ l1/cl1/common/c2k_l1_trace_utmd.json \
+ l1/cl1/common/hsc_trace_2_utmd.json \
+ l1/cl1/common/l1d_rfd_trace_utmd.json
+RCP_UTMD_FILES = protocol/l2_c2k/rcp/rcp_ri_trace_utmd.json \
+ protocol/l2_c2k/rcp/c2k_l2_trace_public_utmd.json
+RMC_UTMD_FILES = l1/cl1/common/c2k_do_l1_trace_utmd.json
+L1D_UTMD_FILES = l1/cl1/common/c2k_rtt_l1_trace_utmd.json \
+ l1/cl1/common/c2k_rtt_l1_trace_public_utmd.json
+
+ifneq ($(strip $(call Upper,$(C2K_MODE_SUPPORT))),NONE)
+ COMMON_UTMD_FILES += CuStOm_StArT_CL1 $(CL1_UTMD_FILES) CuStOm_EnD_CL1
+ COMMON_UTMD_FILES += CuStOm_StArT_EVL1 $(EVL1_UTMD_FILES) CuStOm_EnD_EVL1
+ COMMON_UTMD_FILES += CuStOm_StArT_XL1 $(XL1_UTMD_FILES) CuStOm_EnD_XL1
+ COMMON_UTMD_FILES += CuStOm_StArT_HSC $(HSC_UTMD_FILES) CuStOm_EnD_HSC
+ COMMON_UTMD_FILES += CuStOm_StArT_RCP $(RCP_UTMD_FILES) CuStOm_EnD_RCP
+ COMMON_UTMD_FILES += CuStOm_StArT_RMC $(RMC_UTMD_FILES) CuStOm_EnD_RMC
+ COMMON_UTMD_FILES += CuStOm_StArT_L1D $(L1D_UTMD_FILES) CuStOm_EnD_L1D
+endif
+
+ifneq ($(filter __CL1_TASK_ENABLE__, $(COM_DEFS)),)
+ COMMON_UTMD_FILES += CuStOm_StArT_CL1 $(CL1_UTMD_FILES) CuStOm_EnD_CL1
+ COMMON_UTMD_FILES += CuStOm_StArT_HSC $(HSC_UTMD_FILES) CuStOm_EnD_HSC
+endif
+
+ifdef HIF_CCCI_SUPPORT
+ ifeq ($(strip $(HIF_CCCI_SUPPORT)), TRUE)
+ NCCCI_UTMD_FILES += service/hif/interface/hif_srv_ccci_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_NCCCI $(NCCCI_UTMD_FILES) CuStOm_EnD_NCCCI
+ endif
+ ifdef CCCI_DEV_SUPPORT
+ ifeq ($(strip $(CCCI_DEV_SUPPORT)), TRUE)
+ NCCCIDEV_UTMD_FILES += middleware/hif/interface/hif_mw_cccidev_trace_utmd.json
+ NCCCIDEV_UTMD_FILES += service/hif/interface/hif_srv_cccisrv_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_NCCCIDEV $(NCCCIDEV_UTMD_FILES) CuStOm_EnD_NCCCIDEV
+ endif
+ endif
+endif
+
+ifdef SUBMARINE_SUPPORT
+ ifeq ($(strip $(SUBMARINE_SUPPORT)), TRUE)
+ COMMON_UTMD_FILES += middleware/wtunnel/wtunnel_data_path_trace_utmd.json
+
+ DISPATCHER_UTMD_FILES += protocol/dispatcher/src/dispatcher_data_path_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_DISPATCHER $(DISPATCHER_UTMD_FILES) CuStOm_EnD_DISPATCHER
+
+ WIFI_PROXY_UTMD_FILES += service/wifi_proxy/inc/wifi_proxy_data_path_trace_utmd.json
+ COMMON_UTMD_FILES += CuStOm_StArT_WIFI_PROXY $(WIFI_PROXY_UTMD_FILES) CuStOm_EnD_WIFI_PROXY
+ endif
+endif
+
+MODIS_NO_NEED_MODULE = NL1_PUB EL1D_PUB GL1 GL1_PCORE MML1_RF MML1_RF_PCORE MML1 TL1 UL1 UL1_PCORE MD_SM DEVDRV SLEEP_DRV SYS_DRV
+define GenHqTmd
+ ifneq ( $($(call Upper,$(strip $(1)))_UTMD_FILES),)
+ L1_UTMD_FILES += CuStOm_StArT_$(call Upper,$(strip $(1))) \
+ $($(call Upper,$(strip $(1)))_UTMD_FILES) \
+ CuStOm_EnD_$(call Upper,$(strip $(1)))
+ endif
+endef
+$(foreach TMD_MODULE, $(MODIS_NO_NEED_MODULE), $(eval $(call GenHqTmd,$(TMD_MODULE))))
diff --git a/mcu/make/common/rule_def/trace_def.mak b/mcu/make/common/rule_def/trace_def.mak
new file mode 100644
index 0000000..7af0ddf
--- /dev/null
+++ b/mcu/make/common/rule_def/trace_def.mak
@@ -0,0 +1,915 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+# *************************************************************************
+# always define
+# *************************************************************************
+
+COMP_TRACE_DEFS_MODEM += service/sst/include/ex_trc_mod_ex_log_utmd.json
+COMP_TRACE_DEFS_MODEM += service/sst/include/SST_trc_mod_sst_common_utmd.json
+COMP_TRACE_DEFS_MODEM += driver/sys_drv/init/inc/$(MD_VER_FOLDER)/init_comm_trc_mod_init_log_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/layer4/l4/include/atci_trc_mod_atci_utmd.json
+COMP_TRACE_DEFS_MODEM +=
+COMP_TRACE_DEFS_MODEM += driver/devdrv/trace/devdrv_trace_mod_devdrv_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/nas_multimode/tftlib/tftlib_dhl_trace_mod_tftlib_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/nas_multimode/smic/include/smic_dhl_trace_mod_smic_utmd.json
+COMP_TRACE_DEFS_MODEM += custom/service/sbp/sbp_trc_mod_sbp_utmd.json
+COMP_TRACE_DEFS_MODEM += driver/audio/med/common/include/med_trc_mod_med_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/layer4/l4/uem/include/uem_trc_mod_uem_utmd.json
+COMP_TRACE_DEFS_MODEM += custom/protocol/common/ps/custom_sml_trc_utmd.json
+
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(WIFI_LTE_DPP_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += middleware/hif/gmmgr/include/gmmgr_trace_mod_gmmgr_utmd.json
+ endif
+endif
+
+ifeq ($(strip $(ISP_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += driver/drv/include/drv_trc_mod_cal_utmd.json
+endif
+
+COMP_TRACE_DEFS_MODEM += driver/drv/include/drv_trc_mod_uart_1_hisr_utmd.json driver/drv/include/drv_trc_mod_msdc_hisr_utmd.json driver/drv/include/drv_trc_mod_rtc_hisr_utmd.json driver/drv/include/drv_trc_mod_ppp_hw_utmd.json
+COMP_TRACE_DEFS_MODEM += driver/dp_engine/dp_engine_trc_mod_dp_engine_utmd.json
+COMP_TRACE_DEFS_MODEM += middleware/meta/ft/inc/ft_trace_def_mod_ft_utmd.json
+COMP_TRACE_DEFS_MODEM += interface/driver/storage/sim/sim_drv_trc_mod_sim_drv_utmd.json
+COMP_TRACE_DEFS_MODEM += service/fs/common/include/fs_trc_mod_fs_utmd.json
+COMP_TRACE_DEFS_MODEM += interface/driver/sys_drv/system_trc_mod_system_utmd.json
+
+ifeq ($(filter L1_SIM,$(COM_DEFS)),)
+ COMP_TRACE_DEFS_MODEM += driver/devdrv/log_seq/inc/logseq_trc_mod_ls_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/sleep_drv/internal/inc/sleep_drv_trc_mod_ostd_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/sleep_drv/internal/inc/sleep_drv_trc_mod_mdtopsm_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/sleep_drv/internal/inc/sleep_drv_trc_mod_sleepdrv_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/dvfs_drv/common/md97/ptp_trc_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/tfwk_drv/common/tfwk_trc_utmd.json
+else ifneq ($(filter __DUMMY_L1_ON_TARGET_4G5G__,$(COM_DEFS)),)
+ COMP_TRACE_DEFS_MODEM += driver/devdrv/log_seq/inc/logseq_trc_mod_ls_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/sleep_drv/internal/inc/sleep_drv_trc_mod_ostd_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/sleep_drv/internal/inc/sleep_drv_trc_mod_mdtopsm_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/sleep_drv/internal/inc/sleep_drv_trc_mod_sleepdrv_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/dvfs_drv/common/md97/ptp_trc_utmd.json
+ COMP_TRACE_DEFS_MODEM += driver/tfwk_drv/common/tfwk_trc_utmd.json
+endif
+
+COMP_TRACE_DEFS_MODEM += interface/driver/dpcopro/dpc_dump_trace_mod_dpc_utmd.json
+COMP_TRACE_DEFS_MODEM += driver/devdrv/i2c/inc/drv_i2c_trace_mod_i2c_utmd.json
+L1_COMP_TRACE_DEFS_MODEM += l1/gl1/common/l1a_trace_mod_l1_utmd.json
+L1_COMP_TRACE_DEFS_MODEM += service/sst/include/SST_trc_mod_sst_common_utmd.json
+L1_COMP_TRACE_DEFS_MODEM += driver/devdrv/trace/devdrv_trace_mod_devdrv_utmd.json
+L1_COMP_TRACE_DEFS_MODEM += service/sst/include/ex_trc_mod_ex_log_utmd.json
+L1_COMP_TRACE_DEFS_MODEM += l1/interface/el1/ul1c_trc.h
+L1_COMP_TRACE_DEFS_MODEM += l1/ul1/common/ul1a_trc_mod_ul1_utmd.json
+
+ifneq ($(filter __DHL_V2_ENABLE__,$(COM_DEFS)),) # DHL2.0
+ L1_COMP_TRACE_DEFS_MODEM += service/dhl/v2/local_inc/dhl_trace_def_mod_dhl_reader_utmd.json service/dhl/v2/local_inc/dhl_trace_def_mod_dhl_utmd.json service/pmc/local_inc/icd_trace_def_mod_icd_utmd.json service/dhl/v2/local_inc/dhl_trace_def_mod_dhl_ut_utmd.json
+else # DHL1.0
+ ifeq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ L1_COMP_TRACE_DEFS_MODEM += service/dhl/v1/local_inc/dhl_trace_def_mod_dhl_sp_reader_utmd.json
+ endif
+ endif
+ L1_COMP_TRACE_DEFS_MODEM += service/dhl/v1/local_inc/dhl_trace_def_mod_dhl_reader_utmd.json service/dhl/v1/local_inc/dhl_trace_def_mod_dhl_utmd.json
+endif
+
+# *************************************************************************
+# defined by rules
+# *************************************************************************
+ifeq ($(strip $(MD_TCPIP_SUPPORT)),TRUE)
+COMP_TRACE_DEFS_MODEM += service/nucleus_tcpip_v3/local_inc/mod_tcpip_trc_mod_stkbrg_utmd.json
+COMP_TRACE_DEFS_MODEM += service/nucleus_tcpip_v3/local_inc/mod_ipc_trc_mod_stkdrv_utmd.json
+COMP_TRACE_DEFS_MODEM += service/nal/nucleus/include/mod_nal_trc_mod_naldbg_utmd.json
+COMP_TRACE_DEFS_MODEM += service/nal/monitor/include/nal_monitor_trc_mod_nalmon_utmd.json
+COMP_TRACE_DEFS_MODEM += service/nal/dns/include/nal_dns_trc_mod_nal_dns_utmd.json
+COMP_TRACE_DEFS_MODEM += service/nal/rsra/inc/rsra_trc_mod_rsra_utmd.json
+endif
+
+ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ ifneq ($(filter __DHL_V2_ENABLE__,$(COM_DEFS)),) # DHL2.0
+ COMP_TRACE_DEFS_MODEM += service/dhl/v2/local_inc/dhl_trace_def_mod_dhl_reader_utmd.json service/dhl/v2/local_inc/dhl_trace_def_mod_dhl_utmd.json service/pmc/local_inc/icd_trace_def_mod_icd_utmd.json service/dhl/v2/local_inc/dhl_trace_def_mod_dhl_ut_utmd.json
+ else # DHL1.0
+ ifeq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COMP_TRACE_DEFS_MODEM += service/dhl/v1/local_inc/dhl_trace_def_mod_dhl_sp_reader_utmd.json
+ endif
+ endif
+ COMP_TRACE_DEFS_MODEM += service/dhl/v1/local_inc/dhl_trace_def_mod_dhl_reader_utmd.json service/dhl/v1/local_inc/dhl_trace_def_mod_dhl_utmd.json
+ endif
+else
+ COMP_TRACE_DEFS_MODEM += service/tst/local_inc/tst_trace.h
+endif
+
+ifeq ($(strip $(EL1_IT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += l1/ll1/include/mll1_trc_mod_mll1_utmd.json
+endif
+
+ifeq ($(strip $(BIP_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += protocol/bip/include/bip_trace_mod_bip_net_mgr_utmd.json protocol/bip/include/bip_trace_mod_bip_cmd_hdr_utmd.json protocol/bip/include/bip_trace_mod_bip_ds_mgr_utmd.json protocol/bip/include/bip_trace_mod_bip_agent_utmd.json protocol/bip/include/bip_trace_mod_bip_conn_mgr_utmd.json protocol/bip/include/bip_trace_mod_bip_sim_mgr_utmd.json protocol/bip/include/bip_trace_mod_bip_utmd.json
+ ifneq ($(filter __BIP_TEST_SUPPORT__,$(COM_DEFS)),)
+ COMP_TRACE_DEFS_MODEM += protocol/bip/include/bip_trace_mod_bip_test_utmd.json
+ endif
+endif
+
+ifeq ($(strip $(XCAP_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += protocol/xcap/common/include/xcap_trace_mod_xcap_client_utmd.json protocol/xcap/common/include/xcap_trace_mod_xcap_cm_utmd.json protocol/xcap/common/include/xcap_trace_mod_xcap_gba_utmd.json protocol/xcap/common/include/xcap_trace_mod_xcap_http_connection_utmd.json protocol/xcap/common/include/xcap_trace_mod_xcap_config_utmd.json protocol/xcap/common/include/xcap_trace_mod_xcap_utmd.json protocol/xcap/common/include/xcap_trace_mod_xcap_sim_mgr_utmd.json
+ ifneq ($(filter __XCAP_TEST_SUPPORT__,$(COM_DEFS)),)
+ COMP_TRACE_DEFS_MODEM += protocol/xcap/common/include/xcap_trace_mod_xcap_test_utmd.json
+ endif
+endif
+
+ifeq ($(strip $(HTTP_TLS_SUPPORT)),TRUE)
+COMP_TRACE_DEFS_MODEM += protocol/inet_protocols/http_tls/http/inc/http_trace_mod_http_utmd.json
+COMP_TRACE_DEFS_MODEM += protocol/inet_protocols/http_tls/security/tls/include/tls_trace_mod_tls_utmd.json
+endif
+
+ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(ORIGINAL_FLAVOR),BASIC_HIF)
+ ifeq ($(strip $(KPALV_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += middleware/kpalv/include/kpalv_trace_mod_kpalv_utmd.json
+ endif
+ endif
+endif
+
+# PS TRACE FILES
+ifneq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ ifneq ($(filter __LTE_PHY_TEST__,$(COM_DEFS)),)
+ COMP_TRACE_DEFS_MODEM += l1/el1/el1c_pub/$(MD_VER_FOLDER)/trc/el1_trc_mod_el1_utmd.json \
+ l1/el1/el1c_pub/$(MD_VER_FOLDER)/trc/el1_mpc_trc_mod_el1_mpc_utmd.json
+ else
+ COMP_TRACE_DEFS_MODEM += l1/el1/el1c_pub/$(MD_VER_FOLDER)/trc/el1_trc_mod_el1_utmd.json \
+ l1/el1/el1c_pub/$(MD_VER_FOLDER)/trc/el1_mpc_trc_mod_el1_mpc_utmd.json
+ endif
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6295)
+ COMP_TRACE_DEFS_MODEM += protocol/ddm/psilib/include/psilib_trc_mod_psilib_utmd.json
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ COMP_TRACE_DEFS_MODEM += protocol/ddm/psilib/include/psilib_trc_mod_psilib_utmd.json
+endif
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ COMP_TRACE_DEFS_MODEM += protocol/ddm/psilib/include/psilib_trc_mod_psilib_utmd.json
+endif
+
+ifneq ($(filter TRUE,$(MODIS_CONFIG) $(UE_SIMULATOR)),)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise/include/gise_trc_mod_gise_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/lcsce/include/lcsce_trc_mod_lcsce_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/las/include/lurr_trc_mod_lurr_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/lmeme/include/lmeme_trc_mod_lmeme_fdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lcsce/include/lcsce_trc_mod_lcsce_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/las/include/lurr_trc_mod_lurr_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lmeme/include/lmeme_trc_mod_lmeme_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lrrce/include/lrrce_trc_mod_lrrce_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lurlc/include/lurlc_trc_mod_lurlc_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lumac/include/lumac_trc_mod_lumac_tdd_utmd.json
+
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise_tdd/include/gise_trc_mod_gise_tdd_utmd.json
+ endif
+else
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise/include/gise_trc_mod_gise_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/lcsce/include/lcsce_trc_mod_lcsce_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/las/include/lurr_trc_mod_lurr_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/lmeme/include/lmeme_trc_mod_lmeme_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/common/dbme/include/dbme_trc_mod_db_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/common/include/adr_trc_mod_adr_fdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lcsce/include/lcsce_trc_mod_lcsce_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/las/include/lurr_trc_mod_lurr_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lmeme/include/lmeme_trc_mod_lmeme_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lrrce/include/lrrce_trc_mod_lrrce_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lurlc/include/lurlc_trc_mod_lurlc_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lumac/include/lumac_trc_mod_lumac_tdd_utmd.json
+
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise_tdd/include/gise_trc_mod_gise_tdd_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/3g/urr/urr_tdd/common/dbme/include/dbme_trc_mod_db_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/common/include/adr_trc_mod_adr_tdd_utmd.json
+ endif
+endif
+
+ifeq ($(strip $(IRDA_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += protocol/ircomm/include/ircomm_trc.h \
+ protocol/obex/include/obex_trc.h
+endif
+
+ifneq ($(strip $(TTY_CONSOLE_TRACE_ENABLED)),1)
+ COMP_TRACE_DEFS_MODEM += driver/tty/inc/tty_trace_mod_tty_utmd.json
+endif
+
+ifneq ($(filter TRUE,$(MODIS_CONFIG) $(UE_SIMULATOR)),)
+ COMP_TRACE_DEFS_MODEM += protocol/3g/urr/urr_fdd/lcsce/include/lcsce_trc_mod_lcsce_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/las/include/lurr_trc_mod_lurr_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/lmeme/include/lmeme_trc_mod_lmeme_fdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lcsce/include/lcsce_trc_mod_lcsce_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/las/include/lurr_trc_mod_lurr_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lmeme/include/lmeme_trc_mod_lmeme_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lrrce/include/lrrce_trc_mod_lrrce_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lurlc/include/lurlc_trc_mod_lurlc_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lumac/include/lumac_trc_mod_lumac_tdd_utmd.json
+else
+ COMP_TRACE_DEFS_MODEM += protocol/3g/urr/urr_fdd/lcsce/include/lcsce_trc_mod_lcsce_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/las/include/lurr_trc_mod_lurr_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/lmeme/include/lmeme_trc_mod_lmeme_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/common/dbme/include/dbme_trc_mod_db_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/common/include/adr_trc_mod_adr_fdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lcsce/include/lcsce_trc_mod_lcsce_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/las/include/lurr_trc_mod_lurr_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lmeme/include/lmeme_trc_mod_lmeme_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lrrce/include/lrrce_trc_mod_lrrce_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lurlc/include/lurlc_trc_mod_lurlc_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lumac/include/lumac_trc_mod_lumac_tdd_utmd.json
+
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/3g/urr/urr_tdd/common/dbme/include/dbme_trc_mod_db_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/common/include/adr_trc_mod_adr_tdd_utmd.json
+ endif
+endif
+
+ifeq ($(strip $(IMS_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += protocol/imc/sub_imc/include/imc_trc_mod_imc_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/layer4/sdm/include/sdm_trc_mod_sdm_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/imc/imcsms/include/imcsms_trc_mod_imcsms_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/lte_csr/csr/inc/ltecsr_trc_mod_ltecsr_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/ims/stack/src/include/imsstack_trc_mod_ims_stack_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/ims/ua/src/include/imsua_trc_mod_imsua_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/ims/imcb/sub_imcb/include/imcb_trc_mod_imcb_utmd.json
+endif
+
+# IDC
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(filter L1S,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ COMP_TRACE_DEFS_MODEM += l1/idc/include/l1_idc_ps_trc_utmd.json
+ endif
+ endif
+endif
+
+# GEMINI
+ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ COMP_TRACE_DEFS_MODEM += l1/gl1/common/l1a_trace_mod_l1_utmd.json
+ endif
+endif
+
+COMP_TRACE_DEFS_MODEM += driver/audio/src/v1/inc/l1sp_trc_mod_l1sp_utmd.json
+COMP_TRACE_DEFS_MODEM += driver/devdrv/idc/inc/idc_trace_mod_idc_utmd.json
+
+ifdef IC_TEST_TYPE
+ ifneq ($(strip $(IC_TEST_TYPE)),NONE)
+ ifeq ($(findstring _SLT,$(IC_TEST_TYPE)),_SLT)
+ COMP_TRACE_DEFS_MODEM += driver/drvtest/slt/inc/slt_trace_mod_slt_utmd.json
+ endif
+ endif
+endif
+
+ifeq ($(strip $(HIF_USB_SUPPORT)),TRUE)
+ ifeq ($(strip $(HIF_USB30_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += driver/hif/inc/hif_usbdev/hif_u3dev/u3dev_trace_mod_hif_usb_hisr_utmd.json
+ else
+ COMP_TRACE_DEFS_MODEM += driver/hif/inc/hif_usbdev/hif_u2dev/u2dev_trace_mod_hifusb_utmd.json
+ endif
+endif
+
+ifeq ($(strip $(HIF_PCIE_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += driver/hif/inc/hif_pciedev/pcie_drv_trc_mod_pcie_hisr_utmd.json
+endif
+
+ifeq ($(strip $(HIF_MHCCIF_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += driver/hif/inc/hif_mhccifdev/mhccif_drv_trc_mod_mhccif_hisr_utmd.json
+endif
+
+ifneq ($(call Upper,$(strip $(EUTRAN_MODE_SUPPORT))),NONE)
+ COMP_TRACE_DEFS_MODEM += protocol/nas_multimode/nwsel/include/nwsel_trc_mod_nwsel_utmd.json
+ COMP_TRACE_DEFS_MODEM += interface/protocol/nas_multimode/upcm/upcm_trc_mod_upcm_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/as_multimode/ratdm/cmn_sig/include/ratdm_trc_mod_ratdm_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/nas_multimode/gmss/include/gmss_trc_mod_gmss_utmd.json
+ # TFT library trace
+ COMP_TRACE_DEFS_MODEM += protocol/nas_multimode/tftlib/tftlib_dhl_trace_mod_tftlib_utmd.json
+ # SMIC trace
+ COMP_TRACE_DEFS_MODEM += protocol/nas_multimode/smic/include/smic_dhl_trace_mod_smic_utmd.json
+ # DSPFM trace
+ COMP_TRACE_DEFS_MODEM += service/sys_svc/dspfm_lte/inc/dspfm_trace_mod_dspfm_utmd.json
+ ifeq ($(strip $(LPP_SUPPORT)),CONTROL_PLANE)
+ COMP_TRACE_DEFS_MODEM += protocol/agps/lpp/include/lpp_trc_mod_lpp_ext_utmd.json protocol/agps/lpp/include/lpp_trc_mod_lpp_utmd.json
+ endif
+endif
+
+ifdef AGPS_SUPPORT
+ ifneq ($(strip $(AGPS_SUPPORT)), NONE)
+ ifeq ($(strip $(AGPS_SUPPORT)), CP_AGPS_AGLONASS)
+ COMP_TRACE_DEFS_MODEM += protocol/agps/rrlp/include/rrlp_trc_mod_rrlp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/uagps_cp/include/uagps_cp_trc_mod_uagps_cp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/common/include/uagps_trc_mod_uagps_utmd.json
+ endif
+ ifeq ($(strip $(AGPS_SUPPORT)), CP_AGPS_AGLONASS_ABDS)
+ COMP_TRACE_DEFS_MODEM += protocol/agps/rrlp/include/rrlp_trc_mod_rrlp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/uagps_cp/include/uagps_cp_trc_mod_uagps_cp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/common/include/uagps_trc_mod_uagps_utmd.json
+ endif
+ ifeq ($(strip $(AGPS_SUPPORT)), CP_AGPS_ABDS)
+ COMP_TRACE_DEFS_MODEM += protocol/agps/rrlp/include/rrlp_trc_mod_rrlp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/uagps_cp/include/uagps_cp_trc_mod_uagps_cp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/common/include/uagps_trc_mod_uagps_utmd.json
+ endif
+
+ ifeq ($(strip $(AGPS_SUPPORT)), CP_AGPS_AGLONASS)
+ COMP_TRACE_DEFS_MODEM += protocol/agps/rrlp/include/rrlp_trc_mod_rrlp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/uagps_cp/include/uagps_cp_trc_mod_uagps_cp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/common/include/uagps_trc_mod_uagps_utmd.json
+ endif
+ ifeq ($(strip $(AGPS_SUPPORT)), CP_AGPS_AGLONASS_ABDS)
+ COMP_TRACE_DEFS_MODEM += protocol/agps/rrlp/include/rrlp_trc_mod_rrlp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/uagps_cp/include/uagps_cp_trc_mod_uagps_cp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/common/include/uagps_trc_mod_uagps_utmd.json
+ endif
+ ifeq ($(strip $(AGPS_SUPPORT)), CP_AGPS_ABDS)
+ COMP_TRACE_DEFS_MODEM += protocol/agps/rrlp/include/rrlp_trc_mod_rrlp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/uagps_cp/include/uagps_cp_trc_mod_uagps_cp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/common/include/uagps_trc_mod_uagps_utmd.json
+ endif
+
+ COMP_TRACE_DEFS_MODEM += protocol/agps/rrlp/include/rrlp_trc_mod_rrlp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/uagps_cp/include/uagps_cp_trc_mod_uagps_cp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/ulcs/common/include/uagps_trc_mod_uagps_utmd.json
+ endif
+endif
+
+ifdef IPSEC_SUPPORT
+ ifneq ($(strip $(IPSEC_SUPPORT)),FALSE)
+ COMP_TRACE_DEFS_MODEM += service/security/ike/include/ike_trc.h
+ endif
+endif
+
+ifneq ($(filter __MDVSIM__,$(COM_DEFS)),)
+ COMP_TRACE_DEFS_MODEM += protocol/keygen/include/keygen_trc_mod_keygen_utmd.json
+endif
+
+ifneq ($(call Upper,$(strip $(FIVEG_MODE_SUPPORT))),NONE)
+ COMP_TRACE_DEFS_MODEM += protocol/interface/vgnas/trace/vgmm_trc_mod_vgmm_utmd.json \
+ protocol/interface/vgnas/trace/vgsm_trc_mod_vgsm_utmd.json \
+ protocol/upds/include/upds_trc_mod_upds_utmd.json
+endif
+
+ifdef MCIF_SUPPORT #MD Consys Interface
+ ifeq ($(strip $(MCIF_SUPPORT)), TRUE)
+ COMP_TRACE_DEFS_MODEM += service/mcif/main/inc/mcif_trace_utmd.json
+
+ ifdef MCIF_WIFI_SUPPORT #MD Consys Interface - WiFi Service
+ ifeq ($(strip $(MCIF_WIFI_SUPPORT)), TRUE)
+ COMP_TRACE_DEFS_MODEM += service/mcif/wsvc/inc/wsvc_trace_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/mcif/wfpm/inc/wfpm_trc_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/mcif/wrpm/inc/wrpm_trace_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/ethsvc/inc/ethsvc_trc_mod_ethsvc_utmd.json
+ endif #MCIF_WIFI_SUPPORT = TRUE
+ endif
+
+ #
+ # Low layer component
+ #
+ endif #MCIF_SUPPORT = TRUE
+endif
+
+ifneq ($(call Upper,$(strip $(FIVEG_MODE_SUPPORT))),NONE)
+ COMP_TRACE_DEFS_MODEM += protocol/interface/vgnas/trace/vgmm_trc_mod_vgmm_utmd.json \
+ protocol/interface/vgnas/trace/vgsm_trc_mod_vgsm_utmd.json \
+ protocol/upds/include/upds_trc_mod_upds_utmd.json
+endif
+
+ifdef SUBMARINE_SUPPORT
+ ifeq ($(strip $(SUBMARINE_SUPPORT)), TRUE)
+ COMP_TRACE_DEFS_MODEM += service/wifi_proxy/inc/wifi_proxy_trace_mod_wifi_proxy_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/ipsec/inc/ipsec_trc_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/crypto/inc/crypto_trc_mod_crptbrg_utmd.json
+ COMP_TRACE_DEFS_MODEM += middleware/wtunnel/wtunnel_trace_mod_wtunnel_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/dispatcher/include/dispatcher_trace_mod_dispatcher_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/eap/eap_trc_mod_eap_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/cert/include/cert_trc_mod_cert_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/imsm/include/imsm_trace_mod_imsm_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/wlc/inc/wlc_trc_mod_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/wlc/inc/intctrl_trc_mod_utmd.json
+ endif
+endif
+
+ifdef WIFIPROXY_SUPPORT
+ ifeq ($(strip $(WIFIPROXY_SUPPORT)), TRUE)
+ COMP_TRACE_DEFS_MODEM += service/wifi_proxy/inc/wifi_proxy_trace_mod_wifi_proxy_utmd.json
+ endif
+endif
+
+# *************************************************************************
+# Not BASIC load
+# *************************************************************************
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+
+ ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ COMP_TRACE_DEFS_MODEM += l1/ll1/include/mll1_trc_mod_mll1_utmd.json
+ else
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COMP_TRACE_DEFS_MODEM += l1/ll1/include/mll1_trc_mod_mll1_utmd.json
+ endif
+ endif
+
+endif
+
+# *************************************************************************
+# Not L1S load
+# *************************************************************************
+
+# *************************************************************************
+# L1S or BASIC load
+# *************************************************************************
+ifneq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+
+ ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMP_TRACE_DEFS_MODEM += protocol/smt/l1s/dummyps/include/internal/dps_trc_mod_dummympal_utmd.json \
+ driver/peripheral/inc/bmt_trc_mod_bmt_utmd.json \
+ protocol/layer4/sim/include/sim_trc_mod_sim_utmd.json
+ endif
+
+ ifeq ($(strip $(NVRAM_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += service/nvram/include/nvram_trc_mod_nvram_utmd.json
+ endif
+
+ ifeq ($(strip $(MCF_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += service/mcf/include/mcf_trace_mod_mcf_utmd.json
+ endif
+ endif
+
+ COMP_TRACE_DEFS_MODEM += l1/gl1/common/l1a_trace_mod_l1_utmd.json
+
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ COMP_TRACE_DEFS_MODEM += l1/ul1/common/udps_trc_mod_urr_fdd_utmd.json
+ endif
+
+ ifeq ($(strip $(L1_GPRS)),TRUE)
+ ifeq ($(strip $(L1_WCDMA)),TRUE)
+ COMP_TRACE_DEFS_MODEM += l1/ul1/common/ul1a_trc_mod_ul1_utmd.json
+ endif
+ endif
+
+endif # end of L1S or BASIC load
+
+# *************************************************************************
+# Not L1S or BASIC load
+# *************************************************************************
+ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
+
+ ifeq ($(filter TRUE,$(MODIS_CONFIG) $(UE_SIMULATOR)),)
+ #COMP_TRACE_DEFS_MODEM += driver/audio/src/v1/inc/l1sp_trc_l1core.h
+ endif
+
+ ifneq ($(strip $(L1_UMTS)),TRUE)
+ COMP_TRACE_DEFS_MODEM += l1/gl1/common/l1a_trace_mod_l1_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/nas/mm/common/include/mm_trc_mod_mm_utmd.json \
+ protocol/2g/gas/common/include/rr_trc_mod_rrm_fdd_utmd.json \
+ protocol/2g/gas/lapdm/include/lapdm_trc_mod_lapdm_fdd_utmd.json \
+ protocol/2g/gas/rlc/include/rlc_trc_mod_reasm_fdd_utmd.json protocol/2g/gas/rlc/include/rlc_trc_mod_rlc_fdd_utmd.json \
+ protocol/2g/gas/mac/include/mac_trc_mod_mac_fdd_utmd.json \
+ protocol/as_multimode/ratcm/include/ratcm_trc_mod_ratcm_utmd.json \
+ protocol/as_multimode/ratdm/cmn_sig/include/ratdm_trc_mod_ratdm_utmd.json \
+ protocol/2g/gas_smp/include/rr_smp_trc_mod_rr_smp_utmd.json
+
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/gas_tdd/common/include/rr_trc_mod_rrm_tdd_utmd.json \
+ protocol/2g/gas_tdd/lapdm/include/lapdm_trc_mod_lapdm_tdd_utmd.json \
+ protocol/2g/gas_tdd/rlc/include/rlc_trc_mod_rlc_tdd_utmd.json protocol/2g/gas_tdd/rlc/include/rlc_trc_mod_reasm_tdd_utmd.json \
+ protocol/2g/gas_tdd/mac/include/mac_trc_mod_mac_tdd_utmd.json \
+ protocol/2g/gas_smp_tdd/include/rr_smp_trc_mod_rr_smp_tdd_utmd.json
+ endif
+ ifneq ($(filter TRUE,$(MODIS_CONFIG) $(UE_SIMULATOR)),)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise/include/gise_trc_mod_gise_fdd_utmd.json
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise_tdd/include/gise_trc_mod_gise_tdd_utmd.json
+ endif
+ else
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise/include/gise_trc_mod_gise_fdd_utmd.json
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise_tdd/include/gise_trc_mod_gise_tdd_utmd.json
+ endif
+ endif
+
+ ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ COMP_TRACE_DEFS_MODEM += protocol/as_multimode/rsva/rsvas/include/rsvas_trc_mod_rsvas_utmd.json \
+ protocol/as_multimode/rsva/mspm/include/mspm_trc_mod_mspm_utmd.json
+ endif
+ endif
+ else
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COMP_TRACE_DEFS_MODEM += l1/gl1/common/l1a_trace_mod_l1_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/nas/mm/common/include/mm_trc_mod_mm_utmd.json \
+ protocol/2g/gas/common/include/rr_trc_mod_rrm_fdd_utmd.json \
+ protocol/2g/gas/lapdm/include/lapdm_trc_mod_lapdm_fdd_utmd.json \
+ protocol/2g/gas/rlc/include/rlc_trc_mod_reasm_fdd_utmd.json protocol/2g/gas/rlc/include/rlc_trc_mod_rlc_fdd_utmd.json \
+ protocol/2g/gas/mac/include/mac_trc_mod_mac_fdd_utmd.json \
+ protocol/as_multimode/ratcm/include/ratcm_trc_mod_ratcm_utmd.json \
+ protocol/as_multimode/ratdm/cmn_sig/include/ratdm_trc_mod_ratdm_utmd.json \
+ protocol/2g/gas_smp/include/rr_smp_trc_mod_rr_smp_utmd.json
+
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/gas_tdd/common/include/rr_trc_mod_rrm_tdd_utmd.json \
+ protocol/2g/gas_tdd/lapdm/include/lapdm_trc_mod_lapdm_tdd_utmd.json \
+ protocol/2g/gas_tdd/rlc/include/rlc_trc_mod_rlc_tdd_utmd.json protocol/2g/gas_tdd/rlc/include/rlc_trc_mod_reasm_tdd_utmd.json \
+ protocol/2g/gas_tdd/mac/include/mac_trc_mod_mac_tdd_utmd.json \
+ protocol/2g/gas_smp_tdd/include/rr_smp_trc_mod_rr_smp_tdd_utmd.json
+ endif
+ ifneq ($(filter TRUE,$(MODIS_CONFIG) $(UE_SIMULATOR)),)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise/include/gise_trc_mod_gise_fdd_utmd.json
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise_tdd/include/gise_trc_mod_gise_tdd_utmd.json
+ endif
+ else
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise/include/gise_trc_mod_gise_fdd_utmd.json
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise_tdd/include/gise_trc_mod_gise_tdd_utmd.json
+ endif
+ endif
+ else
+ COMP_TRACE_DEFS_MODEM += l1/gl1/common/l1a_trace_mod_l1_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/mm/common/include/mm_trc.h \
+ protocol/2g/gas/include/rr_trc.h \
+ protocol/2g/gas/lapdm/include/lapdm_trc_mod_lapdm_fdd_utmd.json \
+ protocol/2g/gas/rlc/include/rlc_trc_mod_reasm_fdd_utmd.json protocol/2g/gas/rlc/include/rlc_trc_mod_rlc_fdd_utmd.json \
+ protocol/2g/gas/mac/include/mac_trc_mod_mac_fdd_utmd.json \
+ protocol/2g/gas/rrm/include/rrm_trc.h \
+ protocol/2g/gas_smp/include/rr_smp_trc_mod_rr_smp_utmd.json
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/gas_tdd/include/rr_trc.h \
+ protocol/2g/gas_tdd/lapdm/include/lapdm_trc_mod_lapdm_tdd_utmd.json \
+ protocol/2g/gas_tdd/rlc/include/rlc_trc_mod_rlc_tdd_utmd.json protocol/2g/gas_tdd/rlc/include/rlc_trc_mod_reasm_tdd_utmd.json \
+ protocol/2g/gas_tdd/mac/include/mac_trc_mod_mac_tdd_utmd.json \
+ protocol/2g/gas_tdd/rrm/include/rrm_trc.h \
+ protocol/2g/gas_smp_tdd/include/rr_smp_trc_mod_rr_smp_tdd_utmd.json
+ endif
+
+ ifneq ($(filter TRUE,$(MODIS_CONFIG) $(UE_SIMULATOR)),)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise/include/gise_trc_mod_gise_fdd_utmd.json
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise_tdd/include/gise_trc_mod_gise_tdd_utmd.json
+ endif
+ else
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise/include/gise_trc_mod_gise_fdd_utmd.json
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/las/gise_tdd/include/gise_trc_mod_gise_tdd_utmd.json
+ endif
+ endif
+ endif
+ endif
+
+ COMP_TRACE_DEFS_MODEM += protocol/layer4/sim/include/sim_trc_mod_sim_utmd.json
+ COMP_TRACE_DEFS_MODEM += service/nvram/include/nvram_trc_mod_nvram_utmd.json \
+ service/mcf/include/mcf_trace_mod_mcf_utmd.json \
+ protocol/layer4/l4/smsal/include/smsal_trc_mod_smsal_utmd.json \
+ protocol/layer4/l4/phb/include/phb_trc_mod_phb_utmd.json \
+ protocol/layer4/l4/smu/include/smu_trc_mod_smu_utmd.json \
+ protocol/nas/cc-ss/ss/include/ciss_trc_mod_ciss_utmd.json \
+ protocol/nas/cc-ss/cc/include/cc_trc_mod_cc_utmd.json \
+ protocol/layer4/l4/csm/csm_trc_mod_csm_utmd.json \
+ protocol/nas_multimode/nwsel/include/nwsel_trc_mod_nwsel_utmd.json \
+ interface/protocol/nas_multimode/upcm/upcm_trc_mod_upcm_utmd.json \
+ protocol/interface/l4misc/l4_trc_mod_l4c_utmd.json \
+ protocol/nas/sms/include/sms_trc_mod_sms_utmd.json \
+ protocol/layer4/l4/rac/common/include/rac_trc_mod_rac_utmd.json \
+ protocol/layer4/l4/tcm/common/tcm_trc_mod_tcm_utmd.json \
+ protocol/layer4/l4/tcm/rat_tcm/inc/rat_tcm_trc_mod_rat_tcm_utmd.json \
+ protocol/nas_23g/data/l2r/include/l2r_trc_mod_l2r_utmd.json \
+ protocol/nas_23g/data/tdt/include/tdt_trc_mod_tdt_utmd.json \
+ protocol/nas_23g/data/rlp/include/rlp_trc_mod_rlp_utmd.json \
+ protocol/nas_23g/data/t30/include/t30_trc_mod_t30_utmd.json \
+ protocol/nas_23g/data/fa/include/fa_trc_mod_fa_utmd.json \
+ driver/peripheral/inc/bmt_trc_mod_bmt_utmd.json \
+ protocol/as_multimode/mrs/include/mrs_trc_mod_mrs_utmd.json \
+ protocol/layer4/l4/mbmsal/src/mbmsal_trc_mod_mbmsal_utmd.json \
+ protocol/nas_multimode/gmss/include/gmss_trc_mod_gmss_utmd.json \
+ protocol/layer4/atp/include/atp_trc_mod_atp_utmd.json \
+ protocol/layer4/l4/l4b/include/l4b_trc_mod_l4b_utmd.json \
+ protocol/layer4/l4/l4b/l4bcc/include/l4bcc_trc_mod_l4bcc_utmd.json \
+ protocol/layer4/l4/l4b/l4bnw/include/l4bnw_trc_mod_l4bnw_utmd.json \
+ protocol/layer4/l4/l4b/l4bpwr/include/l4bpwr_trc_mod_l4bpwr_utmd.json \
+ protocol/layer4/l4/l4b/l4bsat/include/l4bsat_trc_mod_l4bsat_utmd.json \
+ protocol/layer4/l4/l4b/l4bsim/include/l4bsim_trc_mod_l4bsim_utmd.json \
+ protocol/layer4/l4/l4b/l4bsms/include/l4bsms_trc_mod_l4bsms_utmd.json \
+ protocol/layer4/l4/l4b/l4bpdn/include/l4bpdn_trc_mod_l4bpdn_utmd.json \
+ protocol/layer4/l4/l4b/l4bss/include/l4bss_trc_mod_l4bss_utmd.json \
+ protocol/layer4/l4/l4b/l4bsbp/include/l4bsbp_trc_mod_l4bsbp_utmd.json \
+ protocol/layer4/l4/l4aps/include/l4aps_trc_mod_l4aps_utmd.json \
+ protocol/ddm/d2/include/d2_trc_d2rm_utmd.json protocol/ddm/d2/include/d2_trc_libmdfx_utmd.json protocol/ddm/d2/include/d2_trc_d2_utmd.json protocol/ddm/d2/include/d2_trc_d2at_utmd.json protocol/ddm/d2/include/d2_trc_d2pm_utmd.json protocol/ddm/d2/include/d2_trc_d2cm_utmd.json protocol/ddm/d2/include/d2_trc_d2am_utmd.json custom/protocol/common/ps/custom_d2_trc_utmd.json \
+ protocol/ddm/d2/include/d2_trc_d2ux_utmd.json \
+ protocol/ddm/d2/include/d2_trc_d2apnb_utmd.json \
+ protocol/ddm/d2/include/d2_trc_d2apnc_utmd.json \
+ protocol/ddm/mod_ddm/include/ddm_trc_ddm_utmd.json \
+ protocol/simmngr/include/simmngr_trc_mod_simmngr_utmd.json \
+ protocol/iwlan/common/inc/iwlan_trc_mod_iwlan_utmd.json \
+ protocol/iwlan/common/inc/iwlan_wmob_trc_mod_iwlan_wmob_utmd.json \
+ protocol/iwlan/evhd/inc/iwlan_evhd_trc_mod_iwlan_evhd_utmd.json \
+ protocol/n3x/n3epc/src/n3epc_trc_mod_n3epc_utmd.json
+
+ ifneq ($(filter __L5_SUPPORT__, $(strip $(COM_DEFS))),)
+ COMP_TRACE_DEFS_MODEM += protocol/l5/atp/include/l5_trc_mod_atp_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5io/include/l5_trc_mod_l5io_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5u_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5ucc_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5uss_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5unw_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5urf_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5uswitch_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5usim_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5usys_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5ucat_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5usms_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5updn_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5uims_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/l5/l5u/include/l5_trc_mod_l5uecall_utmd.json
+ endif
+ ifeq ($(strip $(IPC_ADAPTER_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += protocol/ipc_adapter/ipca_cc_ctrl/include/ipca_cc_trc_mod_ipca_cc_utmd.json \
+ protocol/ipc_adapter/ipca_cfg_ctrl/include/ipca_cfg_trc_mod_ipca_cfg_utmd.json \
+ protocol/ipc_adapter/ipca_ctrl/include/ipca_ctrl_trc_mod_ipca_ctrl_utmd.json \
+ protocol/ipc_adapter/ipca_domestic/include/ipca_domestic_trc_mod_ipca_domestic_utmd.json \
+ protocol/ipc_adapter/ipca_dspl_ctrl/include/ipca_dspl_trc_mod_ipca_dspl_utmd.json \
+ protocol/ipc_adapter/ipca_em_ctrl/include/ipca_em_trc_mod_ipca_em_utmd.json \
+ protocol/ipc_adapter/ipca_embms_ctrl/include/ipca_embms_trc_mod_ipca_embms_utmd.json \
+ protocol/ipc_adapter/ipca_factory_ctrl/include/ipca_factory_trc_mod_ipca_factory_utmd.json \
+ protocol/ipc_adapter/ipca_gprs_ctrl/include/ipca_gprs_trc_mod_ipca_gprs_utmd.json \
+ protocol/ipc_adapter/ipca_gprs_routine_ctrl/include/ipca_gprs_routine_trc_mod_ipca_gprs_routine_utmd.json \
+ protocol/ipc_adapter/ipca_imei_ctrl/include/ipca_imei_trc_mod_ipca_imei_utmd.json \
+ protocol/ipc_adapter/ipca_ims_ctrl/include/ipca_ims_trc_mod_ipca_ims_utmd.json \
+ protocol/ipc_adapter/ipca_ir_ctrl/include/ipca_ir_trc_mod_ipca_ir_utmd.json \
+ protocol/ipc_adapter/ipca_misc_ctrl/include/ipca_misc_trc_mod_ipca_misc_utmd.json \
+ protocol/ipc_adapter/ipca_nw_ctrl/include/ipca_nw_trc_mod_ipca_nw_utmd.json \
+ protocol/ipc_adapter/ipca_phb_ctrl/include/ipca_phb_trc_mod_ipca_phb_utmd.json \
+ protocol/ipc_adapter/ipca_pwr_ctrl/include/ipca_pwr_trc_mod_ipca_pwr_utmd.json \
+ protocol/ipc_adapter/ipca_sat_ctrl/include/ipca_sat_trc_mod_ipca_sat_utmd.json \
+ protocol/ipc_adapter/ipca_sms_ctrl/include/ipca_sms_trc_mod_ipca_sms_utmd.json \
+ protocol/ipc_adapter/ipca_smu_ctrl/include/ipca_smu_trc_mod_ipca_smu_utmd.json \
+ protocol/ipc_adapter/ipca_ss_ctrl/include/ipca_ss_trc_mod_ipca_ss_utmd.json \
+ protocol/ipc_adapter/ipca_jpn_ctrl/include/ipca_jpn_trc_mod_ipca_jpn_utmd.json \
+ protocol/ipc_adapter/ipca_srlte_ctrl/include/ipca_srlte_trc_mod_ipca_srlte_utmd.json \
+ protocol/ipc_adapter/ipca_sap_ctrl/include/ipca_sap_trc_mod_ipca_sap_utmd.json \
+ protocol/mits/oem/oemapi/oem_trc_mod_ipca_oem_utmd.json \
+ protocol/mits/ipc/src/ssipc_trc_mod_utmd.json
+ endif
+
+ ifeq ($(strip $(N3GPP_OFFLOAD_ENABLE)),TRUE)
+ COMP_TRACE_DEFS_MODEM += protocol/n3x/n3cf/n3cf_trc_mod_n3cf_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/n3x/n3epc/src/n3epc_trc_mod_n3epc_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/n3x/n3ans/src/n3ans_trc_mod_n3ans_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/n3x/n3sam/utmd/n3sam_trc_mod_n3sam_utmd.json
+ COMP_TRACE_DEFS_MODEM += $(wildcard protocol/n3x/n3sam/utmd/*_utmd.json)
+ endif
+
+ COMP_TRACE_DEFS_MODEM += protocol/layer4/vdm/common/include/vdm_trc_mod_vdm_utmd.json \
+ protocol/layer4/vdm/trk/include/vdm_trk_trc_mod_vdm_trk_utmd.json \
+ protocol/layer4/vdm/ads/include/vdm_ads_trc_mod_vdm_ads_utmd.json \
+ protocol/layer4/vdm/vcc/include/vdm_vcc_trc_mod_vdm_vcc_utmd.json
+
+ COMP_TRACE_DEFS_MODEM += protocol/ssds/include/ssds_trc_mod_ssds_utmd.json
+
+ ifeq ($(strip $(GERAN_MODE_SUPPORT)),GERAN_EGPRS_MODE)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/llc/include/llc_trc_mod_llc_utmd.json \
+ protocol/2g/sndcp/include/snd_trc_mod_sndcp_utmd.json \
+ protocol/nas/sm/include/sm_trc_mod_sm_utmd.json \
+ protocol/nas_multimode/pam/pam_trc_mod_pam_utmd.json \
+ protocol/nas_multimode/nas_sv/include/nas_sv_trc_mod_nas_sv_utmd.json
+
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/llc/include/llc_trc_mod_llc_utmd.json \
+ protocol/2g/sndcp/include/snd_trc_mod_sndcp_utmd.json \
+ protocol/nas/sm/include/sm_trc_mod_sm_utmd.json \
+ protocol/3g/urr/urr_fdd/common/dbme/include/dbme_trc_mod_db_fdd_utmd.json \
+ protocol/3g/ul2/ul2_fdd/bmc/include/bmc_trc_mod_bmc_fdd_utmd.json \
+ protocol/3g/ul2/ul2_fdd/common/include/ul2_trc_mod_ul2_fdd_utmd.json \
+ protocol/3g/ul2/ul2_fdd/csr/include/csr_trc_mod_csr_fdd_utmd.json \
+ protocol/3g/ul2/ul2_fdd/pdcp/include/pdcp_trc_mod_pdcp_fdd_utmd.json \
+ protocol/3g/ul2/ul2_fdd/rabm/include/rabm_trc_mod_rabm_fdd_utmd.json \
+ protocol/3g/ul2/ul2_fdd/umac/include/umac_trc_mod_umac_fdd_utmd.json \
+ protocol/3g/ul2/ul2_fdd/urlc/include/urlc_trc_mod_urlc_fdd_utmd.json \
+ protocol/3g/ul2/ul2_fdd/urlc/include/drlc_trc_mod_drlc_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/common/include/adr_trc_mod_adr_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/cise/include/csce_trc_mod_csce_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/cise/include/cse_trc_mod_cse_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/cise/include/sibe_trc_mod_sibe_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/cise/include/usime_trc_mod_usime_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/common/include/urr_trc_mod_urr_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/meme/include/meme_trc_mod_meme_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/rrce/include/rrce_trc_mod_rrce_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/slce/include/slce_trc_mod_slce_fdd_utmd.json \
+ protocol/nas_multimode/pam/pam_trc_mod_pam_utmd.json
+
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/3g/urr/urr_tdd/common/dbme/include/dbme_trc_mod_db_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/bmc/include/bmc_trc_mod_bmc_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/common/include/ul2_trc_mod_ul2_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/csr/include/csr_trc_mod_csr_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/pdcp/include/pdcp_trc_mod_pdcp_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/rabm/include/rabm_trc_mod_rabm_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/umac/include/umac_trc_mod_umac_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/urlc/include/urlc_trc_mod_urlc_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/common/include/adr_trc_mod_adr_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/cise/include/csce_trc_mod_csce_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/cise/include/cse_trc_mod_cse_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/cise/include/sibe_trc_mod_sibe_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/cise/include/usime_trc_mod_usime_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/common/include/urr_trc_mod_urr_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/meme/include/meme_trc_mod_meme_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/rrce/include/rrce_trc_mod_rrce_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/slce/include/slce_trc_mod_slce_tdd_utmd.json
+ endif
+
+ ifneq ($(filter TRUE,$(MODIS_CONFIG) $(UE_SIMULATOR)),)
+ COMP_TRACE_DEFS_MODEM += protocol/3g/urr/urr_fdd/lcsce/include/lcsce_trc_mod_lcsce_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/las/include/lurr_trc_mod_lurr_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/lmeme/include/lmeme_trc_mod_lmeme_fdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lcsce/include/lcsce_trc_mod_lcsce_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/las/include/lurr_trc_mod_lurr_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lmeme/include/lmeme_trc_mod_lmeme_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lrrce/include/lrrce_trc_mod_lrrce_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lurlc/include/lurlc_trc_mod_lurlc_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lumac/include/lumac_trc_mod_lumac_tdd_utmd.json
+ else
+ COMP_TRACE_DEFS_MODEM += protocol/3g/urr/urr_fdd/lcsce/include/lcsce_trc_mod_lcsce_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/las/include/lurr_trc_mod_lurr_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/lmeme/include/lmeme_trc_mod_lmeme_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/common/dbme/include/dbme_trc_mod_db_fdd_utmd.json \
+ protocol/3g/urr/urr_fdd/common/include/adr_trc_mod_adr_fdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lcsce/include/lcsce_trc_mod_lcsce_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/las/include/lurr_trc_mod_lurr_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lmeme/include/lmeme_trc_mod_lmeme_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/lrrce/include/lrrce_trc_mod_lrrce_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lurlc/include/lurlc_trc_mod_lurlc_tdd_utmd.json \
+ protocol/3g/ul2/ul2_tdd/lumac/include/lumac_trc_mod_lumac_tdd_utmd.json
+
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/3g/urr/urr_tdd/common/dbme/include/dbme_trc_mod_db_tdd_utmd.json \
+ protocol/3g/urr/urr_tdd/common/include/adr_trc_mod_adr_tdd_utmd.json
+ endif
+ endif
+
+ ifneq ($(strip $(UE_SIMULATOR)),TRUE)
+ ifeq ($(strip $(UMTS_FDD_SUPPORT)),UMTS_FDD_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += l1/ul1/common/ul1a_trc_mod_ul1_utmd.json
+ endif
+ endif
+
+ ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ COMP_TRACE_DEFS_MODEM += protocol/as_multimode/rsva/rsvas/include/rsvas_trc_mod_rsvas_utmd.json \
+ protocol/as_multimode/rsva/rsvak/include/rsvak_trc_mod_rsvak_utmd.json \
+ protocol/as_multimode/rsva/rsvau/include/rsvau_trc_mod_rsvau_utmd.json \
+ protocol/as_multimode/rsva/mspm/include/mspm_trc_mod_mspm_utmd.json
+ ifdef C2K_MODE_SUPPORT
+ ifneq ($(strip $(call Upper,$(C2K_MODE_SUPPORT))),NONE)
+ COMP_TRACE_DEFS_MODEM += protocol/as_multimode/rsva/rsvac/include/rsvac_trc_mod_rsvac_utmd.json
+ endif
+ endif
+
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ COMP_TRACE_DEFS_MODEM += protocol/as_multimode/rsva/rsvag/include/rsvag_trc_mod_rsvag_utmd.json
+ endif
+
+ ifneq ($(call Upper,$(strip $(FIVEG_MODE_SUPPORT))),NONE)
+ COMP_TRACE_DEFS_MODEM += protocol/as_multimode/rsva/rsvan/include/rsvan_trc_mod_rsvan_utmd.json
+ endif
+
+ ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ COMP_TRACE_DEFS_MODEM += protocol/as_multimode/rsva/rsvae/include/rsvae_trc_mod_rsvae_utmd.json
+ endif
+ endif
+ endif
+ endif
+ endif
+
+ COMP_TRACE_DEFS_MODEM += interface/service/event_info/ul1_event_info_trc_mod_event_info_utmd.json \
+ interface/service/event_info/gas_event_info_trc_mod_event_info_utmd.json \
+ interface/service/event_info/ul2_event_info_trc_mod_event_info_utmd.json \
+ interface/service/event_info/uas_event_info_trc_mod_event_info_utmd.json \
+ interface/service/event_info/mm_event_info_trc_mod_event_info_utmd.json \
+ interface/service/event_info/ratdm_event_info_trc_mod_event_info_utmd.json \
+ interface/service/event_info/sm_event_info_trc_mod_event_info_utmd.json \
+ interface/service/event_info/sms_event_info_trc_mod_event_info_utmd.json \
+ interface/service/event_info/llc_event_info_trc_mod_event_info_utmd.json \
+ interface/service/event_info/sndcp_event_info_trc_mod_event_info_utmd.json \
+ interface/service/event_info/l4_event_info_trc_mod_event_info_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/agps/lbs/common/inc/lbs_trc_mod_lbs_utmd.json protocol/agps/lbs/common/inc/lbs_trc_mod_gps_utmd.json protocol/agps/lbs/common/inc/lbs_trc_mod_lio_utmd.json protocol/agps/lbs/common/inc/lbs_trc_mod_gnss_tc_utmd.json
+
+ ifeq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += protocol/smt/uesim_lte/ul1b/intf/ul1b_trc_mod_ul1b_utmd.json
+ endif
+
+ ifdef SP_VIDEO_CALL_SUPPORT
+ ifeq ($(strip $(SP_VIDEO_CALL_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += middleware/3g324m/tvt/inc/TVT_trc_mod_vt_utmd.json
+ endif
+ endif
+
+ ifdef CMUX_SUPPORT
+ ifeq ($(strip $(CMUX_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += driver/cmux/include/cmux_trc_mod_cmux_utmd.json
+ endif
+ endif
+
+ COMP_TRACE_DEFS_MODEM += protocol/3g/ul2/ul2_fdd/rfc2507/include/rfc2507_lib_trc_mod_rfc2507_utmd.json \
+ protocol/3g/ul2/ul2_tdd/rfc2507/include/rfc2507_lib_trc_mod_rfc2507_utmd.json
+
+ COMP_TRACE_DEFS_MODEM += protocol/3g/ul2/ul2_fdd/seq/include/seq_trc_mod_seq_fdd_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/3g/ul2/ul2_fdd/seq/include/seq_trc_mod_seq_fdd_utmd.json
+
+ ifeq ($(strip $(HIF_DPMAIF_DP_MD_SUPPORT)),TRUE)
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COMP_TRACE_DEFS_MODEM += driver/dpmaifdrv_dp/inc/dpmaif_trace_mod_dpmaif_utmd.json
+ endif
+ endif
+
+ ifneq ($(filter __PERF_SUPPORT__,$(COM_DEFS)),)
+ COMP_TRACE_DEFS_MODEM += protocol/perf/src/perf_trace_utmd.json
+ COMP_TRACE_DEFS_MODEM += protocol/perf/src/erm_trace_utmd.json
+ endif
+
+ COMP_TRACE_DEFS_MODEM += protocol/sase/common/include/sase_trace_mod_sase_client_utmd.json protocol/sase/common/include/sase_trace_mod_sase_utmd.json
+ ifneq ($(filter __SASE_TEST_SUPPORT__,$(COM_DEFS)),)
+ COMP_TRACE_DEFS_MODEM += protocol/sase/common/include/sase_trace_mod_sase_test_utmd.json
+ endif
+
+endif #end of not L1S or BASIC
+
+# *************************************************************************
+# define by filtering
+# *************************************************************************
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(filter __MAUI_BASIC__,$(COM_DEFS)),)
+ COMP_TRACE_DEFS_MODEM += driver/audio/src/v1/inc/l1audio_sph_trc_mod_l1audio_sph_srv_utmd.json
+ endif
+ ifeq ($(strip $(MD_TFWK)),TRUE)
+ COMP_TRACE_DEFS_MODEM += driver/devdrv/tia/inc/tia_trace_utmd.json
+ endif
+endif
+
+ifeq ($(filter L1S BASIC,$(strip $(TEST_LOAD_TYPE))),)
+ ifneq ($(filter __MTK_3G_MRAT_ARCH__,$(strip $(COM_DEFS))),)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/gas/mpal/include/mpal_trace_mod_mpal_fdd_utmd.json
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/gas_tdd/mpal/include/mpal_trace_mod_mpal_tdd_utmd.json
+ endif
+ else
+ ifeq ($(strip $(GERAN_MODE_SUPPORT)),GERAN_EGPRS_MODE)
+ ifeq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/gas/mpal/include/mpal_trace_mod_mpal_fdd_utmd.json
+ ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
+ COMP_TRACE_DEFS_MODEM += protocol/2g/gas_tdd/mpal/include/mpal_trace_mod_mpal_tdd_utmd.json
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ ifneq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ FLC_LIB_INCLUDE_CONDITION = FALSE
+ ifneq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifneq ($(strip $(CSD_SUPPORT)),NONE)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifeq ($(strip $(FLC_LIB_INCLUDE_CONDITION)),TRUE)
+ COMP_TRACE_DEFS_MODEM += $(strip $(FLC_FOLDER))/include/flc_trc_mod_flc_utmd.json
+ endif
+ endif
+endif
+
+ifeq ($(strip $(DMF_SUPPORT)),TRUE)
+ COMP_TRACE_DEFS_MODEM += protocol/dmf/include/dmf_trc_mod_dmf_utmd.json
+endif
+
diff --git a/mcu/make/common/standalone_action.mak b/mcu/make/common/standalone_action.mak
new file mode 100644
index 0000000..c451080
--- /dev/null
+++ b/mcu/make/common/standalone_action.mak
@@ -0,0 +1,288 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+#
+# *************************************************************************
+# STANDALONE_ACTION.mak - independent build action
+#
+# DISCUSSION:
+#
+# USAGE:
+#
+# IMPORTANT NOTES:
+#
+# *************************************************************************
+#
+# $Revision:$
+# $Modtime:$
+# $Log:$
+#
+# 01 14 2019 yuri.huang
+# [MOLY00363660] [Auto-Gen] Merge 2 links to 1 link to save more build time.
+# (Frank Hu).
+#
+# 04 09 2018 gerry.liao
+# [MOLY00318691] [SM] remove no use variable (PCORE_ROOT, COMMON_ROOT, l1core)
+# .
+#
+# 06 16 2016 wcpadmin
+# smart new env.
+#
+# 01 28 2016 chi-chun.lu
+# [MOLY00162790] [MakeFile] [Remove: Feature Option] DSP_SOLUTION
+#
+# .
+#
+# 01 13 2016 gerry.liao
+# [MOLY00159998] [SM] memquery remove l1 core related feature
+# .
+#
+# 01 13 2016 chi-chun.lu
+# [MOLY00155432] [MakeFile] [UMOLY] [Modify Makefile Rules] UMOLY build env. modifications
+#
+# .
+#
+# 12 30 2015 chi-chun.lu
+# [MOLY00155432] [MakeFile] [UMOLY] [Modify Makefile Rules] UMOLY build env. modifications
+#
+# .
+#
+# 12 07 2015 chi-chun.lu
+# [MOLY00150620] [MakeFile][UMOLY] [Modify Makefile Rules] UMOLY cleanup
+#
+# .
+#
+# 10 28 2015 chi-chun.lu
+# [MOLY00147089] [MakeFile][UMOLY] [Modify Makefile Rules] reorg UMOLY make folder
+#
+# .
+#
+# 04 28 2015 chi-chun.lu
+# [MOLY00109710] [SM] fix c,r command can't pass correctly to .
+# .
+#
+# 03 20 2015 chi-chun.lu
+# [MOLY00099959] [SM] enhance remake action in .
+# .
+#
+# 02 11 2015 ray.lin-wang
+# [MOLY00095788] Merge filter bin files of different cores into a catcher_filter.bin
+# .
+#
+# 01 27 2015 chi-chun.lu
+# [MOLY00093671] [SM] modify memquery.pl related parameter in standalone_action.mak
+# .
+#
+# 01 20 2015 chi-chun.lu
+# [MOLY00092726] [TK6291] [SystemService][Auto-Gen] Memory Utility Refinement
+# .
+#
+# 09 23 2014 tafang.chen
+# [MOLY00062786] [UMOLY][SM] Add _P_ and _L_ for elf,map,sym,cmm files to recognize ., ..
+#
+# 07 17 2014 tafang.chen
+# [MOLY00062786] [UMOLY][SM]
+# Fix -no_pc problem in two phase linking build.
+#
+# 06 17 2014 tafang.chen
+# [MOLY00062786] [UMOLY][SM]
+# Remove named debug message.
+#
+# 06 17 2014 tafang.chen
+# [MOLY00062786] [UMOLY][SM]
+# Fix variation load problem in two-phase linking.(Brian.Chiang)
+#
+# 05 22 2014 tafang.chen
+# [MOLY00062786] [UMOLY][SM]
+# Initial MoDIS build env - fix path problem.
+#
+# 05 07 2014 tafang.chen
+# [MOLY00062786] [UMOLY][SM]
+# Implement two phase linking.
+#
+# 05 06 2014 tafang.chen
+# Fix incorrect single_core settting on . when full build
+#
+# 11 26 2013 ray.lin-wang
+# [MOLY00047495] [MakeFile] [Modify Common Makefile] Cgen Enhancement
+# Support gen query mod sim source in OA domain
+#
+# 06 25 2013 ray.lin-wang
+# [MOLY00027330] [ARM7toMOLY] ARM7 Build/SYSGEN/Functions Update to TRUNK
+# .
+#
+# 06 03 2013 amber.su
+# [MOLY00023890] [SystemService][Auto-Gen][Internal Refinement] Support compiler option judgement
+# .
+#
+# 04 23 2013 amber.su
+# [MOLY00020348] [MT6290 Bring-up][MakeFile] [Modify: Others] Modify build.mak for ROM & File System Overlapping check
+# .
+#
+# 04 12 2013 amber.su
+# [MOLY00014181] [MakeFile] [Add: Build Action] Add gendummysym command for memory expired analysis
+# .
+#
+# 01 24 2013 amber.su
+# [MOLY00009227] [SystemService][AAPMC][Internal Refinement] Support AAPMC to auto-adjust Modem Image Layout
+# .
+#
+# 01 21 2013 amber.su
+# .
+#
+# 01 17 2013 amber.su
+# .
+#
+# 01 08 2013 amber.su
+# [MOLY00008435] [SystemService][MemoryUitlity][Internal Refinement] Provide build command to use Memory Utility
+# .
+#
+# 09 26 2012 amber.su
+# [MOLY00004055] [Custom Release][Build Command] build command change for custom release flow
+# .
+#
+# 09 12 2012 amber.su
+# [MOLY00003467] [Target Build] build command change modification
+# .
+#
+# 07 30 2012 jerry.chang
+# [MOLY00001397] [MOLY] rename gsm2.mak and make2.pl
+# .
+# *************************************************************************
+
+.PHONY: gendummylis memquery gendummysym
+
+ifdef NO_PCIBT
+ifeq ($(NO_PCIBT),TRUE)
+NO_PC_ACTION += -no_pc
+else
+NO_PC_ACTION =
+endif
+endif
+
+ifeq ($(strip $(NO_DSP)),TRUE)
+NO_PC_ACTION += -no_dsp
+endif
+
+# *************************************************************************
+# Generate dummy .lis file for memory analysis
+# *************************************************************************
+gendummylis:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @if exist $(SCATTERFILE) copy /y $(SCATTERFILE) $(SCATTERFILE).original > NUL
+ @tools\make.exe -f$(strip $(MAKE_COMMON))/build.mak -r -R PROJECT_NAME=$(strip $(PROJECT_NAME)) PROJECT_MAKEFILE="$(strip $(PROJECT_MAKEFILE))" FLAVOR=$(strip $(FLAVOR)) DUMMY_LIS=TRUE sys_auto_gen LINK_BIN_FILE & \
+ (if ERRORLEVEL 1 exit 1)
+
+ @if not exist $(strip $(TARGDIR))\$(IMG_FILE) \
+ echo Error in gendummylis & exit 1
+
+ifeq ($(strip $(VIVA_AUTO_SUPPORT)),TRUE)
+ @tools\make.exe -f$(strip $(MAKE_COMMON))/build.mak -r -R PROJECT_NAME=$(strip $(PROJECT_NAME)) PROJECT_MAKEFILE="$(strip $(PROJECT_MAKEFILE))" FLAVOR=$(strip $(FLAVOR)) FROMELF_BIN_FILE & \
+ (if ERRORLEVEL 1 exit 1)
+ @if not exist $(strip $(TARGDIR))\VIVA_DEBUG md $(strip $(TARGDIR))\VIVA_DEBUG
+ @if exist $(strip $(TARGDIR))\$(strip $(BIN_FILE)) \
+ md $(strip $(TARGDIR))\VIVA_DEBUG\$(strip $(BIN_FILE))_dummy & \
+ copy /y $(strip $(TARGDIR))\$(strip $(BIN_FILE))\*.* $(strip $(TARGDIR))\VIVA_DEBUG\$(strip $(BIN_FILE))_dummy & \
+ copy /y $(strip $(TARGDIR))\$(strip $(LIS_FILE)) $(strip $(TARGDIR))\VIVA_DEBUG\$(strip $(LIS_FILE)).dummy & \
+ rd /S /Q $(strip $(TARGDIR))\$(strip $(BIN_FILE))
+endif
+ @copy /y $(SCATTERFILE) $(SCATTERFILE).dummy > NUL
+ @if exist $(SCATTERFILE).original move /y $(SCATTERFILE).original $(SCATTERFILE) > NUL
+ @if exist $(strip $(TARGDIR))\$(IMG_FILE) del /q $(strip $(TARGDIR))\$(IMG_FILE)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Generate dummy .sym file
+# *************************************************************************
+gendummysym:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+ @$(IF_EXIST) $(strip $(TMPDIR))/~libs.tmp $(THEN)\
+ ($(ECHO) "--noinhibit-exec " >$(TMPDIR)/~dummylibs.tmp) $(WITH) \
+ ($(CAT) $(strip $(TMPDIR))/~libs.tmp >> $(TMPDIR)/~dummylibs.tmp) \
+ $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(COMPLOGDIR))/link_option.log $(THEN)\
+ ($(ECHO) "--noinhibit-exec " >$(TMPDIR)/~dummylibs.tmp) $(WITH) \
+ ($(CAT) $(strip $(COMPLOGDIR))/link_option.log >> $(TMPDIR)/~dummylibs.tmp) \
+ $(CMD_END)
+
+ @$(IF_NOT_EXIST) $(strip $(TMPDIR))/~dummylibs.tmp $(THEN)\
+ (echo Error: $(strip $(TMPDIR))/~dummylibs.tmp does not existed! $(WITH) exit 1) $(CMD_END)
+
+ @$(IF_EXIST) $(strip $(TMPDIR))/~libs.tmp $(THEN)\
+ ($(ECHO) "--noinhibit-exec " >$(TMPDIR)/~dummylibs.tmp) $(WITH) \
+ ($(CAT) $(strip $(TMPDIR))/~libs.tmp >> $(TMPDIR)/~dummylibs.tmp) \
+ $(CMD_END)
+
+ @$(strip $(LINK)) $(strip $(VIA))$(TMPDIR)/~dummylibs.tmp >$(DEV_NUL) 2>&1
+ @$(strip $(DUMP)) -x $(strip $(TARGDIR))/$(IMG_FILE) > $(strip $(TARGDIR))/dummy_$(SYM_FILE) $(WITH) \
+ ($(IF_ERR_TRUE) $(THEN) \
+ ($(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(IMG_FILE)) $(CMD_END)) $(WITH) \
+ (echo Error: failed to generate .sym file $(WITH) exit 1)\
+ $(CMD_END))
+
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) ($(DEL_DIR) $(strip $(TARGDIR))/$(strip $(BIN_FILE))) $(CMD_END)
+ @$(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(IMG_FILE)) $(CMD_END)
+ @$(IF_NOT_EXIST) $(strip $(TARGDIR))/dummy_$(SYM_FILE) $(THEN) (echo Error: gendummysym failed! $(WITH) exit 1) $(CMD_END)
+ @$(IF_EXIST) $(TMPDIR)/~dummylibs.tmp $(THEN) ($(DEL_FILE) $(TMPDIR)/~dummylibs.tmp) $(CMD_END)
+ @echo Done for gendummysym
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+
+# *************************************************************************
+# Get Memory Usage Information
+# *************************************************************************
+memquery:
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
+ @$(IF_EXIST) $(FIXPATH)/tools/MemoryUtility/memquery.pl $(THEN) \
+ perl $(FIXPATH)/tools/MemoryUtility/memquery.pl $(strip $(TMPDIR))/~memquery.tmp $(SCATTERFILE) "$(strip $(PROJECT_MAKEFILE))" $(strip $(TARGDIR))/$(MAP_FILE) $(strip $(COMPLOGDIR)) $(strip $(INFOMAKELOG)) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) \
+ $(CMD_END)
+# mbis time probe
+ifeq ($(strip $(MBIS_EN)),TRUE)
+ @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
+endif
diff --git a/mcu/make/common/user_specific.mak b/mcu/make/common/user_specific.mak
new file mode 100644
index 0000000..0746332
--- /dev/null
+++ b/mcu/make/common/user_specific.mak
@@ -0,0 +1,70 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+#
+
+#If CUSTOM_CFLAGS = #-g in project makefile, set some modules to apply -g
+#Please remove 1st # in the following 2 lines
+#DEBUG_MODULES = # Value should be ALL or modules.
+#CUSTOM_CFLAGS := # Do not add any options for this.
+
+#If CUSTOM_CFLAGS = -g in project makefile, set some modules NOT to apply -g
+#Please remove 1st # in the following line
+#NON_DEBUG_MODULES = # Value should be ALL or modules.
+
+
+#Example of DEBUG_MODULES
+#1. DEBUG_MODULES = all
+# CUSTOM_CFLAGS :=
+# ==> all modules will apply -g when update, remake or new these modules
+#
+#2. DEBUG_MODULES = kal stacklib plutommi mtkapp t9
+# CUSTOM_CFLAGS :=
+# ==> only kal, stacklib, plutommi, mtkapp, t9 will apply -g
+# when update, remake these modules or new
+#
+#
+# NOTE: DEBUG_MODULES = all kal stacklib, all modules will apply -g
+#
+
+
+#Example of NON_DEBUG_MODULES
+#1. NON_DEBUG_MODULES = all
+# ==> all modules will NOT apply -g when update, remake or new these modules
+#
+#2. NON_DEBUG_MODULES = kal stacklib plutommi mtkapp t9
+# ==> only kal, stacklib, plutommi, mtkapp, t9 will NOT apply -g
+# when update, remake these modules or new
+#
+#
+# NOTE: NON_DEBUG_MODULES = all kal stacklib, all modules will NOT apply -g
+#
diff --git a/mcu/make/common/xgeninc.mak b/mcu/make/common/xgeninc.mak
new file mode 100644
index 0000000..36aac93
--- /dev/null
+++ b/mcu/make/common/xgeninc.mak
@@ -0,0 +1,985 @@
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2005
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER 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 BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'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 BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+
+# Define include path lists to XGEN_INC_DIR
+#XGEN_INC_DIR = $(COMMINCDIRS)
+XGEN_INC_DIR_FDD :=
+XGEN_INC_DIR_TDD :=
+
+ifneq ($(filter __PERF_SUPPORT__,$(COM_DEFS)),)
+ XGEN_INC_DIR += protocol/perf/src
+ XGEN_INC_DIR += protocol/perf
+endif
+
+ifneq ($(strip $(L1_UMTS)),TRUE)
+ XGEN_INC_DIR += protocol/as_multimode/asinterfaces/include \
+ $(strip $(GAS_FOLDER))/common/include \
+ $(strip $(GAS_FOLDER))/rrm/common/include \
+ $(strip $(GAS_FOLDER))/rrm/rmc/include \
+ $(strip $(GAS_FOLDER))/rrm/rcs/include \
+ $(strip $(GAS_FOLDER))/lapdm/include \
+ $(strip $(GAS_FOLDER))/mpal/include \
+ $(strip $(GAS_FOLDER))/rlc/include \
+ $(strip $(GAS_FOLDER))/mac/include \
+ $(strip $(GAS_FOLDER))/rrm/rmp/include \
+ protocol/nas/mm/cmm/include \
+ protocol/nas/mm/common/include \
+ protocol/nas/mm/pmm/include \
+ protocol/as_multimode/ratcm/include \
+ protocol/as_multimode/ratdm/cmn_sig/include \
+ protocol/as_utility/scsi/gen/include \
+ protocol/as_utility/scsi/include \
+ interface/l1/ul1 \
+ l1/interface/el1 \
+ protocol/2g/las/gise/include \
+ protocol/2g/las/gise_tdd/include \
+ l1/ul1/common \
+ service/fsm/include
+ ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ XGEN_INC_DIR += protocol/as_multimode/rsva/rsvas/include \
+ protocol/as_multimode/rsva/interface/enum \
+ protocol/as_multimode/rsva/interface/local_inc \
+ protocol/as_multimode/rsva/common/include \
+ protocol/as_multimode/rsva/mspm/include \
+ interface/service/icd \
+ interface/service/icd/event/cm \
+ $(strip $(PROJDIR))/modem/icd_ac_gen
+
+ endif
+ endif
+else
+ ifneq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ GAS_INC_SUPPORT = TRUE
+ else
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ GAS_INC_SUPPORT = TRUE
+ endif
+ endif
+ ifeq ($(strip $(GAS_INC_SUPPORT)),TRUE)
+ XGEN_INC_DIR += protocol/as_multimode/asinterfaces/include \
+ $(strip $(GAS_FOLDER))/common/include \
+ $(strip $(GAS_FOLDER))/rrm/common/include \
+ $(strip $(GAS_FOLDER))/rrm/rmc/include \
+ $(strip $(GAS_FOLDER))/rrm/rcs/include \
+ $(strip $(GAS_FOLDER))/lapdm/include \
+ $(strip $(GAS_FOLDER))/mpal/include \
+ $(strip $(GAS_FOLDER))/rlc/include \
+ $(strip $(GAS_FOLDER))/mac/include \
+ protocol/2g/las/gise/include \
+ protocol/2g/las/gise_tdd/include \
+ protocol \
+ protocol/nas/mm/cmm/include \
+ protocol/nas/mm/common/include \
+ protocol/nas/mm/pmm/include \
+ protocol/as_multimode/ratcm/include \
+ protocol/as_multimode/ratdm/cmn_sig/include \
+ protocol/as_utility/scsi/gen/include \
+ protocol/as_utility/scsi/include \
+ $(strip $(UAS_FOLDER))/interface/include \
+ protocol \
+ protocol/3g/urr/urr_fdd/common/asn1/include \
+ protocol/3g/urr/urr_tdd/common/asn1/include \
+ $(strip $(UAS_FOLDER))/common/include \
+ $(strip $(UAS_FOLDER))/interface/enum \
+ $(strip $(UAS_FOLDER))/interface/local_inc \
+ $(strip $(UAS_FOLDER))/ul2/common/include \
+ $(strip $(UAS_FOLDER))/ul2/bmc/include \
+ $(strip $(UAS_FOLDER))/ul2/pdcp/include \
+ $(strip $(UAS_FOLDER))/ul2/rabm/include \
+ $(strip $(UAS_FOLDER))/ul2/umac/include \
+ $(strip $(UAS_FOLDER))/ul2/urlc/include \
+ $(strip $(UAS_FOLDER))/ul2/seq/include \
+ $(strip $(UAS_FOLDER))/urr/common/include \
+ $(strip $(UAS_FOLDER))/urr/meme/include \
+ $(strip $(UAS_FOLDER))/urr/rrce/include \
+ $(strip $(UAS_FOLDER))/urr/slce/include \
+ $(strip $(UAS_FOLDER))/urr/dbme/include \
+ $(strip $(UAS_FOLDER))/urr/cise/include \
+ service/fsm/include \
+ driver/bytecopy/inc \
+ interface/l1/ul1/internal \
+ ./interface/modem/l1/gsm/internal \
+ protocol/2g/interface \
+ interface/protocol/general \
+ $(strip $(PROJDIR))/modem/dbme \
+ $(strip $(PROJDIR))/modem/rrc_asn \
+ $(strip $(PROJDIR))/modem/mcddll \
+ protocol/3g/urr/urr_fdd/common/dbme/include \
+ protocol/as_multimode/dbme/include \
+ protocol/3g/urr/interface/struct \
+ interface/protocol/general \
+ ./service/event_info \
+ protocol/as_multimode/las/include \
+ interface/service/cert
+
+ XGEN_INC_DIR_FDD += $(strip $(PROJDIR))/modem/dbme/fdd \
+ $(strip $(PROJDIR))/modem/rrc_asn/fdd \
+ $(strip $(PROJDIR))/modem/mcddll/fdd \
+ protocol/3g/urr/urr_fdd/lcsce/include \
+ protocol/3g/urr/urr_fdd/lmeme/include \
+ protocol/3g/urr/urr_fdd/common/include \
+ protocol/3g/urr/urr_fdd/las/include \
+ protocol/3g/urr/urr_fdd/ldbme/include
+
+ XGEN_INC_DIR_TDD += $(strip $(PROJDIR))/modem/dbme/tdd \
+ $(strip $(PROJDIR))/modem/rrc_asn/tdd \
+ $(strip $(PROJDIR))/modem/mcddll/tdd \
+ $(strip $(PROJDIR))/modem/lpcch_asn \
+ protocol/3g/urr/urr_tdd/lcsce/include \
+ protocol/3g/urr/urr_tdd/lmeme/include \
+ protocol/3g/urr/urr_tdd/common/include \
+ protocol/3g/urr/urr_tdd/las/include \
+ protocol/3g/urr/urr_tdd/ldbme/include \
+ protocol/3g/ul2/ul2_tdd/lurlc/include \
+ protocol/3g/urr/urr_tdd/lrrce/include \
+ protocol/3g/ul2/ul2_tdd/lumac/include \
+ protocol/3g/interface/uas/uas_tdd/struct
+
+ ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ XGEN_INC_DIR += protocol/as_multimode/rsva/rsvas/include \
+ protocol/as_multimode/rsva/interface/enum \
+ protocol/as_multimode/rsva/interface/local_inc \
+ protocol/as_multimode/rsva/common/include \
+ protocol/as_multimode/rsva/rsvak/include \
+ protocol/as_multimode/rsva/rsvau/include \
+ protocol/as_multimode/rsva/rsvae/include \
+ protocol/as_multimode/rsva/rsvan/include \
+ protocol/as_multimode/rsva/rsvac/include \
+ protocol/as_multimode/rsva/rsvag/include \
+ protocol/as_multimode/rsva/mspm/include \
+ interface/service/icd \
+ interface/service/icd/event/cm \
+ $(strip $(PROJDIR))/modem/icd_ac_gen
+ endif
+ endif
+ XGEN_INC_DIR += ./interface/uas \
+ interface/driver/dpcopro
+ endif
+endif
+
+ifeq ($(strip $(L1_UMTS)),TRUE)
+ XGEN_INC_DIR += protocol/2g/sndcp/include \
+ protocol/nas/sm/include \
+ protocol/nas_multimode/pam \
+ protocol/nas_utility/nas_common_utility/include \
+ protocol/2g/llc/include
+else
+ ifeq ($(strip $(GERAN_MODE_SUPPORT)),GERAN_EGPRS_MODE)
+ ifeq ($(strip $(UTRAN_MODE_SUPPORT)),NONE)
+ XGEN_INC_DIR += protocol/2g/sndcp/include \
+ protocol/nas/sm/include \
+ protocol/nas_multimode/pam \
+ protocol/nas_utility/nas_common_utility/include \
+ protocol/2g/llc/include
+ endif
+ endif
+endif
+
+XGEN_INC_DIR += protocol/nas_multimode/nas_sv/include
+XGEN_INC_DIR += protocol/nas_multimode/tftlib
+XGEN_INC_DIR += protocol/nas_multimode/smic/include
+XGEN_INC_DIR += protocol/interface/nas_multimode
+XGEN_INC_DIR += protocol/interface/vgnas/trace
+XGEN_INC_DIR += protocol/interface/vgnas/sms
+XGEN_INC_DIR += protocol/vgnas/vgsm/include
+XGEN_INC_DIR += protocol/vgnas/vgmm/include
+XGEN_INC_DIR += protocol/upds/include
+XGEN_INC_DIR += protocol/interface/as_multimode/5g
+XGEN_INC_DIR += protocol/interface/general/5g
+XGEN_INC_DIR += protocol/vgnas/interface
+XGEN_INC_DIR += protocol/ddm/psilib/include
+XGEN_INC_DIR += protocol/as_multimode/mrs/capability/include
+ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V2)
+ XGEN_INC_DIR += protocol/interface/enl2/el2
+ XGEN_INC_DIR += protocol/interface/enl2/en_common
+else
+ XGEN_INC_DIR += protocol/interface/el2
+endif
+XGEN_INC_DIR += protocol/interface/nas_multimode/upcm
+XGEN_INC_DIR += protocol/interface/ddm
+XGEN_INC_DIR += protocol/interface/agps
+
+XGEN_INC_DIR_FDD += interface/l1/ul1
+XGEN_INC_DIR_TDD += protocol/interface/l1/tdd
+
+ifneq ($(filter __LTE_PHY_TEST__,$(COM_DEFS)),)
+ XGEN_INC_DIR_TDD += $(EL1_FOLDER)/$(strip $(EL1C_MD_VER_FOLDER))/tstm/include
+else
+ XGEN_INC_DIR_TDD += $(EL1_FOLDER)/$(strip $(EL1C_MD_VER_FOLDER))/tstm_meta/include \
+ $(EL1_FOLDER)/comm/tstm_meta/include
+ XGEN_INC_DIR += l1/el1/el1c_pub/$(strip $(MD_VER_FOLDER))/trc
+endif
+
+XGEN_INC_DIR += interface/service/em/protect \
+ protocol/nas/cc-ss/cc/include \
+ protocol/nas/sms/include \
+ $(strip $(PPP_FOLDER))/include \
+ protocol/nas_23g/data/include \
+ protocol/nas_23g/data/l2r/include \
+ protocol/nas_23g/data/rlp/include \
+ protocol/nas_23g/data/tdt/include \
+ protocol/nas_23g/data/t30/include \
+ protocol/nas_23g/data/fa/include \
+ protocol/as_utility/mcd/include \
+ protocol/ircomm/include \
+ l1/gl1/common \
+ interface/protocol/gas/include \
+ interface/l1/ul1 \
+ interface/service/mdmp \
+ l1/interface/el1 \
+ l1/md_sm/common/ul1sm \
+ l1/ul1/common \
+ l1/interface/tl1 \
+ l1/interface/rtb \
+ protocol/interface/l4 \
+ protocol/interface/l4misc \
+ protocol/interface/ims \
+ protocol/interface/eap \
+ protocol/interface/asn/rr/include \
+ protocol/nas_multimode/nwsel/include \
+ protocol/layer4/l4/include \
+ protocol/layer4/l4/csm \
+ protocol/layer4/l4/csm/cc/include \
+ protocol/layer4/l4/smu/include \
+ protocol/layer4/l4/smsal/include \
+ protocol/layer4/l4/tcm/common \
+ protocol/layer4/l4/rac/common/include \
+ protocol/layer4/l4/rac/ugrac/include \
+ protocol/interface/mcd/include \
+ protocol/layer4/l4/l4c/include/proc \
+ protocol/layer4/l4/tcm/ugtcm \
+ protocol/layer4/l4/tcm/etcm/include \
+ protocol/layer4/l4/tcm/vgtcm/include \
+ protocol/layer4/l4/tcm/rat_tcm/inc \
+ protocol/layer4/l4/psdm/include \
+ protocol/ephy/ephy_rf \
+ protocol/layer4/sim/include \
+ ./service/sst/include \
+ ./service/sst/include \
+ ./service/kal/common/include \
+ ./service/kal/lib/mlib/include \
+ ./middleware/interfaces/local_inc \
+ driver/audio/med/audio/include \
+ driver/audio/med/common/include \
+ interface/l1/ul1/internal \
+ ./interface/modem/l1/gsm/internal \
+ l1/interface/el1/el1c/include \
+ protocol/nas_multimode/gmss/include \
+ protocol/layer4/l4/l4b/interface \
+ protocol/layer4/l4/l4b/include \
+ protocol/layer4/l4/l4b/l4bpwr/include \
+ protocol/layer4/l4/l4b/l4bnw/include \
+ protocol/layer4/l4/l4b/l4bsim/include \
+ protocol/layer4/l4/l4b/l4bpdn/include \
+ protocol/layer4/l4/l4b/l4bsbp/include \
+ protocol/layer4/l4/l4b/l4bsms/include \
+ protocol/layer4/vdm/interface \
+ protocol/layer4/vdm/common/include \
+ protocol/layer4/vdm/trk/include \
+ protocol/layer4/vdm/ads/include \
+ protocol/layer4/vdm/vcc/include \
+ l1/interface/mml1/mml1_fwk \
+ l1/interface/mml1/mml1_lpwr \
+ protocol/l5/include \
+ protocol/l5/l5u/include \
+ protocol/l5/util/include \
+ protocol/l5/l5io/include \
+ protocol/l5/l5io/l5ath \
+ protocol/l5/l5io/l5ath/userdef \
+ protocol/l5/l5io/l5mipc/include \
+ $(strip $(PROJDIR))/modem/mipc/include \
+ interface/protocol/l5/mipc/common \
+ interface/protocol/l5/mipc/msg \
+ protocol/l5/l5io/l5mbci/include \
+ interface/protocol/l1misc \
+ interface/protocol/l1misc/tasar \
+ l1/interface/mml1/mml1_endc \
+ interface/l1/mml1/external/mml1_endc
+
+ifneq ($(filter __L5_SUPPORT__,$(strip $(COM_DEFS))),)
+ XGEN_INC_DIR += protocol/l5/atp/include
+else
+ XGEN_INC_DIR += protocol/layer4/atp/include
+endif
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ XGEN_INC_DIR += protocol/layer4/l4/rac/erac/include
+endif
+
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ XGEN_INC_DIR += $(strip $(UAS_FOLDER))/ul2/rfc2507/include
+endif
+
+ifdef AGPS_SUPPORT
+ ifneq ($(strip $(AGPS_SUPPORT)), NONE)
+ ifeq ($(strip $(AGPS_SUPPORT)), USER_PLANE)
+ XGEN_INC_DIR += inet_ps/supl/include
+ endif
+ XGEN_INC_DIR += protocol/agps/rrlp/include
+ endif
+endif
+
+
+ifeq ($(filter BASIC UDVT,$(TEST_LOAD_TYPE)),)
+ FLC_LIB_INCLUDE_CONDITION = FALSE
+ ifneq ($(filter __PS_SERVICE__,$(COM_DEFS)),)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifneq ($(strip $(CSD_SUPPORT)),NONE)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifeq ($(strip $(IRDA_SUPPORT)),TRUE)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifneq ($(strip $(TCPIP_SUPPORT)),NONE)
+ FLC_LIB_INCLUDE_CONDITION = TRUE
+ endif
+ ifeq ($(strip $(FLC_LIB_INCLUDE_CONDITION)),TRUE)
+ XGEN_INC_DIR += $(strip $(FLC_FOLDER))/include
+ endif
+endif
+
+
+ifdef GEMINI
+ ifneq ($(strip $(GEMINI)),FALSE)
+ XGEN_INC_DIR += protocol/as_multimode/as_semaphore_utility/include
+ endif
+endif
+
+XGEN_INC_DIR += protocol/as_utility/mcddll/include
+XGEN_INC_DIR += protocol/layer4/l4/dt/include
+XGEN_INC_DIR += inet_ps/ems/include protocol/nas/cc-ss/ss/include
+XGEN_INC_DIR += ./interface/service/kal \
+ interface/driver/sleep_drv \
+ interface/l1/md_sm
+
+XGEN_INC_DIR += ${PROJDIR}/nvram_auto_gen
+
+ifeq ($(filter L1S BASIC UDVT,$(TEST_LOAD_TYPE)),)
+ XGEN_INC_DIR += inet_ps/ems/include
+endif
+
+XGEN_INC_DIR += external_mmi/wise/bal/telephony/include \
+ protocol/interface/asn/asn1lib/include \
+ l1/gl1/common
+
+ifeq ($(filter L1S BASIC UDVT,$(TEST_LOAD_TYPE)),)
+ ifneq ($(filter __MTK_3G_MRAT_ARCH__,$(strip $(COM_DEFS))),)
+ XGEN_INC_DIR += $(strip $(GAS_FOLDER))/mpal/include
+ endif
+endif
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ XGEN_INC_DIR += interface/l1/l1s
+endif
+
+ifneq ($(filter $(strip $(PLATFORM)),$(UL1_HS_PLATFORM)),)
+ XGEN_INC_DIR += protocol/ul1/ul1_hs/ul1c \
+ protocol/ul1/ul1_hs/ul1d \
+ protocol/ul1/ul1_hs/common \
+ l1/md_sm/ul1sm \
+ l1/md_sm/common\ul1sm
+else ifneq ($(filter $(strip $(PLATFORM)),$(UL1_HS_PLUS_PLATFORM)),)
+ XGEN_INC_DIR += l1/ul1/ul1c \
+ l1/ul1/ul1d \
+ l1/ul1/ul1d \
+ l1/ul1/common \
+ l1/md_sm/ul1sm \
+ l1/md_sm/common\ul1sm
+endif
+
+ifdef AGPS_SUPPORT
+ ifeq ($(strip $(AGPS_SUPPORT)), CP_AGPS)
+ XGEN_INC_DIR += protocol/agps/ulcs/common/include
+ XGEN_INC_DIR += protocol/agps/ulcs/uagps_up/include
+ XGEN_INC_DIR += protocol/agps/ulcs/uagps_cp/include
+ endif
+ ifeq ($(strip $(AGPS_SUPPORT)), CP_AGPS_AGLONASS)
+ XGEN_INC_DIR += protocol/agps/ulcs/common/include
+ XGEN_INC_DIR += protocol/agps/ulcs/uagps_up/include
+ XGEN_INC_DIR += protocol/agps/ulcs/uagps_cp/include
+ endif
+ ifeq ($(strip $(AGPS_SUPPORT)), CONTROL_PLANE)
+ XGEN_INC_DIR += protocol/agps/ulcs/common/include
+ XGEN_INC_DIR += protocol/agps/ulcs/uagps_up/include
+ XGEN_INC_DIR += protocol/agps/ulcs/uagps_cp/include
+ endif
+ ifeq ($(strip $(AGPS_SUPPORT)), BOTH)
+ XGEN_INC_DIR += protocol/agps/ulcs/common/include
+ XGEN_INC_DIR += protocol/agps/ulcs/uagps_up/include
+ XGEN_INC_DIR += protocol/agps/ulcs/uagps_cp/include
+ endif
+endif
+
+ifneq ($(strip $(LPP_SUPPORT)), NONE)
+ XGEN_INC_DIR += protocol/agps/lpp/include
+endif
+XGEN_INC_DIR += protocol/agps/lppe/include
+XGEN_INC_DIR += protocol/agps/lbs/gnss_tc/inc
+XGEN_INC_DIR += ./interface/ul1interface/internal
+
+#ifeq ($(strip $(IMS_SUPPORT)),TRUE)
+# XGEN_INC_DIR +=./$(strip $(MODEM_FOLDER))/interface/ims
+#endif
+
+ifeq ($(strip $(N3GPP_OFFLOAD_ENABLE)),TRUE)
+ XGEN_INC_DIR += protocol/interface/n3x \
+ protocol/n3x/n3sam/interface
+endif
+
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ ifeq ($(call gt,$(strip $(GPRS_MAX_PDP_SUPPORT)),6),T)
+ else
+ XGEN_INC_DIR += $(strip $(UAS_FOLDER))/ul2/seq/include
+ endif
+endif
+
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ XGEN_INC_DIR += $(strip $(UAS_FOLDER))/ul2/seq/include
+endif
+
+XGEN_INC_DIR += protocol/smt/l1s/dummyps/include/internal
+
+ifeq ($(MPD_SOURCE_4G_BUILD),TRUE)
+ XGEN_INC_DIR += interface/driver/l2copro
+ XGEN_INC_DIR += $(UNIVERSAL_COMMON)/interface/modem
+endif
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ XGEN_INC_DIR += dummyups/include/internal
+endif
+
+ifneq ($(filter __DHL_V2_ENABLE__,$(COM_DEFS)),) # DHL2.0
+ XGEN_INC_DIR += $(strip $(FIXPATH))/service/dhl/v2/local_inc
+ XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/icd
+ XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/icd/event/vgnas/
+ XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/icd/vgnas/
+ XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/pmc/icd_v2/
+else # DHL1.0
+ XGEN_INC_DIR += $(strip $(FIXPATH))/service/dhl/v1/local_inc
+ XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/icd
+ XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/icd/event/vgnas/
+ XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/icd/vgnas/
+ XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/pmc/icd_v1/
+endif
+
+XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/dhl_sub
+XGEN_INC_DIR += $(strip $(FIXPATH))/custom/service/dhl
+XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/icd
+XGEN_INC_DIR += $(strip $(FIXPATH))/interface/service/icd/event/enas/
+XGEN_INC_DIR += $(strip $(PROJDIR))/modem/icd_ac_gen
+XGEN_INC_DIR += l1/md_sm/l1sm \
+ l1/md_sm/common/l1sm \
+ ./service/sys_svc_sec/inc \
+ driver/sleep_drv/internal/inc \
+ driver/sleep_drv/public/inc \
+ $(strip $(PROJDIR))/modem/eas_asn
+
+XGEN_INC_DIR += interface/driver/dvfs_drv/$(MD_VER_FOLDER) \
+ driver/dvfs_drv/internal/inc/$(MD_VER_FOLDER)
+
+XGEN_INC_DIR += interface/driver/tfwk_drv \
+ driver/tfwk_drv/internal/inc
+
+ifeq ($(MPD_SOURCE_4G_BUILD),TRUE)
+ XGEN_INC_DIR += $(strip $(TSTDIR_SEC))/database/gv \
+ $(strip $(TSTDIR_SEC))/database/unionTag \
+ $(BUILD_TSTDIR_SEC)/database/unionTag
+
+ XGEN_INC_DIR += protocol/lte_sec/enas/interface
+ XGEN_INC_DIR += protocol/lte_sec/errc/interface \
+ protocol/lte_sec/errc/common/include \
+ protocol/lte_sec/errc/include \
+ interface/service/icd/errc \
+ interface/service/icd/event/errc
+endif
+
+XGEN_INC_DIR += $(strip $(TSTDIR))/database/gv \
+ $(strip $(TSTDIR))/database/gv/ext \
+ $(strip $(TSTDIR))/database/unionTag \
+ $(strip $(TSTDIR))/database/unionTag/ext \
+ $(strip $(TSTDIR))/database \
+ $(BUILD_TSTDIR)/database/unionTag \
+ $(BUILD_TSTDIR)/database/unionTag/ext
+XGEN_INC_DIR += ./service/fs/common/include
+XGEN_INC_DIR += driver/sys_drv/cache/inc
+
+XGEN_INC_DIR += interface/protocol/l2_utility/flc2_v2
+XGEN_INC_DIR += interface/protocol/l2_utility/l2_sec_utility
+XGEN_INC_DIR += interface/protocol/3g/src
+XGEN_INC_DIR += protocol/ephy/common
+XGEN_INC_DIR += l1/ul1/common
+#XGEN_INC_DIR += l1/ul1/common
+
+ifdef CMUX_SUPPORT
+ ifeq ($(strip $(CMUX_SUPPORT)),TRUE)
+ ifeq ($(filter L1S BASIC UDVT,$(TEST_LOAD_TYPE)),)
+ # move from Option.mak
+ XGEN_INC_DIR += driver/cmux/include
+ endif
+ endif
+endif
+
+ifeq ($(strip $(RTOS)),MERTOS)
+ XGEN_INC_DIR += ./service/mertos/include
+endif
+
+ifeq ($(strip $(CUST_CODE)),TC01)
+XGEN_INC_DIR += custom/protocol/common/atci/include
+endif
+
+ifeq ($(strip $(IMS_SUPPORT)),TRUE)
+ XGEN_INC_DIR += protocol/imc/frmk/pub \
+ protocol/imc/pub \
+ protocol/imc/sap \
+ protocol/layer4/sdm/include \
+ protocol/imc/imcsms/include \
+ protocol/iwlan/interface \
+ protocol/interface/iwlan
+endif
+
+XGEN_INC_DIR += l1/interface/ll1
+#fdr_reorg
+XGEN_INC_DIR += protocol/3g/urr \
+ protocol/interface/general
+
+XGEN_INC_DIR += interface/l1/cl1/common \
+ modem/interface/genera \
+ interface/l1/cl1/common \
+ modem/interface/general \
+ interface/protocol/nas_c2k \
+ interface/l1/gl1 \
+ l1/interface/gl1 \
+ protocol/interface/iwlan \
+ protocol/3g/urr/interface/enum \
+ protocol/3g/urr/interface/define \
+ interface/protocol/agps \
+ l1/cl1/interface \
+ modem/c2k/inc \
+ protocol/l2_c2k/hlp \
+ protocol/3g/ul2/ul2_fdd/interface/local_inc \
+ interface/protocol/as_c2k/1xrtt \
+ interface/protocol/as_c2k/common \
+ interface/protocol/as_c2k/evdo \
+ interface/protocol/l2_c2k/common
+XGEN_INC_DIR += interface/protocol/3g/csr
+
+XGEN_INC_DIR_FDD += protocol/3g/interface/uas/uas_fdd/include \
+ protocol/3g/interface/uas/uas_fdd/enum \
+ protocol/3g/interface/uas/uas_fdd/include \
+ protocol/3g/ul2/ul2_fdd/bmc/include \
+ protocol/3g/ul2/ul2_fdd/common/include \
+ protocol/3g/ul2/ul2_fdd/umac/include \
+ protocol/3g/ul2/ul2_fdd/interface/include \
+ protocol/3g/ul2/ul2_fdd/interface/enum \
+ protocol/3g/ul2/ul2_fdd/urlc/include \
+ protocol/3g/interface/ul2/ul2_fdd/include \
+ protocol/3g/ul2/ul2_fdd/seq/include \
+ protocol/3g/urr/urr_fdd/cise/include \
+ protocol/3g/ul2/ul2_fdd/pdcp/include \
+ protocol/3g/ul2/ul2_fdd/rabm/include \
+ protocol/3g/urr/urr_fdd/meme/include \
+ protocol/3g/urr/urr_fdd/rrce/include \
+ protocol/3g/urr/urr_fdd/dbme/include \
+ protocol/3g/urr/urr_fdd/ldbme/include \
+ protocol/3g/urr/urr_fdd/slce/include \
+
+
+XGEN_INC_DIR_TDD += protocol/3g/interface/uas/uas_tdd/enum \
+ protocol/3g/ul2/ul2_tdd/bmc/include \
+ protocol/3g/ul2/ul2_tdd/common/include \
+ protocol/3g/ul2/ul2_tdd/umac/include \
+ protocol/3g/ul2/ul2_tdd/interface/include \
+ protocol/3g/ul2/ul2_tdd/interface/enum \
+ protocol/3g/ul2/ul2_tdd/urlc/include \
+ protocol/3g/interface/ul2/ul2_tdd/include \
+ protocol/3g/urr/urr_tdd/cise/include \
+ protocol/3g/ul2/ul2_tdd/pdcp/include \
+ protocol/3g/ul2/ul2_tdd/rabm/include \
+ protocol/3g/urr/urr_tdd/meme/include \
+ protocol/3g/urr/urr_tdd/rrce/include \
+ protocol/3g/urr/urr_tdd/dbme/include \
+ protocol/3g/urr/urr_tdd/ldbme/include \
+ protocol/3g/interface/uas/uas_tdd/include \
+ protocol/3g/urr/urr_tdd/slce/include
+
+
+# xgen include path for fdd
+ifeq ($(strip $(XGEN_SWITCH_FDD_TDD)),FDD)
+ XGEN_INC_DIR += $(XGEN_INC_DIR_FDD)
+endif
+# xgen include path for tdd
+ifeq ($(strip $(XGEN_SWITCH_FDD_TDD)),TDD)
+ XGEN_INC_DIR += $(XGEN_INC_DIR_TDD)
+endif
+ifeq ($(strip $(XGEN_SWITCH_FDD_TDD)),NONE)
+ XGEN_INC_DIR += $(XGEN_INC_DIR_FDD) $(XGEN_INC_DIR_TDD)
+endif
+
+#tdd folder for fdd part using. including path order should be care
+XGEN_INC_DIR += protocol/3g/interface/uas/uas_tdd/include
+
+# EL1 CODEGEN PATH
+XGEN_INC_DIR += l1/el1/el1d_pub/comm/inc/amsc \
+ l1/el1/el1d_pub/comm/inc/cm \
+ l1/el1/el1d_pub/comm/inc/common \
+ l1/el1/el1d_pub/comm/inc/fwk \
+ l1/el1/el1d_pub/comm/inc/cs \
+ l1/el1/el1d_pub/comm/inc/pos \
+ l1/el1/el1d_pub/comm/inc/ps \
+ l1/el1/el1d_pub/comm/inc/rfdfe \
+ l1/el1/el1d_pub/comm/inc/rfd \
+ l1/el1/el1d_pub/comm/inc/rfc \
+ l1/el1/el1d_pub/comm/inc/rxdfe \
+ l1/el1/el1d_pub/comm/inc/txdfe \
+ l1/el1/el1d_pub/comm/inc/rx \
+ l1/el1/el1d_pub/comm/inc/tx \
+ l1/el1/el1d_pub/comm/inc/agc \
+ l1/el1/el1d_pub/comm/inc/tpc \
+ l1/el1/el1d_pub/comm/trc \
+ l1/el1/el1d_pub \
+ l1/el1/common \
+ protocol/lte_sec/common/include \
+ l1/el2/emac/src \
+ interface/l1/el1/el1c/include \
+ interface/l1/idc \
+ interface/l1/el1/el1c_sec \
+ l1/lte_sec/interface \
+ interface/protocol/general \
+ l1/interface/mml1/mml1_rf_common
+
+XGEN_INC_DIR += protocol/interface/lte \
+ protocol/interface \
+ $(UNIVERSAL_COMMON)/interface/modem \
+ $(UNIVERSAL_COMMON)/interface/modem/mt6297/common/nr/external/custom \
+
+ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V1)
+ XGEN_INC_DIR += protocol/el2/interface
+ XGEN_INC_DIR += protocol/interface/el2
+ XGEN_INC_DIR += protocol/interface/el2/em
+endif
+
+ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V2)
+ XGEN_INC_DIR += protocol/enl2/interface
+ XGEN_INC_DIR += protocol/interface/enl2
+ XGEN_INC_DIR += protocol/interface/enl2/el2/em
+endif
+
+ifneq ($(filter __LTE_PHY_TEST__,$(COM_DEFS)),)
+ XGEN_INC_DIR += $(EL1_FOLDER)/$(strip $(EL1C_MD_VER_FOLDER))/tstm/include
+else
+ XGEN_INC_DIR += $(EL1_FOLDER)/$(strip $(EL1C_MD_VER_FOLDER))/tstm_meta/include \
+ $(EL1_FOLDER)/comm/tstm_meta/include
+endif
+
+ifeq ($(strip $(LTE_DUMMY_PROTOCOL_ENABLE)),TRUE)
+XGEN_INC_DIR += l1/el1/el1c/comm/l1edps/include/internal \
+ interface/protocol/lte
+endif
+
+ifeq ($(strip $(call Upper,$(UE_SIMULATOR))),TRUE)
+ #LTE UE SIMULATOR
+ ifeq ($(strip $(U4G_ADAPTOR_SUPPORT)),TRUE)
+ XGEN_INC_DIR += $(strip $(EL1_FOLDER))/intf
+ else
+ #C2K UE SIMULATOR
+ XGEN_INC_DIR += $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/irt/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/irt/src \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/common/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/interface \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/csr/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/csr/src \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/meas/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/meas/src \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/ch/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/ch/src \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/idc/src \
+ $(strip $(EL1_FOLDER))/comm/idc/include \
+ $(strip $(EL1_FOLDER))/comm/idc/src \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/common/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/it/include \
+ l1/lte_sec/interface/etmr \
+ l1/idc/include \
+ $(UNIVERSAL_COMMON)/interface/modem/mt6297/common/nr/external/custom \
+ l1/idc/src
+ endif
+else
+ #non UE SIMULATOR
+ XGEN_INC_DIR += $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/irt/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/irt/src \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/common/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/interface \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/csr/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/csr/src \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/meas/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/meas/src \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/ch/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/ch/src \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/idc/src \
+ $(strip $(EL1_FOLDER))/comm/idc/include \
+ $(strip $(EL1_FOLDER))/comm/idc/src \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/common/include \
+ $(strip $(EL1_FOLDER))/$(strip $(EL1C_MD_VER_FOLDER))/it/include \
+ l1/el1/el1c/$(strip $(EL1C_MD_VER_FOLDER))/common/include \
+ l1/idc/include \
+ l1/idc/src \
+ l1/tl1/tl1itf/inc
+endif
+
+#LTT/UTT/GTEST CODEGEN PATH
+#ifeq ($(strip $(call Upper,$(LTT_ENABLE))),TRUE)
+ XGEN_INC_DIR += protocol/interface/utt
+#endif
+
+# C2K XGEN PATH
+ifneq ($(filter __CL1_TASK_ENABLE__,$(COM_DEFS)),)
+ XGEN_INC_DIR += protocol/interface/as_c2k \
+ l1/cl1/rfd/external
+endif
+
+
+ifneq ($(strip $(call Upper,$(C2K_MODE_SUPPORT))),NONE)
+ XGEN_INC_DIR += protocol/interface/as_c2k \
+ l1/cl1/c2k_dma_model \
+ interface/protocol/l2_c2k/common \
+ protocol/l2_c2k/fcp \
+ interface/protocol/l2_c2k/evdo \
+ protocol/l2_c2k/rcp \
+ interface/protocol/l2_c2k/evdo \
+ custom/protocol/l4_c2k \
+ interface/protocol/l2_c2k/1xrtt \
+ interface/protocol/as_c2k/1xrtt \
+ protocol/as_c2k/pe \
+ protocol/as_c2k/psw \
+ protocol/nas_c2k/ota \
+ protocol/l2_c2k/common \
+ l1/cl1/common \
+ protocol/l4_c2k/atc \
+ protocol/l4_c2k/val/rpc \
+ protocol/l4_c2k/val \
+ protocol/l4_c2k/uim \
+ protocol/l2_c2k/lmd \
+ interface/protocol/l2_c2k/1xrtt \
+ protocol/as_c2k/clc \
+ interface/protocol/as_c2k/evdo \
+ protocol/c2k/sbp \
+ protocol/as_c2k/slc \
+ interface/protocol/as_c2k/evdo \
+ l1/cl1/rmc \
+ interface/l1/cl1/evdo \
+ protocol/nas_c2k/css \
+ protocol/nas_c2k/css/irat \
+ l1/cl1/hsc \
+ interface/l1/cl1/common \
+ l1/cl1/evl1 \
+ interface/l1/cl1/evdo \
+ l1/cl1/common \
+ interface/l1/cl1/common \
+ interface/l1/cl1/common \
+ interface/l1/cl1/common \
+ interface/l1/cl1/common/HW \
+ l1/cl1/xl1 \
+ interface/l1/cl1/1xrtt \
+ l1/cl1/l1d \
+ interface/l1/cl1/1xrtt \
+ l1/cl1/tas \
+ l1/cl1/rfd/external
+
+ XGEN_INC_DIR += protocol/smt/c2k/vmmi_bridge/intf
+endif
+
+XGEN_INC_DIR += interface/driver/devdrv/busmpu
+XGEN_INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/common \
+ interface/l1/mml1/external/mml1_rf/mmrf_common \
+ interface/l1/mml1/external/mml1_cdf/inc/sku_mgr \
+ interface/l1/mml1/external/mml1_cdf/device_mgr \
+ interface/l1/mml1/external/mml1_cdf/inc/device_drivers_rf \
+ interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe \
+ custom/l1/mml1_devices/$(strip $(MM_DEVICE)) \
+ l1/interface/mml1/mml1_cdf/common \
+ l1/interface/mml1/mml1_cdf/sku_mgr \
+ l1/interface/mml1/mml1_cdf/seq_container \
+ l1/interface/mml1/mml1_cdf/device_drivers_rf \
+ l1/interface/mml1/mml1_cdf/device_drivers_fe
+XGEN_INC_DIR += protocol/wo/interface
+
+ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+ XGEN_INC_DIR += protocol/enl2/common/enl2_free/src \
+ protocol/enl2/pdcp/common/src \
+ protocol/enl2/pdcp/npdcp/src \
+ $(strip $(PROJDIR))/modem/nras_asn \
+ protocol/interface/enl2/nl2/5g \
+ protocol/interface/nrrc \
+ protocol/interface/2g/5g \
+ protocol/interface/3g/urr/5g \
+ protocol/interface/errc/5g \
+ protocol/interface/nas_multimode/5g \
+ protocol/interface/enas/5g \
+ protocol/interface/lte_sec/5g \
+ protocol/interface/vgnas/5g \
+ protocol/interface/lte_sec/5g \
+ protocol/vgnas/interface \
+ protocol/enl2/interface/5g \
+ protocol/enl2/mac/nmac/interface \
+ protocol/enl2/mac/nmac/nmac_dl/include \
+ protocol/enl2/rlc/nrlc/nrlcul/include \
+ protocol/enl2/rlc/nrlc/interface/5g \
+ protocol/enl2/rlc/nrlc/common/include \
+ interface/protocol/enl2/5g
+
+ XGEN_INC_DIR += protocol/nrrc/interface \
+ protocol/nrrc/config/include \
+ protocol/nrrc/nconn/include \
+ protocol/nrrc/idle/include \
+ protocol/nrrc/main/include \
+ protocol/nrrc/meas/include \
+ protocol/nrrc/background/include \
+ protocol/nrrc/scg/include \
+ protocol/nrrc/search/include \
+ protocol/nrrc/si/include \
+ protocol/nrrc/utility/include \
+ protocol/interface/vgnas/5g \
+ protocol/interface/vgnas \
+ interface/l1/nl1/external/5g \
+ $(UNIVERSAL_COMMON)/interface/modem/mt6297/common/nr/external/5g \
+ $(UNIVERSAL_COMMON)/interface/modem/mt6297/common/nr/external \
+ $(UNIVERSAL_COMMON)/interface/modem/mt6297/common/nr/internal \
+ $(UNIVERSAL_COMMON)/interface/modem/mt6297/common/nr/external/custom \
+ interface/l1/nl1/external/4g \
+ interface/l1/nl1
+endif
+
+ifeq ($(strip $(EL2_ARCH_VERSION)),EL2_ARCH_V2)
+ ifeq ($(strip $(EUTRAN_MODE_SUPPORT)), EUTRAN_MODE)
+ XGEN_INC_DIR += protocol/interface/enl2/en_common \
+ protocol/enl2/interface/sim_api \
+ driver/lhifcore/include \
+ driver/dpcopro/inc \
+ interface/service/prbm \
+ protocol/enl2/interface/icd \
+ protocol/enl2/interface/msg
+ else
+ ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+ XGEN_INC_DIR += protocol/interface/enl2/en_common \
+ protocol/enl2/interface/sim_api \
+ driver/lhifcore/include \
+ driver/dpcopro/inc \
+ interface/service/prbm \
+ protocol/enl2/interface/icd \
+ protocol/enl2/interface/msg
+ endif
+ endif
+endif
+
+# NL1 CODEGEN PATH
+ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+ XGEN_INC_DIR += l1/nl1/public/md97/inc/tx \
+ l1/nl1/public/md97/inc/rx \
+ l1/nl1/public/md97/inc/interface/rx \
+ l1/nl1/public/md97/inc/interface/fwk \
+ l1/nl1/public/md97/inc/interface/ctrl \
+ l1/nl1/public/md97/inc/interface/tst \
+ l1/nl1/public/md97/inc/ctrl \
+ l1/nl1/public/md97/inc/bm \
+ l1/nl1/public/md97/inc/interface/bm \
+ l1/nl1/public/md97/inc/mpc/comm \
+ l1/nl1/public/md97/inc/mpc/mob \
+ l1/nl1/public/md97/inc/rfcc/lib \
+ l1/nl1/public/md97/inc/interface/comm \
+ l1/nl1/public/md97/inc/interface/hrt \
+ l1/nl1/public/md97/inc/interface/lpwr \
+ l1/nl1/public/md97/inc/interface/tc \
+ l1/nl1/public/md97/inc/hrt \
+ l1/interface/nl1 \
+ l1/interface/ll1 \
+ interface/l1/nl1 \
+ $(UNIVERSAL_COMMON)/interface/modem/mt6297/CSIF/slm/nr/ \
+ $(UNIVERSAL_COMMON)/interface/modem/mt6297/CSIF/slm/nr/cmd/inc \
+ $(UNIVERSAL_COMMON)/interface/modem/mt6297/CSIF/slm/nr/rpt/inc
+endif
+
+
+XGEN_INC_DIR_TARGET := $(XGEN_INC_DIR)
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifeq ($(MPD_SOURCE_4G_BUILD),TRUE)
+ XGEN_INC_DIR += $(strip $(TSTDIR_SEC))/database_modis/gv \
+ $(strip $(TSTDIR_SEC))/database_modis/unionTag \
+ $(BUILD_TSTDIR_SEC)/database_modis/unionTag
+ endif
+ XGEN_INC_DIR += $(strip $(TSTDIR))/database_modis/gv \
+ $(strip $(TSTDIR))/database_modis/gv/ext \
+ $(strip $(TSTDIR))/database_modis/unionTag \
+ $(strip $(TSTDIR))/database_modis/unionTag/ext \
+ $(BUILD_TSTDIR)/database_modis/unionTag \
+ $(BUILD_TSTDIR)/database_modis/unionTag/ext \
+ $(BUILD_TSTDIR)/database_modis/converted_icd_headers
+ XGEN_INC_DIR += protocol/as_multimode/ratdm/cmn_sig/include
+ XGEN_INC_DIR := $(MODISPROJDIR)/_BUILD_XGEN/modem/eas_asn \
+ $(XGEN_INC_DIR)
+
+ ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+ ifeq ($(strip $(MODIS_COMPILER)),VC2017)
+ XGEN_INC_DIR += interface/protocol/utt_v2
+ else
+ ifeq ($(strip $(call uc,$(OS_VERSION))),LINUX)
+ XGEN_INC_DIR += interface/protocol/utt_v2
+ else
+ XGEN_INC_DIR += interface/protocol/utt
+ endif
+ endif
+ endif
+endif
+
+ifdef MCIF_SUPPORT
+ ifeq ($(strip $(MCIF_SUPPORT)),TRUE)
+ XGEN_INC_DIR += interface/service/mcif
+ endif
+endif
+XGEN_INC_DIR += interface/service/mdfpm
+
+ifdef SUBMARINE_SUPPORT
+ ifeq ($(strip $(SUBMARINE_SUPPORT)),TRUE)
+ XGEN_INC_DIR += interface/service/wifi_proxy
+ endif
+endif
+
+ifdef WIFIPROXY_SUPPORT
+ ifeq ($(strip $(WIFIPROXY_SUPPORT)), TRUE)
+ XGEN_INC_DIR += interface/service/wifi_proxy
+ endif
+endif
+
+XGEN_INC_DIR += interface/service/mtf
diff --git a/mcu/make/module/custom/custom_config.mak b/mcu/make/module/custom/custom_config.mak
new file mode 100755
index 0000000..5540d6b
--- /dev/null
+++ b/mcu/make/module/custom/custom_config.mak
@@ -0,0 +1,11 @@
+ifeq ($(strip $(RTOS)),MERTOS)
+ CATEGORY_INCDIRS += ./service/mertos/include
+ CATEGORY_INCDIRS += ./service/kal/common/include
+ CATEGORY_INCDIRS += ./service/kal/os/mertos/include
+ CATEGORY_INCDIRS += ./service/kal/lib/mlib/include
+endif
+
+CATEGORY_INCDIRS += driver/sys_drv/init/inc
+
+
+CATEGORY_DEFS +=
\ No newline at end of file
diff --git a/mcu/make/module/custom/driver/custom.mak b/mcu/make/module/custom/driver/custom.mak
new file mode 100644
index 0000000..1c61162
--- /dev/null
+++ b/mcu/make/module/custom/driver/custom.mak
@@ -0,0 +1,74 @@
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+# source file folder for xgen
+GEN_FOLDER_LIST = $(strip $(BUILD_SYSDIR)) $(strip $(BUILD_CODEGENDIR))
+INC_DIR += $(strip $(BUILD_SYSDIR)) $(strip $(BUILD_CODEGENDIR))
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+
+FOLDER_LIST += $(GEN_FOLDER_LIST)
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ SRC_LIST += custom/protocol/common/ps/custom_nras_config.c
+endif
+
+ifeq ($(strip $(LGE_SECURITY)), TRUE)
+ INC_DIR += custom/modem/lgesecurity
+endif
+
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ SRC_LIST += custom/protocol/common/ps/custom_nras_config.c
+endif
+
+SRC_LIST := $(call uniq,$(SRC_LIST))
+
+INC_DIR += driver/sys_drv/cache/inc
+INC_DIR += driver/sys_drv/cache/inc/$(MD_VER_FOLDER)
+
+INC_DIR := $(call uniq,$(INC_DIR))
+
+# Add gblob sml verify file
+SRC_LIST += custom/middleware/common/custom_sml_sec_verify.c
+
+SRC_LIST += custom/middleware/common/custom_nvram_lid_prot.c
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+ MMI_ON_HARDWARE_P \
+ APCS_INTWORK \
+ USE_JAM=0 \
+ COMPILER_SUPPORTS_LONG=1
+
+ifeq ($(filter __NOR_FLASH_BOOTING__,$(strip $(DEFINES))),)
+ ifdef NEED_BUILD_BOOTLOADER
+ ifeq ($(strip $(NEED_BUILD_BOOTLOADER)),TRUE)
+ COMP_DEFS += __BL_ENABLE__
+ COMP_DEFS += REMAPPING
+ endif
+ endif
+endif
+
+ifeq ($(strip $(ENHANCED_SINGLE_BANK_NOR_FLASH_SUPPORT)),TRUE)
+ COMP_DEFS += REMAPPING
+endif
diff --git a/mcu/make/module/custom/driver/custom_driver.mak b/mcu/make/module/custom/driver/custom_driver.mak
new file mode 100644
index 0000000..6865989
--- /dev/null
+++ b/mcu/make/module/custom/driver/custom_driver.mak
@@ -0,0 +1,151 @@
+# Define ./interface/modem folder path by project option
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297p
+else
+ #no match chip
+endif
+AUTO_MERGE_FOLDER = ./custom/driver/audio ./custom/driver/drv/misc_drv
+
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+
+INC_DIR += ./interface/driver/storage/sim
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+
+#driver
+ifneq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+ FOLDER_LIST += $(call CUSTOM_FLD_MAPPING,./custom/driver/audio)
+endif
+
+FOLDER_LIST += ./custom/driver/common
+
+FOLDER_LIST += $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/misc_drv) \
+
+ifneq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+ ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+ ifdef GPS_SUPPORT
+ ifneq ($(strip $(GPS_SUPPORT)),NONE)
+ FOLDER_LIST += $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/gps)
+ INC_DIR += $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/gps)
+ endif
+ endif
+ endif
+endif
+
+##
+AUTO_MERGE_TMP := $(foreach DIR,$(AUTO_MERGE_FOLDER),$(if $(filter $(DIR)/_Default_BB/$(strip $(PLATFORM)) $(call CUSTOM_FLD_MAPPING,$(DIR)),$(FOLDER_LIST)),$(DIR),))
+
+SRC_LIST += $(foreach DIR,$(AUTO_MERGE_TMP), \
+ $(subst /,/,$(foreach file,$(wildcard $(DIR)/_Default_BB/$(strip $(PLATFORM))/*.c) $(wildcard $(DIR)/_Default_BB/$(strip $(PLATFORM))/*.cpp),$(if $(wildcard $(call CUSTOM_FLD_MAPPING,$(DIR))/$(notdir $(file))),,$(file))) $(wildcard $(call CUSTOM_FLD_MAPPING,$(DIR))/*.c) $(wildcard $(call CUSTOM_FLD_MAPPING,$(DIR))/*.cpp)) \
+)
+
+FOLDER_LIST := $(filter-out $(foreach DIR,$(AUTO_MERGE_TMP),$(DIR)/_Default_BB/$(strip $(PLATFORM)) $(call CUSTOM_FLD_MAPPING,$(DIR))),$(FOLDER_LIST))
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+#only in MoDIS
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ MODIS_DIS_FILE := custom_emi.c custom_flash.c usb_custom.c wndrv_configure.c wndrv_rf_ah.c wndrv_rf_maxim.c
+ MODIS_DIS_FILE += custom_flash_norfdm5.c afe.c mal1_create.c kbdmain_joystick.c ERS_api.c ERS_sys.s custom_sfi.c
+ MODIS_DIS_FILE += combo_flash_init.c combo_flash_nor.c
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),$(call Lower,$(MODIS_DIS_FILE))),,$(file)))
+endif
+
+SRC_LIST := $(call uniq,$(SRC_LIST))
+
+# Define include path lists to INC_DIR
+#ifeq ($(strip $(DSP_SOLUTION)),DUALMACDSP)
+# AUDFOLDER = driver/audio/src/v2
+#else
+ AUDFOLDER = driver/audio/src/v1
+#endif
+
+INC_DIR += driver/btmt/rf_desense
+
+
+INC_DIR += $(strip $(AUDFOLDER))/inc
+INC_DIR += driver/btmt/rf_desense \
+ driver/peripheral/inc \
+ driver/storage/flash/mtd/inc \
+ driver/storage/flash/fdm/inc \
+ driver/connectivity/usb_class/include
+INC_DIR += driver/sys_drv/cache/inc
+INC_DIR += driver/sys_drv/cache/inc/$(MD_VER_FOLDER)
+
+INC_DIR += service/nvram/include
+
+# File System custom file (temporary solution)
+INC_DIR += driver/storage/mc/inc
+
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+ INC_DIR += MoDIS_VC9/drv_sim/include
+endif
+
+INC_DIR := $(call uniq,$(INC_DIR))
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+ MMI_ON_HARDWARE_P \
+ APCS_INTWORK \
+ USE_JAM=0 \
+ COMPILER_SUPPORTS_LONG=1
+
+ifeq ($(filter __NOR_FLASH_BOOTING__,$(strip $(DEFINES))),)
+ ifdef NEED_BUILD_BOOTLOADER
+ ifeq ($(strip $(NEED_BUILD_BOOTLOADER)),TRUE)
+ COMP_DEFS += __BL_ENABLE__
+ COMP_DEFS += REMAPPING
+ endif
+ endif
+endif
+
+ifeq ($(strip $(ENHANCED_SINGLE_BANK_NOR_FLASH_SUPPORT)),TRUE)
+ COMP_DEFS += REMAPPING
+endif
+INC_DIR += driver/peripheral/inc
+INC_DIR += driver/devdrv/usim/inc
+INC_DIR += driver/devdrv/elm/inc
+INC_DIR += interface/driver/devdrv/cuif/inc
+INC_DIR += interface/driver/sleep_drv \
+ interface/driver/dvfs_drv/$(MD_VER_FOLDER)
+
+INC_DIR += interface/l1/el1/external
+
+INC_DIR += interface/protocol/general \
+ $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom
+
+ifneq ($(filter __MIPS_IA__, $(strip $(MODULE_DEFS))),)
+INC_DIR += driver/sys_drv/mmu/inc
+endif
+
+# *************************************************************************
+# From Global include path
+# *************************************************************************
+INC_DIR += driver/connectivity/usb_driver/inc
+
diff --git a/mcu/make/module/custom/l1/custom_l1.mak b/mcu/make/module/custom/l1/custom_l1.mak
new file mode 100644
index 0000000..b427861
--- /dev/null
+++ b/mcu/make/module/custom/l1/custom_l1.mak
@@ -0,0 +1,166 @@
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+
+# Define ./interface/modem folder path by project option
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297p
+else
+ #no match chip
+endif
+
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+ifdef RF_MODULE
+ ifneq ($(strip $(RF_MODULE)),NONE)
+ FOLDER_LIST +=custom/l1/gl1_rf/$(strip $(RF_MODULE))
+ endif
+endif
+
+#Multi-Mode RF
+ifdef MM_RF_MODULE
+ ifneq ($(strip $(MM_RF_MODULE)),NONE)
+ FOLDER_LIST += custom/l1/mml1_rf/$(strip $(MM_RF_MODULE))
+ INC_DIR += custom/l1/mml1_rf/$(strip $(MM_RF_MODULE))
+ ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+ FOLDER_LIST += custom/l1/mml1_devices/$(strip $(MM_DEVICE))
+ INC_DIR += custom/l1/mml1_devices/$(strip $(MM_DEVICE))
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/common
+ INC_DIR += interface/l1/mml1/external/mml1_rf/mmrf_common
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_rf
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/sku_mgr
+ INC_DIR += interface/l1/mml1/external/mml1_etdpd
+ INC_DIR += driver/devdrv/digrf_platform/inc
+ endif
+ endif
+endif
+
+ifdef UMTS_RF_MODULE
+ ifneq ($(strip $(UMTS_RF_MODULE)),NONE)
+ FOLDER_LIST += custom/l1/ul1_rf/$(strip $(UMTS_RF_MODULE))
+ INC_DIR += custom/l1/ul1_rf/$(strip $(UMTS_RF_MODULE))
+ endif
+endif
+
+ifdef UMTS_TDD128_RF_MODULE
+ ifneq ($(strip $(UMTS_TDD128_RF_MODULE)),NONE)
+ FOLDER_LIST += custom/l1/tl1_rf/$(strip $(UMTS_TDD128_RF_MODULE))
+ INC_DIR += custom/l1/tl1_rf/$(strip $(UMTS_TDD128_RF_MODULE))
+ endif
+endif
+
+ifdef LTE_RF_MODULE
+ ifneq ($(strip $(LTE_RF_MODULE)),NONE)
+ FOLDER_LIST += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))
+ INC_DIR += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))
+ INC_DIR += interface/l1/el1/external/comm/rf_custom/inc
+ INC_DIR += interface/l1/el1/external
+# FOLDER_LIST += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))/Toolgen
+ INC_DIR += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))/Toolgen
+ FOLDER_LIST += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))/TST_Config
+ INC_DIR += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))/TST_Config
+ endif
+endif
+
+ifdef C2K_RF_MODULE
+ ifneq ($(strip $(C2K_RF_MODULE)),NONE)
+ #FOLDER_LIST += custom/l1/cl1_rf/$(strip $(C2K_RF_MODULE))
+ INC_DIR += custom/l1/cl1_rf/$(strip $(C2K_RF_MODULE))
+ endif
+endif
+
+ifdef NR_RF_MODULE
+ ifneq ($(strip $(NR_RF_MODULE)),NONE)
+ FOLDER_LIST += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))
+ INC_DIR += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/common
+ INC_DIR += interface/l1/mml1/external/mml1_rf/mmrf_common
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe
+ INC_DIR += interface/l1/nl1/external
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+ INC_DIR += $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom
+ INC_DIR += $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/5g
+endif
+ INC_DIR += interface/l1/nl1/external/4g
+ INC_DIR += interface/l1/nl1/external/5g
+ #INC_DIR += interface/l1/nl1/external/md97/rf_custom
+ INC_DIR += interface/l1/nl1/external
+ #FOLDER_LIST += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))/Toolgen
+ #INC_DIR += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))/Toolgen
+ #FOLDER_LIST += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))/TST_Config
+ #INC_DIR += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))/TST_Config
+ endif
+endif
+
+#NL1 folder
+FOLDER_LIST += custom/l1/nl1
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+# Not compile lte_custom_mipi_ref.c , it is tool gen file and included by other file in el1 custom folder
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_mipi_antca.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_mipi_ca.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_mipi_ref.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_mipi_dpd_ref.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_mipi_ant_ref.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_rf_tas_ref.c),,$(file)))
+ifeq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_rf_ant_database.c),,$(file)))
+endif
+SRC_LIST := $(call uniq,$(SRC_LIST))
+
+INC_DIR += interface/l1/gl1/internal
+
+ifdef RF_MODULE
+ ifneq ($(strip $(RF_MODULE)),NONE)
+ INC_DIR +=custom/l1/gl1_rf/$(strip $(RF_MODULE))
+ endif
+endif
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+ INC_DIR += MoDIS_VC9/drv_sim/include
+endif
+
+INC_DIR := $(call uniq,$(INC_DIR))
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+ MMI_ON_HARDWARE_P \
+ APCS_INTWORK \
+ USE_JAM=0 \
+ COMPILER_SUPPORTS_LONG=1
+
+INC_DIR += interface/l1/el1/external
+INC_DIR += interface/l1/cl1/common
+# *************************************************************************
+# From Global include path
+# *************************************************************************
+
+SRC_RULE_AUTOAMMS_DRDI := wcustomdata.c lte_custom_drdi.c l1d_custom_drdi.c t12193.c mml1_drdi.c
+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
\ No newline at end of file
diff --git a/mcu/make/module/custom/middleware/custom_middleware.mak b/mcu/make/module/custom/middleware/custom_middleware.mak
new file mode 100644
index 0000000..36bb460
--- /dev/null
+++ b/mcu/make/module/custom/middleware/custom_middleware.mak
@@ -0,0 +1,70 @@
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+#middleware
+FOLDER_LIST += ./custom/middleware/common
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ifeq ($(strip $(HIF_USB_SUPPORT)),TRUE)
+FOLDER_LIST += ./custom/middleware/common/usbc_custom_mode
+endif
+endif
+#INC_DIR += ./custom/middleware/common/usbc_custom_mode
+ifneq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+ FOLDER_LIST += $(call CUSTOM_FLD_MAPPING,./custom/middleware/meta)
+endif
+
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+#only in MoDIS
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ ifdef MODIS_TAP_ACCESS
+ ifeq ($(strip $(MODIS_TAP_ACCESS)), CLDMA)
+ MODIS_DIS_FILE += usbc_custom.c
+ endif
+ endif
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),$(call Lower,$(MODIS_DIS_FILE))),,$(file)))
+endif
+
+
+SRC_LIST := $(call uniq,$(SRC_LIST))
+INC_DIR += driver/audio/med/audio/include
+INC_DIR += driver/sys_drv/cache/inc
+INC_DIR += driver/sys_drv/cache/inc/$(MD_VER_FOLDER)
+
+# ATCI is always needed.
+INC_DIR += custom/protocol/common/atci/include
+
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+ INC_DIR += MoDIS_VC9/drv_sim/include
+endif
+
+INC_DIR := $(call uniq,$(INC_DIR))
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+ MMI_ON_HARDWARE_P \
+ APCS_INTWORK \
+ USE_JAM=0 \
+ COMPILER_SUPPORTS_LONG=1
diff --git a/mcu/make/module/custom/protocol/custom_protocol.mak b/mcu/make/module/custom/protocol/custom_protocol.mak
new file mode 100644
index 0000000..82e6ced
--- /dev/null
+++ b/mcu/make/module/custom/protocol/custom_protocol.mak
@@ -0,0 +1,192 @@
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+#modem
+FOLDER_LIST += $(call CUSTOM_FLD_MAPPING,./custom/modem/ps) \
+ custom/protocol/common/atp/src \
+ custom/protocol/common/atci/src \
+ custom/protocol/common/ps \
+ ./custom/modem/common
+
+
+#fdr_reorg
+ifneq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+FOLDER_LIST += custom/protocol/common/ps
+else
+SRC_LIST += custom/protocol/common/ps/custom_em.c \
+ custom/protocol/common/ps/ul1_nvram_def.c
+endif
+
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+ # Not compile ul1_nvram_def_md93.c/ul1_nvram_def_md95.c
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),ul1_nvram_def_md93.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),ul1_nvram_def_md95.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),ul1_nvram_def_md97.c),,$(file)))
+SRC_LIST := $(call uniq,$(SRC_LIST))
+
+ifneq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ SRC_LIST := $(filter-out custom/protocol/common/ps/custom_eas_config.c,$(SRC_LIST))
+else
+ ## For caband_gen
+ ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ SRC_LIST += $(strip $(PROJDIR))/custom/modem/eas_caband_tbl/eas_caband_tbl_v2.c
+ else
+ SRC_LIST += $(strip $(MODISPROJDIR))/_BUILD_XGEN/custom/modem/eas_caband_tbl/eas_caband_tbl_v2.c
+ endif
+endif
+
+ifeq ($(filter __L5_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST := $(filter-out custom/protocol/common/ps/custom_l5.c,$(SRC_LIST))
+ SRC_LIST := $(filter-out custom/protocol/common/ps/custom_l5_at.c,$(SRC_LIST))
+ SRC_LIST := $(filter-out custom/protocol/common/ps/custom_l5_mipc.c,$(SRC_LIST))
+ SRC_LIST := $(filter-out custom/protocol/common/ps/custom_l5_mbci.c,$(SRC_LIST))
+endif
+
+INC_DIR += custom/protocol/common/ps \
+ $(call CUSTOM_FLD_MAPPING,./custom/modem/ps) \
+ protocol/interface/l4misc \
+ protocol/interface/l4 \
+ protocol/layer4/l4/include \
+ protocol/layer4/l4/atci/include \
+ protocol/layer4/l4/l4c/include/common \
+ protocol/layer4/l4/l4c/include/proc \
+ protocol/layer4/l4/csm/cc/include \
+ protocol/layer4/l4/uem/include \
+ protocol/layer4/l4/phb/include \
+ protocol/layer4/l4/csm/cc/include \
+ protocol/layer4/l4/csm \
+ protocol/layer4/l4/tcm/etcm/include \
+ protocol/layer4/l4/smsal/include \
+ protocol/layer4/l4/csm/ss/asn1/gen/include \
+ protocol/layer4/l4/smu/include \
+ protocol/layer4/l4/rac/common/include \
+ protocol/layer4/l4/rac/ugrac/include \
+ protocol/layer4/sim/include \
+ interface/l1/gl1/internal
+
+ifeq ($(strip $(LGE_SECURITY)), TRUE)
+ INC_DIR += custom/modem/lgesecurity
+endif
+
+ifdef RF_MODULE
+ ifneq ($(strip $(RF_MODULE)),NONE)
+ INC_DIR +=custom/l1/gl1_rf/$(strip $(RF_MODULE))
+ endif
+endif
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ INC_DIR += protocol/layer4/l4/rac/erac/include
+endif
+
+INC_DIR += $(strip $(PROJDIR))/verno \
+ $(strip $(PROJDIR))/nvram_auto_gen
+
+INC_DIR += driver/sys_drv/cache/inc
+INC_DIR += driver/sys_drv/cache/inc/$(MD_VER_FOLDER)
+INC_DIR += service/mtf/inc
+
+# ATCI is always needed.
+INC_DIR += custom/protocol/common/atci/include
+
+# ATP is always needed.
+INC_DIR += custom/protocol/common/atp/include
+
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+ INC_DIR += MoDIS_VC9/drv_sim/include
+endif
+
+INC_DIR := $(call uniq,$(INC_DIR))
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+ MMI_ON_HARDWARE_P \
+ APCS_INTWORK \
+ USE_JAM=0 \
+ COMPILER_SUPPORTS_LONG=1
+
+ifneq ($(words $(wildcard $(call CUSTOM_FLD_MAPPING,./custom/modem/ps)/custom_port_setting.c)), 0)
+ COMP_DEFS += __CUSTOMIZED_PORT_SETTING__
+endif
+
+INC_DIR += protocol/interface/ims
+
+INC_DIR += interface/l1/el1/external
+
+INC_DIR += interface/protocol/general
+
+#fdr_reorg
+INC_DIR += interface/protocol/as_c2k/common \
+ custom/protocol/common/ps \
+ interface/l1/cl1/common \
+ interface/protocol/nas_c2k \
+ protocol/interface/general \
+ protocol/interface/iwlan \
+ interface/protocol/as_c2k/1xrtt \
+ interface/protocol/as_c2k/evdo \
+ interface/protocol/l2_c2k/common
+
+INC_DIR += service/kal/common/include
+INC_DIR += service/kal/lib/mlib/include
+INC_DIR += driver/sys_drv/init/inc
+INC_DIR += service/sst/include
+INC_DIR += driver/devdrv/elm/inc
+INC_DIR += interface/driver/sib_drv/scc
+INC_DIR += interface/driver/devdrv/pcie
+
+INC_DIR += protocol/interface/lte
+INC_DIR += protocol/interface/agps
+INC_DIR += protocol/interface/ddm
+ifneq ($(filter __L5_SUPPORT__, $(strip $(MODULE_DEFS))),)
+INC_DIR += interface/protocol/l5/mipc/common
+INC_DIR += interface/protocol/l5/mipc/msg
+INC_DIR += $(strip $(PROJDIR))/modem/mipc/include
+endif
+INC_DIR += interface/driver/dpcopro/custom
+
+INC_DIR += interface/service/icd \
+ interface/service/icd/errc \
+ interface/service/icd/nl1 \
+ interface/service/icd/nl2 \
+ interface/service/icd/el2 \
+ interface/service/icd/el1 \
+ interface/service/icd/event/enas \
+ interface/service/icd/event/errc \
+ interface/service/icd/event/nrrc \
+ interface/service/icd/event/nl2 \
+ interface/service/icd/event/el2 \
+ interface/service/icd/event/nl1 \
+ interface/service/icd/event/el1 \
+ interface/service/icd/event/cm
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ CATEGORY_INCDIRS += protocol/interface/enl2/el2
+ CATEGORY_INCDIRS += protocol/interface/enl2/en_common
+else ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ CATEGORY_INCDIRS += protocol/interface/enl2/el2
+ CATEGORY_INCDIRS += protocol/interface/enl2/en_common
+else
+ CATEGORY_INCDIRS += protocol/interface/el2
+endif
diff --git a/mcu/make/module/custom/service/custom_service.mak b/mcu/make/module/custom/service/custom_service.mak
new file mode 100644
index 0000000..f9ed8ac
--- /dev/null
+++ b/mcu/make/module/custom/service/custom_service.mak
@@ -0,0 +1,140 @@
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+
+# Define ./interface/modem folder path by project option
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297p
+else
+ #no match chip
+endif
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+
+#service
+ifeq ($(strip $(TST_SUPPORT)), TRUE)
+FOLDER_LIST += ./custom/service/tst
+endif
+
+ifneq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+FOLDER_LIST += ./custom/service/fs
+endif
+
+FOLDER_LIST += ./custom/service/nvram \
+ ./custom/service/common \
+ ./custom/service/mcf \
+ $(strip $(PROJDIR))/nvram_auto_gen
+
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+ $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+# Not compile nl1_nvram_def_md97.c
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),nl1_nvram_def_md97.c),,$(file)))
+# Not compile el1_nvram_def_md93.c/el1_nvram_def_md95.c
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),el1_nvram_def_md93.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),el1_nvram_def_md95.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),el1_nvram_def_md97.c),,$(file)))
+# Not compile mml1_nvram_def_md93.c/mml1_nvram_def_md95.c
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),mml1_nvram_def_md93.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),mml1_nvram_def_md95.c),,$(file)))
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),mml1_nvram_def_md97.c),,$(file)))
+# Not compile mmrfc_nvram_def_md97.c
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),mmrfc_nvram_def_md97.c),,$(file)))
+SRC_LIST := $(call uniq,$(SRC_LIST))
+
+ifeq ($(strip $(DHL_SUPPORT)), TRUE)
+SRC_LIST += ./custom/service/tst/dhl_export_config.c
+SRC_LIST += ./custom/service/tst/dhl_custom_set_log_buf.c
+endif
+
+#only in MoDIS
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ MODIS_DIS_FILE := custom_emi.c custom_flash.c usb_custom.c wndrv_configure.c wndrv_rf_ah.c wndrv_rf_maxim.c
+ MODIS_DIS_FILE += custom_flash_norfdm5.c afe.c mal1_create.c kbdmain_joystick.c ERS_api.c ERS_sys.s custom_sfi.c
+ MODIS_DIS_FILE += combo_flash_init.c combo_flash_nor.c
+ SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),$(call Lower,$(MODIS_DIS_FILE))),,$(file)))
+endif
+
+SRC_LIST := $(call uniq,$(SRC_LIST))
+
+INC_DIR += ./service/nvram/include \
+ ./service/fs/common/include
+
+
+# SV5
+INC_DIR += ./service/sys_svc/gfh/public \
+ ./service/sss/interface/inc \
+ ./service/sst/include \
+ ./service/sst/include
+
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+ INC_DIR += MoDIS_VC9/drv_sim/include
+endif
+
+#INC_DIR += ./service/tst/local_inc
+# for customize secure
+INC_DIR += ./interface/service/sys_svc
+
+INC_DIR := $(call uniq,$(INC_DIR))
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+ MMI_ON_HARDWARE_P \
+ APCS_INTWORK \
+ USE_JAM=0 \
+ COMPILER_SUPPORTS_LONG=1
+
+ifeq ($(filter __NOR_FLASH_BOOTING__,$(strip $(DEFINES))),)
+ ifdef NEED_BUILD_BOOTLOADER
+ ifeq ($(strip $(NEED_BUILD_BOOTLOADER)),TRUE)
+ COMP_DEFS += __BL_ENABLE__
+ COMP_DEFS += REMAPPING
+ endif
+ endif
+endif
+
+ifeq ($(strip $(ENHANCED_SINGLE_BANK_NOR_FLASH_SUPPORT)),TRUE)
+ COMP_DEFS += REMAPPING
+endif
+INC_DIR += interface/l1/el1/external
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+INC_DIR += $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom
+INC_DIR += $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/5g
+endif
+INC_DIR += interface/l1/nl1/external/4g
+INC_DIR += interface/l1/nl1/external/5g
+INC_DIR += interface/protocol/general
+#fdr_reorg
+INC_DIR += interface/protocol/as_c2k/common \
+ interface/service/sbp \
+ interface/l1/cl1/common \
+ interface/protocol/nas_c2k \
+ interface/protocol/as_c2k/1xrtt \
+ interface/protocol/as_c2k/evdo \
+ interface/protocol/l2_c2k/common
+
+INC_DIR += interface/service/mcf
diff --git a/mcu/make/module/driver/audio/extern/audio.mak b/mcu/make/module/driver/audio/extern/audio.mak
new file mode 100644
index 0000000..642f963
--- /dev/null
+++ b/mcu/make/module/driver/audio/extern/audio.mak
@@ -0,0 +1,288 @@
+# Define source file folder to SRC_LIST
+# ifeq ($(strip $(DSP_SOLUTION)),DUALMACDSP)
+# AUDFOLDER = driver/audio/src/v2
+# AUD_SOLUTION = V2
+# else
+ AUDFOLDER = driver/audio/src/v1
+ AUD_SOLUTION = V1
+# endif
+
+######################################################
+# Temp solution #
+######################################################
+#SRC_LIST = $(strip $(AUDFOLDER))/dummy_audio.c \
+# $(strip $(AUDFOLDER))/L/dummy_audio_L.c
+
+
+######################################################
+# Should remove first "# " for normal mode #
+######################################################
+ ##ifeq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+ ifneq ($(strip $(TEST_LOAD_TYPE)),NONE)
+ SRC_LIST = $(strip $(AUDFOLDER))/dummy_audio.c \
+ $(strip $(AUDFOLDER))/L/dummy_audio_L.c
+ else
+
+ ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ SRC_LIST = $(strip $(CUS_MTK_REL))/dhl/l1trace/l1audio_trace_utmd.c
+ SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/l1audio_voc_utmd.c
+ else
+ SRC_LIST = $(strip $(CUS_MTK_REL))/tst/l1trace/l1audio_trace_utmd.c
+ SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/l1audio_voc_utmd.c
+ endif
+ else
+ SRC_LIST = $(strip $(CGEN_L1_OUTDIR))/l1audio_trace_utmd.c
+ SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/l1audio_voc_utmd.c
+ endif
+
+ # Start Define source file lists to SRC_LIST
+ # Common part in v1 and v2
+ SRC_LIST += $(strip $(AUDFOLDER))/am.c \
+ $(strip $(AUDFOLDER))/audio_service.c \
+ $(strip $(AUDFOLDER))/l1audio_sph_srv.c \
+ $(strip $(AUDFOLDER))/media.c \
+ $(strip $(AUDFOLDER))/extcodec.c \
+ $(strip $(AUDFOLDER))/pcm4way.c \
+ $(strip $(AUDFOLDER))/sp_drv.c \
+ $(strip $(AUDFOLDER))/vm.c \
+ $(strip $(AUDFOLDER))/sp_cc.c \
+ driver/audio/src/audio_create.c \
+ $(strip $(AUDFOLDER))/sp_c2k.c \
+ $(strip $(AUDFOLDER))/speech_service.c \
+ $(strip $(AUDFOLDER))/sp_dsptone_drv.c \
+ $(strip $(AUDFOLDER))/L/am_L.c
+
+ # AFE part
+ AFE_SPLIT_DRIVER_PLATFORM = MT6763 MT6739 MT6771 MT6761 MT6295M MT6765 __MD95__ __MD97__ __MD97P__
+ ifneq ($(filter $(strip $(MODULE_DEFS)), $(AFE_SPLIT_DRIVER_PLATFORM)),)
+ SRC_LIST += $(strip $(AUDFOLDER))/afe_common.c \
+
+ ifeq ($(strip $(PLATFORM)),MT2735)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6297.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6890)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6297.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6880)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6297.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MERCURY)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6298.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6885)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6833)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6877)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6873)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6853)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6893)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6763)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6763.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6739)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6739.c
+ endif
+ ifeq ($(strip $(PLATFORM)),MT6779)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6779.c
+ endif
+ ifeq ($(strip $(PLATFORM)),MT6761)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6761.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6771)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6771.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6295M)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6295M.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT3967)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6295M.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6785)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6295M.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6765)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6765.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6297)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6297.c
+ endif
+
+ ifeq ($(strip $(PLATFORM)),MT6297P)
+ SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6297.c
+ endif
+ else
+ SRC_LIST += $(strip $(AUDFOLDER))/afe2.c
+ endif
+
+
+ # By Feature
+ ifneq ($(filter __ENABLE_SPEECH_DVT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += $(strip $(AUDFOLDER))/speech_dvt.c
+ endif
+
+ ifneq ($(filter __DATA_CARD_SPEECH__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += $(strip $(AUDFOLDER))/sp_strm_drv.c
+ endif
+
+ ifneq ($(filter __CVSD_CODEC_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += $(strip $(AUDFOLDER))/bt_sco_drv.c
+ endif
+
+ ifneq ($(filter __ECALL_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += $(strip $(AUDFOLDER))/eCall_drv.c
+ endif
+
+
+ ifeq ($(strip $(AUD_SOLUTION)),V1)
+ SRC_LIST += $(strip $(AUDFOLDER))/audio_idma.c \
+ $(strip $(AUDFOLDER))/sp_enhance.c \
+ $(strip $(AUDFOLDER))/sp_daca.c \
+ $(strip $(AUDFOLDER))/pcmRouter.c \
+ $(strip $(AUDFOLDER))/ExtBgSnd.c \
+ $(strip $(AUDFOLDER))/rawpcmrec_drv.c \
+ $(strip $(AUDFOLDER))/sp_gain.c \
+ $(strip $(AUDFOLDER))/PcmMixer2.c \
+ $(strip $(AUDFOLDER))/PcmMixer3.c
+ ifneq ($(strip $(SMART_PHONE_CORE)),NONE)
+ SRC_LIST += $(strip $(AUDFOLDER))/wm8904_config.c
+ ifneq ($(strip $(SMART_PHONE_CORE)),MODEM_ONLY)
+ SRC_LIST += $(strip $(AUDFOLDER))/spc_drv.c \
+ # $(strip $(AUDFOLDER))/spc_io.c
+ else
+# SRC_LIST += $(strip $(AUDFOLDER))/apAudSysConfig.c
+ endif
+ endif
+ endif
+
+ ifeq ($(strip $(AUD_SOLUTION)),V2)
+ SRC_LIST += $(strip $(AUDFOLDER))/vm_drv.c
+ ifneq ($(strip $(SMART_PHONE_CORE)),NONE)
+ SRC_LIST += $(strip $(AUDFOLDER))/spc_drv.c
+ endif
+ endif
+
+ ifneq ($(filter __VOLTE_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += $(strip $(AUDFOLDER))/sp_ps.c
+ SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_codec_amr.c
+ SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_codec_evs.c
+ SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_codec_g.c
+ SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_dsp_opt.c
+ SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_aam.c
+ SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_aamp.c
+
+ ifneq ($(filter __MCU_DTMF_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += $(strip $(AUDFOLDER))/VoLTETone.c
+ endif
+ #ifneq ($(filter __G_CODEC_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += $(strip $(AUDFOLDER))/pcmrb.c
+ SRC_LIST += $(strip $(AUDFOLDER))/streamrb.c
+ #endif
+ endif
+
+ ifneq ($(filter __UMTS_RAT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += $(strip $(AUDFOLDER))/amr_table.c \
+ $(strip $(AUDFOLDER))/sp_3g.c
+ else
+ ifneq ($(filter __UMTS_TDD128_MODE__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += $(strip $(AUDFOLDER))/amr_table.c \
+ $(strip $(AUDFOLDER))/sp_3g.c
+ endif
+ endif
+
+ # ifneq ($(filter BGSND_ENABLE, $(strip $(MODULE_DEFS))),)
+ # ifeq ($(strip $(AUD_SOLUTION)),V1)
+ # SRC_LIST += $(strip $(AUDFOLDER))/ExtBgSnd.c
+ # endif
+ # ifeq ($(strip $(AUD_SOLUTION)),V2)
+ # SRC_LIST += $(strip $(AUDFOLDER))/snd_effect.c
+ # endif
+ # endif
+
+ ifneq ($(filter __CTM_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += $(strip $(AUDFOLDER))/ctm_drv.c
+ endif
+
+ endif
+
+# Define include path lists to INC_DIR
+INC_DIR = $(strip $(AUDFOLDER)) \
+ $(strip $(AUDFOLDER))/inc \
+ interface/driver/audio \
+ driver/audio/src32_inc \
+ driver/audio/lib/MTKINC \
+ driver/sys_drv/init/inc \
+ interface/driver/peripheral \
+ ./interface/sap \
+ ./interface/sap/md \
+ interface/driver/devdrv/mdipc \
+ ./custom/driver/common \
+ interface/driver/sleep_drv \
+ interface/protocol/general \
+ interface/driver/sys_drv \
+ ./interface/service/dhl \
+ interface/driver/devdrv/cuif/inc \
+ ./interface/service/dhl \
+ interface/l1/cl1/rfd
+
+#ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+INC_DIR += interface/protocol/enl2
+#else
+#INC_DIR += protocol/interface/el2
+#endif
+
+INC_DIR += interface/sap/md
+INC_DIR += interface/protocol/3g/csr
+
+# solution for 93/95 co-codebase re-arch for R3 auto-sync to UMOLYA TRUNK
+ifneq ($(wildcard interface/driver/dvfs_drv),)
+ INC_DIR += interface/driver/dvfs_drv/$(MD_VER_FOLDER)
+else
+ INC_DIR += driver/sleep_drv/public/inc
+endif
+
+ifneq ($(filter __CENTRALIZED_SLEEP_MANAGER__, $(strip $(MODULE_DEFS))),)
+ INC_DIR += driver/sleep_drv/public/inc
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWORK
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH += $(strip $(AUDFOLDER))
+SRC_PATH += $(strip $(AUDFOLDER))/afes
+SRC_PATH += $(strip $(AUDFOLDER))/inc
+SRC_PATH += driver/audio/src
+
+#fdr_reorg
+INC_DIR += interface/l1/cl1/common \
+ interface/protocol/nas_c2k \
+ interface/protocol/l2_c2k/1xrtt
diff --git a/mcu/make/module/driver/datapath/pciedev.mak b/mcu/make/module/driver/datapath/pciedev.mak
new file mode 100644
index 0000000..ad36484
--- /dev/null
+++ b/mcu/make/module/driver/datapath/pciedev.mak
@@ -0,0 +1,33 @@
+#ifeq ($(strip $(HIF_PCIE_SUPPORT)),TRUE)
+##############################################################################
+# pcie part #
+##############################################################################
+ifneq ($(filter __PCIE_AT__, $(COM_DEFS)),)
+INC_DIR += driver/drvtest/hif/pcie_at/inc \
+ driver/hif/inc/hif_mhccifdev/
+endif
+
+INC_DIR += driver/devdrv/common/inc \
+ driver/hif/inc/hif_pciedev/ \
+ driver/hif/inc/ \
+ interface/driver/hif/hif_pciedev \
+ interface/driver/devdrv/pcie/ \
+ driver/hif/src/hif_pciedev/ \
+ interface/driver/peripheral/ \
+ interface/driver/hif/hif_mhccifdev/ \
+ interface/driver/devdrv/us_counter/ \
+ interface/service/hif/
+
+SRC_LIST += driver/hif/src/hif_pciedev/hif_pcie.c \
+ driver/hif/src/hif_pciedev/drv_pciedev.c \
+ driver/hif/src/hif_pciedev/pcie_i2c.c
+
+COMP_DEFS +=
+
+SRC_PATH += driver/hif/src/hif_pciedev
+
+ifeq ($(strip $(HIF_PCIE_DETECT)),TRUE)
+COMP_DEFS += __HIF_PCIE_DETECT__
+endif
+
+#endif
diff --git a/mcu/make/module/driver/driver_config.mak b/mcu/make/module/driver/driver_config.mak
new file mode 100644
index 0000000..6e1c426
--- /dev/null
+++ b/mcu/make/module/driver/driver_config.mak
@@ -0,0 +1,20 @@
+ifeq ($(strip $(RTOS)),MERTOS)
+ CATEGORY_INCDIRS += ./service/mertos/include
+ CATEGORY_INCDIRS += ./service/kal/common/include
+ CATEGORY_INCDIRS += ./service/kal/os/mertos/include
+ CATEGORY_INCDIRS += ./service/kal/lib/mlib/include
+endif
+
+
+# *************************************************************************
+# From Global include path
+# *************************************************************************
+CATEGORY_INCDIRS += driver/sys_drv/init/inc
+
+CATEGORY_DEFS +=
+
+ifeq ($(strip $(LTO_BUILD)),TRUE)
+ ifeq ($(strip $(NO_LTO)),)
+ CFLAGS += -flto -fno-fat-lto-objects
+ endif
+endif
diff --git a/mcu/make/module/driver/legacy/bmt.mak b/mcu/make/module/driver/legacy/bmt.mak
new file mode 100644
index 0000000..5f9c3f9
--- /dev/null
+++ b/mcu/make/module/driver/legacy/bmt.mak
@@ -0,0 +1,19 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/peripheral/src/bmt.c \
+driver/peripheral/src/bmt_create.c \
+driver/peripheral/src/bmt_main.c \
+driver/peripheral/src/bmtutil.c \
+driver/peripheral/src/dcl_bmt.c \
+driver/peripheral/src/bmt_ext_charger.c \
+driver/peripheral/src/bmt_ext_cable_fac_if.c
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/peripheral/inc \
+ driver/drv/include \
+ driver/peripheral/inc
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = BMT_KAL_DEBUG
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/peripheral/src
diff --git a/mcu/make/module/driver/legacy/extern/mtd.mak b/mcu/make/module/driver/legacy/extern/mtd.mak
new file mode 100644
index 0000000..b04a6e2
--- /dev/null
+++ b/mcu/make/module/driver/legacy/extern/mtd.mak
@@ -0,0 +1,73 @@
+# Define source file lists to SRC_LIST
+# flash_mtd.c is necessary for L1 to call NOR_GetReturnReadyLatency
+SRC_LIST = driver/storage/flash/mtd/src/flash_mtd.c
+
+ifeq ($(strip $(SERIAL_FLASH_SUPPORT)),TRUE)
+ SRC_LIST += driver/storage/flash/mtd/src/mtd_dal_spi.c \
+ driver/storage/flash/mtd/src/drv_spi.c
+ ifeq ($(strip $(FLASH_TEST_SELECT)),NOR_FLASH)
+ SRC_LIST += driver/storage/flash/mtd/src/flash_mtd_sf_ut.c
+ endif
+endif
+
+# NOR/SF driver
+ifeq ($(filter _NAND_FLASH_BOOTING_, $(strip $(MODULE_DEFS))),)
+ifeq ($(filter __EMMC_BOOTING__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += \
+ driver/storage/flash/mtd/src/flash_mtd.ramdisk.c \
+ driver/storage/flash/mtd/src/flash_cfi.c \
+ driver/storage/flash/mtd/src/flash_disk.c \
+ driver/storage/flash/mtd/src/flash_mtd_pf_dal.c \
+ driver/storage/flash/mtd/src/flash_mtd.amd.c \
+ driver/storage/flash/mtd/src/flash_mtd.intel.c
+ ifneq ($(filter __SERIAL_FLASH_EN__, $(strip $(MODULE_DEFS))),)
+ #SRC_LIST += \
+ #driver/storage/flash/mtd/src/flash_mtd_sf_common.c \
+ #driver/storage/flash/mtd/src/flash_mtd_sf_dal.c \
+ #driver/storage/flash/mtd/src/flash_mtd_sf_ut.c
+ endif
+endif
+endif
+
+ifeq ($(strip $(NAND_SUPPORT)),TRUE)
+# NAND driver build condition
+SRC_LIST += driver/storage/flash/mtd/src/NAND_MTD.c \
+ driver/storage/flash/mtd/src/flash_user.c
+endif
+# #if ( defined(__NAND_FDM_50__) && (defined(__NFI_VERSION2__)||defined(__NFI_VERSION3_1__)) )
+ifneq ($(filter __NAND_FDM_50__, $(strip $(MODULE_DEFS))),)
+ ifneq ($(filter __NFI_VERSION2__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/storage/flash/mtd/src/NAND_DAL.c
+ SRC_LIST += driver/storage/flash/mtd/src/NAND_MTD_FDM50.c
+ SRC_LIST += driver/storage/flash/mtd/src/NAND_DevConfig.c
+ else
+ ifneq ($(filter __NFI_VERSION3_1__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/storage/flash/mtd/src/NAND_DAL.c
+ SRC_LIST += driver/storage/flash/mtd/src/NAND_MTD_FDM50.c
+ SRC_LIST += driver/storage/flash/mtd/src/NAND_DevConfig.c
+ SRC_LIST += driver/storage/flash/mtd/src/NAND_MTD_DRV.c
+ endif
+ endif
+endif
+
+# RAM Disk for smartphone modem-only projects
+ifneq ($(filter __FS_RAMDISK__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/storage/flash/mtd/src/flash_mtd.ramdisk.c
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = ./service/sss/interface/inc \
+ ./service/sst/include \
+ driver/storage/flash/fdm/inc \
+ driver/storage/flash/mtd/inc \
+ driver/peripheral/inc \
+ ./service/fs/common/include \
+ ./service/sys_svc/gfh/public \
+ driver/devdrv/common/inc
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/storage/flash/mtd/src
+
diff --git a/mcu/make/module/driver/legacy/peripheral.mak b/mcu/make/module/driver/legacy/peripheral.mak
new file mode 100644
index 0000000..c239ec7
--- /dev/null
+++ b/mcu/make/module/driver/legacy/peripheral.mak
@@ -0,0 +1,142 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/peripheral/src/dcl_rtc.c \
+ driver/peripheral/src/dcl_aux.c \
+ driver/peripheral/src/auxmain.c \
+ driver/peripheral/src/i2c.c \
+ driver/peripheral/src/rtc.c \
+ driver/peripheral/src/drv_comm.c \
+ driver/peripheral/src/drv_hisr.c \
+ driver/peripheral/src/lpwr.c \
+ driver/peripheral/src/dcl_gpio.c \
+ driver/peripheral/src/dcl_i2c.c \
+ driver/peripheral/src/dcl_wdt.c \
+ driver/peripheral/src/dcl_gpt.c \
+ driver/peripheral/src/dcl_gpt_hw.c \
+ driver/peripheral/src/dcl_pwm.c \
+ driver/peripheral/src/dcl_adc.c \
+ driver/peripheral/src/adc.c \
+ driver/peripheral/src/adcmeasure.c \
+ driver/peripheral/src/adcsche.c \
+ driver/peripheral/src/gpio.c \
+ driver/peripheral/src/wdt.c \
+ driver/peripheral/src/pwm.c \
+ driver/peripheral/src/dcl_15_segment.c \
+ driver/peripheral/src/alerter.c \
+ driver/peripheral/src/dcl_chr_det.c \
+ driver/peripheral/src/dcl_pmu.c \
+ driver/peripheral/src/dcl_pmu_common.c \
+ driver/peripheral/src/dcl_pw.c \
+ driver/peripheral/src/kbdmain.c\
+ driver/peripheral/src/DclS_kbd.c\
+ driver/peripheral/src/DclH_kbd.c\
+ driver/peripheral/src/dbgprint.c\
+ driver/peripheral/src/Dcl_SeriPortDrv.c\
+ driver/peripheral/src/uart.c\
+ driver/peripheral/src/uart_vfifo.c\
+ driver/peripheral/src/uart_handler.c\
+ driver/peripheral/src/i2c_dual.c \
+ driver/peripheral/src/spi.c \
+ driver/peripheral/src/spi_hal.c \
+ driver/peripheral/src/hif_v2.c \
+ driver/peripheral/src/dcl_hts.c \
+ driver/peripheral/src/dcl_sts.c \
+ driver/peripheral/src/f32k_clk.c \
+ driver/peripheral/src/dcl_f32k_clk.c \
+ driver/peripheral/src/nli_arb.c\
+ driver/peripheral/src/gpio_setting.c
+# accdet
+ifneq ($(filter __ACCDET_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ ifeq ($(filter __L1_STANDALONE__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/peripheral/src/accdet.c
+ endif
+endif
+ifneq ($(filter __ACCDET_HYBRID_SOLUTION_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ ifeq ($(filter __L1_STANDALONE__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/peripheral/src/accdet.c
+ endif
+endif
+
+
+# PMU
+ifeq ($(strip $(PMIC)),MT6235PMU)
+ SRC_LIST += driver/peripheral/src/dcl_pmu6235.c
+endif
+ifneq ($(filter MT6236PMU MT6921PMU, $(strip $(PMIC))),)
+ SRC_LIST += driver/peripheral/src/dcl_pmu6236.c
+ SRC_LIST += driver/peripheral/src/pmic_MT6236PMU_drv.c
+endif
+ifeq ($(strip $(PMIC)),MT6253PMU)
+ SRC_LIST += driver/peripheral/src/dcl_pmu6253.c
+endif
+ifeq ($(strip $(PMIC)),MT6326_CCCI)
+ SRC_LIST += driver/peripheral/src/dcl_pmic6326_ccci.c
+endif
+ifeq ($(strip $(PMIC)),MT6326)
+ SRC_LIST += driver/peripheral/src/dcl_pmic6326.c
+endif
+ifeq ($(strip $(PMIC)),MT6251PMU)
+ SRC_LIST += driver/peripheral/src/dcl_pmu6251.c
+ SRC_LIST += driver/peripheral/src/pmic_MT6251PMU_drv.c
+endif
+ifeq ($(strip $(PMIC)),MT6252PMU)
+ SRC_LIST += driver/peripheral/src/dcl_pmu6252.c
+endif
+ifeq ($(strip $(PMIC)),MT6253ELPMU)
+ SRC_LIST += driver/peripheral/src/dcl_pmu6252.c
+endif
+ifeq ($(strip $(PMIC)),MT6256PMU)
+ SRC_LIST += driver/peripheral/src/dcl_pmu6256.c \
+ driver/peripheral/src/dcl_pmu6256_init.c
+endif
+ifeq ($(strip $(PMIC)),MT6255PMU)
+ SRC_LIST += driver/peripheral/src/dcl_pmu6255.c \
+ driver/peripheral/src/dcl_pmu6255_init.c
+endif
+ifeq ($(strip $(PMIC)),MT6276PMU)
+ SRC_LIST += driver/peripheral/src/dcl_pmu6276.c
+ SRC_LIST += driver/peripheral/src/pmic_MT6276PMU_drv.c
+endif
+ifeq ($(strip $(PMIC)),MT6573PMU)
+ SRC_LIST += driver/peripheral/src/dcl_pmu6573.c
+endif
+ifeq ($(strip $(PMIC)),MT6329)
+ SRC_LIST += driver/peripheral/src/dcl_pmic6329.c \
+ driver/peripheral/src/dcl_pmic6329_init.c
+endif
+ifeq ($(strip $(PMIC)),MT6327)
+ SRC_LIST += driver/peripheral/src/dcl_pmic6327.c \
+ driver/peripheral/src/dcl_pmic6327_init.c \
+ driver/peripheral/src/i2c_pmic.c
+endif
+
+ifneq ($(filter __DMA_UART_VIRTUAL_FIFO__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/peripheral/src/uart_vfifo.c
+endif
+
+# HIF
+# for HQA HIF/NFI concurrency test
+ifneq ($(filter __NAND_FLASH_HARDWARE_TEST__, $(strip $(MODULE_DEFS))),)
+ ifneq ($(filter __MAUI_BASIC__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/peripheral/src/hif_v2_test.c
+ endif
+endif
+
+COMP_DEFS += DRV_HTS_OFF
+COMP_DEFS += DRV_STS_OFF
+
+
+# Define include path lists to INC_DIR
+INC_DIR = \
+ driver/peripheral/inc \
+ interface/driver/connectivity/usb_driver \
+ driver/connectivity/usb_driver/inc \
+ driver/drv/include \
+ ./custom/driver/drv/ast \
+ $(strip $(BUILD_CODEGENDIR)) \
+ $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/misc_drv)
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = __DRV_COMM_INIT_DEINIT__
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/peripheral/src
+
diff --git a/mcu/make/module/driver/legacy/sdio_device.mak b/mcu/make/module/driver/legacy/sdio_device.mak
new file mode 100644
index 0000000..1d8a9f7
--- /dev/null
+++ b/mcu/make/module/driver/legacy/sdio_device.mak
@@ -0,0 +1,20 @@
+SRC_LIST = driver/connectivity/sdio_device/src/sdio_custom.c \
+ driver/connectivity/sdio_device/src/sdio_hw.c \
+ driver/connectivity/sdio_device/src/sdio_queue.c \
+ driver/connectivity/sdio_device/src/sdio_fw.c \
+ driver/connectivity/sdio_device/src/sdio_interrupt.c \
+ driver/connectivity/sdio_device/src/sdio_test_util.c
+
+
+# Define include path lists to INC_DIR
+INC_DIR = interface/driver/drv_def \
+ driver/connectivity/sdio_device/inc \
+ driver/regbase/inc \
+ driver/sleep_drv
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/connectivity/sdio_device/src
diff --git a/mcu/make/module/driver/legacy/sim_driver.mak b/mcu/make/module/driver/legacy/sim_driver.mak
new file mode 100644
index 0000000..46a52ee
--- /dev/null
+++ b/mcu/make/module/driver/legacy/sim_driver.mak
@@ -0,0 +1,27 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/storage/sim/src/dcl_sim.c \
+ driver/storage/sim/src/icc_sim_common_mtk.c \
+ driver/storage/sim/src/icc_switchControl0.c \
+ driver/storage/sim/src/icc_switchControl1.c \
+ driver/storage/sim/src/icc_switchControl2.c \
+ driver/storage/sim/src/icc_switchControl_al.c \
+ driver/storage/sim/src/icc_switchControl_mtk_0.c \
+ driver/storage/sim/src/icc_switchControl_mtk_1.c \
+ driver/storage/sim/src/MT6302_SPI.c
+
+
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/drv/include \
+ driver/storage/sim/inc \
+ ./service/sst/include \
+ ./service/ssf/inc \
+ interface/driver/regbase
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/storage/sim/src
+
diff --git a/mcu/make/module/driver/legacy/usb.mak b/mcu/make/module/driver/legacy/usb.mak
new file mode 100644
index 0000000..37a1017
--- /dev/null
+++ b/mcu/make/module/driver/legacy/usb.mak
@@ -0,0 +1,94 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/connectivity/usb_class/src/usb.c \
+ driver/connectivity/usb_class/src/usb_adap.c \
+ driver/connectivity/usb_class/src/usb_resource.c \
+ driver/connectivity/usb_class/src/usb_mode.c \
+ driver/connectivity/usb_class/src/usb_task.c \
+ driver/connectivity/usb_class/src/usb_debug_tool.c
+
+
+# USB LOGGING
+ifneq ($(filter __USB_LOGGING__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_class/src/usbacm_logging.c
+endif
+
+
+# USB CDC ACM CLASS
+ifneq ($(filter __USB_COM_PORT_ENABLE__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_class/src/usbacm_drv.c \
+ driver/connectivity/usb_class/src/usbacm_adap.c \
+ driver/connectivity/usb_class/src/usbacm_ft.c
+endif
+
+
+# USB STRESS TEST
+ifneq ($(filter __USB_STRESS_TEST__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_class/src/usbacm_echo.c
+endif
+
+
+# USB MASS STORAGE CLASS
+ifneq ($(filter __USB_MASS_STORAGE_ENABLE__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_class/src/usbms_drv.c \
+ driver/connectivity/usb_class/src/usbms_adap.c \
+ driver/connectivity/usb_class/src/usbms_state.c
+endif
+
+
+
+# USB MTP CLASS
+ifneq ($(filter __USB_IMAGE_CLASS__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_class/src/ptp_state.c \
+ driver/connectivity/usb_class/src/usbimage_drv.c \
+ driver/connectivity/usb_class/src/usbimage_mtp_state.c
+endif
+
+
+
+# USB WEBCAM CLASS
+ifneq ($(filter WEBCAM_SUPPORT,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_class/src/usbvideo_drv.c \
+ driver/connectivity/usb_class/src/usbvideo_state.c
+endif
+
+
+
+# USB OTG
+ifneq ($(filter __OTG_ENABLE__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_class/src/usbd.c \
+ driver/connectivity/usb_class/src/usb_host_default_drv.c \
+ driver/connectivity/usb_class/src/usb_host_ms_drv.c \
+ driver/connectivity/usb_class/src/usb_host_ms_state.c \
+ driver/connectivity/usb_class/src/usb_host_ms_adap.c \
+ driver/connectivity/usb_class/src/usb_host_acm_drv.c \
+ driver/connectivity/usb_class/src/otg.c
+endif
+
+
+
+# ICUSB
+ifneq ($(filter __IC_USB_ENABLE__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_class/src/icusb_debug_tool.c \
+ driver/connectivity/usb_class/src/icusb_eem_adap.c \
+ driver/connectivity/usb_class/src/icusb_eem_drv.c \
+ driver/connectivity/usb_class/src/icusb_iccd_adap.c \
+ driver/connectivity/usb_class/src/icusb_iccd_drv.c
+endif
+
+
+
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/connectivity/usb_driver/inc \
+ driver/connectivity/usb_class/include \
+ interface/driver/connectivity/usb_driver \
+ ./service/fs/common/include \
+ protocol/layer4/l4/include \
+ interface/driver/peripheral \
+ driver/dsp_ram
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWOR
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/connectivity/usb_class/src
+
diff --git a/mcu/make/module/driver/legacy/usb_driver.mak b/mcu/make/module/driver/legacy/usb_driver.mak
new file mode 100644
index 0000000..3a3a06d
--- /dev/null
+++ b/mcu/make/module/driver/legacy/usb_driver.mak
@@ -0,0 +1,57 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/connectivity/usb_driver/src/usb_phy_drv.c \
+ driver/connectivity/usb_driver/src/upll_ctrl.c \
+ driver/connectivity/usb_driver/src/dcl_usb_drv.c \
+ driver/connectivity/usb_driver/src/dcl_usb_hcd.c
+
+
+
+# USB Dummy API
+ifeq ($(filter __USB_ENABLE__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_driver/src/usb_dummy.c
+endif
+
+
+# USB LOGGING
+ifneq ($(filter __USB_LOGGING__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_driver/src/usblog_drv.c
+endif
+
+
+
+# USB MASS STORAGE CLASS
+ifneq ($(filter __USB_RAMDISK__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_driver/src/usbms_ram.c
+endif
+
+
+# USB CD ROM CLASS
+ifneq ($(filter __USB_MASS_STORAGE_CDROM_ENABLE__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_driver/src/usbms_cdrom.c
+endif
+
+
+
+# USB OTG
+ifneq ($(filter __OTG_ENABLE__,$(strip $(MODULE_DEFS))),)
+SRC_LIST +=driver/connectivity/usb_driver/src/dcl_otg_drv.c
+endif
+
+
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/drv/include \
+ driver/connectivity/usb_driver/inc \
+ driver/connectivity/usb_class/include \
+ interface/driver/drv_def \
+ interface/driver/connectivity/usb_driver \
+ interface/driver/regbase \
+ driver/peripheral/inc \
+ driver/sleep_drv/public/inc
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWORK
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/connectivity/usb_driver/src
diff --git a/mcu/make/module/driver/media/extern/media.mak b/mcu/make/module/driver/media/extern/media.mak
new file mode 100644
index 0000000..21b5e92
--- /dev/null
+++ b/mcu/make/module/driver/media/extern/media.mak
@@ -0,0 +1,40 @@
+# Define source file lists to SRC_LIST
+
+SRC_LIST = driver/audio/med/common/src/med_main.c \
+ driver/audio/med/common/src/med_utility.c \
+ driver/audio/med/common/src/med_ext_smalloc.c
+
+ifeq ($(filter MED_NOT_PRESENT, $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/audio/med/audio/src/aud_main.c \
+ driver/audio/med/audio/src/aud_audio.c \
+ driver/audio/med/audio/src/aud_speech.c \
+ driver/audio/med/audio/src/aud_keytone.c \
+ driver/audio/med/audio/src/aud_tone.c \
+ driver/audio/med/audio/src/aud_ilm.c \
+ driver/audio/med/audio/src/aud_utility.c \
+ driver/audio/med/audio/src/aud_media.c
+
+else
+ ifneq ($(filter __VOLTE_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/audio/med/audio/src/aud_ilm.c \
+ driver/audio/med/audio/src/aud_main.c \
+ driver/audio/med/audio/src/aud_utility.c \
+ driver/audio/med/common/src/med_spc_io.c
+ endif
+endif
+
+ ifneq ($(filter __ECALL_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/audio/med/audio/src/aud_ecall.c
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/audio/med/common/include \
+ driver/audio/med/audio/include \
+ interface/driver/hwdrv \
+ interface/driver/drv_sw_def \
+ interface/driver/drv_def \
+ interface/driver/connectivity/usb_driver \
+ interface/driver/peripheral
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv.mak b/mcu/make/module/driver/peripheral/extern/devdrv.mak
new file mode 100644
index 0000000..6adbf15
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv.mak
@@ -0,0 +1,129 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/devdrv/common/src/devdrv_common.c \
+ driver/devdrv/asm/src/drv_asm.c
+
+ifeq ($(filter __ARM7EJ_S__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/devdrv/common/src/$(COMPILER)/mon_counter.S
+endif
+
+#SRC_LIST = driver/devdrv/common/src/drv_comm.c \
+ driver/devdrv/common/src/$(COMPILER)/mon_counter.S
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/devdrv/common/inc \
+ driver/devdrv/trace \
+ driver/sys_drv/cache/inc \
+ driver/sys_drv/cache/inc/$(MD_VER_FOLDER) \
+ driver/sys_drv/mpu/inc/$(MD_VER_FOLDER) \
+ driver/sys_drv/pmu/inc \
+ driver/sys_drv/pmu/inc/$(MD_VER_FOLDER) \
+ interface/driver/devdrv/ect \
+ interface/l1/el1/external \
+ ./service/sst/include \
+ ./service/sst/include \
+ ./service/sss/interface/inc \
+ ./service/sys_svc/gfh/public \
+ ./interface/service/sys_svc \
+ interface/driver/devdrv/busmpu \
+ $(strip $(PROJDIR))/custom/driver/drv_gen \
+ ./interface/service/sst \
+ driver/devdrv/asm/inc \
+ interface/driver/sib_drv/scc \
+ interface/driver/sleep_drv \
+ driver/sib_drv/mtad/inc \
+ ./interface/service/prbm \
+ ./interface/driver/hif/hif_pccif4dev \
+ ./interface/driver/hif/hif_pccif5dev \
+ ./interface/driver/hif/hif_mhccifdev
+
+INC_DIR += ./interface/driver/storage/sim
+INC_DIR += driver/devdrv/pcie/inc
+
+#fdr_reorg
+INC_DIR += interface/protocol/as_c2k/common \
+ interface/service/sbp \
+ custom/protocol/common/ps
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/devdrv/common/src \
+ driver/devdrv/common/src/$(COMPILER)
+
+-include make/module/driver/peripheral/extern/devdrv/gpt.mak
+-include make/module/driver/peripheral/extern/devdrv/pcmon.mak
+-include make/module/driver/peripheral/extern/devdrv/uart.mak
+-include make/module/driver/peripheral/extern/devdrv/gdma_ps.mak
+-include make/module/driver/peripheral/extern/devdrv/l1gdma.mak
+-include make/module/driver/peripheral/extern/devdrv/usim.mak
+-include make/module/driver/peripheral/extern/devdrv/coresight.mak
+-include make/module/driver/peripheral/extern/devdrv/gpio.mak
+-include make/module/driver/peripheral/extern/devdrv/eint.mak
+-include make/module/driver/peripheral/extern/devdrv/dem.mak
+#-include make/module/driver/peripheral/extern/devdrv/pfc.mak
+-include make/module/driver/peripheral/extern/devdrv/idc.mak
+-include make/module/driver/peripheral/extern/devdrv/cirq.mak
+-include make/module/driver/peripheral/extern/devdrv/us_counter.mak
+-include make/module/driver/peripheral/extern/devdrv/devdrv_fakeapi.mak
+-include make/module/driver/peripheral/extern/devdrv/auxadc.mak
+#-include make/module/driver/mc.mak
+-include make/module/driver/peripheral/extern/devdrv/rtc.mak
+#-include make/module/driver/devdrv/malmo.mak
+-include make/module/driver/peripheral/extern/devdrv/pmic.mak
+-include make/module/driver/peripheral/extern/devdrv/pmic_wrap.mak
+-include make/module/driver/peripheral/extern/devdrv/spmi.mak
+-include make/module/driver/peripheral/extern/devdrv/bsi.mak
+-include make/module/driver/peripheral/extern/devdrv/cfgctl.mak
+-include make/module/driver/peripheral/extern/devdrv/f32k_clk.mak
+-include make/module/driver/peripheral/extern/devdrv/dcm.mak
+-include make/module/driver/peripheral/extern/devdrv/emi.mak
+-include make/module/driver/peripheral/extern/devdrv/pll.mak
+-include make/module/driver/peripheral/extern/devdrv/iomux.mak
+-include make/module/driver/peripheral/extern/devdrv/busmon.mak
+-include make/module/driver/peripheral/extern/devdrv/pdn.mak
+-include make/module/driver/peripheral/extern/devdrv/arm7wdt.mak
+-include make/module/driver/peripheral/extern/devdrv/boot_init.mak
+-include make/module/driver/peripheral/extern/devdrv/pw.mak
+-include make/module/driver/peripheral/extern/devdrv/chr_det.mak
+-include make/module/driver/peripheral/extern/devdrv/bus.mak
+-include make/module/driver/peripheral/extern/devdrv/busmpu.mak
+-include make/module/driver/peripheral/extern/devdrv/i2c.mak
+-include make/module/driver/peripheral/extern/devdrv/rstctl.mak
+-include make/module/driver/peripheral/extern/devdrv/mdl_ebc.mak
+-include make/module/driver/peripheral/extern/devdrv/log_seq.mak
+-include make/module/driver/peripheral/extern/devdrv/ect.mak
+-include make/module/driver/peripheral/extern/devdrv/elm.mak
+-include make/module/driver/peripheral/extern/devdrv/mdap_interface.mak
+-include make/module/driver/peripheral/extern/devdrv/cmif.mak
+-include make/module/driver/peripheral/extern/devdrv/cuif.mak
+-include make/module/driver/peripheral/extern/devdrv/csif.mak
+-include make/module/driver/peripheral/extern/devdrv/cs_pmu.mak
+-include make/module/driver/peripheral/extern/devdrv/d2d.mak
+-include make/module/driver/peripheral/extern/devdrv/dsp_bus.mak
+-include make/module/driver/peripheral/extern/devdrv/cs_sram_ctrl.mak
+-include make/module/driver/peripheral/extern/devdrv/soe.mak
+-include make/module/driver/peripheral/extern/devdrv/pms.mak
+-include make/module/driver/peripheral/extern/devdrv/digrf_platform.mak
+-include make/module/driver/peripheral/extern/devdrv/btdma.mak
+-include make/module/driver/peripheral/extern/devdrv/l3cache.mak
+-include make/module/driver/peripheral/extern/devdrv/pcie.mak
+-include make/module/driver/peripheral/extern/devdrv/tia.mak
+
+# 2016/05/31, temp comment this option due to Yuri Huang's request
+#ifeq ($(strip $(COMPILER)),GCC)
+# CFLAGS += -Werror
+#endif
+
+ifneq ($(filter TRUE,$(SIM_SWTICH_CONTROLLER_MT6306)),)
+ -include make/module/driver/peripheral/extern/devdrv/mt6306.mak
+endif
+
+# These modules have no HW & Drv now, only fake api for compile
+#-include make\bsp\devdrv\lcd.mak
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+ INC_DIR += ./interface/service/hif \
+ ./interface/service/hif
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/arm7wdt.mak b/mcu/make/module/driver/peripheral/extern/devdrv/arm7wdt.mak
new file mode 100644
index 0000000..0c8315f
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/arm7wdt.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/arm7wdt #
+##############################################################################
+SRC_LIST += driver/devdrv/arm7wdt/src/drv_arm7wdt.c \
+ driver/devdrv/arm7wdt/src/dcl_arm7wdt.c
+
+SRC_PATH += driver/devdrv/arm7wdt/src
+
+INC_DIR += driver/devdrv/arm7wdt/inc
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/auxadc.mak b/mcu/make/module/driver/peripheral/extern/devdrv/auxadc.mak
new file mode 100644
index 0000000..489a274
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/auxadc.mak
@@ -0,0 +1,13 @@
+##############################################################################
+# devdrv/eint #
+##############################################################################
+SRC_LIST += driver/devdrv/auxadc/src/dcl_adc.c \
+ driver/devdrv/auxadc/src/adc.c \
+ driver/devdrv/auxadc/src/drv_thermal_protect.c \
+
+SRC_PATH += driver/devdrv/auxadc/src
+
+INC_DIR += driver/devdrv/auxadc/inc \
+ interface/driver/devdrv/emi \
+ interface/driver/devdrv/thermal \
+ $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/misc_drv)
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/boot_init.mak b/mcu/make/module/driver/peripheral/extern/devdrv/boot_init.mak
new file mode 100644
index 0000000..c0a243d
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/boot_init.mak
@@ -0,0 +1,20 @@
+##############################################################################
+# devdrv/boot_init #
+##############################################################################
+SRC_LIST += driver/devdrv/boot_init/src/drv_boot_init.c \
+ driver/devdrv/boot_init/src/abm_init.c \
+ driver/devdrv/boot_init/src/arm7_init.c \
+ driver/devdrv/boot_init/src/bootrom_init.c \
+ driver/devdrv/boot_init/src/busmon_init.c \
+ driver/devdrv/boot_init/src/ca7_init.c \
+ driver/devdrv/boot_init/src/ccif_init.c \
+ driver/devdrv/boot_init/src/cldma_init.c \
+ driver/devdrv/boot_init/src/cr4pcmon_init.c \
+ driver/devdrv/boot_init/src/dbgsys_init.c \
+ driver/devdrv/boot_init/src/ehpi_master_init.c \
+ driver/devdrv/boot_init/src/ehpi_slave_init.c \
+ #driver/devdrv/boot_init/src/gdma_init.c
+
+SRC_PATH += driver/devdrv/boot_init/src
+
+INC_DIR += driver/devdrv/boot_init/inc
\ No newline at end of file
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/bsi.mak b/mcu/make/module/driver/peripheral/extern/devdrv/bsi.mak
new file mode 100644
index 0000000..332a10b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/bsi.mak
@@ -0,0 +1,10 @@
+##############################################################################
+# devdrv/bsi #
+##############################################################################
+ifneq ($(filter MT6290, $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/bsi/src/drv_bsi.c
+
+SRC_PATH += driver/devdrv/bsi/src
+
+INC_DIR += driver/devdrv/bsi/inc
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/btdma.mak b/mcu/make/module/driver/peripheral/extern/devdrv/btdma.mak
new file mode 100644
index 0000000..c07b8ac
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/btdma.mak
@@ -0,0 +1,10 @@
+##############################################################################
+# devdrv/btdma #
+##############################################################################
+ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/btdma/src/btdma.c
+SRC_PATH += driver/devdrv/btdma/src
+
+INC_DIR += driver/devdrv/btdma/inc
+INC_DIR += interface/driver/devdrv/btdma
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/bus.mak b/mcu/make/module/driver/peripheral/extern/devdrv/bus.mak
new file mode 100644
index 0000000..15d4913
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/bus.mak
@@ -0,0 +1,8 @@
+##############################################################################
+# devdrv/bus #
+##############################################################################
+SRC_LIST += driver/devdrv/bus/$(MD_VER_FOLDER)/src/bus_drv.c
+
+SRC_PATH += driver/devdrv/bus/$(MD_VER_FOLDER)/src
+
+INC_DIR += driver/devdrv/bus/$(MD_VER_FOLDER)/inc
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/busmon.mak b/mcu/make/module/driver/peripheral/extern/devdrv/busmon.mak
new file mode 100644
index 0000000..3e74680
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/busmon.mak
@@ -0,0 +1,12 @@
+##############################################################################
+# devdrv/busmon #
+##############################################################################
+
+SRC_LIST += driver/devdrv/busmon/src/$(MD_VER_FOLDER)/drv_busmon.c
+
+SRC_PATH += driver/devdrv/busmon/src/$(MD_VER_FOLDER)
+
+INC_DIR += interface/driver/devdrv/busmon/$(MD_VER_FOLDER)
+
+
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/busmpu.mak b/mcu/make/module/driver/peripheral/extern/devdrv/busmpu.mak
new file mode 100644
index 0000000..1583397
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/busmpu.mak
@@ -0,0 +1,8 @@
+##############################################################################
+# devdrv/bus #
+##############################################################################
+SRC_LIST += driver/devdrv/busmpu/src/$(MD_VER_FOLDER)/drv_busmpu.c
+
+SRC_PATH += driver/devdrv/busmpu/src/$(MD_VER_FOLDER)
+
+INC_DIR += driver/devdrv/busmpu/inc/$(MD_VER_FOLDER)
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cfgctl.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cfgctl.mak
new file mode 100755
index 0000000..6472cac
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cfgctl.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/cfgctl #
+##############################################################################
+SRC_LIST += driver/devdrv/cfgctl/src/drv_cfgctl.c
+
+SRC_PATH += driver/devdrv/cfgctl/src
+
+INC_DIR += driver/devdrv/cfgctl/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/chr_det.mak b/mcu/make/module/driver/peripheral/extern/devdrv/chr_det.mak
new file mode 100644
index 0000000..9649180
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/chr_det.mak
@@ -0,0 +1,14 @@
+##############################################################################
+# NOTICE : We have no HW for this IP (rtc) now. #
+# But for SW complie request, #
+# temporarily add the 'fake api' to make compile success. #
+##############################################################################
+
+SRC_LIST += driver/devdrv/chr_det/src/dcl_chr_det.c
+
+
+SRC_PATH += driver/devdrv/chr_det/src
+
+INC_DIR += driver/devdrv/chr_det/inc
+
+COMP_DEFS +=
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cirq.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cirq.mak
new file mode 100644
index 0000000..a95d08c
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cirq.mak
@@ -0,0 +1,15 @@
+##############################################################################
+# devdrv/gpt #
+##############################################################################
+ifeq ($(filter __ARM7EJ_S__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cirq/$(MD_VER_FOLDER)/src/drv_mdcirq.c
+else
+SRC_LIST += driver/devdrv/cirq/src/drv_arm7cirq.c
+endif
+SRC_LIST += driver/devdrv/cirq/$(MD_VER_FOLDER)/src/drv_vpe_irq.c
+SRC_LIST += driver/devdrv/cirq/$(MD_VER_FOLDER)/src/isrentry.c \
+ driver/devdrv/cirq/$(MD_VER_FOLDER)/src/$(COMPILER)/mips_vic_entry.S
+SRC_PATH += driver/devdrv/cirq/$(MD_VER_FOLDER)/src
+INC_DIR += driver/devdrv/cirq/$(MD_VER_FOLDER)/inc \
+ driver/sys_drv/init/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cmif.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cmif.mak
new file mode 100644
index 0000000..86f416f
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cmif.mak
@@ -0,0 +1,32 @@
+##############################################################################
+# devdrv/gpt #
+##############################################################################
+
+
+SRC_LIST += driver/devdrv/cmif/src/drv_cmif.c
+SRC_LIST += driver/devdrv/cmif/src/drv_cmif_l1core.c
+SRC_PATH += driver/devdrv/cmif/src
+
+INC_DIR += interface/driver/devdrv/cmif/inc
+INC_DIR += driver/devdrv/cmif/inc
+INC_DIR += $(UNIVERSAL_COMMON)/interface/driver/sys_drv/config
+
+ifneq ($(filter __SSDVT_CMIF_TEST__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/cmif_test.c
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/cmif_test_l1core.c
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/memory_test.c
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cmif/cmif_test/src
+INC_DIR += driver/devdrv/cmif/cmif_test/inc
+INC_DIR += $(UNIVERSAL_COMMON)/interface/modem
+endif
+
+ifneq ($(filter __MEM_ACCESS_PATH_DVT__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cmif/mem_access_path_test/src/mem_access_path_test.c
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/memory_test.c
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cmif/cmif_test/src
+SRC_PATH += driver/devdrv/cmif/mem_access_path_test/src
+INC_DIR += driver/devdrv/cmif/cmif_test/inc
+INC_DIR += driver/devdrv/cmif/mem_access_path_test/inc
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cs_pmu.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cs_pmu.mak
new file mode 100755
index 0000000..20b9b0d
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cs_pmu.mak
@@ -0,0 +1,16 @@
+##############################################################################
+# devdrv/cs_pmu #
+##############################################################################
+ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+# SRC_LIST += driver/devdrv/cs_pmu/src/
+# SRC_LIST += driver/devdrv/cs_pmu/src/
+# SRC_PATH += driver/devdrv/cs_pmu/src
+
+INC_DIR += driver/devdrv/cs_pmu/inc
+# INC_DIR += interface/driver/devdrv/csif
+# INC_DIR += $(UNIVERSAL_COMMON)/interface/driver/sys_drv/csif
+
+ifneq ($(filter __CS_PMU_HW_DVT__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cs_pmu/src/cs_pmu_dvt_main.c
+endif
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cs_sram_ctrl.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cs_sram_ctrl.mak
new file mode 100755
index 0000000..795cbd9
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cs_sram_ctrl.mak
@@ -0,0 +1,10 @@
+##############################################################################
+# devdrv/cs_sram_ctrl #
+##############################################################################
+SRC_LIST += driver/devdrv/cs_sram_ctrl/src/cs_sram_ctrl.c
+
+SRC_PATH += driver/devdrv/cs_sram_ctrl/src
+
+INC_DIR += driver/devdrv/cs_sram_ctrl/inc \
+ interface/driver/devdrv/cs_sram_ctrl
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/csif.mak b/mcu/make/module/driver/peripheral/extern/devdrv/csif.mak
new file mode 100644
index 0000000..44bfa9b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/csif.mak
@@ -0,0 +1,33 @@
+##############################################################################
+# devdrv/csif #
+##############################################################################
+ifneq ($(filter __MD97__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/csif/mt6297/src/drv_csif_init.c
+SRC_LIST += driver/devdrv/csif/mt6297/src/drv_csif_main.c
+SRC_PATH += driver/devdrv/csif/mt6297/src
+
+INC_DIR += driver/devdrv/csif/mt6297/inc
+INC_DIR += interface/driver/devdrv/csif
+INC_DIR += interface/driver/devdrv/csif/mt6297
+INC_DIR += $(UNIVERSAL_COMMON)/interface/driver/sys_drv/csif
+
+ifneq ($(filter __SSDVT_CSIF_TEST__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/csif/mt6297/src/csif_dvt_main.c
+endif
+ifneq ($(filter __CSIF_PROFILING__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/csif/mt6297/src/csif_profiling_main.c
+endif
+endif
+
+ifneq ($(filter __MD97P__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/csif/mt6297p/src/drv_csif_init.c
+SRC_LIST += driver/devdrv/csif/mt6297p/src/drv_csif_main.c
+SRC_PATH += driver/devdrv/csif/mt6297p/src
+
+INC_DIR += driver/devdrv/csif/mt6297p/inc
+INC_DIR += interface/driver/devdrv/csif
+INC_DIR += interface/driver/devdrv/csif/mt6297p
+INC_DIR += $(UNIVERSAL_COMMON)/interface/driver/sys_drv/csif
+endif
+
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cuif.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cuif.mak
new file mode 100644
index 0000000..e570b29
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cuif.mak
@@ -0,0 +1,52 @@
+##############################################################################
+# devdrv/gpt #
+##############################################################################
+
+
+SRC_LIST += driver/devdrv/cuif/src/drv_cuif.c
+SRC_LIST += driver/devdrv/cuif/src/drv_cuif_l1core.c
+SRC_PATH += driver/devdrv/cuif/src
+
+INC_DIR += driver/devdrv/cuif/inc
+INC_DIR += interface/driver/devdrv/cuif/inc
+
+ifneq ($(filter __CUIF_DRV_TEST__ , $(strip $(MODULE_DEFS))),)
+INC_DIR += $(UNIVERSAL_COMMON)/interface/modem/
+endif
+
+ifneq ($(filter __SSDVT_CUIF_TEST__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cuif/cuif_test/src/cuif_test.c
+SRC_LIST += driver/devdrv/cuif/cuif_test/src/cuif_test_l1core.c
+SRC_LIST += driver/devdrv/cuif/cuif_test/src/memory_test.c
+SRC_LIST += driver/devdrv/cuif/cuif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cuif/cuif_test/src
+INC_DIR += driver/devdrv/cuif/cuif_test/inc
+INC_DIR += $(UNIVERSAL_COMMON)/interface/modem/
+endif
+
+ifneq ($(filter __USIP_POWER_ON_OFF_DVT__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cuif/usip_power_test/src/usip_power_test.c
+SRC_PATH += driver/devdrv/cuif/usip_power_test/src
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cmif/cmif_test/src
+INC_DIR += driver/devdrv/cuif/usip_power_test/inc/
+INC_DIR += driver/devdrv/cmif/cmif_test/inc
+endif
+
+ifneq ($(filter __DSP_SRAM_CTRL_DVT__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cuif/dsp_sram_ctrl_dvt/src/dsp_sram_ctrl_dvt.c
+SRC_PATH += driver/devdrv/cuif/dsp_sram_ctrl_dvt/src
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cmif/cmif_test/src
+INC_DIR += driver/devdrv/cmif/cmif_test/inc
+INC_DIR += driver/devdrv/cmif/mem_access_path_test/inc
+endif
+
+ifneq ($(filter __USIP_PMUCC_ON_OFF_DVT__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cuif/pmu_cc_test/src/pmu_cc_test.c
+SRC_PATH += driver/devdrv/cuif/pmu_cc_test/src
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cmif/cmif_test/src
+INC_DIR += driver/devdrv/cuif/pmu_cc_test/inc/
+INC_DIR += driver/devdrv/cmif/cmif_test/inc
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/d2d.mak b/mcu/make/module/driver/peripheral/extern/devdrv/d2d.mak
new file mode 100644
index 0000000..969cad3
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/d2d.mak
@@ -0,0 +1,16 @@
+##############################################################################
+# devdrv/d2d #
+##############################################################################
+ifneq ($(filter MT6297 MT6297P, $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/d2d/src/drv_d2d_init.c
+SRC_LIST += driver/devdrv/d2d/src/drv_d2d_main.c
+SRC_PATH += driver/devdrv/d2d/src
+
+INC_DIR += driver/devdrv/d2d/inc
+INC_DIR += interface/driver/devdrv/d2d/inc
+
+ifneq ($(filter __SSDVT_D2D_TEST__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/d2d/src/d2d_dvt_main.c
+endif
+
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/dcm.mak b/mcu/make/module/driver/peripheral/extern/devdrv/dcm.mak
new file mode 100644
index 0000000..d859e14
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/dcm.mak
@@ -0,0 +1,20 @@
+##############################################################################
+# devdrv/gpt #
+##############################################################################
+SRC_LIST += driver/devdrv/dcm/$(MD_VER_FOLDER)/src/drv_dcm.c \
+ driver/devdrv/dcm/$(MD_VER_FOLDER)/src/drv_lpm.c
+
+ifeq ($(strip $(MD_VER_FOLDER)),md93)
+ SRC_LIST += driver/devdrv/dcm/$(MD_VER_FOLDER)/src/dcm_service.c
+else
+ ifeq ($(strip $(MD_VER_FOLDER)),md95)
+ SRC_LIST += driver/devdrv/dcm/$(MD_VER_FOLDER)/src/dcm_service.c
+ else
+ #No dcm_service.c
+ endif
+endif
+
+SRC_PATH += driver/devdrv/dcm/$(MD_VER_FOLDER)/src
+
+INC_DIR += driver/devdrv/dcm/$(MD_VER_FOLDER)/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/dem.mak b/mcu/make/module/driver/peripheral/extern/devdrv/dem.mak
new file mode 100644
index 0000000..6bb536b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/dem.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/dem #
+##############################################################################
+SRC_LIST += driver/devdrv/dem/src/drv_dem.c
+
+SRC_PATH += driver/devdrv/dem/src
+
+INC_DIR += driver/devdrv/dem/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/devdrv_fakeapi.mak b/mcu/make/module/driver/peripheral/extern/devdrv/devdrv_fakeapi.mak
new file mode 100644
index 0000000..52299f0
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/devdrv_fakeapi.mak
@@ -0,0 +1,10 @@
+##############################################################################
+# devdrv/tty #
+##############################################################################
+SRC_LIST += driver/devdrv/devdrv_fakeapi/src/devdrv_fakeapi.c
+
+
+SRC_PATH += driver/devdrv/devdrv_fakeapi/src
+
+INC_DIR += driver/devdrv/devdrv_fakeapi/src
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/digrf_platform.mak b/mcu/make/module/driver/peripheral/extern/devdrv/digrf_platform.mak
new file mode 100644
index 0000000..908b50a
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/digrf_platform.mak
@@ -0,0 +1,36 @@
+##############################################################################
+# devdrv/digrf_platform #
+##############################################################################
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_bus_ao.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_bus_off.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_dsb.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_global_con.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_mipi.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_off_clk.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_on_clk.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_on_irq.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_platform_init.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_cos_prep.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_iomux.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_busmon.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_exception.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_por.c
+
+ifneq ($(filter __DIGRF_PLATFORM_TEST__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/digrf_platform/src/ssdvt/digrf_dvt_test.c
+SRC_LIST += driver/devdrv/digrf_platform/src/ssdvt/digrf_busmon_dvt.c
+SRC_LIST += driver/devdrv/digrf_platform/src/ssdvt/digrf_mipi_dvt.c
+SRC_LIST += driver/devdrv/digrf_platform/src/ssdvt/digrf_dsb_dvt.c
+SRC_LIST += driver/devdrv/digrf_platform/src/ssdvt/digrf_on_irq_dvt.c
+endif
+
+
+SRC_PATH += driver/devdrv/cuif/src
+
+INC_DIR += driver/devdrv/digrf_platform/inc
+INC_DIR += interface/driver/devdrv/digrf_platform
+INC_DIR += interface/driver/dvfs_drv/md97
+INC_DIR += driver/devdrv/pmic_wrap/inc
+INC_DIR += interface/driver/sleep_drv
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/dsp_bus.mak b/mcu/make/module/driver/peripheral/extern/devdrv/dsp_bus.mak
new file mode 100644
index 0000000..ea2513b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/dsp_bus.mak
@@ -0,0 +1,12 @@
+##############################################################################
+# devdrv/gpt #
+##############################################################################
+
+
+SRC_LIST += driver/devdrv/dsp_bus/src/dsp_bus_config.c
+SRC_LIST += driver/devdrv/dsp_bus/src/dsp_bus_dump.c
+SRC_PATH += driver/devdrv/dsp_bus/src
+
+INC_DIR += driver/devdrv/dsp_bus/inc
+
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/ect.mak b/mcu/make/module/driver/peripheral/extern/devdrv/ect.mak
new file mode 100755
index 0000000..87e6b26
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/ect.mak
@@ -0,0 +1,6 @@
+##############################################################################
+# devdrv/ect #
+##############################################################################
+
+SRC_LIST += driver/devdrv/ect/src/ect.c
+SRC_LIST += driver/devdrv/ect/src/ect_dsp_cti_status.c
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/eint.mak b/mcu/make/module/driver/peripheral/extern/devdrv/eint.mak
new file mode 100644
index 0000000..c5350f2
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/eint.mak
@@ -0,0 +1,13 @@
+##############################################################################
+# devdrv/eint #
+##############################################################################
+SRC_LIST += driver/devdrv/eint/src/dcl_eint.c \
+ driver/devdrv/eint/src/drv_eint.c \
+ driver/devdrv/eint/src/eint_setting_init.c
+
+SRC_PATH += driver/devdrv/eint/src
+
+INC_DIR += driver/devdrv/eint/inc \
+ $(strip $(PROJDIR))/custom/driver/drv_gen \
+ $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/misc_drv)
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/elm.mak b/mcu/make/module/driver/peripheral/extern/devdrv/elm.mak
new file mode 100644
index 0000000..762d9d8
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/elm.mak
@@ -0,0 +1,22 @@
+##############################################################################
+# devdrv/elm #
+##############################################################################
+SRC_LIST += driver/devdrv/elm/src/$(MD_VER_FOLDER)/elm.c
+
+#SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/elm_trace_utmd.c
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/elm_trace_utmd.c
+ else
+ SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/elm_trace_utmd.c
+ endif
+ else
+ SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/elm_trace_utmd.c
+ endif
+ endif
+endif
+
+SRC_PATH += driver/devdrv/elm/src/$(MD_VER_FOLDER)
+INC_DIR += driver/devdrv/elm/inc
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/emi.mak b/mcu/make/module/driver/peripheral/extern/devdrv/emi.mak
new file mode 100644
index 0000000..e011740
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/emi.mak
@@ -0,0 +1,11 @@
+#############################################
+# EMI Driver #
+#############################################
+# Define source file lists to SRC_LIST
+SRC_LIST += driver/devdrv/emi/src/emimpu.c
+
+# Define include path lists to INC_DIR
+INC_DIR += driver/devdrv/emi/inc/
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH += driver/devdrv/emi/src
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/f32k_clk.mak b/mcu/make/module/driver/peripheral/extern/devdrv/f32k_clk.mak
new file mode 100644
index 0000000..8a9f6c3
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/f32k_clk.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/gpt #
+##############################################################################
+SRC_LIST += driver/devdrv/f32k/src/dcl_f32k_clk.c \
+
+SRC_PATH += driver/devdrv/f32k/src
+
+INC_DIR += driver/devdrv/f32k/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/gdma_l1.mak b/mcu/make/module/driver/peripheral/extern/devdrv/gdma_l1.mak
new file mode 100755
index 0000000..59e1e7b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/gdma_l1.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/gdma #
+##############################################################################
+SRC_LIST += driver/devdrv/gdma_l1/src/drv_gdma.c \
+
+SRC_PATH += driver/devdrv/gdma_l1/src
+
+INC_DIR += driver/devdrv/gdma_l1/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/gdma_ps.mak b/mcu/make/module/driver/peripheral/extern/devdrv/gdma_ps.mak
new file mode 100755
index 0000000..bbdf661
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/gdma_ps.mak
@@ -0,0 +1,40 @@
+##############################################################################
+# devdrv/gdma #
+##############################################################################
+
+####################################################
+# For Gen93 GDMA
+####################################################
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6293)
+ SRC_LIST += driver/devdrv/gdma_ps/src/md93/drv_gdma.c
+ SRC_PATH += driver/devdrv/gdma_ps/src/md93
+ INC_DIR += driver/devdrv/gdma_ps/inc/md93
+endif
+
+####################################################
+# For Gen95 GDMA
+####################################################
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6295)
+ SRC_LIST += driver/devdrv/gdma_ps/src/md95/drv_gdma.c
+ SRC_PATH += driver/devdrv/gdma_ps/src/md95
+ INC_DIR += driver/devdrv/gdma_ps/inc/md95
+ COMP_DEFS += GDMA_PRIO_DISABLE #GDMA_PRIO_DISABLE is used to disable PRIORITY COMMON QUEUE;
+endif
+
+####################################################
+# For Gen97 GDMA
+####################################################
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ SRC_LIST += driver/devdrv/gdma_ps/src/md97/drv_gdma.c
+ SRC_PATH += driver/devdrv/gdma_ps/src/md97
+ INC_DIR += driver/devdrv/gdma_ps/inc/md97
+endif
+
+####################################################
+# For Gen97P GDMA
+####################################################
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ SRC_LIST += driver/devdrv/gdma_ps/src/md97/drv_gdma.c
+ SRC_PATH += driver/devdrv/gdma_ps/src/md97
+ INC_DIR += driver/devdrv/gdma_ps/inc/md97
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/gpio.mak b/mcu/make/module/driver/peripheral/extern/devdrv/gpio.mak
new file mode 100644
index 0000000..cd5f36d
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/gpio.mak
@@ -0,0 +1,12 @@
+##############################################################################
+# devdrv/gpio #
+##############################################################################
+SRC_LIST += driver/devdrv/gpio/src/dcl_gpio.c \
+ driver/devdrv/gpio/src/drv_gpio.c \
+ driver/devdrv/gpio/src/gpio_setting.c \
+
+SRC_PATH += driver/devdrv/gpio/src
+
+INC_DIR += driver/devdrv/gpio/inc \
+ $(strip $(PROJDIR))/custom/driver/drv_gen
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/gpt.mak b/mcu/make/module/driver/peripheral/extern/devdrv/gpt.mak
new file mode 100644
index 0000000..5550736
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/gpt.mak
@@ -0,0 +1,11 @@
+##############################################################################
+# devdrv/gpt #
+##############################################################################
+SRC_LIST += driver/devdrv/gpt/src/dcl_gpt.c \
+ driver/devdrv/gpt/src/drv_gpt.c \
+ driver/devdrv/gpt/src/drv_litegpt.c
+
+SRC_PATH += driver/devdrv/gpt/src
+
+INC_DIR += driver/devdrv/gpt/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/i2c.mak b/mcu/make/module/driver/peripheral/extern/devdrv/i2c.mak
new file mode 100644
index 0000000..a9e4ec3
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/i2c.mak
@@ -0,0 +1,11 @@
+
+##############################################################################
+# devdrv/i2c #
+##############################################################################
+SRC_LIST += driver/devdrv/i2c/src/dcl_i2c.c \
+ driver/devdrv/i2c/src/drv_i2c.c \
+
+
+SRC_PATH += driver/devdrv/i2c/src
+
+INC_DIR += driver/devdrv/i2c/inc
\ No newline at end of file
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/idc.mak b/mcu/make/module/driver/peripheral/extern/devdrv/idc.mak
new file mode 100644
index 0000000..7f21c87
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/idc.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/idc #
+##############################################################################
+SRC_LIST += driver/devdrv/idc/src/dcl_idc.c \
+ driver/devdrv/idc/src/drv_idc.c \
+
+SRC_PATH += driver/devdrv/idc/src
+
+INC_DIR += driver/devdrv/idc/inc
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/iomux.mak b/mcu/make/module/driver/peripheral/extern/devdrv/iomux.mak
new file mode 100644
index 0000000..d51720c
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/iomux.mak
@@ -0,0 +1,11 @@
+##############################################################################
+# devdrv/iomux #
+##############################################################################
+ifeq ($(strip $(PLATFORM)), TK6291)
+SRC_LIST += driver/devdrv/iomux/src/drv_iomux.c
+
+SRC_PATH += driver/devdrv/iomux/src
+
+INC_DIR += driver/devdrv/iomux/inc
+endif
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/l3cache.mak b/mcu/make/module/driver/peripheral/extern/devdrv/l3cache.mak
new file mode 100644
index 0000000..1c52722
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/l3cache.mak
@@ -0,0 +1,7 @@
+
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/l3cache/src/$(MD_VER_FOLDER)/drv_l3cache_hw.c
+SRC_PATH += driver/devdrv/l3cache/src/$(MD_VER_FOLDER)
+
+INC_DIR += driver/devdrv/l3cache/inc/$(MD_VER_FOLDER)
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/lcd.mak b/mcu/make/module/driver/peripheral/extern/devdrv/lcd.mak
new file mode 100644
index 0000000..bc68746
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/lcd.mak
@@ -0,0 +1,14 @@
+##############################################################################
+# NOTICE : We have no HW for this IP (lcd) now. #
+# But for SW complie request, #
+# temporarily add the 'fake api' to make compile success. #
+##############################################################################
+
+SRC_LIST += driver/devdrv/lcd/src/wfd_lcd_adapter.c
+
+SRC_PATH += driver/devdrv/lcd/src
+
+INC_DIR += driver/devdrv/lcd/inc \
+ interface/driver/display/ddv1/ \
+
+COMP_DEFS +=
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/log_seq.mak b/mcu/make/module/driver/peripheral/extern/devdrv/log_seq.mak
new file mode 100755
index 0000000..143ebb6
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/log_seq.mak
@@ -0,0 +1,29 @@
+##############################################################################
+# log_seq #
+##############################################################################
+ifeq ($(strip $(MTK_MODEM_ARCH)),MT6295)
+COMP_DEFS += __MD95__
+SRC_LIST += driver/devdrv/log_seq/src/${MD_VER_FOLDER}/logseq_drv_gen95.c
+else ifeq ($(strip $(MTK_MODEM_ARCH)),MT6293)
+COMP_DEFS += __MD93__
+SRC_LIST += driver/devdrv/log_seq/src/${MD_VER_FOLDER}/logseq_drv_gen93.c
+else ifeq ($(strip $(MTK_MODEM_ARCH)),MT6297)
+COM_DEFS += __MD97__
+SRC_LIST += driver/devdrv/log_seq/src/${MD_VER_FOLDER}/logseq_drv_gen97.c
+else ifeq ($(strip $(MTK_MODEM_ARCH)),MT6297P)
+COM_DEFS += __MD97P__
+SRC_LIST += driver/devdrv/log_seq/src/md97/logseq_drv_gen97.c
+else
+endif
+#SRC_LIST += driver/devdrv/log_seq/src/logseq_drv.c
+
+SRC_PATH += driver/devdrv/log_seq/src/${MD_VER_FOLDER}/
+
+INC_DIR += driver/devdrv/common/inc \
+ driver/devdrv/log_seq/inc \
+ interface/driver/devdrv/log_seq
+
+#ifeq ($(strip $(COMPILER)),GCC)
+# CFLAGS += -Werror
+#endif
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/malmo.mak b/mcu/make/module/driver/peripheral/extern/devdrv/malmo.mak
new file mode 100644
index 0000000..0b30f1d
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/malmo.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/dnt #
+##############################################################################
+SRC_LIST += driver/devdrv/malmo/src/MalmoDriver.c
+
+SRC_PATH += driver/devdrv/malmo/src
+
+#INC_DIR += driver/devdrv/malmo/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/mdap_interface.mak b/mcu/make/module/driver/peripheral/extern/devdrv/mdap_interface.mak
new file mode 100755
index 0000000..4af80f9
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/mdap_interface.mak
@@ -0,0 +1,27 @@
+##############################################################################
+# devdrv/bus #
+##############################################################################
+SRC_LIST += driver/devdrv/mdap_interface/src/drv_mdap_interface.c
+SRC_LIST += driver/devdrv/mdap_interface/src/$(MD_VER_FOLDER)/drv_mdap_interface_hw.c
+
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/amif_trace_utmd.c
+ else
+ SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/amif_trace_utmd.c
+ endif
+else
+ SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/amif_trace_utmd.c
+endif
+endif
+endif
+
+SRC_PATH += driver/devdrv/mdap_interface/src
+SRC_PATH += driver/devdrv/mdap_interface/src/$(MD_VER_FOLDER)
+
+INC_DIR += interface/driver/devdrv/mdap_interface
+INC_DIR += driver/devdrv/mdap_interface/inc
+INC_DIR += driver/devdrv/mdap_interface/inc/$(MD_VER_FOLDER)
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/mdl_ebc.mak b/mcu/make/module/driver/peripheral/extern/devdrv/mdl_ebc.mak
new file mode 100755
index 0000000..3b1792e
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/mdl_ebc.mak
@@ -0,0 +1,15 @@
+##############################################################################
+# mdl_ebc #
+##############################################################################
+#SRC_LIST += driver/devdrv/mdl_ebc/src/ebc_drv.c
+
+#SRC_PATH += driver/devdrv/mdl_ebc/src
+
+#INC_DIR += driver/devdrv/common/inc \
+# interface/driver/devdrv/mdl_ebc \
+# driver/devdrv/mdl_ebc/inc
+
+#ifeq ($(strip $(COMPILER)),GCC)
+ #CFLAGS += -Werror
+#endif
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/mdm_trc.mak b/mcu/make/module/driver/peripheral/extern/devdrv/mdm_trc.mak
new file mode 100644
index 0000000..1348f0b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/mdm_trc.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/mdm_trc #
+##############################################################################
+SRC_LIST += driver/devdrv/mdm_trc/src/mdm_trc.c
+
+SRC_PATH += driver/devdrv/mdm_trc/src
+
+#INC_DIR += driver/devdrv/mdm_trc/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/mt6306.mak b/mcu/make/module/driver/peripheral/extern/devdrv/mt6306.mak
new file mode 100755
index 0000000..e7edd1b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/mt6306.mak
@@ -0,0 +1,25 @@
+# Define source file lists to SRC_LIST
+SRC_LIST += driver/devdrv/usim/mt6306/src/icc_switchControl0_mt6306.c \
+ driver/devdrv/usim/mt6306/src/icc_switchControl1_mt6306.c \
+ driver/devdrv/usim/mt6306/src/icc_switchControl2_mt6306.c \
+ driver/devdrv/usim/mt6306/src/MT6306_HW_I2C.c \
+ driver/devdrv/usim/mt6306/src/MT6306_I2C.c
+
+
+# Define include path lists to INC_DIR
+INC_DIR += driver/devdrv/usim/inc \
+ ./service/sst/include \
+ ./service/ssf/inc \
+ driver/devdrv/usim/mt6306/inc
+
+ #interface/driver/devdrv/usim
+ #driver/sys_drv/regbase/inc \
+ #driver/sys_drv/dma/inc \
+ # driver/sys_drv/counter/inc \
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS +=
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH += driver/devdrv/usim/mt6306/src
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pcie.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pcie.mak
new file mode 100644
index 0000000..a69103a
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pcie.mak
@@ -0,0 +1,31 @@
+##############################################################################
+# devdrv/pcie #
+##############################################################################
+ifneq ($(filter MT6297 , $(strip $(MODULE_DEFS))),)
+
+SRC_LIST += driver/devdrv/pcie/src/pcie.c \
+ driver/hif/src/hif_pciedev/pcie_mac.c
+
+SRC_PATH += driver/devdrv/pcie/src \
+ driver/hif/src/hif_pciedev
+
+INC_DIR += interface/driver/devdrv/pcie \
+ driver/hif/inc/hif_pciedev \
+ interface/driver/hif/hif_pciedev
+
+endif
+ifneq ($(filter MT6880 MT6890, $(strip $(MODULE_DEFS))),)
+
+SRC_LIST += driver/devdrv/pcie/src/pcie.c \
+ driver/hif/src/hif_pciedev/pcie_mac.c \
+ driver/hif/src/hif_pciedev/pcie_phy.c
+
+SRC_PATH += driver/devdrv/pcie/src \
+ driver/hif/src/hif_pciedev
+
+INC_DIR += interface/driver/devdrv/pcie \
+ driver/hif/inc/hif_pciedev \
+ interface/driver/hif/hif_pciedev
+
+endif
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pcmon.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pcmon.mak
new file mode 100644
index 0000000..ddeb770
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pcmon.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/pcmon #
+##############################################################################
+SRC_LIST += driver/devdrv/pcmon/src/drv_pdamon.c
+
+SRC_PATH += driver/devdrv/pcmon/src
+
+INC_DIR += driver/devdrv/pcmon/inc/$(MD_VER_FOLDER)
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pdn.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pdn.mak
new file mode 100644
index 0000000..b22c991
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pdn.mak
@@ -0,0 +1,8 @@
+##############################################################################
+# devdrv/pdn #
+##############################################################################
+SRC_LIST += driver/devdrv/pdn/src/drvpdn.c
+
+SRC_PATH += driver/devdrv/pdn/src
+
+INC_DIR += interface/driver/devdrv/pdn
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pfb.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pfb.mak
new file mode 100644
index 0000000..258da0a
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pfb.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/pfb #
+##############################################################################
+SRC_LIST += driver/devdrv/pfb/src/drv_pfb.c
+
+SRC_PATH += driver/devdrv/pfb/src
+
+INC_DIR += driver/devdrv/pfb/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pll.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pll.mak
new file mode 100644
index 0000000..d4ffc1a
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pll.mak
@@ -0,0 +1,17 @@
+##############################################################################
+# devdrv/pll #
+##############################################################################
+
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/pll/src/pll_gen93m17.c
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/pll/src/pll_gen95.c
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/pll/src/pll_gen97.c
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/pll/src/pll_gen97p.c
+endif
+
+SRC_PATH += driver/devdrv/pll/src
+
+INC_DIR += interface/driver/devdrv/pll
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pmic.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pmic.mak
new file mode 100644
index 0000000..2189f79
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pmic.mak
@@ -0,0 +1,113 @@
+##############################################################################
+# devdrv/pmic #
+##############################################################################
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmu.c \
+ driver/devdrv/pmic/src/dcl_pmu_common.c \
+
+ifeq ($(strip $(PMIC)),NONE)
+COMP_DEFS += DRV_PMIC_OFF
+endif
+
+ifeq ($(strip $(PMIC)),MT6356)
+
+ifeq ($(strip $(PLATFORM)), MT6763)
+COMP_DEFS += MT6356 DRV_PMIC_WRAP_6763_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6739)
+COMP_DEFS += MT6356 DRV_PMIC_WRAP_6739_REG DRV_PMIC_WRAP_V2
+endif
+
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmic6356.c \
+ driver/devdrv/pmic/src/dcl_pmic6356_init.c
+INC_DIR += driver/devdrv/pmic_wrap/inc
+endif
+
+ifeq ($(strip $(PMIC)),MT6357)
+
+ifeq ($(strip $(PLATFORM)), MT6739)
+COMP_DEFS += MT6357 DRV_PMIC_WRAP_6739_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6765)
+COMP_DEFS += MT6357 DRV_PMIC_WRAP_6765_REG DRV_PMIC_WRAP_V2
+endif
+
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmic6357.c \
+ driver/devdrv/pmic/src/dcl_pmic6357_init.c
+INC_DIR += driver/devdrv/pmic_wrap/inc
+endif
+
+ifeq ($(strip $(PMIC)),MT6358)
+
+ifeq ($(strip $(PLATFORM)), MT6771)
+COMP_DEFS += MT6358 DRV_PMIC_WRAP_6771_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT3967)
+COMP_DEFS += MT6358 DRV_PMIC_WRAP_3967_REG DRV_PMIC_WRAP_V2
+endif
+
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmic6358.c \
+ driver/devdrv/pmic/src/dcl_pmic6358_init.c
+INC_DIR += driver/devdrv/pmic_wrap/inc
+endif
+
+ifeq ($(strip $(PMIC)),MT6359)
+
+ifeq ($(strip $(PLATFORM)), MT6779)
+COMP_DEFS += MT6359 DRV_PMIC_WRAP_6779_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6297)
+COMP_DEFS += MT6297 DRV_PMIC_WRAP_6297_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6297P)
+COMP_DEFS += MT6297P DRV_PMIC_WRAP_6297_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6885)
+COMP_DEFS += MT6359 DRV_PMIC_WRAP_6885_REG DRV_PMIC_WRAP_V2
+endif
+
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmic6359.c \
+ driver/devdrv/pmic/src/dcl_pmic6359_init.c
+INC_DIR += driver/devdrv/pmic_wrap/inc
+endif
+
+ifeq ($(strip $(PMIC)),MT6359P)
+
+ifeq ($(strip $(PLATFORM)), MT6885)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6885_REG DRV_PMIC_WRAP_V3
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6873)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6885_REG DRV_PMIC_WRAP_V3
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6853)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6853_REG DRV_PMIC_WRAP_V3
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6893)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6893_REG DRV_PMIC_WRAP_V3
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6833)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6833_REG DRV_PMIC_WRAP_V3
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6877)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6877_REG DRV_PMIC_WRAP_V3
+endif
+
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmic6359p.c \
+ driver/devdrv/pmic/src/dcl_pmic6359p_init.c
+INC_DIR += driver/devdrv/pmic_wrap/inc
+endif
+
+SRC_PATH += driver/devdrv/pmic/src
+
+INC_DIR += driver/devdrv/pmic/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pmic_wrap.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pmic_wrap.mak
new file mode 100644
index 0000000..152e760
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pmic_wrap.mak
@@ -0,0 +1,28 @@
+##############################################################################
+# devdrv/pmic_wrap #
+##############################################################################
+PMIC_WRAP_V2_COMPILER_FILTER_LIST = MT6356 MT6357 MT6358 MT6359
+
+PMIC_WRAP_V3_COMPILER_FILTER_LIST = MT6359P
+
+ifneq ($(filter $(PMIC_WRAP_V2_COMPILER_FILTER_LIST),$(PMIC)),)
+
+SRC_LIST += driver/devdrv/pmic_wrap/src/pmic_wrap_v2.c
+
+SRC_PATH += driver/devdrv/pmic_wrap/src
+
+INC_DIR += driver/devdrv/pmic_wrap/inc \
+ driver/devdrv/pmic/inc
+
+endif
+
+ifneq ($(filter $(PMIC_WRAP_V3_COMPILER_FILTER_LIST),$(PMIC)),)
+
+SRC_LIST += driver/devdrv/pmic_wrap/src/pmic_wrap_v3.c
+
+SRC_PATH += driver/devdrv/pmic_wrap/src
+
+INC_DIR += driver/devdrv/pmic_wrap/inc \
+ driver/devdrv/pmic/inc
+
+endif
\ No newline at end of file
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pms.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pms.mak
new file mode 100644
index 0000000..0cb4797
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pms.mak
@@ -0,0 +1,10 @@
+##############################################################################
+# devdrv/pms #
+##############################################################################
+SRC_LIST += driver/devdrv/pms/src/pms.c
+
+SRC_PATH += driver/devdrv/pms/src
+
+INC_DIR += driver/devdrv/pms/inc
+
+COMP_DEFS +=
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pw.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pw.mak
new file mode 100644
index 0000000..ae76daf
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pw.mak
@@ -0,0 +1,14 @@
+##############################################################################
+# NOTICE : We have no HW for this IP (rtc) now. #
+# But for SW complie request, #
+# temporarily add the 'fake api' to make compile success. #
+##############################################################################
+
+SRC_LIST += driver/devdrv/pw/src/dcl_pw.c
+
+
+SRC_PATH += driver/devdrv/pw/src
+
+INC_DIR += driver/devdrv/pw/inc
+
+COMP_DEFS +=
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/rstctl.mak b/mcu/make/module/driver/peripheral/extern/devdrv/rstctl.mak
new file mode 100644
index 0000000..9c2dcf0
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/rstctl.mak
@@ -0,0 +1,9 @@
+##############################################################################
+# devdrv/rstctl #
+##############################################################################
+SRC_LIST += driver/devdrv/rstctl/src/dcl_rstctl.c \
+ driver/devdrv/rstctl/src/drv_rstctl.c
+
+SRC_PATH += driver/devdrv/rstctl/src
+
+INC_DIR += driver/devdrv/rstctl/inc
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/rtc.mak b/mcu/make/module/driver/peripheral/extern/devdrv/rtc.mak
new file mode 100644
index 0000000..7fe9ee7
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/rtc.mak
@@ -0,0 +1,14 @@
+##############################################################################
+# NOTICE : We have no HW for this IP (rtc) now. #
+# But for SW complie request, #
+# temporarily add the 'fake api' to make compile success. #
+##############################################################################
+
+SRC_LIST += driver/devdrv/rtc/src/dcl_rtc.c
+
+
+SRC_PATH += driver/devdrv/rtc/src
+
+INC_DIR += driver/devdrv/rtc/inc
+
+COMP_DEFS +=
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/soe.mak b/mcu/make/module/driver/peripheral/extern/devdrv/soe.mak
new file mode 100644
index 0000000..f163251
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/soe.mak
@@ -0,0 +1,11 @@
+##############################################################################
+# devdrv/soe #
+##############################################################################
+SRC_LIST += driver/devdrv/soe/src/drv_soe.c
+
+SRC_PATH += driver/devdrv/soe/src
+
+INC_DIR += interface/driver/devdrv/pdn \
+ driver/devdrv/soe/inc
+
+COMP_DEFS += __COMPILE_DRIVER__
\ No newline at end of file
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/spmi.mak b/mcu/make/module/driver/peripheral/extern/devdrv/spmi.mak
new file mode 100755
index 0000000..7febf20
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/spmi.mak
@@ -0,0 +1,19 @@
+##############################################################################
+# devdrv/spmi #
+##############################################################################
+SRC_LIST += driver/devdrv/spmi/src/dcl_spmi.c
+
+ifeq ($(strip $(SPMI)),TRUE)
+ SRC_LIST += driver/devdrv/spmi/src/spmi_common.c \
+ driver/devdrv/spmi/src/spmi.c \
+ driver/devdrv/spmi/src/spmi_dbg.c \
+ driver/devdrv/spmi/src/pmif.c
+else
+ COMP_DEFS += DRV_SPMI_OFF
+endif
+
+SRC_PATH += driver/devdrv/spmi/src
+
+INC_DIR += driver/devdrv/spmi/inc \
+ driver/devdrv/pmic/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/tia.mak b/mcu/make/module/driver/peripheral/extern/devdrv/tia.mak
new file mode 100755
index 0000000..218e503
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/tia.mak
@@ -0,0 +1,22 @@
+##############################################################################
+# devdrv/tia #
+##############################################################################
+
+ifeq ($(strip $(MD_TFWK)),TRUE)
+# Define source file lists to SRC_LIST
+SRC_LIST += driver/devdrv/tia/src/tia.c \
+ driver/devdrv/tia/src/tia_adc.c \
+ driver/devdrv/tia/src/tia_atcmd.c \
+ driver/devdrv/tia/src/tia_task.c
+
+# Define include path lists to INC_DIR
+INC_DIR += driver/devdrv/tia/inc \
+ interface/driver/devdrv/tia \
+ interface/driver/tfwk_drv
+
+# Define the specified compile options to COMP_DEFS
+#COMP_DEFS +=
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH += driver/devdrv/tia/src
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/uart.mak b/mcu/make/module/driver/peripheral/extern/devdrv/uart.mak
new file mode 100644
index 0000000..32f33d0
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/uart.mak
@@ -0,0 +1,18 @@
+##############################################################################
+# devdrv/gpt #
+##############################################################################
+SRC_LIST += driver/devdrv/uart/src/dbgprint.c \
+ driver/devdrv/uart/src/uart_handler.c \
+ driver/devdrv/uart/src/uart.c
+
+SRC_PATH += driver/devdrv/uart/src
+
+INC_DIR += driver/devdrv/uart/inc
+
+ifneq ($(filter ATEST_SLT_U3, $(strip $(MODULE_DEFS))),)
+COMP_DEFS += __SLT_TOOL_SUPPORT__
+endif # FOR SLT_TOOL U3 device
+
+ifneq ($(filter ATEST_SLT_SDIO, $(strip $(MODULE_DEFS))),)
+COMP_DEFS += __SLT_TOOL_SUPPORT__
+endif # FOR SLT_TOOL SDIO device
\ No newline at end of file
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/us_counter.mak b/mcu/make/module/driver/peripheral/extern/devdrv/us_counter.mak
new file mode 100644
index 0000000..7cc90a2
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/us_counter.mak
@@ -0,0 +1,11 @@
+##############################################################################
+# devdrv/gpt #
+##############################################################################
+SRC_LIST += driver/devdrv/us_counter/src/uscounter.c
+
+SRC_PATH += driver/devdrv/us_counter/src
+
+INC_DIR += interface/driver/devdrv/us_counter \
+ driver/sleep_drv/public/inc \
+ driver/sys_drv/init/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/usim.mak b/mcu/make/module/driver/peripheral/extern/devdrv/usim.mak
new file mode 100644
index 0000000..baab84d
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/usim.mak
@@ -0,0 +1,44 @@
+##############################################################################
+# devdrv/usim #
+##############################################################################
+SRC_LIST += driver/devdrv/usim/src/dcl_sim.c \
+ driver/devdrv/usim/src/icc_sim_common_mtk.c \
+ driver/devdrv/usim/src/icc_switchControl_al.c \
+ driver/devdrv/usim/src/icc_switchControl_mtk_0.c \
+ driver/devdrv/usim/src/icc_switchControl_mtk_1.c \
+ driver/devdrv/usim/src/usim_smt.c
+
+
+SRC_PATH += driver/devdrv/usim/src
+
+# Define the specified compile options to COMP_DEFS
+#COMP_DEFS += __NO_PMU__ \
+# __No_2G_Timer__ \
+ # __temp_mask__ \
+#open this flag to enable drv_trace
+#COMP_DEFS += __SIM_DRV_TRACE__ \
+
+#In drvtest, we need these flags to do unit test
+ifeq ($(strip $(ATEST_ENABLE)),TRUE)
+ ifeq ($(strip $(ATEST_DRV_ENABLE)),TRUE)
+COMP_DEFS += __T1_HIGT_PRIORITY__ \
+ __CHAINING_TEST__ \
+ __SPEED_TEST__
+ endif
+endif
+
+#COMP_DEFS += __DBG_MSG__ \
+
+COMP_DEFS += __DBG_MSG__ \
+ __TBD__
+
+#INC_DIR += driver/devdrv/usim/inc \
+# ps/sim2/include \
+# dp_engine/che \
+# base/inc/chip/MT6290 \
+
+# Define include path lists to INC_DIR
+INC_DIR += driver/devdrv/usim/inc \
+ ./service/sst/include \
+ interface/driver/regbase \
+ ./interface/service/hif \
diff --git a/mcu/make/module/driver/peripheral/extern/drv.mak b/mcu/make/module/driver/peripheral/extern/drv.mak
new file mode 100644
index 0000000..85ace45
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/drv.mak
@@ -0,0 +1,32 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/drv/src/bf.c \
+ driver/drv/src/e_compass_sensor.c \
+ driver/drv/src/e_compass_main.c \
+ driver/drv/src/BC_drv.c
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/drv/include \
+ interface/driver/connectivity/usb_driver \
+ driver/connectivity/usb_driver/inc \
+ driver/storage/flash/mtd/inc \
+ driver/storage/flash/fdm/inc \
+ driver/storage/mc/inc \
+ driver/connectivity/usb_class/include \
+ ./service/sst/include \
+ ./service/sst/include \
+ ./service/ssf/inc \
+ interface/driver/drv_def \
+ interface/driver/regbase \
+ driver/peripheral/inc
+
+ifeq ($(strip $(LGE_SECURITY)), TRUE)
+ INC_DIR += custom/modem/lgesecurity
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWORK
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/drv/src \
+ driver/connectivity/usb_driver/src \
+ driver/storage/mc/src
diff --git a/mcu/make/module/driver/peripheral/mc.mak b/mcu/make/module/driver/peripheral/mc.mak
new file mode 100644
index 0000000..fdce0f0
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/mc.mak
@@ -0,0 +1,39 @@
+# Define source file\ lists to SRC_LIST
+ SRC_LIST += driver/storage/mc/src/dcl_memory_card.c \
+ driver/storage/mc/src/msdc.c \
+ driver/storage/mc/src/usbms_msdc.c
+ ifneq ($(filter __MSDC2_SD_MMC__, $(strip $(COM_DEFS))),)
+ SRC_LIST += driver/storage/mc/src/msdc_fake_kal.c \
+ driver/storage/mc/src/msdc2.c \
+ driver/storage/mc/src/sdio_drv.c \
+ #driver/storage/mc/src/msdc_test.c
+ endif
+## SD/MMC memory card select.
+ ifneq ($(filter __MSDC_SD_MMC__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/storage/mc/src/sd.c \
+ driver/storage/mc/src/sd_drv.c
+ ifneq ($(filter __MSDC2_SD_MMC__, $(strip $(COM_DEFS))),)
+ SRC_LIST += driver/storage/mc/src/sd2.c \
+ driver/storage/mc/src/sd_drv2.c \
+ driver/storage/mc/src/sd_adap.c
+ endif
+ endif
+
+
+
+# Define include path lists to INC_DIR
+INC_DIR += interface/driver/drv_def \
+ driver/storage/mc/inc \
+ ./service/sst/include \
+ interface/driver/regbase \
+ ./service/fs/common/include \
+ driver/sys_drv/cache/inc \
+ driver/sys_drv/cache/inc/$(MD_VER_FOLDER) \
+ $(strip $(PROJDIR))/custom/driver/drv_gen
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS +=
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH += driver/storage/mc/src
+
diff --git a/mcu/make/module/driver/simulation/drv_sim.mak b/mcu/make/module/driver/simulation/drv_sim.mak
new file mode 100644
index 0000000..2efda22
--- /dev/null
+++ b/mcu/make/module/driver/simulation/drv_sim.mak
@@ -0,0 +1,32 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = MoDIS_VC9/drv_sim/src/w32_audio.c \
+ MoDIS_VC9/drv_sim/src/w32_dummy_drv.c \
+ MoDIS_VC9/drv_sim/src/w32_keys_dcl.c \
+ MoDIS_VC9/drv_sim/src/w32_l1.c \
+ MoDIS_VC9/drv_sim/src/w32_l4c.c \
+ MoDIS_VC9/drv_sim/src/w32_uart.c \
+ MoDIS_VC9/drv_sim/src/w32_gpt_dcl.c \
+ MoDIS_VC9/drv_sim/src/w32_memory_card.c
+
+ifneq ($(filter __FS_MODIS_FDM__,$(strip $(MODULE_DEFS))),)
+ SRC_LIST += MoDIS_VC9/drv_sim/src/w32_file_disk.c
+endif
+
+# If TCPIP_SUPPORT = NONE => Do not build modis_vc9\drv_sim\src\w32_socket.c
+#ifneq ($(strip $(TCPIP_SUPPORT)),NONE)
+# SRC_LIST += .\MoDIS_VC9\drv_sim\src\w32_socket.c \
+# .\MoDIS_VC9\drv_sim\src\w32_abm.c
+#endif
+
+# Define include path lists to INC_DIR
+INC_DIR = MoDIS_VC9/MoDIS \
+ MoDIS_VC9/drv_sim/include \
+ driver/devdrv/emi/inc
+
+INC_DIR += driver/peripheral/inc
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = MoDIS_VC9/drv_sim/include/src
diff --git a/mcu/make/module/driver/system/sys_drv.mak b/mcu/make/module/driver/system/sys_drv.mak
new file mode 100644
index 0000000..ffda28e
--- /dev/null
+++ b/mcu/make/module/driver/system/sys_drv.mak
@@ -0,0 +1,420 @@
+##############################################################
+# Define bootloader folder path
+##############################################################
+
+ifneq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER = md97
+endif
+
+# Define source file lists to SRC_LIST
+SRC_LIST =driver/sys_drv/init/src/$(MD_VER_FOLDER)/idle_task.c \
+ driver/sys_drv/dormant/src/$(MD_VER_FOLDER)/dormant_service.c
+# driver/sys_drv/init/src/info.c
+# driver/sys_drv/init/src/nfb_loader.c \
+
+ifeq ($(strip $(ESL_COSIM_LTE)),FALSE)
+ ifeq ($(strip $(COMPILER)),GCC)
+ CFLAGS += -Werror
+ endif
+endif
+
+ifneq ($(strip $(MD_VER_FOLDER)),md93)
+ SRC_LIST += driver/sys_drv/sfu/src/$(MD_VER_FOLDER)/drv_sfu.c
+ SRC_LIST += driver/sys_drv/spu/src/$(MD_VER_FOLDER)/drv_spu.c
+endif
+
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/spu_trace_utmd.c
+ else
+ SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/spu_trace_utmd.c
+ endif
+else
+ SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/spu_trace_utmd.c
+endif
+endif
+endif
+
+#ifneq ($(filter __DSP_FCORE4__, $(strip $(MODULE_DEFS))),)
+# SRC_LIST += driver/sys_drv/init/src/dmdsp_init.c
+#endif
+
+ifneq ($(filter __LP_SCHEDULE_ENABLE__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/task_agent/src/tg_hisr.c
+endif
+
+ifneq ($(filter __SMART_PHONE_MODEM__ , $(strip $(MODULE_DEFS))),)
+# SRC_LIST += driver/sys_drv/emi/src/emimpu.c
+endif
+
+ifeq ($(filter __SMART_PHONE_MODEM__, $(strip $(MODULE_DEFS))),)
+# SRC_LIST += driver/sys_drv/emi/src/emi.c
+else
+# SRC_LIST += driver/sys_drv/emi/src/emi.c
+endif
+
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ ifneq ($(filter __DSP_FCORE4__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/ipc/src/mdci.c
+ endif
+endif
+
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ #SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init.c
+ #SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_comm.c
+ #SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_trc.c
+ #SRC_LIST += driver/sys_drv/init/src/boot_cert_pattern.c
+endif
+
+ifeq ($(strip $(COMPILER)), GCC)
+ ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ ifeq ($(strip $(MD_VER_FOLDER)),md93)
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_gpr.S
+ endif
+ ifeq ($(strip $(MD_VER_FOLDER)),md97)
+ ifeq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_vpe0.S
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_vpe2.S
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_tc.S
+ endif
+ SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/cache_dpdl2.c
+ endif
+ ifeq ($(strip $(MD_VER_FOLDER)),md97p)
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_vpe0.S
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_vpe2.S
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_tc.S
+ endif
+
+ ifneq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/init/src/md97ia/bootarm_gcc.S
+ SRC_LIST += driver/sys_drv/init/src/md97ia/stack_init.S
+ SRC_LIST += driver/sys_drv/init/src/md97ia/init_vpe1.S
+ SRC_LIST += driver/sys_drv/init/src/md97ia/init_cm.S
+ SRC_LIST += driver/sys_drv/init/src/md97ia/join_domain.S
+ SRC_LIST += driver/sys_drv/init/src/md97ia/init.c
+ SRC_LIST += driver/sys_drv/init/src/md97ia/init_comm.c
+ SRC_LIST += driver/sys_drv/init/src/md97ia/init_trc.c
+ SRC_LIST += driver/sys_drv/cache/src/md95/l1caches.S
+ SRC_LIST += driver/sys_drv/cache/src/md95/l2cache.S
+ SRC_LIST += driver/sys_drv/cache/src/md95/cache.c
+ SRC_LIST += driver/sys_drv/cache/src/md95/cache_util.c
+ else
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/bootarm_gcc.S
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/stack_init.S
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_vpe1.S
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_cm.S
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/join_domain.S
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init.c
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_comm.c
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_trc.c
+ SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/l1caches.S
+ SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/l2cache.S
+ SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/cache.c
+ SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/cache_util.c
+ ifeq ($(strip $(MD_VER_FOLDER)),md93)
+ #No idle_service.c
+ else
+ ifeq ($(strip $(MD_VER_FOLDER)),md95)
+ #No idle_service.c
+ else
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/idle_service.c
+ endif
+ endif
+ endif
+ #SRC_LIST += driver/sys_drv/init/src/set_gpr_boot_values.S
+ #SRC_LIST += driver/sys_drv/init/common/copy_c2_ram.S
+ #SRC_LIST += driver/sys_drv/init/common/init_caches.S
+ #SRC_LIST += driver/sys_drv/init/common/init_cp0.S
+ #SRC_LIST += driver/sys_drv/init/common/init_itc.S
+ #SRC_LIST += driver/sys_drv/init/common/init_L2_CM3.S
+ #SRC_LIST += driver/sys_drv/init/common/init_L23caches.S
+ #SRC_LIST += driver/sys_drv/init/common/init_segmentation.S
+ #SRC_LIST += driver/sys_drv/init/src/release_mp.S
+ #SRC_LIST += driver/sys_drv/init/common/init_CoreFPGA6_mem.S
+ #SRC_LIST += driver/sys_drv/init/common/init_caches2.S
+ #SRC_LIST += driver/sys_drv/cache/src/init_l1caches.S
+ #SRC_LIST += driver/sys_drv/init/common/init_L2_CM2.S
+ #SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/l1caches.S
+ #SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/l2cache.S
+ SRC_LIST += driver/sys_drv/hw_itc/src/hw_itc.c
+ SRC_LIST += driver/sys_drv/hw_itc/src/hw_itc_init.S
+ SRC_LIST += driver/sys_drv/cache/src/cm2_drv.c
+ SRC_LIST += driver/sys_drv/mpu/src/$(MD_VER_FOLDER)/mpu.c
+ SRC_LIST += driver/sys_drv/dormant/src/$(MD_VER_FOLDER)/interAptiv-dormantMode_gcc.S
+ endif
+
+else # RVCT
+ SRC_LIST += driver/sys_drv/cache/src/cp15_rvct.S
+ ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/bootarm_rvct.S
+ endif
+endif
+
+ifneq ($(filter __ARM9_MMU__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/cache/src/mmu.c
+endif
+
+ifneq ($(filter __ARM11_MMU__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/cache/src/mmu.c
+endif
+
+ifneq ($(filter __CR4__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/cache/src/mpu.c
+endif
+
+ifneq ($(filter __MIPS_IA__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mips_ia_pmu_montr.c
+ SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mips_ia_cm_pmu.c
+ SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mips_ia_cm_pmu_service.c
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/mips_ia_utils.c
+
+ MIPS_IA_MR1_SRC_LIST := driver/sys_drv/init/src/md93/mips_ia_mr1_utils.c
+ MIPS_IA_MR2_SRC_LIST := driver/sys_drv/init/src/md93/mips_ia_mr2_utils.c
+ MIPS_IA_MR3_SRC_LIST := driver/sys_drv/init/src/md95/mips_ia_mr3_utils.c\
+ driver/sys_drv/pmu/src/md95/mips_ia_icm_pmu.c
+
+ MIPS_IA_MR_VERSION_MT6763:=MR2
+ MIPS_IA_MR_VERSION_MT6739:=MR2
+ MIPS_IA_MR_VERSION_MT6771:=MR2
+ MIPS_IA_MR_VERSION_MT6765:=MR2
+ MIPS_IA_MR_VERSION_MT6295M:=MR3
+ MIPS_IA_MR_VERSION_MT3967:=MR3
+ MIPS_IA_MR_VERSION_MT6785:=MR3
+ MIPS_IA_MR_VERSION_GEN_md92:=MR1
+ MIPS_IA_MR_VERSION_GEN_md93:=MR2
+ MIPS_IA_MR_VERSION_GEN_md95:=MR3
+ # check platform first
+ MIPS_IA_MR_VERSION:=$(MIPS_IA_MR_VERSION_$(strip ${PLATFORM}))
+ # if no platform, check generation
+ MIPS_IA_MR_VERSION:=$(if ${MIPS_IA_MR_VERSION}, ${MIPS_IA_MR_VERSION}, $(MIPS_IA_MR_VERSION_GEN_$(strip ${MD_VER_FOLDER})))
+ # otherwise, use default setting
+ MIPS_IA_MR_VERSION:=$(if ${MIPS_IA_MR_VERSION}, ${MIPS_IA_MR_VERSION}, MR2)
+
+ MIPS_IA_MR_SRC_LIST:=$(MIPS_IA_$(strip ${MIPS_IA_MR_VERSION})_SRC_LIST)
+ SRC_LIST += ${MIPS_IA_MR_SRC_LIST}
+
+mips_ia_pmu_montr.obj: CFLAGS += -minline-intermix
+
+else
+# For I7200
+ SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mdmcu_core_pmu.c
+ SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mdmcu_l2_pmu.c
+ SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mdmcu_pmu_drv.c
+ SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mdmcu_pmu_srv.c
+ SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mdmcu_pmu_cfg.c
+
+ SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/mdmcu_init.c
+endif
+
+ifneq ($(filter __MTK_MMU_V2__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/cache/src/mpu_mtk_mmu_v2_int.c
+endif
+
+
+###################################################################
+# Define include path lists to INC_DIR
+INC_DIR = ./service/sst/include \
+ ./service/sst/include \
+ $(strip $(PROJDIR))/verno \
+ ./service/sss/interface/inc \
+ driver/peripheral/inc \
+ driver/storage/flash/fdm/inc \
+ driver/sys_drv/mpu/inc/$(MD_VER_FOLDER) \
+ driver/sys_drv/init/inc \
+ interface/driver/sys_drv \
+ interface/driver/devdrv/pcmon \
+ driver/sys_drv/cache/inc \
+ driver/sys_drv/mmu/inc \
+ driver/sys_drv/pmu/inc \
+ driver/sys_drv/pmu/inc/$(MD_VER_FOLDER) \
+ ./service/sys_svc/region/inc \
+ ./service/sys_svc/excep_hdlr/inc \
+ ./service/sys_svc/gfh/public \
+ ./service/sys_svc/profile/inc \
+ ./service/sys_svc/dspfm_lte/inc \
+ driver/devdrv/emi/inc \
+ driver/devdrv/iomux/inc \
+ driver/devdrv/cfgctl/inc \
+ driver/devdrv/pms/inc \
+ driver/sys_drv/dormant/inc/$(MD_VER_FOLDER) \
+ driver/sys_drv/dormant/src/$(MD_VER_FOLDER) \
+ ./interface/service/sys_svc \
+ ./interface/service/sst \
+ ./interface/service/dhl \
+ driver/sys_drv/hw_itc/inc \
+ interface/driver/devdrv/mdipc \
+ interface/driver/devdrv/busmpu \
+ interface/driver/regbase \
+ interface/driver/devdrv/ect \
+ driver/devdrv/rstctl/inc \
+ driver/sleep_drv/internal/inc \
+ interface/driver/che \
+ driver/devdrv/elm/inc \
+ interface/driver/sib_drv/scc
+ifneq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+ INC_DIR += driver/devdrv/cirq/md97/inc \
+ driver/devdrv/bus/md97/inc \
+ driver/sys_drv/init/inc/md97ia\
+ driver/sys_drv/cache/inc/md95
+else
+ INC_DIR += driver/devdrv/cirq/$(MD_VER_FOLDER)/inc \
+ driver/devdrv/bus/$(MD_VER_FOLDER)/inc \
+ driver/sys_drv/init/inc/$(MD_VER_FOLDER)\
+ driver/sys_drv/cache/inc/$(MD_VER_FOLDER)
+endif
+
+ifneq ($(filter __CACHE_TEST__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/cache/src/cachetest/cachetest.c
+ INC_DIR += driver/sys_drv/cache/src/cachetest
+ ifeq ($(strip $(MD_VER_FOLDER)),md97)
+ SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/drvtest_cache_dpdl2.c
+ endif
+endif
+
+ifneq ($(strip $(MD_VER_FOLDER)),md93)
+ifneq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+ INC_DIR += driver/sys_drv/sfu/inc/md95
+ INC_DIR += driver/sys_drv/spu/inc/md97
+else
+ INC_DIR += driver/sys_drv/sfu/inc/$(MD_VER_FOLDER)
+ INC_DIR += driver/sys_drv/spu/inc/$(MD_VER_FOLDER)
+endif
+endif
+# solution for 93/95 co-codebase re-arch for R3 auto-sync to UMOLYA TRUNK
+ifneq ($(wildcard interface/driver/dvfs_drv),)
+ INC_DIR += interface/driver/dvfs_drv/$(MD_VER_FOLDER)
+else
+ INC_DIR += driver/sleep_drv/public/inc
+endif
+
+ifneq ($(wildcard interface/driver/tfwk_drv),)
+ INC_DIR += interface/driver/tfwk_drv
+endif
+
+ifndef __MAUI_BASIC__
+ INC_DIR += interface/l1/mml1/external
+endif
+
+ifneq ($(filter __ESL_COSIM_LTE__, $(strip $(MODULE_DEFS))),)
+ INC_DIR += driver/devdrv/hsl/inc
+endif
+
+L1_UTMD_FILES += driver/sys_drv/spu/src/spu_trace_utmd.json
+INC_DIR += $(strip $(COMP_L1_TRC_DIR))
+###################################################################
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWORK
+
+COMP_DEFS += $(strip $(PLATFORM))
+
+COMP_DEFS += CACHE_FLUSH_IN_DORMANT=1
+
+ifeq ($(strip $(ENHANCED_SINGLE_BANK_NOR_FLASH_SUPPORT)),TRUE)
+ COMP_DEFS += SINGLE_BANK_SUPPORT
+endif
+
+ifeq ($(TS_PROFILING),TRUE)
+ COMP_DEFS += __TIME_STAMP__\
+ __TIME_STAMP_UTIL__\
+ __TIME_STAMP_TDMA_TIMER__\
+ __TIME_STAMP_FORCE_ENABLE__
+endif
+
+ifeq ($(strip $(call Upper,$(UE_SIMULATOR))),TRUE)
+ COMP_DEFS += L1_SIM
+endif
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+ INC_DIR += ./interface/service/hif \
+ ./interface/service/hif
+endif
+
+ifneq ($(strip $(filter __ESL_ENABLE__,$(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/esl/src/esl_profile.c
+ ifeq ($(strip $(MD_VER_FOLDER)),md97)
+ SRC_LIST += driver/sys_drv/esl/src/md97_esl_test.c
+ else
+ SRC_LIST += driver/sys_drv/esl/src/esl_test.c
+ endif
+ ifneq ($(strip $(MD_VER_FOLDER)),md97)
+ SRC_LIST += driver/sys_drv/esl/src/esl_dspr2.c
+ SRC_LIST += driver/sys_drv/init/$(MD_VER_FOLDER)/src/release_mp.S
+ endif
+ INC_DIR += driver/sys_drv/esl/inc
+endif
+
+ifneq ($(strip $(filter __SPV_UFPS_LOAD__,$(MODULE_DEFS))),)
+ INC_DIR += driver/sys_drv/esl/inc
+ SRC_LIST += driver/sys_drv/esl/src/esl_profile.c
+ ifeq ($(strip $(MD_VER_FOLDER)),md97)
+ SRC_LIST += driver/sys_drv/esl/src/md97_esl_test.c
+ else
+ SRC_LIST += driver/sys_drv/esl/src/esl_profile.c
+ SRC_LIST += driver/sys_drv/esl/src/spv_test.c
+ SRC_LIST += driver/sys_drv/esl/src/esl_dspr2.c
+ INC_DIR += driver/devdrv/elm/inc
+ endif
+endif
+
+ifneq ($(strip $(filter __ESL_BENCHMARK_COREMARK__,$(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/esl/src/coremark/core_list_join.c
+ SRC_LIST += driver/sys_drv/esl/src/coremark/core_main.c
+ SRC_LIST += driver/sys_drv/esl/src/coremark/core_matrix.c
+ SRC_LIST += driver/sys_drv/esl/src/coremark/core_state.c
+ SRC_LIST += driver/sys_drv/esl/src/coremark/core_util.c
+ SRC_LIST += driver/sys_drv/esl/src/coremark/barebones/core_portme.c
+ SRC_LIST += driver/sys_drv/esl/src/coremark/barebones/cvt.c
+ SRC_LIST += driver/sys_drv/esl/src/coremark/barebones/ee_printf.c
+ INC_DIR += driver/sys_drv/esl/src/coremark
+ INC_DIR += driver/sys_drv/esl/src/coremark/barebones
+
+ %/core_list_join.obj: CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+ %/core_main.obj: CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+ %/core_matrix.obj: CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+ %/core_state.obj: CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+ %/core_util.obj: CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+ %/core_portme.obj: CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+ %/cvt.obj: CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+ %/ee_printf.obj: CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+
+ TEMPspace :=
+ TEMPspace +=
+ #core_main.obj: CFLAGS += -DCOMPILER_FLAGS=\"$(subst $(TEMPspace),:,$(filter -f% -m% -E% -O%,$(CFLAGS)))\"
+ %/core_main.obj: CFLAGS += -DCOMPILER_FLAGS=\"$(subst $(TEMPspace),:,$(filter-out -W% -f%,$(CFLAGS)))\"
+endif
+
+ifneq ($(strip $(filter __ESL_BENCHMARK_DHRYSTONE__,$(MODULE_DEFS))),)
+ SRC_LIST += driver/sys_drv/esl/src/dhrystone/dhry_1.c
+ SRC_LIST += driver/sys_drv/esl/src/dhrystone/dhry_2.c
+ INC_DIR += driver/sys_drv/esl/src/dhrystone
+
+ %/dhry_1.obj: CFLAGS := $(filter-out -O1 -O2 -O3 -Os -Werror=%,$(CFLAGS)) -O3
+ %/dhry_2.obj: CFLAGS := $(filter-out -O1 -O2 -O3 -Os -Werror=%,$(CFLAGS)) -O3
+endif
+
+#fdr_reorg
+INC_DIR += interface/service/sbp \
+ interface/protocol/as_c2k/common \
+ custom/protocol/common/ps
+ifneq ($(filter __MIPS_IA__, $(strip $(MODULE_DEFS))),)
+%/esl_test.obj: CFLAGS += -DDSPR2_TEST
+%/esl_profile.obj: CFLAGS += -DDSPR2_TEST
+%/esl_dspr2.obj: CFLAGS += -mdspr2
+%/interAptiv-dormantMode_gcc.obj: AFLAGS := $(filter-out -mips16 -mips16e2, $(AFLAGS))
+endif
+
+%/bootarm_gcc.obj: AFLAGS := $(filter-out -mips16 -mips16e2, $(AFLAGS))
+ifeq ($(strip $(MD_VER_FOLDER)),md95)
+%/init_cm.obj: AFLAGS := $(filter-out -mips16 -mips16e2, $(AFLAGS))
+endif
+ifneq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+ifeq ($(strip $(MD_VER_FOLDER)),md97)
+%/init_cm.obj: AFLAGS := $(filter-out -mips16 -mips16e2, $(AFLAGS))
+endif
+endif
+
+ifeq ($(strip $(LTO_BUILD)),TRUE)
+%/dormant_service.obj: CFLAGS := $(filter-out -flto -fno-fat-lto-objects, $(CFLAGS))
+endif
diff --git a/mcu/make/module/driver/tty/extern/tty.mak b/mcu/make/module/driver/tty/extern/tty.mak
new file mode 100644
index 0000000..4913a73
--- /dev/null
+++ b/mcu/make/module/driver/tty/extern/tty.mak
@@ -0,0 +1,33 @@
+#######################################################################
+# tty #
+#######################################################################
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/tty/src/dcl_tty.c
+
+ifneq ($(filter __TTY_UT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/tty/src/tty_ut.c
+endif
+
+ifneq ($(filter __EXCEPT_TTY_UT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/tty/src/excp_tty_ut.c
+endif
+
+ifneq ($(filter ATEST_SYS_TTYCORE, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/tty/src/tty_unit_test.c
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/tty/inc \
+ driver/devdrv/common/inc \
+ interface/protocol/l2_utility/flc2_v2
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/tty/src
+
+#fdr_reorg
+INC_DIR += interface/service/sbp \
+ interface/protocol/as_c2k/common \
+ custom/protocol/common/ps
\ No newline at end of file
diff --git a/mcu/make/module/driver/ut/drvtest.mak b/mcu/make/module/driver/ut/drvtest.mak
new file mode 100644
index 0000000..65d5f24
--- /dev/null
+++ b/mcu/make/module/driver/ut/drvtest.mak
@@ -0,0 +1,89 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/drvtest/common/src/drvtest_common.c \
+ driver/drvtest/common/src/drvtest_dummy.c
+ifeq ($(filter __ARM7EJ_S__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += driver/drvtest/common/src/drvtest_sm.c
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/devdrv/common/inc \
+ driver/devdrv/iomux/inc \
+ driver/drvtest/common/inc \
+ driver/sys_drv/cache/inc \
+ driver/sys_drv/cache/inc/$(MD_VER_FOLDER) \
+ driver/sys_drv/init/inc \
+ interface/driver/sys_drv \
+ ./service/sst/include \
+ ./service/sst/include \
+ interface/driver/devdrv/mdipc \
+ driver/devdrv/mdipc/inc \
+ driver/devdrv/gpt/inc \
+ driver/sleep_drv/internal/inc \
+ driver/devdrv/cirq/$(MD_VER_FOLDER)/inc
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/drvtest/common/src
+
+include make/module/driver/ut/drvtest/test.mak
+ifeq ($(strip $(HIF_USB_SUPPORT)),TRUE)
+include make/module/driver/drv_hif.mak
+endif
+-include make/module/driver/peripheral/extern/devdrv/iomux.mak
+include make/module/driver/ut/drvtest/gpt.mak
+-include make/module/driver/ut/drvtest/l2_copro.mak
+include make/module/driver/ut/drvtest/spic.mak
+include make/module/driver/ut/drvtest/nfi.mak
+-include make/module/driver/ut/drvtest/mac_phy_cosim.mak
+-include make/module/driver/ut/drvtest/l2_hw_logging.mak
+include make/module/driver/ut/drvtest/gdma_ps.mak
+include make/module/driver/ut/drvtest/hif.mak
+include make/module/driver/ut/drvtest/usim.mak
+include make/module/driver/ut/drvtest/rstctl.mak
+include make/module/driver/ut/drvtest/cpu.mak
+include make/module/driver/ut/drvtest/coresight.mak
+include make/module/driver/ut/drvtest/gpio.mak
+include make/module/driver/ut/drvtest/eint.mak
+
+include make/module/driver/ut/drvtest/dem.mak
+
+include make/module/driver/ut/drvtest/pfc.mak
+include make/module/driver/ut/drvtest/uart.mak
+include make/module/driver/ut/drvtest/idc.mak
+include make/module/driver/ut/drvtest/stress.mak
+include make/module/driver/ut/drvtest/drvtest_slt.mak
+include make/module/driver/ut/drvtest/mc_drvtest.mak
+include make/module/driver/ut/drvtest/dspfm.mak
+include make/module/driver/ut/drvtest/busmon.mak
+include make/module/driver/ut/drvtest/bsi.mak
+include make/module/driver/ut/drvtest/dormant.mak
+-include make/module/driver/ut/drvtest/ss.mak
+include make/module/driver/ut/drvtest/log_seq.mak
+include make/module/driver/ut/drvtest/bwl.mak
+-include make/module/driver/ut/drvtest/stp.mak
+-include make/module/driver/ut/drvtest/sdf.mak
+include make/module/driver/ut/drvtest/mtad.mak
+include make/module/driver/ut/drvtest/lp.mak
+include make/module/driver/ut/drvtest/sleep_it.mak
+-include make/module/driver/ut/drvtest/scc.mak
+include make/module/driver/ut/drvtest/pcmon.mak
+include make/module/driver/ut/drvtest/ect.mak
+include make/module/driver/ut/drvtest/asm.mak
+include make/module/driver/ut/drvtest/soe.mak
+include make/module/driver/ut/drvtest/lhif.mak
+include make/module/driver/ut/drvtest/dpcopro_at.mak
+-include make/module/driver/ut/drvtest/pcc.mak
+include make/module/driver/ut/drvtest/hifcldma_ap.mak
+include make/module/driver/ut/drvtest/dpmaif.mak
+include make/module/driver/ut/drvtest/mdcirq.mak
+include make/module/driver/peripheral/devdrv_sec.mak
+include make/module/driver/ut/drvtest/dhl_ulsp.mak
+include make/module/driver/ut/drvtest/pcie_at.mak
+include make/module/driver/ut/drvtest/cos.mak
+include make/module/driver/ut/drvtest/cldmadev_drvtest.mak
+include make/module/driver/ut/drvtest/che_drv.mak
+include make/module/driver/ut/drvtest/tia.mak
+
+#CFLAGS += -Werror
diff --git a/mcu/make/module/l1/cl1/extern/rfd_ext.mak b/mcu/make/module/l1/cl1/extern/rfd_ext.mak
new file mode 100644
index 0000000..de85b86
--- /dev/null
+++ b/mcu/make/module/l1/cl1/extern/rfd_ext.mak
@@ -0,0 +1,32 @@
+
+
+ifneq ($(strip $(MODIS_CONFIG)), TRUE)
+SRC_LIST = interface/l1/cl1/rfd/external/comm/rf_custom/cl1d_rf_error_check.c \
+ interface/l1/cl1/rfd/external/comm/rf_custom/cl1d_mmrf_share_data.c \
+ interface/l1/cl1/rfd/external/comm/rf_custom/cl1d_rf_mmrf_pcore.c
+endif
+
+SRC_LIST += interface/l1/cl1/rfd/external/comm/rf_custom/cl1_drdi.c
+
+
+SRC_PATH = interface/l1/cl1/rfd/external/comm/rf_custom
+
+# Define include path lists to INC_DIR
+INC_DIR = interface/l1/cl1/rfd/external/comm/rf_custom\
+ interface/service/nvram\
+ interface/l1/cl1/rfd\
+ ${UNIVERSAL_COMMON}/interface/modem
+
+
+INC_DIR += custom/l1/cl1_rf/$(strip $(C2K_RF_MODULE))
+INC_DIR += custom/l1/mml1_rf/$(strip $(MM_RF_MODULE))
+
+#fdr_reorg
+INC_DIR += interface/protocol/nas_c2k \
+ interface/protocol/agps \
+ interface/l1/cl1/common
+
+SRC_RULE_AUTOAMMS_DRDI := cl1_drdi.c
+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
\ No newline at end of file
diff --git a/mcu/make/module/l1/el1/extern/el1d_ext.mak b/mcu/make/module/l1/el1/extern/el1d_ext.mak
new file mode 100644
index 0000000..19f827e
--- /dev/null
+++ b/mcu/make/module/l1/el1/extern/el1d_ext.mak
@@ -0,0 +1,80 @@
+# Define ./interface/modem folder path by project option
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297p
+else
+ #no match chip
+endif
+# Define source file lists to SRC_LIST
+SRC_LIST = interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata.c \
+ interface/l1/el1/external/comm/rf_custom/src/lte_custom_rf_mpr.c \
+ interface/l1/el1/external/comm/rf_custom/src/el1d_rf_dpd_error_check.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/lrfdrdicommon_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/lrfdrdicaldata_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/ltpcdrdi_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/lrfdrdiant_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/ltxdrdimpr_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/ltxdrdihpue_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_et.c \
+ interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_dpd.c \
+ interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_etdpd.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/ltxdrdimpr_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/ldpddrdi_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/lrfcustomcommon_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/letdrdi_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/lrrcdrdi_ext.c
+
+
+ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += interface/l1/el1/external/md95/rf_custom/src/lte_custom_utas.c
+endif
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += interface/l1/el1/external/md97/rf_custom/src/lte_custom_utas.c
+endif
+
+ifneq ($(filter __MTK_TARGET__ __LTE_L1SIM__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += interface/l1/el1/external/comm/rf_custom/src/lrfcustomerrorcheck.c \
+ interface/l1/el1/external/comm/rf_custom/src/el1d_rf_error_check.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/lrfdrdicaldata_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/ltpcdrdi_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/lrfdrdiant_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/ltxdrdihpue_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/ltxdrdisar_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_et.c \
+ interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_dpd.c \
+ interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_etdpd.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/ldpddrdi_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/letdrdi_ext.c \
+ interface/l1/el1/external/comm/rf_custom/src/drdi/lrrcdrdi_ext.c
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = interface/l1/el1/external/comm/rf_custom/inc \
+ interface/l1/el1/external \
+ $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = interface/l1/el1/external/comm/rf_custom/src \
+ interface/l1/el1/external/comm/rf_custom/src/drdi
+
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/common
+ INC_DIR += interface/l1/mml1/external/mml1_rf/mmrf_common
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/sku_mgr
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_rf
+ INC_DIR += custom/l1/mml1_devices/$(strip $(MM_DEVICE))
+endif
+ifneq ($(filter __CGA_SCAN_ONLY__, $(strip $(MODULE_DEFS))),)
+ CFLAGS += -fno-inline
+endif
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
+
+SRC_RULE_AUTOAMMS_DRDI := lrfdrdicommon_ext.c lrfdrdiant_ext.c ltxdrdihpue_ext.c ltxdrdisar_ext.c ltpcdrdi_ext.c lrfdrdicaldata_ext.c ltxdrdimpr_ext.c ldpddrdi_ext.c letdrdi_ext.c
+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
\ No newline at end of file
diff --git a/mcu/make/module/l1/gl1/extern/l1_ext.mak b/mcu/make/module/l1/gl1/extern/l1_ext.mak
new file mode 100644
index 0000000..e0cc1c4
--- /dev/null
+++ b/mcu/make/module/l1/gl1/extern/l1_ext.mak
@@ -0,0 +1,52 @@
+# Define source file lists to SRC_LIST
+
+SRC_LIST = l1/gl1/l1d_ext/m12191.c \
+ l1/gl1/l1d_ext/m12192.c \
+ l1/gl1/l1d_ext/m12194.c \
+ l1/gl1/l1d_ext/m12193_l1core.c \
+ l1/gl1/l1d_ext/l1d_rf_error_check.c
+
+SRC_LIST += l1/gl1/l1d_ext/l1d_rf_common.c
+
+ifneq ($(filter __2G_RF_CUSTOM_TOOL_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += l1/gl1/l1d_ext/m12197_l1core.c
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = l1/gl1/l1d_ext \
+ l1/interface/gl1/internal \
+ l1/interface/mml1 \
+ l1/gl1/l1d_ext
+
+ifeq ($(strip $(call Upper,$(UE_SIMULATOR))),TRUE)
+ INC_DIR += l1/gl1/common \
+ l1/gl1/interface \
+ l1/gl1/l1c \
+ l1/gl1/l1d \
+ l1/gl1/l1d_ext \
+ interface/protocol/gas/include \
+ interface/l1/ul1 \
+ l1/interface/el1 \
+ l1/interface/el1 \
+ l1/md_sm/l1sm \
+ l1/md_sm/common/l1sm
+endif
+
+ifneq ($(filter __UE_SIMULATOR__, $(strip $(MODULE_DEFS))),)
+ INC_DIR += l1_dm/common
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = __CATEGORY_MODEM__
+
+ifneq ($(filter __UE_SIMULATOR__, $(strip $(MODULE_DEFS))),)
+ COMP_DEFS += L1_SIM L1D_SIM __HYPER_SLEEP_MODE_CHIP__ AFC_13bit
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = l1/gl1/l1d_ext
+
+#fdr_reorg
+INC_DIR += interface/l1/cl1/common
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
diff --git a/mcu/make/module/l1/gl1/extern/l1_ext_pcore.mak b/mcu/make/module/l1/gl1/extern/l1_ext_pcore.mak
new file mode 100644
index 0000000..d40a414
--- /dev/null
+++ b/mcu/make/module/l1/gl1/extern/l1_ext_pcore.mak
@@ -0,0 +1,21 @@
+# Define source file lists to SRC_LIST
+
+SRC_LIST = l1/gl1/l1d_ext/l1d_data_pcore.c \
+ l1/gl1/l1d_ext/m12190_pcore.c \
+ l1/gl1/l1d_ext/m12197_pcore.c \
+ l1/gl1/l1d_ext/l1d_mipi_data_pcore.c
+
+
+# Define include path lists to INC_DIR
+INC_DIR = l1/gl1/l1d_ext \
+
+INC_DIR += l1/gl1/l1d_ext
+
+INC_DIR += l1/interface/mml1
+
+INC_DIR += interface/l1/gl1/internal
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
diff --git a/mcu/make/module/l1/l1_config.mak b/mcu/make/module/l1/l1_config.mak
new file mode 100755
index 0000000..c923540
--- /dev/null
+++ b/mcu/make/module/l1/l1_config.mak
@@ -0,0 +1,57 @@
+CATEGORY_INCDIRS += ./interface/service/fsm
+CATEGORY_INCDIRS += interface/protocol/l2_utility/flc2_v2
+
+CATEGORY_INCDIRS += protocol/interface/ims \
+ protocol/interface/l4 \
+ protocol/interface/l4misc \
+ protocol/interface/mcd/include \
+ protocol/layer4/l4/include \
+ protocol/layer4/l4/atci/include \
+ protocol/layer4/l4/l4c/include/common \
+ protocol/layer4/l4/l4c/include/proc \
+ protocol/layer4/l4/csm/cc/include \
+ protocol/layer4/l4/uem/include \
+ protocol/layer4/l4/phb/include \
+ protocol/layer4/l4/csm/cc/include \
+ protocol/layer4/l4/csm \
+ protocol/layer4/l4/tcm/etcm/include \
+ protocol/layer4/l4/smsal/include \
+ protocol/layer4/l4/tcm/rat_tcm/inc \
+ protocol/layer4/l4/csm/ss/asn1/gen/include \
+ protocol/layer4/l4/smu/include \
+ protocol/layer4/l4/rac/common/include \
+ protocol/layer4/l4/rac/ugrac/include \
+ protocol/interface/asn/rr/include \
+ protocol/layer4/l4/smslib/include \
+ l1/gl1/l1d_ext
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ CATEGORY_INCDIRS += protocol/layer4/l4/rac/erac/include
+endif
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R8_SUPPORT)
+ CATEGORY_INCDIRS += l1/ul1/ul1d_ext
+else
+ ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R7_SUPPORT)
+ CATEGORY_INCDIRS += l1/ul1/ul1d_ext
+ else
+ ifneq ($(filter $(strip $(PLATFORM)),$(UL1_HS_PLATFORM)),)
+ CATEGORY_INCDIRS += protocol/ul1/ul1_hs/ul1d_ext
+ endif
+ endif
+endif
+
+#fdr_reorg
+CATEGORY_INCDIRS += protocol/interface/general
+
+# *************************************************************************
+# From Global include path
+# *************************************************************************
+ifeq ($(strip $(ETCM)),TRUE)
+CATEGORY_INCDIRS += protocol/layer4/l4/tcm/etcm/include
+endif
+
+CATEGORY_INCDIRS += protocol/layer4/l4/tcm/rat_tcm/inc
+CATEGORY_DEFS +=
+
+CFLAGS := $(filter-out -fstrict-aliasing, $(CFLAGS)) -fno-strict-aliasing
diff --git a/mcu/make/module/l1/mmrf/extern/mml1_rf_ext.mak b/mcu/make/module/l1/mmrf/extern/mml1_rf_ext.mak
new file mode 100644
index 0000000..dad710a
--- /dev/null
+++ b/mcu/make/module/l1/mmrf/extern/mml1_rf_ext.mak
@@ -0,0 +1,48 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = interface/l1/mml1/external/mml1_rfd/src/mml1_rf_custom_data.c
+
+ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += interface/l1/mml1/external/mml1_cdf/src/device_drivers_fe/mml1_cdf_device_driver_fe_intf.c \
+ interface/l1/mml1/external/mml1_cdf/src/common/mml1_cdf_custom_drdi_ext.c \
+ interface/l1/mml1/external/mml1_rfd/src/mml1_ant_custom_drdi_ext.c \
+ interface/l1/mml1/external/mml1_rf_common/src/mml1_rf_common_custom_drdi_ext.c \
+ interface/l1/mml1/external/mml1_rf_common/src/mml1_rf_common_custom_etdpd_ext.c
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = interface/l1/mml1/external/mml1_rfd/inc
+
+ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+INC_DIR += custom/l1/mml1_devices/$(strip $(MM_DEVICE)) \
+ interface/l1/mml1/external/mml1_cdf/inc/common \
+ interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe \
+ interface/l1/mml1/external/mml1_cdf/inc/device_drivers_rf \
+ interface/l1/mml1/external/mml1_cdf/inc/sku_mgr \
+ interface/l1/mml1/external/mml1_rf/mmrf_common \
+ interface/l1/mml1/external/mml1_rf_common/inc \
+ interface/l1/mml1/external
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = interface/l1/mml1/external/mml1_rfd/src
+
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+
+else
+# Define include path lists to INC_DIR
+INC_DIR += custom/l1/mml1_rf/$(MM_RF_MODULE)/DRDI/Set0
+endif
+
+ifneq ($(filter __EL1_FNEYE_INSTRUMENT_ALL_CONTEXT__ __EL1_FNEYE_INSTRUMENT_LISR__, $(strip $(MODULE_DEFS))),)
+ CFLAGS += -finstrument-functions
+ CFLAGS += -finstrument-functions-exclude-function-list=kal_get_current_core_id,kal_get_current_vpe_id
+endif
+
+ifneq ($(filter __CGA_SCAN_ONLY__ __EL1D_FNEYE_ENABLE__, $(strip $(MODULE_DEFS))),)
+ CFLAGS += -fno-inline
+endif
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
+
+SRC_RULE_AUTOAMMS_DRDI := mml1_cdf_custom_drdi_ext.c mml1_ant_custom_drdi_ext.c mml1_rf_common_custom_drdi_ext.c
+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
\ No newline at end of file
diff --git a/mcu/make/module/l1/mmrf/extern/mml1_rf_ext_pcore.mak b/mcu/make/module/l1/mmrf/extern/mml1_rf_ext_pcore.mak
new file mode 100644
index 0000000..d146584
--- /dev/null
+++ b/mcu/make/module/l1/mmrf/extern/mml1_rf_ext_pcore.mak
@@ -0,0 +1,23 @@
+# Define source file lists to SRC_LIST
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+SRC_LIST = interface/l1/mml1/external/mml1_rfd/src/mml1_rf_custom_func.c
+
+# Define include path lists to INC_DIR
+INC_DIR = interface/l1/mml1/external/mml1_rfd/inc \
+ interface/l1/mml1/external
+else
+SRC_LIST = interface/l1/mml1/external/mml1_rfd/src/mml1_drdi.c
+
+# Define include path lists to INC_DIR
+INC_DIR = interface/l1/mml1/external/mml1_rfd/inc \
+ interface/l1/mml1/external\
+ custom/l1/mml1_rf/$(MM_RF_MODULE)/DRDI/Set0
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = interface/l1/mml1/external/mml1_rfd/src
+
+SRC_RULE_AUTOAMMS_DRDI := mml1_drdi.c
+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
\ No newline at end of file
diff --git a/mcu/make/module/l1/nl1/extern/nl1_ext.mak b/mcu/make/module/l1/nl1/extern/nl1_ext.mak
new file mode 100644
index 0000000..99481a2
--- /dev/null
+++ b/mcu/make/module/l1/nl1/extern/nl1_ext.mak
@@ -0,0 +1,78 @@
+# Define ./interface/modem folder path by project option
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297p
+else
+ #no match chip
+endif
+# Define source file lists to SRC_LIST
+SRC_LIST = interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdicommon_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdicommon_type0_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdihwcap_type0_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdicommon_type1_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdihwcap_type1_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdicommon_type2_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdihwcap_type2_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdicaldata_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_tx_drdihpue_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdipartialband_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdisrs_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_tx_drdimpr_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdiant_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdisar_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdimimogroup_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/nr_rfd_sar_ext.c \
+ interface/l1/nl1/external/comm/rf_custom/src/etdpd/nr_etdpd_customdata.c \
+ interface/l1/nl1/external/md97/rf_custom/src/etdpd/nr_dpd_customdata.c \
+ interface/l1/nl1/external/md97/rf_custom/src/etdpd/drdi/nr_dpd_drdicommon_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/etdpd/drdi/nr_et_drdicommon_ext.c \
+ interface/l1/nl1/external/md97/rf_custom/src/etdpd/nr_et_customdata.c \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_tpc_drdi_ext.c\
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdirfif_ext.c\
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_cap_drdi_ext.c\
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdisimultaneous_rtx_ext.c \
+ interface/l1/nl1/external/nl1_mpc_dsp/src/nr_mpc_dsp_cm.c
+
+# Define include path lists to INC_DIR
+INC_DIR = interface/l1/nl1/external \
+ interface/l1/nl1/external/5g \
+ interface/l1/nl1/external/4g \
+ interface/l1/nl1/external/nl1_mpc_dsp/inc \
+ interface/l1/nl1/external/nl1_mpc_dsp/src \
+ interface/l1/mml1/external/mml1_cdf/inc/sku_mgr \
+ interface/l1/mml1/external/mml1_cdf/inc/common \
+ interface/l1/mml1/external/mml1_rf/mmrf_common \
+ interface/l1/mml1/external \
+ $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/5g \
+ $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom \
+ interface/l1/nl1/external/comm/rf_custom/inc/etdpd \
+ interface/l1/nl1/external/md97/rf_custom/inc/etdpd \
+ interface/l1/mml1/external/mml1_etdpd
+
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = interface/l1/nl1/external/md97/rf_custom \
+ interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi \
+ interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi
+
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/common
+ INC_DIR += interface/l1/mml1/external/mml1_rf/mmrf_common
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/sku_mgr
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe
+ INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_rf
+ INC_DIR += interface/l1/nl1/external/md97/rf_custom/inc/etdpd
+ INC_DIR += custom/l1/mml1_devices/$(strip $(MM_DEVICE))
+endif
+ifneq ($(filter __CGA_SCAN_ONLY__, $(strip $(MODULE_DEFS))),)
+ CFLAGS += -fno-inline
+endif
+NOT_USE_CATEGORY_INCLUDE = TRUE
+
+SRC_RULE_AUTOAMMS_DRDI := nr_tpc_drdi_ext.c nr_rfd_drdicommon_ext.c nr_rfd_drdicaldata_ext.c nr_tx_drdihpue_ext.c nr_rfd_drdipartialband_ext.c nr_rfd_drdisrs_ext.c nr_tx_drdimpr_ext.c nr_rfd_drdiant_ext.c nr_etdpd_customdata.c nr_dpd_drdicommon_ext.c nr_rfd_drdisar_ext.c nr_et_drdicommon_ext.c nr_rfd_drdirfif_ext.c nr_rfd_drdimimogroup_ext.c
+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
\ No newline at end of file
diff --git a/mcu/make/module/l1/ul1/extern/ul1_ext.mak b/mcu/make/module/l1/ul1/extern/ul1_ext.mak
new file mode 100644
index 0000000..de9ce6c
--- /dev/null
+++ b/mcu/make/module/l1/ul1/extern/ul1_ext.mak
@@ -0,0 +1,17 @@
+# Define source file lists to SRC_LIST
+SRC_LIST =
+SRC_LIST += interface/l1/ul1/external/wdata.c \
+ interface/l1/ul1/external/wdata_pcore.c
+
+# Define include path lists to INC_DIR
+INC_DIR =
+INC_DIR += interface/l1/ul1/external
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = __FS_FILTER__ \
+ __CATEGORY_MODEM__
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = interface/l1/ul1/external
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
diff --git a/mcu/make/module/middleware/hif_control/extern/usbidle.mak b/mcu/make/module/middleware/hif_control/extern/usbidle.mak
new file mode 100644
index 0000000..4a14399
--- /dev/null
+++ b/mcu/make/module/middleware/hif_control/extern/usbidle.mak
@@ -0,0 +1,31 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = middleware/hif/usbidle/src/usbidle_task.c \
+ middleware/hif/usbidle/src/usbidle_hif.c \
+ middleware/hif/usbidle/src/usbidle_if.c
+
+# Define include path lists to INC_DIR
+INC_DIR = middleware/hif/interface \
+ middleware/hif/usbidle/include \
+ interface/driver/hif \
+ interface/driver/hif/hif_usbdev \
+ interface/protocol/l2_utility/flc2_v2
+
+# Define the specified compile options to COMP_DEFS
+ifdef HIF_USB30_SUPPORT
+ ifeq ($(strip $(HIF_USB30_SUPPORT)), TRUE)
+ COMP_DEFS = __USBC_USB30_SUPPORT__
+ endif
+endif
+
+# Patch for MoDIS
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ COMP_DEFS += __USBC_USB30_SUPPORT__
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COMP_DEFS += __USBC_TARGET_HIF_DRIVER_SUPPORT__
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = middleware/hif/usbidle/src
+
diff --git a/mcu/make/module/middleware/hif_data/extern/ipc_fragment.mak b/mcu/make/module/middleware/hif_data/extern/ipc_fragment.mak
new file mode 100644
index 0000000..40b7158
--- /dev/null
+++ b/mcu/make/module/middleware/hif_data/extern/ipc_fragment.mak
@@ -0,0 +1,38 @@
+#
+# Define source file lists to SRC_LIST
+#
+SRC_LIST = middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_defrag.c \
+ middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_reassemble.c \
+ middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_utility.c \
+ middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_export.c \
+ middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_frag.c \
+ middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_ut.c
+
+# L1 trace configuration file
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ #custom
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/ipc_fragment_data_path_trace_utmd.c
+ else
+ SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/ipc_fragment_data_path_trace_utmd.c
+ endif
+else
+ SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/ipc_fragment_data_path_trace_utmd.c
+endif
+
+#
+# Define include path lists to INC_DIR
+#
+INC_DIR = middleware/hif/interface \
+ middleware/hif/ipcore/include \
+ interface/service/prbm/
+
+#
+# Define the specified compile options to COMP_DEFS
+#
+COMP_DEFS =
+
+#
+# Define the source file search paths to SRC_PATH
+#
+SRC_PATH = middleware/hif/ipcore/src/ipc_fragment
diff --git a/mcu/make/module/middleware/hif_data/extern/ipcore.mak b/mcu/make/module/middleware/hif_data/extern/ipcore.mak
new file mode 100644
index 0000000..37f2c44
--- /dev/null
+++ b/mcu/make/module/middleware/hif_data/extern/ipcore.mak
@@ -0,0 +1,60 @@
+#
+# Define source file lists to SRC_LIST
+#
+SRC_LIST = middleware/hif/ipcore/src/ipc_task.c \
+ middleware/hif/ipcore/src/ipc_if.c \
+ middleware/hif/ipcore/src/ipc_session.c \
+ middleware/hif/ipcore/src/ipc_filter.c \
+ middleware/hif/ipcore/src/ipc_dhcp_adp.c \
+ middleware/hif/ipcore/src/ipc_notify.c \
+ middleware/hif/ipcore/src/ipc_utils.c \
+ middleware/hif/ipcore/src/ipc_data.c \
+ middleware/hif/ipcore/src/ipc_dpfm.c \
+ middleware/hif/ipcore/src/ipc_module_clean.c \
+ middleware/hif/ipcore/src/ipc_task_clean.c \
+ middleware/hif/ipcore/src/ipc_packet_parser.c
+
+# for Modem generation after Gen95
+ifneq ($(strip $(MTK_MODEM_ARCH)), MT6293)
+SRC_LIST += middleware/hif/ipcore/src/ipc_data_ipf.c
+endif
+
+# Packet Filter Manager file lists
+SRC_LIST += middleware/hif/ipcore/src/pfm_garbage_filter.c \
+ middleware/hif/ipcore/src/pfm_if.c
+
+ifneq ($(filter ATEST_SYS_IPCORE, $(strip $(MODULE_DEFS))),)
+SRC_LIST += middleware/hif/ipcore/src/ipc_ut.c
+SRC_LIST += middleware/hif/ipcore/src/ipc_ut_ilm.c
+endif
+
+#
+# Define include path lists to INC_DIR
+#
+INC_DIR = middleware/hif/interface \
+ middleware/hif/ipcore/include \
+ interface/service/prbm/ \
+ interface/service/rsra/ \
+ interface/protocol/nas_multimode/upcm \
+ interface/driver/hif/hif_lhifdev \
+ interface/driver/hif/hif_dpmaifdev \
+ interface/sap/md/MD97\
+ protocol/interface/enl2/el2
+
+#
+# Define the specified compile options to COMP_DEFS
+#
+COMP_DEFS =
+
+ifeq ($(strip $(LTM_EPDCP_SIMULATION_SUPPORT)), TRUE)
+COMP_DEFS += __LTM_EPDCP_SIMULATION_SUPPORT__
+endif
+
+#
+# Define the source file search paths to SRC_PATH
+#
+SRC_PATH = middleware/hif/ipcore/src
+
+ifeq ($(strip $(COMPILER)),GCC)
+CFLAGS += -O2 -mblockmov-limit=16
+endif
diff --git a/mcu/make/module/middleware/hif_data/extern/usbcore.mak b/mcu/make/module/middleware/hif_data/extern/usbcore.mak
new file mode 100644
index 0000000..eb75ef7
--- /dev/null
+++ b/mcu/make/module/middleware/hif_data/extern/usbcore.mak
@@ -0,0 +1,80 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = middleware/hif/usbcore/src/usbcore_task.c \
+ middleware/hif/usbcore/src/usbcore_class_device.c \
+ middleware/hif/usbcore/src/usbcore_hif.c \
+ middleware/hif/usbcore/src/usbcore_notify_event.c \
+ middleware/hif/usbcore/src/usbcore_stdreq.c \
+ middleware/hif/usbcore/src/usbcore_vendreq.c \
+ middleware/hif/usbcore/src/usbcore_except.c \
+ middleware/hif/usbcore/src/usbcore_ind_q.c \
+ middleware/hif/usbcore/src/usbcore_stack.c \
+ middleware/hif/usbcore/src/usbcore_resource.c \
+ middleware/hif/usbcore/src/usbcore_cosim.c
+
+ifdef HIF_USB_ENUM_PORT_FOR_AP
+ ifeq ($(strip $(HIF_USB_ENUM_PORT_FOR_AP)), TRUE)
+ ifeq ($(strip $(HIF_CCCI_SUPPORT)), TRUE)
+ SRC_LIST += middleware/hif/usbcore/src/usbcore_dual_owner.c
+ endif
+ endif
+endif
+
+# L1 trace configuration file
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ #custom
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/usbcore_data_path_trace_utmd.c
+ else
+ SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/usbcore_data_path_trace_utmd.c
+ endif
+else
+ SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/usbcore_data_path_trace_utmd.c
+endif
+
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ ifdef MDDP_USB_SUPPORT
+ ifeq ($(strip $(MDDP_USB_SUPPORT)), TRUE)
+ SRC_LIST += middleware/hif/usbcore/src/usbcore_direct.c
+ ifdef UFPM_UT
+ ifeq ($(strip $(UFPM_UT)), TRUE)
+ SRC_LIST += middleware/hif/usbcore/src/usbcore_direct_ut.c
+ endif
+ endif
+ endif
+ else
+ ifdef MTK_MD_DIRECT_LOGGING_SUPPORT
+ ifeq ($(strip $(MTK_MD_DIRECT_LOGGING_SUPPORT)), TRUE)
+ SRC_LIST += middleware/hif/usbcore/src/usbcore_direct.c
+ endif
+ endif
+ endif
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = middleware/hif/interface \
+ middleware/hif/usbcore/include \
+ interface/driver/hif \
+ interface/driver/hif/hif_usbdev \
+ interface/protocol/l2_utility/flc2_v2 \
+ interface/driver/lhifcore
+
+# Define the specified compile options to COMP_DEFS
+ifdef HIF_USB30_SUPPORT
+ ifeq ($(strip $(HIF_USB30_SUPPORT)), TRUE)
+ COMP_DEFS = __USBC_USB30_SUPPORT__
+ endif
+endif
+
+# Patch for MoDIS
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ COMP_DEFS += __USBC_USB30_SUPPORT__
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ COMP_DEFS += __USBC_TARGET_HIF_DRIVER_SUPPORT__
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = middleware/hif/usbcore/src
+
diff --git a/mcu/make/module/middleware/hif_data/kpalv.mak b/mcu/make/module/middleware/hif_data/kpalv.mak
new file mode 100644
index 0000000..9860c8b
--- /dev/null
+++ b/mcu/make/module/middleware/hif_data/kpalv.mak
@@ -0,0 +1,21 @@
+#
+# Define source file lists to SRC_LIST
+#
+
+# Define source file lists to SRC_LIST
+SRC_LIST = middleware/kpalv/src/kpalv_task.c \
+ middleware/kpalv/src/kpalv_data.c \
+ middleware/kpalv/src/kpalv_ut.c
+
+
+# Define include path lists to INC_DIR
+INC_DIR = middleware/kpalv/include \
+ interface/middleware/hif
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS +=
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = middleware/kpalv/src
+
diff --git a/mcu/make/module/middleware/hif_data/uartcore.mak b/mcu/make/module/middleware/hif_data/uartcore.mak
new file mode 100644
index 0000000..9e4d6b1
--- /dev/null
+++ b/mcu/make/module/middleware/hif_data/uartcore.mak
@@ -0,0 +1,14 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = ./middleware/hif/uartcore/src/uartcore_task.c \
+
+# Define include path lists to INC_DIR
+INC_DIR = middleware/hif/interface
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Patch for MoDIS
+COMP_DEFS +=
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = ./middleware/hif/uartcore/src \
diff --git a/mcu/make/module/middleware/legacy/meut.mak b/mcu/make/module/middleware/legacy/meut.mak
new file mode 100644
index 0000000..c133aea
--- /dev/null
+++ b/mcu/make/module/middleware/legacy/meut.mak
@@ -0,0 +1,48 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = ./middleware/meut/UDVT/Dvt_Target_Module/TS/src/dvt_ts.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Rgu/src/dvt_RGU.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/I2c/src/dvt_i2c.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Pwm/src/dvt_PWM.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/SIM/src/dvt_sim.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Gpt/src/dvt_gpt.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Comm_Protocol/src/dvt_comm_seq.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Comm_Protocol/src/dvt_common.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Rtc/src/Dvt_Rtc.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Adc/src/Dvt_Adc.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Uart/src/dvt_uart.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Usb/src/dvt_usb.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Usb/src/dvt_usbacm_drv.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Usb/src/dvt_usb_mode.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Usb/src/meut_usb.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Usb/src/meut_testcase.c \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Pmu/src/dvt_pmu.c \
+ ./middleware/meut/src/meut_main.c \
+ ./middleware/meut/src/meut_init.c
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/drv/include \
+ driver/peripheral/inc \
+ driver/storage/mc/inc \
+ driver/storage/sim/inc \
+ ./service/kal/common/include \
+ ./service/kal/lib/mlib/include \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Comm_Protocol/inc \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Gpt/inc \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Pwm/inc \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Rtc/inc \
+ ./middleware/meut/UDVT/Dvt_Target_Module/I2c/inc \
+ ./middleware/meut/UDVT/Dvt_Target_Module/SIM/inc \
+ ./middleware/meut/UDVT/Dvt_Target_Module/TS/inc \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Rgu/inc \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Uart/inc \
+ driver/connectivity/usb_class/include \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Usb/inc \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Pmu/inc \
+ ./middleware/meut/UDVT/Dvt_Target_Module/Adc/inc \
+ ./middleware/mtkdebug \
+ driver/drv_def \
+ interface/driver/peripheral \
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
diff --git a/mcu/make/module/middleware/meta/extern/ft.mak b/mcu/make/module/middleware/meta/extern/ft.mak
new file mode 100644
index 0000000..8c6ff14
--- /dev/null
+++ b/mcu/make/module/middleware/meta/extern/ft.mak
@@ -0,0 +1,70 @@
+# Define source file lists to SRC_LIST
+# in this case there should be only ft_main.c is compiled
+# keep ft_create for kal config
+# if !defined(__FACTORY_BIN__) && defined(__SPLIT_BINARY__)
+FACTORY_BIN_COMBINATION = __SPLIT_BINARY__ __FACTORY_BIN__
+ifeq ($(filter $(FACTORY_BIN_COMBINATION), $(strip $(MODULE_DEFS))), __SPLIT_BINARY__)
+SRC_LIST = middleware/meta/ft/src/ft_dummy.c
+else
+SRC_LIST = middleware/meta/ft/src/ft_main.c \
+ middleware/meta/ft/src/ft_mem.c \
+ middleware/meta/ft/src/ft_report.c \
+ middleware/meta/ft/src/ft_fnc.c \
+ middleware/meta/ft/src/ft_fnc_l1rf.c \
+ middleware/meta/ft/src/ft_fnc_misc.c \
+ middleware/meta/ft/src/ft_fnc_nvram.c \
+ middleware/meta/ft/src/ft_fnc_fat.c \
+ middleware/meta/ft/src/ft_fnc_custom.c \
+ middleware/meta/ft/src/ft_fnc_misc_ex.c \
+ middleware/meta/ft/src/ft_fnc_util.c \
+ middleware/meta/ft/src/ft_fnc_mmrf.c \
+ middleware/meta/ft/src/ft_fnc_nrf.c \
+ middleware/meta/ft/src/ft_fnc_l4.c
+# Define optional source file
+ifneq ($(filter __UMTS_RAT__, $(strip $(MODULE_DEFS))),)
+ifneq ($(filter __MTK_UL1_FDD__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += middleware/meta/ft/src/ft_fnc_wcdma.c
+endif
+endif
+
+ifneq ($(filter __UMTS_TDD128_MODE__, $(strip $(MODULE_DEFS))),)
+ifneq ($(filter __AST_TL1_TDD__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += middleware/meta/ft/src/ft_fnc_aux.c
+endif
+endif
+
+ifneq ($(filter __LTE_RAT__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += middleware/meta/ft/src/ft_fnc_lterf.c
+endif
+
+ifneq ($(filter __C2K_RAT__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += middleware/meta/ft/src/ft_fnc_c2krf.c
+endif
+
+endif
+# Define include path lists to INC_DIR
+INC_DIR = ./interface/middleware/meta \
+ ./interface/service/sst \
+ ./interface/service/dhl \
+ protocol/layer4/l4/include \
+ middleware/meta/ft/inc \
+ driver/audio/med/audio/include \
+ driver/che/include \
+ interface/l1/gl1/external \
+ interface/l1/el1/external \
+ interface/l1/mml1/external \
+ protocol/interface/l4misc \
+ protocol/interface/ims \
+ ./interface/service/sys_svc
+
+# Non-MODEM BSP include path
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = middleware/meta/ft/src
+
+#fdr_reorg
+INC_DIR += protocol/interface/general \
+ interface/l1/cl1/common
diff --git a/mcu/make/module/middleware/meta/extern/ftc.mak b/mcu/make/module/middleware/meta/extern/ftc.mak
new file mode 100644
index 0000000..cce7156
--- /dev/null
+++ b/mcu/make/module/middleware/meta/extern/ftc.mak
@@ -0,0 +1,13 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = middleware/meta/ftc/ftc_main.c
+
+# Define include path lists to INC_DIR
+INC_DIR = ./interface/middleware/meta \
+ driver/connectivity/usb_class/include
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = middleware/meta/ftc
+
diff --git a/mcu/make/module/middleware/middleware_config.mak b/mcu/make/module/middleware/middleware_config.mak
new file mode 100644
index 0000000..a6fe3e7
--- /dev/null
+++ b/mcu/make/module/middleware/middleware_config.mak
@@ -0,0 +1,18 @@
+CATEGORY_DEFS +=
+CATEGORY_INCDIRS += protocol/interface/ddm
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ CATEGORY_INCDIRS += protocol/interface/enl2/el2
+ CATEGORY_INCDIRS += protocol/interface/enl2/en_common
+else ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ CATEGORY_INCDIRS += protocol/interface/enl2/el2
+ CATEGORY_INCDIRS += protocol/interface/enl2/en_common
+else
+ CATEGORY_INCDIRS += protocol/interface/el2
+endif
+
+ifeq ($(strip $(LTO_BUILD)),TRUE)
+ ifeq ($(strip $(NO_LTO)),)
+ CFLAGS += -flto -fno-fat-lto-objects
+ endif
+endif
diff --git a/mcu/make/module/middleware/simulation/comm.mak b/mcu/make/module/middleware/simulation/comm.mak
new file mode 100644
index 0000000..56326b0
--- /dev/null
+++ b/mcu/make/module/middleware/simulation/comm.mak
@@ -0,0 +1,21 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = MoDIS_VC9/comm/cShare.cpp
+
+# Define include path lists to INC_DIR
+INC_DIR = MoDIS_VC9/comm
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+ COMP_DEFS += GEN_FOR_PC __UCS2_ENCODING
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = MoDIS_VC9/comm
+
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ MODIS_DIS_OPTION += STDC_HEADERS
+endif
+
+NOT_USE_CATEGORY_INCLUDE := TRUE
diff --git a/mcu/make/module/middleware/simulation/modis.mak b/mcu/make/module/middleware/simulation/modis.mak
new file mode 100644
index 0000000..390a907
--- /dev/null
+++ b/mcu/make/module/middleware/simulation/modis.mak
@@ -0,0 +1,28 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = MoDIS_VC9/MoDIS/w32_winmain.cpp \
+ MoDIS_VC9/CrashHandlerlib/CrashHandlerClient.cpp \
+ MoDIS_VC9/CrashHandlerlib/CrashHandlerSharedMemory.cpp \
+ MoDIS_VC9/CrashHandlerlib/OscarSST.c
+
+SRC_LIST += MoDIS_VC9/MoDIS/mtk_simulator.rc \
+ MoDIS_VC9/MoDIS/resource.h \
+ MoDIS_VC9/MoDIS/StdAfx.h \
+ MoDIS_VC9/MoDIS/mtk_icon.ICO \
+ MoDIS_VC9/MoDIS/mtk_simulator.ICO \
+ MoDIS_VC9/CrashHandlerlib/CrashHandlerClient.h \
+ MoDIS_VC9/CrashHandlerlib/CrashHandlerSharedMemory.h
+
+# Define include path lists to INC_DIR
+INC_DIR = MoDIS_VC9/MoDIS \
+ MoDIS_VC9/CrashHandlerlib \
+ interface/protocol/uem/include \
+ service/sst/include \
+ service/sst/include_sec
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = MMI_ON_HARDWARE_P
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = MoDIS_VC9/MoDIS
+
+NOT_USE_CATEGORY_INCLUDE := TRUE
diff --git a/mcu/make/module/protocol/ims/extern/dispatcher.mak b/mcu/make/module/protocol/ims/extern/dispatcher.mak
new file mode 100644
index 0000000..fef7be5
--- /dev/null
+++ b/mcu/make/module/protocol/ims/extern/dispatcher.mak
@@ -0,0 +1,30 @@
+#
+# Define source file lists to SRC_LIST
+#
+SRC_LIST = protocol/dispatcher/src/dispatcher_if.c \
+ protocol/dispatcher/src/dispatcher_ut.c \
+ protocol/dispatcher/src/dispatcher_control.c
+
+
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/dispatcher_data_path_trace_utmd.c
+else
+ SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/dispatcher_data_path_trace_utmd.c
+endif
+
+#
+# Define include path lists to INC_DIR
+#
+INC_DIR = interface/protocol/dispatcher \
+ protocol/dispatcher/include \
+ interface/protocol/nas_multimode/upcm \
+ interface/service/qmu_bm \
+ interface/service/prbm/ \
+ interface/service/dhl \
+ interface/middleware/general \
+ interface/driver/lhifcore
+
+#
+# Define the source file search paths to SRC_PATH
+#
+SRC_PATH = protocol/dispatcher/src
diff --git a/mcu/make/module/protocol/l4/extern/l4misc.mak b/mcu/make/module/protocol/l4/extern/l4misc.mak
new file mode 100644
index 0000000..563e144
--- /dev/null
+++ b/mcu/make/module/protocol/l4/extern/l4misc.mak
@@ -0,0 +1,132 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = protocol/layer4/l4/uem/src/uem_proc_cmd.c \
+ protocol/layer4/l4/uem/src/uem_proc_msg.c \
+ protocol/layer4/l4/uem/src/uem_main.c \
+ protocol/layer4/l4/uem/src/uem_msg_hdlr.c \
+ protocol/layer4/l4/uem/src/uem_at_cmd.c \
+ protocol/layer4/l4/uem/src/uem_utility.c \
+ protocol/layer4/l4/uem/src/uem_gpio_ctrl.c \
+ protocol/layer4/l4/phb/src/phb_common.c \
+ protocol/layer4/l4/phb/src/phb_config.c \
+ protocol/layer4/l4/phb/src/phb_context.c \
+ protocol/layer4/l4/phb/src/phb_control_block.c \
+ protocol/layer4/l4/phb/src/phb_data_desc.c \
+ protocol/layer4/l4/phb/src/phb_data_entry_table.c \
+ protocol/layer4/l4/phb/src/phb_handler_approve.c \
+ protocol/layer4/l4/phb/src/phb_handler_delete.c \
+ protocol/layer4/l4/phb/src/phb_handler_read.c \
+ protocol/layer4/l4/phb/src/phb_handler_sat.c \
+ protocol/layer4/l4/phb/src/phb_handler_search.c \
+ protocol/layer4/l4/phb/src/phb_handler_startup.c \
+ protocol/layer4/l4/phb/src/phb_handler_write.c \
+ protocol/layer4/l4/phb/src/phb_ilm.c \
+ protocol/layer4/l4/phb/src/phb_main.c \
+ protocol/layer4/l4/phb/src/phb_name_num_index.c \
+ protocol/layer4/l4/phb/src/phb_nvram_access.c \
+ protocol/layer4/l4/phb/src/phb_pindex.c \
+ protocol/layer4/l4/phb/src/phb_sap.c \
+ protocol/layer4/l4/phb/src/phb_se.c \
+ protocol/layer4/l4/phb/src/phb_sim_access.c \
+ protocol/layer4/l4/phb/src/phb_utils.c \
+
+# Define include path lists to INC_DIR
+INC_DIR = protocol/layer4/l4/csm \
+ protocol/layer4/l4/csm/cc/include \
+ protocol/layer4/l4/csm/ss/include \
+ protocol/layer4/l4/include \
+ protocol/layer4/l4/uem/include \
+ protocol/layer4/l4/smu/include \
+ protocol/layer4/l4/atci/include \
+ protocol/layer4/l4/l4c/include/common \
+ protocol/layer4/l4/l4c/include/proc \
+ protocol/layer4/l4/phb/include \
+ protocol/layer4/l4/smsal/include \
+ protocol/layer4/l4/rac/common/include \
+ protocol/layer4/l4/rac/ugrac/include \
+ protocol/interface/l4 \
+ protocol/interface/l4misc \
+ protocol/interface/ims \
+ ./interface/middleware/meta \
+ interface/service/kal \
+ interface/service/nvram \
+ interface/protocol/general \
+ interface/driver/hwdrv \
+ interface/driver/drv_def \
+ driver/peripheral/inc \
+ interface/protocol/uem/include
+
+
+#mtk04121
+ifneq ($(filter __ETCM__, $(strip $(MODULE_DEFS))),)
+INC_DIR += protocol/layer4/l4/tcm/etcm/include
+endif
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ INC_DIR += protocol/layer4/l4/rac/erac/include
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = SMG_REL_97 \
+ __MOD_UEM__ \
+ UART_ENABLE \
+ __MOD_CSM__ \
+ __MOD_SMU__ \
+ __MOD_NVRAM__ \
+ __MOD_PHB__ \
+ __MOD_SMSAL__ \
+ __MOD_ATCI__ \
+ __MOD_L4C__ \
+ __SMS_PDU_MODE__ \
+ __SMS_ME_STORAGE__ \
+ __CB__ \
+ MP3_SUPPORT \
+ __EMS__ \
+ SMS_SHOW_REPORT_IN_SIM \
+ __UEM_DRV_KPDQUEUE__ \
+ __CB_MMI_MASK__ \
+ EMS_LITTLE_ENDIAN \
+ EMS_MEM_MANAGEMENT \
+ SAVE_MSG_TO_SAME_STORAGE \
+ DATA_DOWNLOAD \
+ __PHB_USIM_MULTI_ADN__ \
+ __CATEGORY_MODEM__
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = protocol/layer4/l4/src \
+ protocol/layer4/l4/l4c/src/common \
+ protocol/layer4/l4/atci/src \
+ protocol/layer4/l4/l4c/src/proc \
+ protocol/layer4/l4/uem/src \
+ protocol/layer4/l4/smu/src \
+ protocol/layer4/l4/uem/src \
+ protocol/layer4/l4/csm \
+ protocol/layer4/l4/csm/cc/src \
+ protocol/layer4/l4/csm/ss/src \
+ protocol/layer4/l4/phb/src \
+ protocol/layer4/l4/smsal/src \
+ protocol/layer4/l4/rac/common/src \
+ protocol/layer4/l4/rac/ugrac/src \
+ protocol/layer4/l4/tcm/common
+
+ifneq ($(filter __UGTCM__, $(strip $(MODULE_DEFS))),)
+SRC_PATH += protocol/layer4/l4/tcm/ugtcm
+endif
+
+#fdr_reorg
+INC_DIR += protocol/interface/general \
+ interface/l1/cl1/common \
+ interface/protocol/nas_c2k
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ INC_DIR += protocol/interface/enl2/el2
+ INC_DIR += protocol/interface/enl2/en_common
+else ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ INC_DIR += protocol/interface/enl2/el2
+ INC_DIR += protocol/interface/enl2/en_common
+else
+ INC_DIR += protocol/interface/el2
+endif
+INC_DIR += protocol/interface/lte
+INC_DIR += protocol/interface/agps
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
diff --git a/mcu/make/module/protocol/l4/extern/sbp.mak b/mcu/make/module/protocol/l4/extern/sbp.mak
new file mode 100644
index 0000000..dc791da
--- /dev/null
+++ b/mcu/make/module/protocol/l4/extern/sbp.mak
@@ -0,0 +1,65 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = custom/service/sbp/sbp_utility.c \
+ custom/service/sbp/sbp_config_ctrl.c \
+ custom/service/sbp/sbp_task_clean.c \
+ custom/service/sbp/sbp_nvram_config.c \
+ custom/service/sbp/sbp_nvram_errc_config.c \
+ custom/service/sbp/sbp_nvram_ims_config.c \
+ custom/service/sbp/sbp_nvram_iwlan_config.c \
+ custom/service/sbp/sbp_nvram_ltecsr_config.c \
+ custom/service/sbp/sbp_nvram_mscap_config.c \
+ custom/service/sbp/sbp_nvram_phonemode_config.c \
+ custom/service/sbp/sbp_nvram_nwsel_config.c \
+ custom/service/sbp/sbp_nvram_vgmm_config.c \
+ custom/service/sbp/sbp_nvram_rac_config.c \
+ custom/service/sbp/sbp_nvram_rrc_config.c \
+ custom/service/sbp/sbp_nvram_sdm_config.c \
+ custom/service/sbp/sbp_nvram_vdm_config.c \
+ custom/service/sbp/sbp_nvram_n3cf_config.c \
+ custom/service/sbp/sbp_nvram_l4c_config.c \
+ custom/service/sbp/sbp_nvram_bip_config.c \
+ custom/service/sbp/sbp_nvram_el1c_config.c \
+ custom/service/sbp/sbp_nvram_d2_config.c \
+ custom/service/sbp/sbp_nvram_xcap_config.c \
+ custom/service/sbp/sbp_nvram_cval_config.c \
+ custom/service/sbp/sbp_nvram_hlp_config.c \
+ custom/service/sbp/sbp_task.c \
+ custom/service/sbp/sbp_sms_config.c \
+ custom/service/sbp/sbp_nvram_mcf_config.c \
+ custom/service/sbp/sbp_nvram_mrs_config.c \
+ custom/service/sbp/sbp_nvram_rrm_config.c \
+ custom/service/sbp/sbp_nvram_ssds_config.c \
+ custom/service/sbp/sbp_nvram_rsra_config.c \
+ custom/service/sbp/sbp_nvram_sim_config.c \
+ custom/service/sbp/sbp_nvram_c2k_config.c \
+ custom/service/sbp/sbp_nvram_tcm_config.c \
+ custom/service/sbp/sbp_nvram_sm_config.c \
+ custom/service/sbp/sbp_nvram_esm_config.c\
+ custom/service/sbp/sbp_nvram_mm_config.c \
+ custom/service/sbp/sbp_cc_config.c \
+ custom/service/sbp/sbp_nvram_l5_config.c \
+ custom/service/sbp/sbp_atci_config.c
+
+ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+SRC_LIST += custom/service/sbp/sbp_nvram_nrrc_config.c
+endif
+
+ifeq ($(strip $(LGE_SECURITY)), TRUE)
+ INC_DIR += custom/modem/lgesecurity
+endif
+
+# Define include path lists to INC_DIR
+# INC_DIR = $(strip .)/interface/modem/general
+INC_DIR = service/nvram/include \
+ interface/protocol/general \
+ interface/service/mcf
+
+#fdr_reorg
+INC_DIR += protocol/interface/general \
+ interface/l1/cl1/common \
+ interface/protocol/nas_c2k \
+ interface/protocol/as_c2k/1xrtt \
+ interface/protocol/as_c2k/evdo \
+ interface/protocol/l2_c2k/common \
+ interface/protocol/l4_c2k
+
diff --git a/mcu/make/module/protocol/protocol_config.mak b/mcu/make/module/protocol/protocol_config.mak
new file mode 100755
index 0000000..24c50c5
--- /dev/null
+++ b/mcu/make/module/protocol/protocol_config.mak
@@ -0,0 +1,76 @@
+CATEGORY_INCDIRS += ./interface/service/fsm
+CATEGORY_INCDIRS += interface/protocol/l2_utility/flc2_v2
+
+CATEGORY_INCDIRS += protocol/interface/nas_multimode/upcm
+CATEGORY_INCDIRS += protocol/interface/ddm
+CATEGORY_INCDIRS += protocol/interface/ims
+CATEGORY_INCDIRS += protocol/interface/lte
+CATEGORY_INCDIRS += protocol/interface/agps
+CATEGORY_INCDIRS += protocol/interface/errc
+CATEGORY_INCDIRS += protocol/interface/iwlan
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+ CATEGORY_INCDIRS += protocol/interface/enl2/el2
+ CATEGORY_INCDIRS += protocol/interface/enl2/en_common
+else ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+ CATEGORY_INCDIRS += protocol/interface/enl2/el2
+ CATEGORY_INCDIRS += protocol/interface/enl2/en_common
+else
+ CATEGORY_INCDIRS += protocol/interface/el2
+endif
+
+CATEGORY_INCDIRS += protocol/interface/ims \
+ protocol/interface/l4 \
+ protocol/interface/l4misc \
+ protocol/interface/mcd/include \
+ protocol/layer4/l4/include \
+ protocol/layer4/l4/atci/include \
+ protocol/layer4/l4/l4c/include/common \
+ protocol/layer4/l4/l4c/include/proc \
+ protocol/layer4/l4/csm/cc/include \
+ protocol/layer4/l4/uem/include \
+ protocol/layer4/l4/phb/include \
+ protocol/layer4/l4/csm/cc/include \
+ protocol/layer4/l4/csm \
+ protocol/layer4/l4/tcm/etcm/include \
+ protocol/layer4/l4/smsal/include \
+ protocol/layer4/l4/tcm/rat_tcm/inc \
+ protocol/layer4/l4/csm/ss/asn1/gen/include \
+ protocol/layer4/l4/smu/include \
+ protocol/layer4/l4/rac/common/include \
+ protocol/layer4/l4/rac/ugrac/include \
+ protocol/interface/asn/rr/include \
+ protocol/layer4/l4/smslib/include \
+ l1/gl1/l1d_ext
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+ CATEGORY_INCDIRS += protocol/layer4/l4/rac/erac/include
+endif
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R8_SUPPORT)
+ CATEGORY_INCDIRS += l1/ul1/ul1d_ext
+else
+ ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R7_SUPPORT)
+ CATEGORY_INCDIRS += l1/ul1/ul1d_ext
+ else
+ ifneq ($(filter $(strip $(PLATFORM)),$(UL1_HS_PLATFORM)),)
+ CATEGORY_INCDIRS += protocol/ul1/ul1_hs/ul1d_ext
+ endif
+ endif
+endif
+
+#fdr_reorg
+CATEGORY_INCDIRS += protocol/interface/general
+
+# *************************************************************************
+# From Global include path
+# *************************************************************************
+ifeq ($(strip $(ETCM)),TRUE)
+CATEGORY_INCDIRS += protocol/layer4/l4/tcm/etcm/include
+endif
+
+CATEGORY_INCDIRS += protocol/layer4/l4/tcm/rat_tcm/inc
+
+CATEGORY_DEFS +=
+
+CFLAGS := $(filter-out -fstrict-aliasing, $(CFLAGS)) -fno-strict-aliasing
diff --git a/mcu/make/module/protocol/simulation/usim_hw.mak b/mcu/make/module/protocol/simulation/usim_hw.mak
new file mode 100644
index 0000000..f8b4276
--- /dev/null
+++ b/mcu/make/module/protocol/simulation/usim_hw.mak
@@ -0,0 +1,103 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = protocol/smt/uesim_lte/usim_hw/UsimBpi.c \
+ protocol/smt/uesim_lte/usim_hw/UsimBsi.c \
+ protocol/smt/uesim_lte/usim_hw/UsimCdGn.c \
+ protocol/smt/uesim_lte/usim_hw/UsimCgi.c \
+ protocol/smt/uesim_lte/usim_hw/UsimCmbnr.c \
+ protocol/smt/uesim_lte/usim_hw/UsimCntr.c \
+ protocol/smt/uesim_lte/usim_hw/UsimCs4.c \
+ protocol/smt/uesim_lte/usim_hw/UsimDcxoSrchr.c \
+ protocol/smt/uesim_lte/usim_hw/UsimDftc.c \
+ protocol/smt/uesim_lte/usim_hw/UsimDtDmp.c \
+ protocol/smt/uesim_lte/usim_hw/UsimERx.c \
+ protocol/smt/uesim_lte/usim_hw/UsimETx.c \
+ protocol/smt/uesim_lte/usim_hw/UsimHaPlusAdapter.c \
+ protocol/smt/uesim_lte/usim_hw/UsimHsCe.c \
+ protocol/smt/uesim_lte/usim_hw/UsimHsRx.c \
+ protocol/smt/uesim_lte/usim_hw/UsimHsTx.c \
+ protocol/smt/uesim_lte/usim_hw/UsimHwCmmn.h \
+ protocol/smt/uesim_lte/usim_hw/UsimHwDfn.h \
+ protocol/smt/uesim_lte/usim_hw/UsimHwFnct.h \
+ protocol/smt/uesim_lte/usim_hw/UsimHwMisc.c \
+ protocol/smt/uesim_lte/usim_hw/UsimHwPublic.h\
+ protocol/smt/uesim_lte/usim_hw/UsimHwTypes.h \
+ protocol/smt/uesim_lte/usim_hw/UsimHwUtil.c \
+ protocol/smt/uesim_lte/usim_hw/UsimIRatChkr.c \
+ protocol/smt/uesim_lte/usim_hw/UsimMs3.c \
+ protocol/smt/uesim_lte/usim_hw/UsimPac.c \
+ protocol/smt/uesim_lte/usim_hw/UsimPll.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRake.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRf.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRfMt6159B.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRfMt6159C.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRfMt6160.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRfMt6162.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRfMt6162Dual.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRfOrionHplus.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRfPmic.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRfSmarti3G.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRfSonyCxa3359.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRxAmp.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRxBfe.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRxBrp.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRxBrpPhCh.c \
+ protocol/smt/uesim_lte/usim_hw/UsimRxSrp.c \
+ protocol/smt/uesim_lte/usim_hw/UsimSclrTmr.c \
+ protocol/smt/uesim_lte/usim_hw/UsimSdGn.c \
+ protocol/smt/uesim_lte/usim_hw/UsimSlwClk.c \
+ protocol/smt/uesim_lte/usim_hw/UsimSrchrTmr.c \
+ protocol/smt/uesim_lte/usim_hw/UsimSta.c \
+ protocol/smt/uesim_lte/usim_hw/UsimSysTmr.c \
+ protocol/smt/uesim_lte/usim_hw/UsimTrk.c \
+ protocol/smt/uesim_lte/usim_hw/UsimTxBrp.c \
+ protocol/smt/uesim_lte/usim_hw/UsimTxBrpDt.c \
+ protocol/smt/uesim_lte/usim_hw/UsimTxCrp.c \
+ protocol/smt/uesim_lte/usim_hw/uvrf/src/uvrf_bridge.c \
+ protocol/smt/uesim_lte/usim_hw/uvrf/src/uvrf_bridge_task.c \
+ protocol/smt/uesim_lte/usim_hw/UsimUSCntr.c
+
+# Define include path lists to INC_DIR
+INC_DIR = protocol/smt/uesim_lte/xsim_framework/generic/intf \
+ protocol/smt/uesim_lte/xsim_platform/mt6208 \
+ protocol/smt/uesim_lte/xsim_platform/mt6208/rf \
+ protocol/smt/uesim_lte/gsim_nw/intf \
+ protocol/smt/uesim_lte/gsim_hw/intf \
+ protocol/smt/uesim_lte/usim_hw/uvrf/intf \
+ protocol/smt/uesim_lte/usim_hw/uvrf/src \
+ protocol/smt/uesim_lte/usim_nw \
+ protocol/smt/uesim_lte/xsim_generic/uegw2/intf \
+ protocol/smt/uesim_lte/xsim_generic/uegw2/src \
+ protocol/smt/uesim_lte/xsim_generic/xcomm/intf \
+ protocol/smt/uesim_lte/xsim_generic/aos/intf \
+ protocol/smt/uesim_lte/usim_nw/mns_u_airctrl/intf \
+ l1/gl1/common \
+ l1/gl1/interface \
+ l1/gl1/l1c \
+ l1/gl1/l1d \
+ l1/gl1/l1d_ext \
+ interface/protocol/gas \
+ interface/l1/ul1 \
+ l1/interface/el1 \
+ l1/ul1/common \
+ l1/md_sm/l1sm \
+ l1/md_sm/common/l1sm \
+ driver/peripheral/inc
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = __ESIM_3G_HWSIM_DATA_PATH_ENABLE__ \
+ __ESIM_3G_HWSIM_ASSERT_DISABLE__ \
+ INTEGER_SIM_TIME \
+ L1_SIM \
+ L1D_SIM \
+ REG_MAY_NOT_EXIST \
+ AFC_13bit \
+ CH_RF_TEST \
+ __HYPER_SLEEP_MODE_CHIP__ \
+ USE_WAKEUP_INT \
+ MEM_CHECK_ON \
+ __HSPA_PLUS_SIM__ \
+ MT6326 \
+ TRACING_SUPPORT
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = protocol/smt/uesim_lte/usim_hw
diff --git a/mcu/make/module/protocol/simulation/usim_nw.mak b/mcu/make/module/protocol/simulation/usim_nw.mak
new file mode 100644
index 0000000..0dedf59
--- /dev/null
+++ b/mcu/make/module/protocol/simulation/usim_nw.mak
@@ -0,0 +1,49 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = protocol/smt/uesim_lte/usim_nw/UsimBchCctrchUeSim.c \
+ protocol/smt/uesim_lte/usim_nw/UsimCctrchUeSim.c \
+ protocol/smt/uesim_lte/usim_nw/UsimCmmn.h \
+ protocol/smt/uesim_lte/usim_nw/UsimDfn.h \
+ protocol/smt/uesim_lte/usim_nw/UsimDump_UL1C.h \
+ protocol/smt/uesim_lte/usim_nw/UsimFnct.h \
+ protocol/smt/uesim_lte/usim_nw/UsimFnctStub.c \
+ protocol/smt/uesim_lte/usim_nw/UsimMisc.c \
+ protocol/smt/uesim_lte/usim_nw/UsimScnnr.c \
+ protocol/smt/uesim_lte/usim_nw/UsimScnnr_UL1C.h \
+ protocol/smt/uesim_lte/usim_nw/UsimTypes.h \
+ protocol/smt/uesim_lte/usim_nw/UsimUlCctrchUeSim.c \
+ protocol/smt/uesim_lte/usim_nw/UsimUtil.c
+
+# Define include path lists to INC_DIR
+INC_DIR = protocol/smt/uesim_lte/xsim_framework/generic/intf \
+ protocol/smt/uesim_lte/usim_nw \
+ protocol/smt/uesim_lte/usim_hw \
+ l1/gl1/common \
+ l1/gl1/interface \
+ l1/gl1/l1c \
+ l1/gl1/l1d \
+ l1/gl1/l1d_ext \
+ interface/protocol/gas \
+ interface/l1/ul1 \
+ l1/interface/el1 \
+ l1/ul1/common \
+ l1/md_sm/l1sm \
+ l1/md_sm/common/l1sm
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = __ESIM_3G_HWSIM_DATA_PATH_ENABLE__ \
+ __ESIM_3G_HWSIM_ASSERT_DISABLE__ \
+ INTEGER_SIM_TIME \
+ L1_SIM \
+ L1D_SIM \
+ REG_MAY_NOT_EXIST \
+ AFC_13bit \
+ CH_RF_TEST \
+ __HYPER_SLEEP_MODE_CHIP__ \
+ USE_WAKEUP_INT \
+ MEM_CHECK_ON \
+ __HSPA_PLUS_SIM__ \
+ MT6326 \
+ TRACING_SUPPORT
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = protocol/smt/uesim_lte/usim_nw
diff --git a/mcu/make/module/service/asn1_common/extern/asn1_common.mak b/mcu/make/module/service/asn1_common/extern/asn1_common.mak
new file mode 100644
index 0000000..dca6d4e
--- /dev/null
+++ b/mcu/make/module/service/asn1_common/extern/asn1_common.mak
@@ -0,0 +1,13 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = ./interface/service/asn1_common/asn_common.c \
+ ./interface/service/asn1_common/asn_uper_common.c \
+ ./interface/service/asn1_common/asn_memory.c
+
+# Define include path lists to INC_DIR
+INC_DIR =
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = ./interface/service/asn1_common
diff --git a/mcu/make/module/service/config/extern/config.mak b/mcu/make/module/service/config/extern/config.mak
new file mode 100644
index 0000000..45d5f02
--- /dev/null
+++ b/mcu/make/module/service/config/extern/config.mak
@@ -0,0 +1,35 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = ./service/config/src/hal/syscomp_config.c \
+ ./service/config/src/hal/task_config.c \
+ ./service/config/src/hal/stack_config.c \
+ ./service/config/src/hal/ctrl_buff_pool.c\
+ ./service/config/src/hal/mof_config.c
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/peripheral/inc \
+ ./service/kal/common/include \
+ ./interface/service/dhl
+
+ifneq ($(filter __ESL_MASE_GEN97__,$(CUSTOM_OPTION)),)
+INC_DIR += driver/devdrv/hsl/inc
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ # special for AST projects
+ COMP_DEFS += __UL1_ON_MNT__
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = ./service/config/src/hal
+
+# MERTOS config, note that the module which include this path must rebuild
+ifeq ($(strip $(RTOS)),MERTOS)
+# INC_DIR += ./service/mertos_config/include
+endif
+
+ifeq ($(strip $(COMPILER)),GCC)
+ CFLAGS += -Werror
+endif
diff --git a/mcu/make/module/service/dhl/dbinfo.mak b/mcu/make/module/service/dhl/dbinfo.mak
new file mode 100644
index 0000000..0d1a3c8
--- /dev/null
+++ b/mcu/make/module/service/dhl/dbinfo.mak
@@ -0,0 +1,15 @@
+# Define source file lists to SRC_LIST
+SRC_LIST += $(strip $(BUILD_TSTDIR))/src/dbSig.c \
+ $(strip $(BUILD_TSTDIR))/src/filterSig.c \
+ $(strip $(BUILD_TSTDIR))/src/traceKey.c
+
+
+# Define include path lists to INC_DIR
+INC_DIR =
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH =
+
diff --git a/mcu/make/module/service/fs/fs.mak b/mcu/make/module/service/fs/fs.mak
new file mode 100644
index 0000000..5a3ef64
--- /dev/null
+++ b/mcu/make/module/service/fs/fs.mak
@@ -0,0 +1 @@
+SRC_LIST = ./service/fs/ccci_fs/src/mdfs_wrapper.c
\ No newline at end of file
diff --git a/mcu/make/module/service/hif/hmu.mak b/mcu/make/module/service/hif/hmu.mak
new file mode 100644
index 0000000..60b518a
--- /dev/null
+++ b/mcu/make/module/service/hif/hmu.mak
@@ -0,0 +1,28 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = service/hif/hmu/src/hmu.c
+SRC_LIST += service/hif/hmu/src/hmu_conf_data.c
+
+
+# Define include path lists to INC_DIR
+INC_DIR = ./interface/service/hif \
+ ./interface/service/hif \
+ service/hif/hmu/include \
+ ./service/hif/interface \
+ protocol/interface/ddm
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = _HMU_
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = service/hif/hmu/src
+
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ #custom
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/hif_srv_hmu_trace_utmd.c
+ else
+ SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/hif_srv_hmu_trace_utmd.c
+ endif
+else
+ SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/hif_srv_hmu_trace_utmd.c
+endif
\ No newline at end of file
diff --git a/mcu/make/module/service/hif/ubm.mak b/mcu/make/module/service/hif/ubm.mak
new file mode 100644
index 0000000..f86844c
--- /dev/null
+++ b/mcu/make/module/service/hif/ubm.mak
@@ -0,0 +1,35 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = service/hif/ubm/src/ubm.c \
+ service/hif/ubm/src/ubm_drb.c \
+ service/hif/ubm/src/ubm_fhb.c \
+ service/hif/ubm/src/ubm_nfhb.c \
+ service/hif/ubm/src/ubm_ul_meta.c \
+ service/hif/ubm/src/ubm_vrb.c \
+ service/hif/ubm/src/ubm_xit.c
+
+# L1 trace configuration file
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+ #custom
+ ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+ SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/ubm_data_path_trace_utmd.c
+ else
+ SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/ubm_data_path_trace_utmd.c
+ endif
+else
+ SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/ubm_data_path_trace_utmd.c
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = ./interface/service/hif \
+ service/hif/ubm/include \
+ ./service/hif/interface \
+ interface/driver/lhifcore \
+ interface/middleware/hif \
+ interface/driver/hif \
+ ./interface/service/prbm \
+ interface/service/qmu_bm
+
+# Define the specified compile options to COMP_DEFS
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = service/hif/ubm/src
diff --git a/mcu/make/module/service/kal/ktest.mak b/mcu/make/module/service/kal/ktest.mak
new file mode 100644
index 0000000..647121a
--- /dev/null
+++ b/mcu/make/module/service/kal/ktest.mak
@@ -0,0 +1,87 @@
+# Define source file lists to SRC_LIST
+SRC_PATH = ./service/kal/ktest
+ifneq ($(filter __KTEST__, $(strip $(MODULE_DEFS))),)
+ifneq ($(strip $(KTEST_ENV)), RTOS_TEST)
+ifeq ($(strip $(KTEST_ENV)),STATIC_TEST)
+ifeq ($(strip $(RTOS)),MERTOS)
+SRC_LIST +=./service/kal/ktest/src/adaptation/ktest_adaptation_target_mertos.c
+else
+SRC_LIST +=./service/kal/ktest/src/adaptation/ktest_adaptation_target.c
+endif
+SRC_LIST +=./service/kal/ktest/src/common/ktest_smp.c \
+ ./service/kal/ktest/src/common/ktest_utilities.c \
+ ./service/kal/ktest/src/common/ktest_rtos.c \
+ ./service/kal/ktest/src/tests/ktest_smp_mt.c \
+ ./service/kal/ktest/src/tests/ktest_smp_mem.c \
+ ./service/kal/ktest/src/tests/ktest_smp_misc.c \
+ ./service/kal/ktest/src/tests/ktest_smp_ipc.c \
+ ./service/kal/ktest/src/tests/ktest_smp_timer.c \
+ ./service/kal/ktest/src/tests/ktest_profiler.c
+else
+SRC_LIST +=./service/kal/ktest/src/adaptation/ktest_adaptation_oscar.c \
+ ./service/kal/ktest/src/adaptation/ktest_adaptation_target.c \
+ ./service/kal/ktest/src/common/kal_autotest.c \
+ ./service/kal/ktest/src/common/ktest_interface.c \
+ ./service/kal/ktest/src/common/ktest_utilities.c \
+ ./service/kal/ktest/src/tests/ktest_tc_timer.c \
+ ./service/kal/ktest/src/tests/ktest_tc_nu_timer.c \
+ ./service/kal/ktest/src/tests/ktest_lib_timer.c \
+ ./service/kal/ktest/src/tests/ktest_tc_ipc.c \
+ ./service/kal/ktest/src/tests/ktest_tc_mm_adm.c \
+ ./service/kal/ktest/src/tests/ktest_tc_mm_afm.c \
+ ./service/kal/ktest/src/tests/ktest_tc_mm_ctrlbuf.c \
+ ./service/kal/ktest/src/tests/ktest_tc_task.c \
+ ./service/kal/ktest/src/tests/ktest_tc_utl.c \
+ ./service/kal/ktest/src/tests/ktest_tc_sandbox.c \
+ ./service/kal/ktest/src/tests/ktest_tc_mlib.c \
+ ./service/kal/ktest/src/tests/ktest_tc_slmm.c \
+ ./service/kal/ktest/src/tests/ktest_tc_vm.c
+endif
+else
+ifeq ($(strip $(RTOS)),MERTOS)
+SRC_LIST +=./service/kal/ktest/src/common/ktest_rtos.c \
+ ./service/kal/ktest/src/common/ktest_utilities.c \
+ ./service/kal/ktest/src/adaptation/ktest_adaptation_target_mertos.c \
+ ./service/kal/ktest/src/tests/ktest_rtos_enh_mutex.c \
+ ./service/kal/ktest/src/tests/ktest_rtos_dpc.c \
+ ./service/kal/ktest/src/tests/ktest_rtos_isr.c \
+ ./service/kal/ktest/src/tests/ktest_rtos_mq.c \
+ ./service/kal/ktest/src/tests/ktest_rtos_timer.c \
+ ./service/kal/ktest/src/tests/ktest_rtos_misc.c \
+ ./service/kal/ktest/src/tests/ktest_rtos_kal_itc.c \
+ ./service/kal/ktest/src/tests/ktest_rtos_kal_buff_mgr.c \
+ ./service/kal/ktest/src/tests/ktest_profiler.c
+else
+SRC_LIST +=./service/kal/ktest/src/common/ktest_rtos.c \
+ ./service/kal/ktest/src/common/ktest_utilities.c \
+ ./service/kal/ktest/src/adaptation/ktest_adaptation_target.c \
+ ./service/kal/ktest/src/tests/ktest_rtos_misc.c \
+ ./service/kal/ktest/src/tests/ktest_profiler.c
+endif
+endif
+endif
+# Define include path lists to INC_DIR
+INC_DIR = ./interface/service/config \
+ ./interface/service/kal \
+ interface/driver/peripheral \
+ interface/driver/hwdrv \
+ ./service/kal/ktest/inc \
+ ./service/kal/adaptation/include \
+ ./service/kal/common/include \
+ ./service/kal/mlib/include \
+ ./interface/sap/svc \
+ driver/sys_drv/cache/inc/ \
+ driver/sys_drv/init/inc/ \
+ ./service/sst/include \
+ ./service/sst/include \
+ protocol/interface/ims \
+ driver/devdrv/cirq/$(MD_VER_FOLDER)/inc
+
+ifeq ($(strip $(RTOS)),MERTOS)
+INC_DIR += ./service/mertos/include
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+
diff --git a/mcu/make/module/service/mcf/extern/mcf.mak b/mcu/make/module/service/mcf/extern/mcf.mak
new file mode 100644
index 0000000..d3e482c
--- /dev/null
+++ b/mcu/make/module/service/mcf/extern/mcf.mak
@@ -0,0 +1,52 @@
+# Define ./interface/modem folder path by project option
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297p
+else
+ #no match chip
+endif
+#
+# Define source file lists to SRC_LIST
+#
+SRC_LIST = service/mcf/src/mcf_if.c \
+ service/mcf/src/mcf_task.c \
+ service/mcf/src/mcf_util.c \
+ service/mcf/src/mcf_task_clean.c
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+ SRC_LIST += service/mcf/src/mcf_utfwk.c
+ ifneq ($(filter ATEST_SYS_MCF, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += service/mcf/src/mcf_ut.c \
+ service/mcf/src/mcf_utfwk_sample_code.c
+ endif
+endif
+
+SRC_LIST += $(strip $(PROJDIR))/modem/mcf/mcf_db.c
+
+#
+# Define include path lists to INC_DIR
+#
+INC_DIR = service/mcf/include \
+ interface/service/mcf \
+ interface/service/nvram \
+ $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom \
+
+INC_DIR += $(strip $(PROJDIR))/modem/mcf/
+
+#
+# Define the specified compile options to COMP_DEFS
+#
+ifneq ($(filter ATEST_SYS_MCF, $(strip $(MODULE_DEFS))),)
+ COMP_DEFS += __MCF_FIND_TAG_SUPPORT__
+endif
+COMP_DEFS += __MCF_FIND_GID_SUPPORT__
+
+#
+# Define the source file search paths to SRC_PATH
+#
+SRC_PATH = service/mcf/src
diff --git a/mcu/make/module/service/mertos/extern/mertos_config.mak b/mcu/make/module/service/mertos/extern/mertos_config.mak
new file mode 100644
index 0000000..f4a13cf
--- /dev/null
+++ b/mcu/make/module/service/mertos/extern/mertos_config.mak
@@ -0,0 +1,21 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = service/mertos_config/src/mer_config_task.c \
+ service/mertos_config/src/mer_config_fixmem.c \
+ service/mertos_config/src/mer_config_sync_enhmutex.c
+
+# Define include path lists to INC_DIR
+INC_DIR = service/mertos/include \
+ interface/service/kal \
+ service/mertos_config/include \
+ service/kal/os/mertos/include
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = _MER_SERVICE_CPU_INTERAPTIV_ __ESL_DBG_UTIL__
+COMP_DEFS = __MER_CONFIG_MUST_REBUILD__
+
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = service/mertos_config/src
+
+
diff --git a/mcu/make/module/service/mtf/mtf.mak b/mcu/make/module/service/mtf/mtf.mak
new file mode 100755
index 0000000..bb16b2b
--- /dev/null
+++ b/mcu/make/module/service/mtf/mtf.mak
@@ -0,0 +1,20 @@
+# Define source file lists to SRC_LIST
+SRC_LIST += service/mtf/base/mt_dispatcher.c \
+ service/mtf/base/mt_task.c \
+ service/mtf/base/mt_task_clean.c \
+ service/mtf/formatter/mtf_base.c \
+ service/mtf/formatter/mtf_icd.c \
+ service/mtf/formatter/mtf_ilm.c \
+ service/mtf/formatter/mtf_peer_trace.c \
+ service/mtf/translate_elements/mte_base.c \
+# Define include path lists to INC_DIR
+INC_DIR = service/mtf/inc \
+ interface/service/mtf \
+ interface/service/icd \
+ interface/protocol/general \
+ interface/sap/md \
+ $(strip $(PROJDIR))/modem/icd_ac_gen
+
+# Define the specified compile option to COMP_DEFS
+COMP_DEFS =
+
diff --git a/mcu/make/module/service/nvram/extern/nvram.mak b/mcu/make/module/service/nvram/extern/nvram.mak
new file mode 100644
index 0000000..de270ef
--- /dev/null
+++ b/mcu/make/module/service/nvram/extern/nvram.mak
@@ -0,0 +1,172 @@
+# Define ./interface/modem folder path by project option
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+ MD_VER_FOLDER_PATH = mt6297p
+else
+ #no match chip
+endif
+# Define source file lists to SRC_LIST
+SRC_LIST = ./service/nvram/src/nvram_factory_config.c \
+ ./service/nvram/src/nvram_handler_read.c \
+ ./service/nvram/src/nvram_handler_reset.c \
+ ./service/nvram/src/nvram_handler_startup.c \
+ ./service/nvram/src/nvram_handler_write.c \
+ ./service/nvram/src/nvram_handler_monitor.c \
+ ./service/nvram/src/nvram_drval_fat.c \
+ ./service/nvram/src/nvram_ilm.c \
+ ./service/nvram/src/nvram_io.c \
+ ./service/nvram/src/nvram_ltable.c \
+ ./service/nvram/src/nvram_main.c \
+ ./service/nvram/src/nvram_multi_folder.c \
+ ./service/nvram/src/nvram_interface.c \
+ ./service/nvram/src/nvram_l1def.c \
+ ./service/nvram/src/nvram_util.c \
+ ./service/nvram/src/nvram_el1def.c \
+ ./service/nvram/src/nvram_nl1def.c \
+ ./service/nvram/src/nvram_mml1def.c \
+ ./service/nvram/src/nvram_tl1def.c \
+ ./service/nvram/src/nvram_ltable_register.c
+
+
+ifneq ($(filter __NVRAM_PSEUDO_MERGE__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_pseudo_merge.c
+endif
+ifneq ($(filter __NVRAM_OTP__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+endif
+ifneq ($(filter __CUSTOMER_TC01_DISK__, $(strip $(MODULE_DEFS))),)
+ ifneq ($(filter __MTK_UL1_FDD__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+ endif
+endif
+ifneq ($(filter __SYSDRV_BACKUP_DISK__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+endif
+
+ifneq ($(filter __SYSDRV_BACKUP_DISK_FAT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+endif
+
+ifneq ($(filter __NVRAM_UT_TEST__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+endif
+
+ifneq ($(filter __SYSDRV_BACKUP_DISK_RAW__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+ SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+endif
+ifneq ($(filter __SECURE_DATA_STORAGE__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+ SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+endif
+
+ifneq ($(filter __CCCIFS_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ ifneq ($(filter __MODEM_CARD__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+ SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+ endif
+endif
+
+ifneq ($(filter __UMTS_RAT__, $(strip $(MODULE_DEFS))),)
+ ifneq ($(filter __MTK_UL1_FDD__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_ul1def.c
+ endif
+endif
+
+ifneq ($(filter __C2K_RAT__ __CL1_TASK_ENABLE__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_cl1def.c
+endif
+
+ifneq ($(filter __NVRAM_COMPRESS_SUPPORT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_unzip.c
+endif
+
+ifneq ($(filter __SYSDRV_BACKUP_DISK__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+endif
+
+ifneq ($(filter __CUSTOMER_TC01_DISK__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+endif
+
+ifneq ($(filter __SECURE_DATA_STORAGE__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+endif
+
+ifneq ($(filter TST_HANDLER, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_handler_tst.c
+endif
+
+ifneq ($(filter __NVRAM_UNIT_TEST__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_tst.c
+endif
+
+ifneq ($(filter __NVRAM_UT_TEST__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_ut_test.c
+endif
+
+ifneq ($(filter __NVRAM_LID_CACHE__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_cache.c
+ SRC_LIST += ./service/nvram/src/nvram_cache_dirty_valid_mask.c
+ SRC_LIST += ./service/nvram/src/nvram_cache_event.c
+ SRC_LIST += ./service/nvram/src/nvram_cache_queue.c
+ SRC_LIST += ./service/nvram/src/nvram_cache_white_list.c
+ SRC_LIST += ./service/nvram/src/nvram_pre_read.c
+endif
+
+ifneq ($(filter __NV_CHKSUM_ENHANCE__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/nvram/src/nvram_chksum_algorithm.c
+endif
+
+# ifneq ($(filter __XXX__, $(strip $(MODULE_DEFS))),)
+# SRC_LIST += xxxx\xxxxx\AAA.c
+# endif
+# ifeq ($(strip $(NAND_SUPPORT)),FALSE)
+# SRC_LIST += xxxx
+# endif
+
+# Define include path lists to INC_DIR
+INC_DIR = ./service/nvram/include \
+ ./custom/middleware/common \
+ ./interface/service/mcf \
+ ./interface/l1/el1/external/comm/rf_custom/inc \
+ ./interface/l1/cl1/rfd/external/comm/rf_custom \
+ ./interface/driver/devdrv/busmpu \
+ ./interface/service/hif \
+ ./interface/driver/sleep_drv\
+ interface/l1/nl1/external \
+ $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/5g \
+ $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom \
+
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+INC_DIR += interface/l1/nl1/external/
+INC_DIR += interface/l1/nl1/external/5g
+INC_DIR += interface/l1/nl1/external/4g
+endif
+
+
+ifneq ($(filter __NVRAM_LID_CACHE__, $(strip $(MODULE_DEFS))),)
+ INC_DIR += $(strip $(PROJDIR))/nvram_auto_gen/
+endif
+
+ifeq ($(strip $(LGE_SECURITY)), TRUE)
+ INC_DIR += custom/modem/lgesecurity
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = ./service/nvram/src
+
+COMP_DEFS += CURR_MODULE=MOD_$(strip $(call Upper,$(COMPONENT)))
+
+#fdr_reorg
+INC_DIR += interface/l1/cl1/common
+
+NO_LTO := TRUE
diff --git a/mcu/make/module/service/oscar/oscar.mak b/mcu/make/module/service/oscar/oscar.mak
new file mode 100644
index 0000000..6762538
--- /dev/null
+++ b/mcu/make/module/service/oscar/oscar.mak
@@ -0,0 +1,27 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = MoDIS_VC9/oscar/src/osc_main.c \
+ MoDIS_VC9/oscar/src/osc_platform.c \
+ MoDIS_VC9/oscar/src/osc_queue.c \
+ MoDIS_VC9/oscar/src/osc_semaphore.c \
+ MoDIS_VC9/oscar/src/osc_enhmutex.c \
+ MoDIS_VC9/oscar/src/osc_system.c \
+ MoDIS_VC9/oscar/src/osc_thread.c \
+ MoDIS_VC9/oscar/src/osc_timer.c \
+ MoDIS_VC9/oscar/src/osc_utility.c \
+ MoDIS_VC9/oscar/src/osc_buffer.c \
+ MoDIS_VC9/oscar/src/osc_event.c \
+ MoDIS_VC9/oscar/src/osc_critical_section.c \
+ MoDIS_VC9/oscar/src/osc_swla.c
+
+# Define include path lists to INC_DIR
+INC_DIR = MoDIS_VC9/oscar/include
+
+# Define the specified compile options to COMP_DEFS
+ifeq ($(strip $(UE_SIMULATOR)), TRUE)
+COMP_DEFS = __UT_ISR_OPTIMIZE__
+
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = MoDIS_VC9/oscar/src
+
diff --git a/mcu/make/module/service/service_config.mak b/mcu/make/module/service/service_config.mak
new file mode 100644
index 0000000..fc21403
--- /dev/null
+++ b/mcu/make/module/service/service_config.mak
@@ -0,0 +1,18 @@
+ifeq ($(strip $(RTOS)),MERTOS)
+ CATEGORY_INCDIRS += ./service/mertos/include
+ CATEGORY_INCDIRS += ./service/kal/common/include
+ CATEGORY_INCDIRS += ./service/kal/os/mertos/include
+ CATEGORY_INCDIRS += ./service/kal/lib/mlib/include
+endif
+
+CATEGORY_INCDIRS += ./service/sst/include
+CATEGORY_INCDIRS += ./service/sst/include
+CATEGORY_INCDIRS += ./service/fs/common/include
+
+CATEGORY_DEFS +=
+
+ifeq ($(strip $(LTO_BUILD)),TRUE)
+ ifeq ($(strip $(NO_LTO)),)
+ CFLAGS += -flto -fno-fat-lto-objects
+ endif
+endif
diff --git a/mcu/make/module/service/sss/sss.mak b/mcu/make/module/service/sss/sss.mak
new file mode 100644
index 0000000..b864126
--- /dev/null
+++ b/mcu/make/module/service/sss/sss.mak
@@ -0,0 +1,77 @@
+##############################################################
+# Define bootloader folder path
+##############################################################
+
+# Define source file lists to SRC_LIST
+
+ifneq ($(filter __SV5_ENABLED__ __SV5X_ENABLED__,$(strip $(MODULE_DEFS))),)
+SRC_LIST = ./service/sss/components/src/SSS_secure_shared_v5.c \
+ ./service/sss/components/src/SSS_efuse_blow.c \
+ ./service/sss/components/crypto/src/br_crypto_common.c \
+ ./service/sss/components/crypto/src/br_crypto_drv.c \
+ ./service/sss/components/crypto/src/br_crypto_drv_M1_RSA.c \
+ ./service/sss/components/crypto/src/br_crypto_drv_SEJ_AES_HW.c \
+ ./service/sss/components/crypto/src/br_crypto_drv_SEJ_AES_SW.c \
+ ./service/sss/components/crypto/src/br_crypto_drv_SHA256_SW.c \
+ ./service/sss/components/crypto/src/br_crypto_lib.c \
+ ./service/sss/components/crypto/src/br_crypto_scheme.c \
+ ./service/sss/components/crypto/src/br_sd_crypto.c \
+ ./service/sss/components/crypto/src/br_M1_RSA_v1.c \
+ ./service/sss/components/crypto/src/br_sha256_sw.c \
+ ./service/sss/components/crypto/src/br_aes_sw.c
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = ./service/sst/include \
+ ./service/sst/include_sec \
+ ./service/sss/components/inc \
+ ./service/sss/interface/inc \
+ driver/drv/include \
+ driver/che/include \
+ ./service/sss/interface/crypto/export/public \
+ ./service/sss/components/crypto/export/private \
+ ./service/sss/components/crypto/inc \
+ ./service/sss/components/GFH/private \
+ ./service/sys_svc/gfh/public \
+ ./service/sys_svc/profile/inc \
+ ./interface/service/sst
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWORK \
+ __MTK_SECURE_PLATFORM__ \
+ __CP_DEFINED_ALL_CONTEXT__ \
+ __CP_DEFINED_WORKING_BUF__ \
+ __CRYPTO_ENCRYPT__ \
+ __CRYPTO_SCHEME__ \
+ __CRYPTO_LIB__ \
+ __CS_SIG_SINGLE__ \
+ __CS_MTK_CIPHER__ \
+ __CS_CIPHER__ \
+ __CS_HASH__ \
+ __CL_GFH_SIG__ \
+ __CL_MTK_CIPHER__ \
+ __CL_SIG_SINGLE_AND_PHASH_V1__ \
+ __CL_SIG_MULTI_V1__ \
+ __RSA_SW__ \
+ __SHA256_SW__ \
+ __SHA1_SW__ \
+ __SOE_AES_HW__ \
+ __SEJ_AES_HW__ \
+ __AES_SW__ \
+ __AES_HW__ \
+ __3DES_SW__ \
+ __TIME_STAMP__
+
+# __SEJ_3DES_HW__ \
+# __3DES_HW__ \
+# __SHA256_HW__ \
+# __SHA1_HW__ \
+
+# Turn-on asembly support. To sync with BootROM
+#COMP_DEFS +=__SHA1_HW_ASM__ \
+# __SEJ_AES_HW_ASM__
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = ./service/sss/components/src \
+ ./service/sss/components/crypto/src
+
diff --git a/mcu/make/module/service/sys_svc/extern/sys_svc.mak b/mcu/make/module/service/sys_svc/extern/sys_svc.mak
new file mode 100644
index 0000000..d365cef
--- /dev/null
+++ b/mcu/make/module/service/sys_svc/extern/sys_svc.mak
@@ -0,0 +1,126 @@
+##############################################################
+# Define bootloader folder path
+##############################################################
+
+# Define source file lists to SRC_LIST
+ SRC_LIST = ./service/sys_svc/excep_hdlr/src/excep_hdlr.c
+
+ifneq ($(filter __SV5_ENABLED__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_parser.c
+ SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_file_info.c
+ SRC_LIST += ./service/sys_svc/ftl/src/FTL.c
+else ifneq ($(filter __SV5X_ENABLED__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/sys_svc/ftl/src/FTL.c
+ SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_parser.c
+ SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_file_info.c
+else
+ SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_parser.c
+ SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_file_info.c
+endif
+
+
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/sys_svc/region/src/init_memory_stack.c
+endif
+
+ifneq ($(filter __MD93__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/sys_svc/gfh/public/Gen93/maui_GFH_body.c
+else ifneq ($(filter __MD95__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/sys_svc/gfh/public/maui_GFH_body.c
+else ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/sys_svc/gfh/public/maui_GFH_body.c
+else
+ #error "no chip matched for maui_GFH_body design"
+endif
+
+SRC_LIST += ./service/sys_svc/region/src/regioninit_c_gcc.c
+
+ifeq ($(strip $(COMPILER)), GCC)
+ ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/sys_svc/region/src/stack_gcc.S
+ SRC_LIST += ./service/sys_svc/region/src/regioninit_gcc.S
+ endif
+else # RVCT
+ ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/sys_svc/region/src/stack_rvct.S
+ SRC_LIST += ./service/sys_svc/region/src/regioninit_rvct.S
+ SRC_LIST += ./service/sys_svc/region/src/l6478e.s
+ endif
+endif
+
+
+ifeq ($(TS_PROFILING),TRUE)
+ SRC_LIST += ./service/sys_svc/profile/src/br_time_stamp.c
+ SRC_LIST += ./service/sys_svc/profile/src/maui_time_stamp_util.c
+ SRC_LIST += ./service/sys_svc/profile/src/time_stamp_timer.c
+endif
+
+ifneq ($(filter __LTE_RAT__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += ./service/sys_svc/dspfm_lte/src/dspfm.c
+endif
+
+SRC_LIST += ./service/sys_svc/brom_ext/src/brom_ext.c
+
+###################################################################
+# Define include path lists to INC_DIR
+INC_DIR = ./service/sst/include \
+ ./service/sst/include \
+ $(strip $(PROJDIR))/verno \
+ ./service/ssf/inc \
+ ./service/sss/interface/inc \
+ driver/peripheral/inc \
+ driver/storage/flash/fdm/inc \
+ driver/sys_drv/cache/inc \
+ driver/sys_drv/cache/inc/$(MD_VER_FOLDER) \
+ driver/sys_drv/init/inc \
+ driver/sys_drv/pmu/inc \
+ ./service/sys_svc/region/inc \
+ ./service/sys_svc/excep_hdlr/inc \
+ ./service/sys_svc/gfh/public \
+ ./service/sys_svc/profile/inc \
+ ./service/sys_svc/dspfm_lte/inc \
+ interface/driver/regbase \
+ interface/driver/devdrv/busmpu \
+ ./interface/service/sst \
+ ./service/sys_svc/brom_ext/inc \
+ ./interface/service/mdmp \
+ ./interface/service/hif \
+ driver/sys_drv/mpu/inc/$(MD_VER_FOLDER)
+
+###################################################################
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWORK
+
+COMP_DEFS += $(strip $(PLATFORM))
+
+
+ifeq ($(strip $(NEED_BUILD_BOOTLOADER)),TRUE)
+ COMP_DEFS += __BL_ENABLE__
+endif
+
+ifeq ($(strip $(ENHANCED_SINGLE_BANK_NOR_FLASH_SUPPORT)),TRUE)
+ COMP_DEFS += SINGLE_BANK_SUPPORT
+endif
+
+ifeq ($(TS_PROFILING),TRUE)
+ COMP_DEFS += __TIME_STAMP__\
+ __TIME_STAMP_UTIL__\
+ __TIME_STAMP_TDMA_TIMER__\
+ __TIME_STAMP_FORCE_ENABLE__
+endif
+
+ifneq ($(filter __MD93__, $(strip $(MODULE_DEFS))),)
+ #COMP_DEFS += __USE_PSS__
+else ifneq ($(filter __MD95__ __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+ COMP_DEFS += __CERT_CHAIN_IMG__
+endif
+
+ifneq ($(strip $(COMPILER_ISA)),NANOMIPS)
+%/regioninit_c_gcc.obj: CFLAGS += -minline-intermix
+endif
+
+ifeq ($(strip $(LTO_BUILD)),TRUE)
+%/maui_GFH_body.obj: CFLAGS := $(filter-out -flto -fno-fat-lto-objects, $(CFLAGS))
+%/br_GFH_file_info.obj: CFLAGS := $(filter-out -flto -fno-fat-lto-objects, $(CFLAGS))
+%/br_GFH_parser.obj: CFLAGS := $(filter-out -flto -fno-fat-lto-objects, $(CFLAGS))
+endif
diff --git a/mcu/make/module/service/verno/extern/verno.mak b/mcu/make/module/service/verno/extern/verno.mak
new file mode 100644
index 0000000..f475bf7
--- /dev/null
+++ b/mcu/make/module/service/verno/extern/verno.mak
@@ -0,0 +1,12 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = $(strip $(PROJDIR))/verno/verno.c
+
+# Define include path lists to INC_DIR
+INC_DIR =
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = $(strip $(PROJDIR))/verno
+
diff --git "a/mcu/make/projects/MT2735_IVT\050NLWG_WIDE_TEMP_CUSTOM\051.mak" "b/mcu/make/projects/MT2735_IVT\050NLWG_WIDE_TEMP_CUSTOM\051.mak"
new file mode 100644
index 0000000..07836fc
--- /dev/null
+++ "b/mcu/make/projects/MT2735_IVT\050NLWG_WIDE_TEMP_CUSTOM\051.mak"
@@ -0,0 +1,3094 @@
+#
+# 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.
+#
+# MediaTek Inc.(C)2020.All rights reserved.
+#
+# 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.
+#
+# *************************************************************************
+
+# Generated at 2021-04-01 16:47:16
+
+NG_ECALL_SUPPORT = TRUE
+ # Value:TRUE
+ # Description: NG eCall enable
+ # Value:FALSE
+ # Description: NG eCall disable
+
+
+ECALL_SUPPORT = TRUE
+ # Value:TRUE
+ # Description: eCall enable
+ # Value:FALSE
+ # Description: eCall disable
+
+
+NR_CA_MAX_BW = 200M
+ # Value:100M
+ # Description : NR CA MAX BW is 100M
+ # Value:120M
+ # Description : NR CA MAX BW is 120M
+ # Value : 200M
+ # Description : NR CA MAX BW is 200M
+
+
+USB_MBIM_SUPPORT = FALSE
+ # Value:TRUE
+ # Description:Enable USB MBIM device
+ # Value:FALSE
+ # Description:Disable USB MBIM device
+
+
+SKIP_VG_OPTION_DURING_INIT = 0
+ # Value:0
+ # Description:Not support
+ # Value:1
+ # Description:skip VG_OPTION_1
+ # Value:2
+ # Description:skip VG_OPTION_2
+ # Value:4
+ # Description:skip VG_OPTION_3
+
+
+RRC_TELEMATICS_RXONLY_BAND_QUERY = FALSE
+ # Value:FALSE
+ # Description:Not support the feature
+ # Value:TRUE
+ # Description:Support the feature
+
+
+TELEMATICS_RXONLY_BAND_QUERY = FALSE
+ # Value:FALSE
+ # Description:Not support the feature of B30 Rx Only
+ # Value:TRUE
+ # Description:Support the feature of B30 Rx Only
+
+
+ENLARGE_BAT_OPTION = 0
+ # Description:
+ # BAT buffer size handshake between AP and MD
+ # Option Values:
+ # 0: BAT buffer size 8K
+ # 1: BAT buffer size 10K
+ # 2: BAT buffer size 12K
+ # 3: BAT buffer size 14K
+ # 4: BAT buffer size 16K
+ # 5: BAT buffer size 8K
+ # Switch-ability:
+ # Non-switchable
+
+
+IVT_COTMS_TELEMATICS_SUPPORT = TRUE
+ # Value:FALSE
+ # Description:Not support this feature
+ # Value:TRUE
+ # Description:Support this feature
+
+
+IVT_RF_WIDE_TEMPERATURE_SUPPORT = TRUE
+ # Value:FALSE
+ # Description:Not support this feature
+ # Value:TRUE
+ # Description:Support this feature
+
+
+AES256_SUPPORT = FALSE
+ # Description:
+ # use aes256 to encrypt/decrypt
+ # Option Values:
+ # FALSE: don't use aes 256 to encrypt/decrypt
+ # TRUE: use aes 256 to encrypt/decrypt
+ # Switch-ability:
+ # Switchable
+
+AT_SLA_ENHANCEMENT = TRUE
+ # Description:
+ # Add SLA to enhance AT command protection
+ # Option Values:
+ # BIND_TO_AP_SBC_EN: Enable AT SLA according to AP SBC setting
+ # FALSE: AT SLA is disabled
+ # TRUE: AT SLA is enabled
+ # Switch-ability:
+ # Switchable
+
+CHK_ENV_FLAG = TRUE
+ # Description:
+ # to check build environment and tool chain version
+ # Option Values:
+ # FALSE: need to check build environment and tool chain version;
+ # show WARNING if the environment is not recommended.
+ # TRUE: need to check build environment and tool chain version;
+ # show error if the environment is not recommended.
+ # Switch-ability:
+ # Switchable
+
+DEFAULT_WORLD_MODE_ID = 121
+ # Description:
+ # Default World Mode ID for projects which support Universal Bin
+ # Option Values:
+ # 121: NLWG
+ # 123: NLWTG
+ # 125: NLWCG
+ # 127: NLWCTG
+ # 19: LtTG
+ # 51: LTG
+ # 57: LWG
+ # 59: LWTG
+ # 61: LWCG
+ # 63: LWCTG
+ # Switch-ability:
+ # Switchable
+
+DSDA = FALSE
+ # Description:
+ # Determine whether to enable DSDA
+ # Option Values:
+ # FALSE: Disable DSDA
+ # TRUE: Enable DSDA
+ # Switch-ability:
+ # Switchable
+
+DUAL_SIM_HOT_SWAP_CO_DECK = FALSE
+ # Description:
+ # support SIM hot swap in the SAME deck
+ # Option Values:
+ # FALSE: support dual SIM card hot plug in different deck
+ # TRUE: Support dual SIM card hot plug in the same deck
+ # Switch-ability:
+ # Switchable
+
+EVS_MAX_BW = SWB
+ # Description:
+ # EVS maximum bandwidth configuration
+ # Option Values:
+ # FB: Fullband
+ # SWB: Super-wideband
+ # WB: Wideband
+ # Switch-ability:
+ # Switchable
+
+HIF_MHCCIF_SUPPORT = FALSE
+ # Description:
+ # Description:
+ # For support hardware interface MHCCIF
+ # Option Values:
+ # TRUE: Support MHCCIF interface
+ # FALSE: Not support MHCCIF interface
+ # Switch-ability:
+ # Non-switchable
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Switchable
+
+HTTP_TLS_SUPPORT = TRUE
+ # Description:
+ # Feature option to enable/disable HTTP_TLS module in MD
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Switchable
+
+IMS_OTA_MESSAGE_SUPPORT = TRUE
+ # Description:
+ # IMS_OTA_MESSAGE_SUPPORT is used to control SIP view in ELT and this function is only limited provision to authorized customers
+ # Option Values:
+ # FALSE: Disable this function in MD load then ELT can't show send/recv SIP messages in ELT
+ # This is default behavior to generic customer
+ # TRUE: Enable this function in MD load then ELT can show send/recv SIP messages in ELT
+ # Switch-ability:
+ # Switchable
+
+META_SLA_ENHANCEMENT = SLA_BIND_TO_AP_SBC
+ # Description:
+ # Add SLA to enhance META protection
+ # Option Values:
+ # SLA_BIND_TO_AP_SBC: SLA is enabled according to AP SBC setting
+ # SLA_BIND_TO_SBC: SLA is enabled according to MD SBC setting
+ # SLA_OFF: SLA is disabled
+ # SLA_ON: SLA is enabled
+ # Switch-ability:
+ # Switchable
+
+MMRF_GOLDEN_CALDATA_FOR_OTA_ROUTE_SUPPORT = FALSE
+ # Description:
+ # OTA new route with golden calibration data.
+ # This feature need format NVRAM when False -> TRUE.
+ # Option Values:
+ # FALSE: Not support OTA new route with golden calibration data.
+ # TRUE: Support OTA new route with golden calibration data.
+ # Switch-ability:
+ # Switchable
+
+NOT_BENEFIT_FROM_BATTERY_CONSUMPTION_OPTIMISATION = TRUE
+ # Description:
+ # FALSE: UE benefits from battery consumption optimisation mechanism from network, e.g. mobile phone # TRUE: UE doesn't benefit from battery consumption optimisation mechanism from network, e.g. data card
+ # Option Values:
+ # FALSE: UE benefits from battery consumption optimisation mechanism from network, e.g. mobile phone
+ # TRUE: UE doesn't benefit from battery consumption optimisation mechanism from network, e.g. data card
+ # Switch-ability:
+ # Switchable
+
+NVM_GLOBAL_CABC = FALSE
+ # Description:
+ # Global SKU CA band customization for Colgin
+ # Option Values:
+ # FALSE: feature disable
+ # TRUE: feature enable
+ # Switch-ability:
+ # Switchable
+
+NVRAM_AUTOGEN_V2 = TRUE
+ # Description:
+ # To decide whether use the new NVRAM autogen refactoried by the script language rather C language
+ # Option Values:
+ # FALSE: Use the origianal Autogen
+ # TRUE: Use the new NVRAM autogen
+ # Switch-ability:
+ # Switchable
+
+NVRAM_LID_CACHE = TRUE
+ # Description:
+ # MD NVRAM static cache is used to improve NVRAM access performance. It will buffer NVRAM LIDs in DRAM.
+ # Option Values:
+ # FALSE: Disable NVRAM LID cache feature
+ # TRUE: Enable NVRAM LID feature
+ # Switch-ability:
+ # Switchable
+
+NVRAM_LID_CHECK = TRUE
+ # Description:
+ # Check the nvram LID with previous version
+ # Option Values:
+ # FALSE: Do NOT check the LID with previous version
+ # TRUE: Check the LID with previous version
+ # Switch-ability:
+ # Switchable
+
+NVRAM_OTA_SMART_RESET = TRUE
+ # Description:
+ # Auto reset LID to default if LID structure change or default value change.
+ # Option Values:
+ # FALSE: Disable this feature.
+ # TRUE: Enable this feature.
+ # Switch-ability:
+ # Switchable
+
+NVRAM_PARTIAL_CACHE = TRUE
+ # Description:
+ # MD NVRAM partial static cache is used to improve NVRAM access performance. It will buffer NVRAM LIDs in DRAM.
+ # Option Values:
+ # FALSE: Disable NVRAM partial static cache feature
+ # TRUE: Enable NVRAM partial static cache feature
+ # Switch-ability:
+ # Switchable
+
+NV_CHKSUM_ENHANCE = TRUE
+ # Description:
+ # This feature option is control NVRAM whether support checksum enhances algorithm.
+ # Option Values:
+ # FALSE: Disable NVRAM checksum enhances algorithm
+ # TRUE: Enable NVRAM checksum enhances algorithm.
+ # Switch-ability:
+ # Switchable
+
+OTP_SUPPORT = FALSE
+ # Description:
+ # Support One-Time-Programming area for the flash device
+ #
+ # Notify:
+ # If OTP_SUPPORT = TRUE
+ #
+ # Please also modify AP part :
+ # <EMMC>
+ # Please set /mediatek/config/[project]/ProjectConfig.mk
+ # MTK_EMMC_SUPPORT_OTP = YES
+ #
+ # <NAND>
+ # Please set /mediatek/config/[project]/ProjectConfig.mk
+ # NAND_OTP_SUPPORT = YES
+ #
+ # Relative doc could be download from
+ # http://dms.mediatek.inc:80/webtop/drl/objectId/0900006f8056690f
+ # Option Values:
+ # FALSE: Disable One-Time Program Support
+ # TRUE: Enable One-Time Program Support
+ # Switch-ability:
+ # Switchable
+
+RFC_ROUTE_SIZE_OPTION = RFC_ROUTE_SIZE_DEFAULT
+ # Description:
+ # Option to adjust Self-K route size based on custom setting. This setting will affect NVRAM size/format.
+ # Option Values:
+ # RFC_ROUTE_SIZE_DEFAULT: Default Setting, suitable for general case.
+ # RFC_ROUTE_SIZE_MT6880_GLOBAL: Option setting for MT6880 Global Sku.
+ # Switch-ability:
+ # Switchable
+
+SECURE_CUSTOM_NAME = MTK
+ # Description:
+ # Support security system
+ # Option Values:
+ # JRD: .
+ # MTK: Customer name for MTK
+ # NONE: No customer name specified, non secure load only
+ # Switch-ability:
+ # Switchable
+
+SIM_DRV_RETRY_3V_WHEN_SIM_RECOVERY = TRUE
+ # Description:
+ # To enable 3V retry when SIM recovery happen
+ # Option Values:
+ # FALSE: disable
+ # TRUE: Enable
+ # Switch-ability:
+ # Switchable
+
+SIM_GET_CARD_DETECT_STATUS_SUPPORT = FALSE
+ # Description:
+ # enable/disable sim card status detect feature
+ # Option Values:
+ # TRUE/FALSE: TRUE: enable SIM card status detect feature
+ # FALSE: disable SIM card status detect feature
+ # Switch-ability:
+ # Switchable
+
+SOE_EVP_SUPPORT = TRUE
+ # Description:
+ # Enable SOE (Security Offload Engine) to speed up EVP software crypto performance.
+ # Option Values:
+ # FALSE: Disable SOE EVP Support
+ # TRUE: Enable SOE EVP Support
+ # Switch-ability:
+ # Switchable
+
+XCAP_SUPPORT = TRUE
+ # Description:
+ # XCAP/Ut for IMS SS
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Switchable
+
+
+# =========================================================================
+# Non-Switchable Feature Option
+# =========================================================================
+BOARD_VER = MT2735_IVT
+ # Description:
+ # Name of the PCB or EVB.
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+CCCI_DEV_SUPPORT = TRUE
+ # Description:
+ # Used to enable CCCI device related components, CCCITTY, CCCI_CCMNI, CCCI_FS.
+ # Option Values:
+ # FALSE: CCCI device related components will not be built.
+ # TRUE: CCCI device related components will be built.
+ # Switch-ability:
+ # Non-switchable
+
+CCCI_FS_SUPPORT = TRUE
+ # Description:
+ # Use to enable CCCI FS related component
+ # Option Values:
+ # FALSE: CCCI FS related components will not be built.
+ # TRUE: CCCI FS related components will be built.
+ # Switch-ability:
+ # Non-switchable
+
+CNAP_SUPPORT = FALSE
+ # Description:
+ # Enable/Disable Name identification supplementary services feature (TS22.096) support
+ # Option Values:
+ # FALSE: Turn off CNAP
+ # TRUE: Turn on CNAP
+ # Switch-ability:
+ # Non-switchable
+
+COMPILER = GCC
+ # Description:
+ # RVCT or ADS
+ # Option Values:
+ # ADS: Use ARM ADS tool chain.
+ # GCC: Use GNU GCC tool chain (Mentor Sourcery 2010.09 , 4.5.1)
+ # RVCT: Use ARM RVCT tool chain
+ # Switch-ability:
+ # Non-switchable
+
+COMPILER_ARCH = MIPS
+ # Description:
+ # distinguish between ARM and MIPS
+ # Option Values:
+ # ARM: use arm instruction
+ # MIPS: use mips instruction
+ # Switch-ability:
+ # Non-switchable
+
+COMPILER_ISA = NANOMIPS
+ # Description:
+ # Option to choose between MIPS32 and MIPS16 compiler ISA.
+ # Option Values:
+ # MIPS16: Use MIPS16 ISA
+ # MIPS32: Use MIPS32 ISA (default)
+ # Switch-ability:
+ # Non-switchable
+
+CUSTOM_FLAVOR = NLWCTG_SAP
+ # Description:
+ # custom folder flavor setting
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+DEBUG_ASSERT_SUPPORT = FALSE
+ # Description:
+ # Controls DEBUG_ASSERT functionality
+ # When enabled (set as TRUE) DEBUG_ASSERT will trig exception.
+ # When disabled (set as FALSE) DEBUG_ASSERT will NOT trig exception.
+ # Option Values:
+ # FALSE: Disable DEBUG_ASSERT (no exception triggered)
+ # TRUE: Enable DEBUG_ASSERT (trig exception)
+ # Switch-ability:
+ # Non-switchable
+
+DHL_SUPPORT = TRUE
+ # Description:
+ # debug and high performance logging
+ # Option Values:
+ # FALSE: Disable DHL support
+ # TRUE: Enable DHL support
+ # Switch-ability:
+ # Non-switchable
+
+DSP_FLAVOR = DEFAULT_ASIC_TELEMATICS
+ # Description:
+ # DSP_FLAVOR is DSP flavor name.
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+DSP_PROJECT = CHIP10992
+ # Description:
+ # DSP_PROJECT is DSP project name.
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+DVFS_ENABLE = TRUE
+ # Description:
+ # DVFS mode enable or not
+ # Option Values:
+ # FALSE: DVFS mode disable
+ # TRUE: DVFS mode enable
+ # Switch-ability:
+ # Non-switchable
+
+DYNAMIC_ANTENNA_TUNING = FALSE
+ # Description:
+ # Dynamic Antenna Tuning (DAT)
+ # Control antenna tuner and antenna switch component dynamically according to AP events
+ # Option Values:
+ # FALSE: Not support DAT
+ # TRUE: Support DAT
+ # Switch-ability:
+ # Non-switchable
+
+EDGE_CLASS_10 = FALSE
+ # Description:
+ # This is for AT&T requirement that Handset can only have multislot class 10. However our default setting is multielost class 12. So we need this feature option to let customer open this feature if they want to pass AT&T cases
+ # Option Values:
+ # FALSE: GPRS Multislot Class 12
+ # TRUE: GPRS Multislot Class 10
+ # Switch-ability:
+ # Non-switchable
+
+ET_SMART_CHAR_SUPPORT = TRUE
+ # Description:
+ # Customer can use this option to enable better tuning flow for ET.
+ # Option Values:
+ # FALSE: To disable ET SMART CHAR
+ # TRUE: To enable ET SMART CHAR
+ # Switch-ability:
+ # Non-switchable
+
+FCS_SUPPORT = FALSE
+ # Description:
+ # Support for Field Capture System. See fcs.mediatek.inc. This MUST NOT be TRUE in PRODUCTION/CUSTOMER releases
+ # Option Values:
+ # FALSE: FCS is disabled
+ # TRUE: FCS is enabled
+ # Switch-ability:
+ # Non-switchable
+
+FDD_EDCH_PHYSICAL_CATEGORY = 7
+ # Description:
+ # Define the HSUPA category in makefile. However, the actual category UE uses is the minimum of this one and the one queried from HW
+ # Option Values:
+ # 1: EDCH category = 1
+ # 2: EDCH category = 2
+ # 3: EDCH category = 3
+ # 4: EDCH category = 4
+ # 5: EDCH category = 5
+ # 6: EDCH category = 6
+ # Switch-ability:
+ # Non-switchable
+
+FDD_HSDSCH_PHYSICAL_CATEGORY = 24
+ # Description:
+ # Define the HSDPA category in makefile. However, the actual category UE uses is the minimum of this one and the one queried from HW
+ # Option Values:
+ # 1: HSDSCH category = 1
+ # 10: HSDSCH category = 10
+ # 11: HSDSCH category = 11
+ # 12: HSDSCH category = 12
+ # 2: HSDSCH category = 2
+ # 3: HSDSCH category = 3
+ # 4: HSDSCH category = 4
+ # 5: HSDSCH category = 5
+ # 6: HSDSCH category = 6
+ # 7: HSDSCH category = 7
+ # 8: HSDSCH category = 8
+ # 9: HSDSCH category = 9
+ # Switch-ability:
+ # Non-switchable
+
+GEMINI_L = 2
+ # Description:
+ # Description:
+ # Description:
+ # To identify if this project uses a "Single chip-dual SIM" solution.
+ # indicate the L count
+ # Option Values:
+ # 4: Enable 4 SIMs, single talk.
+ # 3: Enable 3 SIMs, single talk.
+ # FALSE: Disable this feature
+ # 2: Enable 2 SIMs, single talk.
+ # Switch-ability:
+ # Non-switchable
+ # Option Values:
+ # FALSE: Disable this feature
+ # 2: Enable 2 SIMs, single talk.
+ # 3: Enable 3 SIMs, single talk.
+ # 4: Enable 4 SIMs, single talk.
+ # Switch-ability:
+ # Non-switchable
+ # Option Values:
+ # 2: Enable 2 SIMs, single talk
+ # 3: Enable 3 SIMs, single talk
+ # 4: Enable 4 SIMs, single talk
+ # FALSE: Disable this feature
+ # Switch-ability:
+ # Non-switchable
+
+GEMINI_VERSION = V2
+ # Description:
+ # This option is for Gemini version control.
+ # V1: Gemini1.0
+ # V2: Gemini2.0 (Only for dual SIM)
+ # Option Values:
+ # V1: Gemini 1.0
+ # V2: Gemini 2.0
+ # Switch-ability:
+ # Non-switchable
+
+GPRS_CLASS_10 = FALSE
+ # Description:
+ # This is for AT&T requirement that Handset can only have multislot class 10. However our default setting is multielost class 12. So we need this feature option to let customer open this feature if they want to pass AT&T cases
+ # Option Values:
+ # FALSE: GPRS Multislot Class 12
+ # TRUE: EDGE Multislot Class 10
+ # Switch-ability:
+ # Non-switchable
+
+GSM_EM_TX_POWER_CONTROL_SUPPORT = FALSE
+ # Description:
+ # Depend on this option to distinguish whether EM TX POWER CONTROL is support or not
+ # Option Values:
+ # FALSE: #EM TX POWER CONTROL IS NOT supported
+ # TRUE: #EM TX POWER CONTROL IS supported
+ # Switch-ability:
+ # Non-switchable
+
+HIF_CCCI_SUPPORT = TRUE
+ # Description:
+ # Used to enable CCCI Core related components.
+ # Option Values:
+ # FALSE: CCCI core related components wiil not be built
+ # TRUE: CCCI core related components will be built.
+ # Switch-ability:
+ # Non-switchable
+
+HIF_CCISM_SUPPORT = TRUE
+ # Description:
+ # For support hardware interface CCISM
+ # Option Values:
+ # FALSE: Not support CCISM interface
+ # TRUE: Support CCISM interface
+ # Switch-ability:
+ # Non-switchable
+
+HIF_DPMAIF_SUPPORT = TRUE
+ # Description:
+ # Used to describe whether DPMAIFdriver is supported or not.
+ # Option Values:
+ # FALSE: DPMAIF driver is not support
+ # TRUE: DPMAIF driver is support
+ # Switch-ability:
+ # Non-switchable
+
+HIF_PCCIF_ARM7_SUPPORT = FALSE
+ # Description:
+ # For support hardware interface PCCIF_ARM7
+ # Option Values:
+ # FALSE: Not support PCCIF_ARM7 interface
+ # TRUE: Support PCCIF_ARM7 interface
+ # Switch-ability:
+ # Non-switchable
+
+HIF_SECPCCIF_SUPPORT = TRUE
+ # Description:
+ # For support hardware interface security PCCIF
+ # Option Values:
+ # FALSE: Not support security PCCIF interface
+ # TRUE: Support security PCCIF interface
+ # Switch-ability:
+ # Non-switchable
+
+HIF_UART_SUPPORT = FALSE
+ # Description:
+ # description:
+ #
+ # used to enable UART Core related components, UARTCORE.
+ #
+ # Option Values:
+ #
+ # TRUE: UART core related components will be built.
+ #
+ # FALSE: UARTcore related components will not be built.
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+HIF_USB30_SUPPORT = FALSE
+ # Description:
+ # Enable HIF USB 3.0 feature
+ # Option Values:
+ # FALSE: Disable USB 3.0 -> run in USB 2.0
+ # TRUE: Enable USB 3.0
+ # Switch-ability:
+ # Non-switchable
+
+HIF_USB_ENUM_PORT_FOR_AP = FALSE
+ # Description:
+ # Used to enable USB enumeration AP port feature
+ # Option Values:
+ # FALSE: disable USB enumeration AP port feature
+ # TRUE: enable USB enumeration AP port feature
+ # Switch-ability:
+ # Non-switchable
+
+HIF_USB_SUPPORT = FALSE
+ # Description:
+ # Enable HIF USB feature
+ # Option Values:
+ # FALSE: Disable HIF USB
+ # TRUE: Enable HIF USB
+ # Switch-ability:
+ # Non-switchable
+
+HIF_WCCIF_SUPPORT = FALSE
+ # Description:
+ # For support hardware interface WCCIF (CCIF of WR8)
+ # Option Values:
+ # FALSE: Not support WCCIF interface
+ # TRUE: Support WCCIF interface
+ # Switch-ability:
+ # Non-switchable
+
+ICD_SUPPORT = TRUE
+ # Description:
+ # An Interface Control Document (ICD) provides a unified information generated from modem platform
+ # Option Values:
+ # FALSE: Disable Modem ICD feature
+ # TRUE: Enable Modem ICD feature
+ # Switch-ability:
+ # Non-switchable
+
+IMS_GEN_CFG = NONE
+ # Description:
+ # IMS_GEN_CFG is IMS gen config.
+ # Option Values:
+ # GEN90_ENG: 90 generation eng
+ # GEN90_USER: 90 generation user
+ # GEN91_ENG: 91 generation eng
+ # GEN91_USER: 91 generation user
+ # GEN92_ENG: 92 generation eng
+ # GEN92_USER: 92 generation user
+ # GEN93_ENG: 93 generation eng
+ # GEN93_USER: 93 generation user
+ # NONE: no ims
+ # Switch-ability:
+ # Non-switchable
+
+IMS_SUPPORT = TRUE
+ # Description:
+ # Description:
+ # This is for VoLTE project
+ # Option Values:
+ # NONE: Not support for IMS feature
+ # TRUE: support for IMS feature
+ # Switch-ability:
+ # Non-switchable
+ # Option Values:
+ # FALSE: Disable IMS capability
+ # TRUE: Enable IMS capability
+ # Switch-ability:
+ # Non-switchable
+
+L1D_LOOPBACK = 0
+ # Description:
+ # enable WCDMA phase 3 co-sim load
+ # Option Values:
+ # 0: internal use
+ # 2: internal use
+ # Switch-ability:
+ # Non-switchable
+
+L1_CATCHER = TRUE
+ # Description:
+ # to enable L1 logging.
+ # Option Values:
+ # FALSE: Disable
+ # TRUE: Enable
+ # Switch-ability:
+ # Non-switchable
+
+L1_GPS_REF_TIME_SUPPORT = TRUE
+ # Description:
+ # To enable GPS-L1 reference fine time measurement
+ # Option Values:
+ # FALSE: LI GPS timing synch feature is not supported
+ # TRUE: LI GPS timing synch feature is supported
+ # Switch-ability:
+ # Non-switchable
+
+LNA_IDX_NUM_EXTENSION_SUPPORT = TRUE
+ # Description:
+ # Increase enum of LNA index from 28 to 32
+ # TRUE: support
+ # FALSE: not support
+ # Option Values:
+ # FALSE: Not support this feature(up to 28 LNA index)
+ # TRUE: Support this feature (up to 32 LNA index)
+ # Switch-ability:
+ # Non-switchable
+
+LTE_DOWNLINK_CAT = DL_CAT_19
+ # Description:
+ # LTE downlink category selection.
+ # This will affect the footprint size.
+ # (buffers & tables used by different category)
+ # Option Values:
+ # DL_CAT_12: max DL 3CC 256QAM, DL tput <= 600
+ # (including DL_CAT13 for 2CC 256QAM, DL_CAT13=400)
+ # DL_CAT_13: max DL 2CC 256QAM, DL tput <= 400
+ # DL_CAT_16: max DL 4CC 256QAM, DL tput <= 1000
+ # DL_CAT_18: max DL 5CC 256QAM, DL tput <= 1200
+ # DL_CAT_19: max DL 5CC 256QAM, DL tput <=1600
+ # DL_CAT_4: max DL 1CC 64QAM, DL tput <= 150
+ # DL_CAT_7: max DL 2CC 64QAM, DL tput <= 300
+ # NONE: NONE (default = DL_CAT_4)
+ # Switch-ability:
+ # Non-switchable
+
+LTE_GTT_SUPPORT = TRUE
+ # Description:
+ # To turn on/off 4G GTT feature
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Enable this feature
+ # Switch-ability:
+ # Non-switchable
+
+LTE_MAX_EPSB_SUPPORT = 8
+ # Description:
+ # LTE bearer number, MAX_EXT_PDP_CONTEXT = max(GPRS_MAX_PDP_SUPPORT, LTE_MAX_EPSB_SUPPORT)
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+LTE_REPORT_CAP_AS_RELEASE = DEFAULT
+ # Description:
+ # Set the release version of UECapabilityInformation.
+ # Option Values:
+ # AS_REL_10: Report UE Capability to Release 10
+ # AS_REL_11: Report UE Capability to Release 11
+ # DEFAULT: Report Default Version of UE Capability
+ # Switch-ability:
+ # Non-switchable
+
+LTE_RF_MODULE = MT2735_LTE_MT6190_WIDE_TEMP_CUSTOM
+ # Description:
+ # Describe the LTE RF module used in this project
+ # For example:
+ # LTE_RF_MODULE = MT6169_LTE
+ # Option Values:
+ # MT6169_LTE: The RF module name for LTE
+ # NONE: Default settings if there is no need to define the LTE RF module
+ # Switch-ability:
+ # Non-switchable
+
+LTE_UPLINK_CAT = UL_CAT_18
+ # Description:
+ # LTE uplink category selection.
+ # This will affect the footprint size.
+ # (buffers & tables used by different category)
+ # Option Values:
+ # NONE: NONE (default = UL_CAT_5)
+ # UL_CAT_13: max UL 2CC 64QAM, UL tput <= 150
+ # UL_CAT_15: max UL 3CC 64QAM, UL tput <= 225
+ # UL_CAT_18: max UL 2CC 256QAM, UL tput <= 200
+ # UL_CAT_20: max UL 3CC 256QAM, UL tput <= 300
+ # UL_CAT_5: max UL 1CC 64QAM, UL tput <= 75
+ # Switch-ability:
+ # Non-switchable
+
+MCD_CODESET_SHIFT_SUPPORT = 440000
+ # Description:
+ # NONE: if Codeset Shift not support
+ # 440000: if Codeset shift support by Docomo (Plmn ID: 440000) You can enumerate all suitable support plmn
+ # Option Values:
+ # 440000: not support codec shift
+ # NONE: support codec shift for DOCOMO LAB test
+ # Switch-ability:
+ # Non-switchable
+
+MCF_SUPPORT = TRUE
+ # Description:
+ # To turn on/off MCF feature
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+MINIDUMP_SYMBOL_CLEAR_SUPPORT = FALSE
+ # Description:
+ # Enable / disable Minidump symbol clearing functionality
+ # Option Values:
+ # FALSE: Disable Minidump symbol clearing functionality
+ # TRUE: Enable Minidump symbol clearing functionality
+ # Switch-ability:
+ # Non-switchable
+
+MMRF_ROUTE_SIZE_ORDER = MMRF_ROUTE_SIZE_ORDER_LEVEL_GLOBAL
+ # Description:
+ # Based on SKU requirement, route size order can be selected by customer, which divided into several types, such as low, middle, high.
+ # Option Values:
+ # MMRF_ROUTE_SIZE_ORDER_LEVEL_GLOBAL: Route size order for global sku
+ # MMRF_ROUTE_SIZE_ORDER_LEVEL_GLOBAL_L1: Route size order is level 1 of level global
+ # MMRF_ROUTE_SIZE_ORDER_LEVEL_H_L1: Route size order is level 1 of level high
+ # MMRF_ROUTE_SIZE_ORDER_LEVEL_UH_L3: Route size order is level 3 of level ultra high
+ # Switch-ability:
+ # Non-switchable
+
+MM_RF_MODULE = MT2735_MMRF_MT6190_WIDE_TEMP_CUSTOM
+ # Description:
+ # Describe the Multi-Mode RF module used in this project for Customization
+ # Option Values:
+ # NONE: Default settings if there is no need to define
+ # Switch-ability:
+ # Non-switchable
+
+MODEM_SPEC = MTK_MODEM_NLWG
+ # Description:
+ # MTK modem spec type
+ # Option Values:
+ # MTK_MODEM_2G_EDGE: MTK 2G EDGE modem
+ # MTK_MODEM_3G_TDD: MTK 3G TD modem
+ # MTK_MODEM_3G_WCDMA: MTK 3G WCDMA modem
+ # MTK_MODEM_4G_LTE_MM_TDD: MTK 4G LTE-TD-EDGE multi-mode modem
+ # MTK_MODEM_4G_LTE_MM_WCDMA: MTK 4G LTE-WCDMA-EDGE multi-mode modem
+ # MTK_MODEM_4G_LTE_SM: MTK 4G LTE single mode modem
+ # MTK_MODEM_G: MTK 2G EDGE modem
+ # MTK_MODEM_LTG: MTK 4G LTE / 3G TDSCDMA modem
+ # MTK_MODEM_LWCTG: FDD-LTE/TDD-LTE/WCDMA/CDMA2000/TDSCDMA/GSM
+ # MTK_MODEM_LWG: MTK 4G LTE / 3G WCDMA modem
+ # MTK_MODEM_LWTG: FDD-LTE/TDD-LTE/WCDMA/TDSCDMA/GSM
+ # MTK_MODEM_LfTG: MTK 4G FDD-LTE / 3G TDSCDMA modem
+ # MTK_MODEM_LfWG: MTK 4G FDD-LTE / 3G WCDMA modem
+ # MTK_MODEM_LtTG: MTK 4G TDD-LTE / 3G TDSCDMA modem
+ # MTK_MODEM_LtWG: MTK 4G TDD-LTE / 3G WCDMA modem
+ # MTK_MODEM_TG: MTK 3G TDSCDMA modem
+ # MTK_MODEM_WG: MTK 3G WCDMA modem
+ # Switch-ability:
+ # Non-switchable
+include make/common/modem_spec/$(strip $(MODEM_SPEC)).mak
+
+MTK_AUDIO_HIERARCHICAL_PARAM_SUPPORT = TRUE
+ # Description:
+ # NEW SPE architecture
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+MTK_MODEM_ARCH = MT6297
+ # Description:
+ # MTK MODEM ARCHITECTURE
+ # Option Values:
+ # MT6291: MT6291
+ # MT6291M: MT6291M
+ # MT6291P: MT6291P
+ # MT6293: MT6293
+ # MT6295: MT6295
+ # MT6297: MT6297
+ # MT6298: MT6298
+ # MT6298P: MT6298P
+ # Switch-ability:
+ # Non-switchable
+
+MULTIPLE_PS = FALSE
+ # Description:
+ # Turn on/off multiple PS attach feature
+ # Option Values:
+ # FALSE: Turn off Muliple PS attach feature
+ # TRUE: Turn on Muliple PS attach feature
+ # Switch-ability:
+ # Non-switchable
+
+N3GPP_OFFLOAD_ENABLE = FALSE
+ # Description:
+ # Non-3GPP and 3GPP inter-working
+ # Option Values:
+ # FALSE: disable N3GPP offloading functions
+ # TRUE: enable N3GPP offloading functions
+ # Switch-ability:
+ # Non-switchable
+
+NR_70M_SUPPORT = FALSE
+ # Description:
+ # This is Gen97 MP6 feature.Before turn on, Please check Calibration data of N41 80M is existed if N41 is supported
+ # Before turn on, Please check Calibration data of N78 80M is existed if N78 is supported
+ # Option Values:
+ # FALSE: Disable the NR bandwidth 70M modem capability
+ # TRUE: Enable the NR bandwidth 70M modem capability
+ # Switch-ability:
+ # Non-switchable
+
+NR_N1_40M_50M_SUPPORT = FALSE
+ # Description:
+ # This is Gen97 MP6 feature.Before turn on, Please check Calibration data of N1 40M is existed if N1 is supported
+ # Before turn on, Please check Calibration data of N1 60M is existed if N1 is supported
+ # Option Values:
+ # FALSE: Disable the N1 40M & N1 50M modem capability
+ # TRUE: Enable the N1 40M & N1 50M modem capability
+ # Switch-ability:
+ # Non-switchable
+
+NR_N25_40M_SUPPORT = FALSE
+ # Description:
+ # This is Gen97 MP7 feature.Before turn on, Please check Calibration data of N25 40M is existed if N25 is supported
+ # Option Values:
+ # FALSE: Disable the N25 25M/30M/40M modem capability
+ # TRUE: Enable the N25 25M/30M/40M modem capability
+ # Switch-ability:
+ # Non-switchable
+
+NR_N28_30M_SUPPORT = FALSE
+ # Description:
+ # Support NR N28 30M or not. This is Gen97 MP6 feature. Before turn on, Please check Calibration data of N28 40M is existed if N28 is supported
+ # Option Values:
+ # FALSE: Disable the NR N28 30M modem capability
+ # TRUE: Enable the NR N28 30M modem capability
+ # Switch-ability:
+ # Non-switchable
+
+NR_N3_40M_SUPPORT = FALSE
+ # Description:
+ # This is Gen97 MP7 feature.Before turn on, Please check Calibration data of N3 40M is existed if N3 is supported
+ # Option Values:
+ # FALSE: Disable the N3 40M modem capability
+ # TRUE: Enable the N3 40M modem capability
+ # Switch-ability:
+ # Non-switchable
+
+NR_PLUS_LTE_ONLY = TRUE
+ # Description:
+ # Value:TRUE
+ # Description: only enable NR plus LTE.
+ # Value:FALSE
+ # Description: apply default setting.
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+NR_RELEASE_SUPPORT = NR_V15_5_1_RELEASE
+ # Description:
+ # Defines supported 3GPP 38.331 version.
+ # Option Values:
+ # NONE: None
+ # NR_V15_1_0_RELEASE: TS 38.331 v15.1.0 (2018-03)
+ # NR_V15_2_1_RELEASE: TS 38.331 v15.2.1 (2018-06)
+ # NR_V15_3_0_RELEASE: TS 38.331 v15.3.0 (2018-09)
+ # NR_V15_4_0_RELEASE: TS 38.331 v15.4.0 (2018-12)
+ # NR_V15_5_1_RELEASE: TS 38.331 v15.5.1 (2019-03)
+ # NR_V15_6_0_RELEASE: TS 38.331 v15.6.0 (2019-06)
+ # Switch-ability:
+ # Non-switchable
+
+NR_RF_MODULE = MT2735_NR_MT6190_WIDE_TEMP_CUSTOM
+ # Description:
+ # Describe the NR RF module used in this project
+ # For example:
+ # NR_RF_MODULE = MT6190_NR
+ # Option Values:
+ # MT6190_NR: The RF module name for NR
+ # NONE: Default settings if there is no need to define the NR RF module
+ # Switch-ability:
+ # Non-switchable
+
+NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT = TRUE
+ # Description:
+ # Description:
+ # For 2G NSFT Adujst TX Power Offset Compensation
+ # Option Values:
+ # TRUE:Support 2G NSFT Adujst TX Power Offset Compensation
+ # FALSE:Not Support 2G NSFT Adujst TX Power Offset Compensation
+ # Visible-ability:
+ # Visible
+ # Switch-ability
+ # Non-switchable
+ # Modify-ability
+ # Modifiable
+ # Option Values:
+ # FALSE: #Description:Disable NSFT Adjust DAC Compensation Feature
+ # TRUE: #Description:Enable NSFT Adjust DAC Compensation Feature
+ # Switch-ability:
+ # Non-switchable
+
+NVRAM_SUPPORT = TRUE
+ # Description:
+ # To turn on/off NVRAM module.
+ # Option Values:
+ # FALSE: To disable NVRAM module
+ # TRUE: To enable NVRAM module
+ # Switch-ability:
+ # Non-switchable
+
+ORIGINAL_FLAVOR = NLWG_WIDE_TEMP_CUSTOM
+ # Description:
+ # Project original flavor setting (for customer project reference only)
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+ORIGINAL_PROJECT_NAME = MT2735_IVT
+ # Description:
+ # Project original name setting (for customer project reference only)
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+PLMN_LIST_PREF_SUPPORT = DEFAULT
+ # Description:
+ # PLMN List EM mode setting
+ # Option Values:
+ # DEFAULT: PLMN list mode can be selected except low cost, L1S project.
+ # OFF: PLMN List mode can not be selected by EM mode
+ # ON: Let PLMN List mode, accuracy or speed, can be selected by EM mode
+ # Switch-ability:
+ # Non-switchable
+
+PRODUCTION_RELEASE = TRUE
+ # Description:
+ # Specify if production released is turned on.
+ # If it is enabled, some system code will be effected, like
+ # 1. Watchdog enabled, and must be restared each time context switch;
+ # 2. Handset silent reboot if system comes across with exception;
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Disable this feature
+ # Switch-ability:
+ # Non-switchable
+
+RF_DRDI_SPECIAL_MEMORY_SUPPORT = FALSE
+ # Description:
+ # this feature option is for extend DRDI to support HTC request
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Enable this feature
+ # Switch-ability:
+ # Non-switchable
+
+RTOS = MERTOS
+ # Description:
+ # The RTOS used in the load
+ # Option Values:
+ # MERTOS: Use MERTOS as OS
+ # NUCLEUS_V2: Use Nucleus 2.x as the OX
+ # NUCLEUS_V3: Use Nucleus 3 as the OS
+ # Switch-ability:
+ # Non-switchable
+
+SAR_TX_POWER_BACKOFF_BY_ANT_COMB_SUPPORT = TRUE
+ # Description:
+ # SAR_TX_POWER_BACKOFF_BY_ANT_COMB_SUPPORT = TRUE
+ # Option Values:
+ # TRUE:Set to TRUE if support SAR_TX_POWER_BACKOFF_BY_ANT_COMB_SUPPORT.
+ # FALSE:Set to FALSE if not support SAR_TX_POWER_BACKOFF_BY_ANT_COMB_SUPPORT.
+ # Option Values:
+ # FALSE: sar tx power backoff by ant comb support is NOT supported
+ # TRUE: sar tx power backoff by ant comb support is supported
+ # Switch-ability:
+ # Non-switchable
+
+SAR_TX_POWER_BACKOFF_SUPPORT = TRUE
+ # Description:
+ # SAR_TX_POWER_BACKOFF_SUPPORT = FALSE
+ # Description:
+ # Option Values:
+ # TRUE:Set to TRUE if support SAR_TX_POWER_BACKOFF_SUPPORT.
+ # FALSE:Set to FALSE if not support SAR_TX_POWER_BACKOFF_SUPPORT.
+ # Option Values:
+ # FALSE: sar tx power backoff support is NOT supported
+ # TRUE: sar tx power backoff support is supported
+ # Switch-ability:
+ # Non-switchable
+
+SIM_HOT_SWAP = SIM_SLOT_2
+ # Description:
+ # support SIM hot swap, only MT6253D enable now
+ # Option Values:
+ # NONE: not support SIM hot swap
+ # SIM_SLOT_1: single SIM project, support sim hot swap from SLOT 1
+ # SIM_SLOT_2: Dual SIM project, support sim hot swap from SLOT 2
+ # SIM_SLOT_3: 3 SIM project, support sim hot swap from SLOT 3
+ # SIM_SLOT_4: 4 SIM project, support sim hot swap from SLOT 4
+ # Switch-ability:
+ # Non-switchable
+
+SP_VIDEO_CALL_SUPPORT = FALSE
+ # Description:
+ # Enable Video Call Modem Capability for Smartphone project
+ # Option Values:
+ # FALSE: Turn off Video Call Support for Smartphone
+ # TRUE: Turn on Video Call Support for Smartphone
+ # (conflict w/ 3G_VIDEO_CALL)
+ # Switch-ability:
+ # Non-switchable
+
+TDD_EDCH_PHYSICAL_CATEGORY = 6
+ # Description:
+ # Define the HSUPA category in makefile.
+ # Option Values:
+ # 1: EDCH Physical category = 1
+ # 2: EDCH Physical category = 2
+ # 3: EDCH Physical category 3
+ # 4: EDCH Physical category = 4
+ # 5: EDCH Physical category = 5
+ # 6: EDCH Physical category = 6
+ # Switch-ability:
+ # Non-switchable
+
+TDD_HSDSCH_PHYSICAL_CATEGORY = 14
+ # Description:
+ # Define the HSDPA category in makefile.
+ # Option Values:
+ # 1: HSDSCH category = 1
+ # 10: HSDSCH category = 10
+ # 11: HSDSCH category = 11
+ # 12: HSDSCH category = 12
+ # 13: HSDSCH category = 13
+ # 14: HSDSCH category = 14
+ # 15: HSDSCH category = 15
+ # 2: HSDSCH category = 2
+ # 3: HSDSCH category = 3
+ # 4: HSDSCH category = 4
+ # 5: HSDSCH category = 5
+ # 6: HSDSCH category = 6
+ # 7: HSDSCH category = 7
+ # 8: HSDSCH category = 8
+ # 9: HSDSCH category = 9
+ # Switch-ability:
+ # Non-switchable
+
+TST_DNT_LOGGING = FALSE
+ # Description:
+ # Enable SIB logging (High speed logging interface)
+ # Option Values:
+ # FALSE: Disable
+ # TRUE: Enable
+ # Switch-ability:
+ # Non-switchable
+
+TST_LOGACC_SUPPORT = FALSE
+ # Description:
+ # to enable the LogAcc HW Support for TST.
+ # Option Values:
+ # FALSE: Disable
+ # TRUE: Enable
+ # Switch-ability:
+ # Non-switchable
+
+TST_MALMO_SUPPORT = FALSE
+ # Description:
+ # Support advanced logging acceleration system, Maimo.
+ # It's HW dependent and only supported on certain platforms.
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Enable this feature
+ # Switch-ability:
+ # Non-switchable
+
+TST_SUPPORT = FALSE
+ # Description:
+ # to enable message logging and debug information tracing mechanism.
+ # Option Values:
+ # FALSE: Disable
+ # TRUE: Enable
+ # Switch-ability:
+ # Non-switchable
+
+USB_ACM_SUPPORT = TRUE
+ # Description:
+ # Used to enable USB CDC/ACM device
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+USB_ECM_SUPPORT = FALSE
+ # Description:
+ # Used to enable USB CDC/ECM device
+ # Option Values:
+ # FALSE: Disable USB CDC/ECM device
+ # TRUE: Enable USB CDC/ECM device
+ # Switch-ability:
+ # Non-switchable
+
+USB_PORT_CUSTOMIZATION = FALSE
+ # Description:
+ # Used to enable USB port customization feature
+ # Option Values:
+ # FALSE: disable USB port customization feature
+ # TRUE: enable USB port customization feature
+ # Switch-ability:
+ # Non-switchable
+
+USE_EVS_IO_REPLACE_AWB = TRUE
+ # Description:
+ # Use EVS AWB-IO mode codec to replace AWB codec.
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+UT_FLUSH_LOG_ON_ASSERT = FALSE
+ # Description:
+ # Enable log flush on assert in MoDIS-like environment
+ # Option Values:
+ # FALSE: Disable
+ # TRUE: Enable
+ # Switch-ability:
+ # Non-switchable
+
+VOLTE_SUPPORT = TRUE
+ # Description:
+ # This is for LTE project. VOLTE is part of IMS but it is not only for voice service, but also for SS, MWI, ECT, USSI,etc. So VOLTE_SUPPORT can only effective when IMS_SUPPORT is set to TRUE also.
+ # Option Values:
+ # FALSE: Note support VoLTE
+ # TRUE: Support the VoLTE
+ # Switch-ability:
+ # Non-switchable
+
+VPA_ACOUSTIC_REMOVE = FALSE
+ # Description:
+ # MTK VPA acoustic noise remove solution
+ # Option Values:
+ # FALSE: disable VPA acoustic noise remove
+ # TRUE: enable VPA acoustic noise remove
+ # Switch-ability:
+ # Non-switchable
+
+WFC_SUPPORT = TRUE
+ # Description:
+ # Description:
+ # This is for WFC project. WFC is part of IMS. So WFC_SUPPORT can only effective when IMS_SUPPORT is set to TRUE also.
+ # Option Values:
+ # NONE: Not support for IMS-WFC feature
+ # TRUE: support for IMS-WFC feature
+ # Switch-ability:
+ # Non-switchable
+ # Option Values:
+ # FALSE: Disable WFC capability
+ # TRUE: Enable WFC capability
+ # Switch-ability:
+ # Non-switchable
+
+WIFI_LTE_DPP_SUPPORT = FALSE
+ # Description:
+ # WIFI/LTE Duplicate Packet Prediction support
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+
+# =========================================================================
+# Feature Options which customer can NOT modify
+# =========================================================================
+2G_BPI_PT3A_SUPPORT = FALSE
+ # Description:
+ # TRUE: Support the PT3A event
+ # FALSE: NOT support the PT3A event
+ # Option Values:
+ # FALSE: NOT support the PT3A event
+ # TRUE: Support the PT3A event
+ # Switch-ability:
+ # Non-switchable
+
+2G_FDD_FLIGHT_MODE_RETAIN_STORED_SI = TRUE
+ # Description:
+ # The flag __2G_FDD_FLIGHT_MODE_RETAIN_STORED_SI__ should be ON when this FO is TRUE
+ #
+ # Applied branch: LR13.R1.MP
+ #
+ # FO should be TRUE in the following make files.
+ # MT6779_SP(LWCTG_6186M).mak MT6785_SP(LWCTG)
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+2G_FDD_USE_STORED_SI = TRUE
+ # Description:
+ # The flag __2G_FDD_USE_STORED_SI__
+ # should be ON when this FO is TRUE.
+ #
+ # Applied branch: LR13.R1.MP
+ #
+ # FO should be TRUE in the following make files.
+ #
+ # MT6779_SP(LWCTG_6186M).mak
+ # MT6785_SP(LWCTG)
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+2G_RX_DIVERSITY_PATH_SUPPORT = TRUE
+ # Description:
+ # TRUE: Support 2G RX diversity path
+ # FALSE: NOT support 2G RX diversity path
+ # Option Values:
+ # FALSE: NOT support 2G RX diversity path
+ # TRUE: Support 2G RX diversity path
+ # Switch-ability:
+ # Non-switchable
+
+2G_TX_VOLTAGE_COMPENSATION_SUPPORT = TRUE
+ # Description:
+ # This feature option is to turn on/off the voltage compensation on 2G TX power
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+32K_XOSC_REMOVE = TRUE
+ # Description:
+ # support 32k crystal removal
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+AFC_VCXO_TYPE = VCTCXO
+ # Description:
+ # the oscillator type used in this project
+ # Option Values:
+ # VCTCXO: VCTCXO clk
+ # VCXO: VCXO clk
+ # Switch-ability:
+ # Switchable
+
+AGPS_SUPPORT = CP_AGPS_AGLONASS
+ # Description:
+ # Description:
+ # It decides control plane is used.
+ # Option Values:
+ # NONE: Disable AGPS feature.
+ # CP_AGPS: Enable AGPS control-plane on 2/3/4G. (only used for the modem load on smart phone project not support GLONASS)
+ # CP_AGPS_AGLONASS: Enable AGPS and AGLONASS control-plane on 2/3/4G. (only used for the modem load on smart phone project supported GLONASS)
+ # CP_AGPS_AGLONASS_ABDS: Enable AGPS , AGLONASS and ABDS control-plane on 2/3/4G. (only used for the modem load on smart phone project supported GLONASS and BDS)
+ # Switch-ability:
+ # Non-switchable
+ # Option Values:
+ # CONTROL_PLANE: Enable AGPS control-plane. (only used for the modem load on smart phone project)
+ # CP_AGPS: Enable AGPS control-plane on 2/3G.
+ # CP_AGPS_AGLONASS: Enable AGPS and AGLONASS control-plane on 2/3G.
+ # CP_AGPS_AGLONASS_ABDS: it can support A-BDS
+ # CP_AGPS_AGLONASS_ABDS_AGALILEO: It can support A-Galileo
+ # NONE: Disable AGPS feature.
+ # Switch-ability:
+ # Non-switchable
+
+AMMS_DRDI_SUPPORT = TRUE
+ # Description:
+ # If the option is TRUE, MD will return unused DRDI data memory to AP.
+ # Note(LR13 R2 ONLY): customers cannot turn on "modem secure boot check" and "AMMS-DRDI" simultaneously
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Enable this feature
+ # Switch-ability:
+ # Non-switchable
+
+AMRWB_LINK_SUPPORT = TRUE
+ # Description:
+ # If the compile option is true, our BB chip will support AMRWB voice call. If false, we won't support this function.
+ # Option Values:
+ # FALSE: Not Support WB-AMR link
+ # TRUE: Support WB-AMR link
+ # Switch-ability:
+ # Switchable
+
+AMR_LINK_SUPPORT = TRUE
+ # Description:
+ # Support AMR link, channel codec and RATSCCH procedure, with base station.
+ # Option Values:
+ # FALSE: AMR disable
+ # TRUE: AMR enable
+ # Switch-ability:
+ # Non-switchable
+
+BAND_SUPPORT = QUAD
+ # Description:
+ # Described the support band of RF
+ # Option Values:
+ # DCS1800: Support 1800
+ # DUAL850: Support 850/1900
+ # DUAL900: Support 900/1800
+ # EGSM900: Support 900
+ # GSM450: Support 450
+ # GSM850: Support 850
+ # PCS1900: Support 1900
+ # PGSM900: Support 900
+ # QUAD: Support 850/900/1800/1900
+ # RGSM900: Support 900
+ # TRIPLE: Support 900/1800/1900
+ # TRIPLE850: Support 850/1800/1900
+ # Switch-ability:
+ # Switchable
+
+BIP_SUPPORT = TRUE
+ # Description:
+ # support Bearer Independent Protocol
+ # Option Values:
+ # FALSE: disable BIP in MD
+ # TRUE: enable BIP in MD
+ # Switch-ability:
+ # Non-switchable
+
+C2K_RFD_STUB_ENABLE = FALSE
+ # Description:
+ # This flag is added for CL1 to use C2K RFD stub interface or formal interface;
+ # FALSE by default. (Modis:TRUE,Default:FALSE)
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Switchable
+
+C2K_RF_MODULE = MT2735_C2K_MT6190_WIDE_TEMP_CUSTOM
+ # Description:
+ # This Option could configure C2K RF module type based on the RF chip type the custom used.
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+CARRIER_RF_CA_BC_FILTER = TRUE
+ # Description:
+ # Enable carrier-based customization for UE RF CA band combination capability reporting.
+ # TRUE: Enable this feature.
+ # FALSE: Disable this feature.
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+CCCI_CCMNI_SUPPORT = FALSE
+ # Description:
+ # Used to enable CCCI_CCMNI Device,
+ # Option Values:
+ # FALSE: CCCI_CCMNI Device will not be built.
+ # TRUE: CCCI_CCMI Device will be built.
+ # Switch-ability:
+ # Non-switchable
+
+CHIP_VER = S00
+ # Description:
+ # Chip version, changed according to ECO.
+ # Option Values:
+ # S00: .
+ # S01: .
+ # S02: .
+ # Switch-ability:
+ # Non-switchable
+
+CLIB_TIME_SUPPORT = TRUE
+ # Description:
+ # Enable clib time function e.g. time(), gmtime_r(), localtime_r()...
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Enable this feature
+ # Switch-ability:
+ # Non-switchable
+
+CMUX_SUPPORT = FALSE
+ # Description:
+ # Support 07.10 multiplexer feature: TRUE or FALSE
+ # Option Values:
+ # FALSE: Disable 27.010 multiplexer
+ # TRUE: Enable 27.010 multiplexer
+ # Switch-ability:
+ # Non-switchable
+
+COMBO_MEMORY_SUPPORT = FALSE
+ # Description:
+ # To support different memory part in the same load.
+ # Option Values:
+ # FALSE: Disable combo memory support.
+ # Default setting is FALSE.
+ # TRUE: Enable combo memory support
+ # Switch-ability:
+ # Non-switchable
+
+COMPILER_VER = MIPS_GCCV6
+ # Description:
+ # To distinguish compiler version
+ # Option Values:
+ # MIPS_GCCV4: mips gcc v4
+ # MIPS_GCCV6: mips gcc v6
+ # Switch-ability:
+ # Non-switchable
+
+CONFIG_UI = NONE
+ # Description:
+ # Compare with feature phone, the UI is not a part of modem since smart phone. Default is NONE
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+CUSTOM_DEBUG_MODULES = NVRAM SYS_SVC SYS_DRV CONFIG DEVDRV
+ # Description:
+ # CUSTOM_DEBUG_MODULES means these modules will be built with debug information.
+ # Option Values:
+ # ALL: all
+ # NONE: Disable this feature
+ # module_names: The modules' name that you want to turn on debug information, seperated by space
+ # Switch-ability:
+ # Non-switchable
+
+CUSTOM_NON_DEBUG_MODULES = NONE
+ # Description:
+ # CUSTOM_NON_DEBUG_MODULES means it will be built without debug information after custom release
+ # Option Values:
+ # ALL: .
+ # NONE: .
+ # module_names: Module name list using space seperated
+ # Switch-ability:
+ # Switchable
+
+DATA_CARD_SPEECH = FALSE
+ # Description:
+ # Enable speech capablility via data card tool through PC speaker and microphone
+ # Option Values:
+ # FALSE: Disable Datacrad speech
+ # TRUE: Enable data card speech
+ # Switch-ability:
+ # Non-switchable
+
+DEL_READ_SMS_EXTENSION = TRUE
+ # Description:
+ # extend sms deleting and reading functions
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+DEMO_PROJECT = FALSE
+ # Description:
+ # To define projects that are experimental or for demo purposes only. It should NEVER be enabled on MP projects, and it is used by MTK internally. Customer does not need to change it
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Enable this feature
+ # Switch-ability:
+ # Non-switchable
+
+DHL_CCB_LOGGING_SUPPORT = TRUE
+ # Description:
+ # Logging with cross-core buffer management feature by CCCI.
+ # Direct share memory access both for MD and AP logging service.
+ # Option Values:
+ # FALSE: Use other CCCI channel.
+ # TRUE: Use CCB as logging channel.
+ # Switch-ability:
+ # Non-switchable
+
+DHL_MONITOR_MODE_SUPPORT = TRUE
+ # Description:
+ # Collect customer subscribe info to monitor channel
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+DHL_ON_DEMAND_LOGGING_SUPPORT = TRUE
+ # Description:
+ # Enable on-demand logging feature
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Enable this feature
+ # Switch-ability:
+ # Non-switchable
+
+DHL_ULSP_SUPPORT = TRUE
+ # Description:
+ # DHL_ULSP_SUPPORT = FALSE
+ # Description:
+ # enable hardware ULS+ logging
+ # Option Values:
+ # TRUE: Support
+ # FALSE: Non Support
+ # Switch-ability:
+ # True -> False
+ # Option Values:
+ # FALSE: Not support ULS+ logging
+ # TRUE: Support DHL ULS+ logging
+ # Switch-ability:
+ # Switchable
+
+DISABLE_RAT = 0
+ # Description:
+ # To declare some RATs which will be disabled , and make sure user can't enable it by AT+ERAT.
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+DISABLE_SLEEP = FALSE
+ # Description:
+ # control the C2K sleep mode
+ # Option Values:
+ # FALSE: Enable C2K sleep
+ # TRUE: Disable C2K sleep
+ # Switch-ability:
+ # Non-switchable
+
+DMF_SUPPORT = TRUE
+ # Description:
+ # DMF feature support
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+DMF_THIN_MODEM = TRUE
+ # Description:
+ # Control DMF APP to query modem information for thin modem projects
+ # Option Values:
+ # FALSE: disable __DMF_THIN_MODEM__ for DMF APP of thin modem project
+ # TRUE: enable __DMF_THIN_MODEM__ for DMF APP of thin modem project
+ # Switch-ability:
+ # Non-switchable
+
+DRV_CUSTOM_TOOL_SUPPORT = FALSE
+ # Description:
+ # To enable using driver customization tool for GPIO/EINT/ADC/UEM/Keypad/PMU setting.
+ # Option Values:
+ # FALSE: Disable
+ # TRUE: Enable
+ # Switch-ability:
+ # Switchable
+
+DSPIRDBG = FALSE
+ # Description:
+ # To enable IRDBG interface for dsp debugging
+ # Option Values:
+ # FALSE: .
+ # TRUE: .
+ # Switch-ability:
+ # Non-switchable
+
+EDGE_SUPPORT = TRUE
+ # Description:
+ # Enable EDGE support Only applicable to 6229 latter version
+ # Option Values:
+ # FALSE: EGPRS enable
+ # TRUE: EGPRS enable
+ # Switch-ability:
+ # Non-switchable
+
+EONS_SUPPORT = TRUE
+ # Description:
+ # enable EONS feature at modem side
+ # Option Values:
+ # FALSE: disable EONS feature at modem side
+ # TRUE: enable EONS feature at modem side
+ # Switch-ability:
+ # Non-switchable
+
+EVS_SUPPORT = TRUE
+ # Description:
+ # speech new codec feature EVS
+ # Option Values:
+ # FALSE: EVS no support
+ # TRUE: EVS support
+ # Switch-ability:
+ # Non-switchable
+
+EVS_SW_BW = SWB
+ # Description:
+ # SW supported EVS maximum bandwidth
+ # Option Values:
+ # FB: Fullband
+ # SWB: Super-wideband
+ # WB: Wideband
+ # Switch-ability:
+ # Non-switchable
+
+EXT_PMIC = NONE
+ # Description:
+ # Enable EXT_PMIC = MT6315 at EVB/SP project, like MT6885_EVB(xxxx).mak and MT6885_SP(xxxx).mak
+ # Enable EXT_PMIC = NONE at FPGA project, like MT6885_FPGA(xx).mak and PETRUS_FPGA(xxx).mak
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+FAST_DORMANCY_SUPPORT = TRUE
+ # Description:
+ # This feature option is used to enable/disable 3G R8 Fast Dormancy feature.
+ # Option Values:
+ # FALSE: Support Legacy FD
+ # TRUE: Support both R8 & Legacy FD
+ # not define the feature option: modem will not support R8 nor Legacy FD
+ # Switch-ability:
+ # Switchable
+
+FIVEG_OPTION2_SANR_SUPPORT = TRUE
+ # Description:
+ # support 5G option 2 SANR or not.
+ # Option Values:
+ # FALSE: 5G option 2 is not supported
+ # TRUE: 5G option 2 is supported
+ # Switch-ability:
+ # Non-switchable
+
+FIVEG_OPTION3_ENDC_SUPPORT = TRUE
+ # Description:
+ # support 5G option 3 ENDC or not.
+ # Option Values:
+ # FALSE: 5G option 3 is not supported
+ # TRUE: 5G option 3 is supported
+ # Switch-ability:
+ # Non-switchable
+
+FOTA_UPDATE_PACKAGE_ON_NAND = FALSE
+ # Description:
+ # Use NAND to place update package for NOR project
+ # Option Values:
+ # FALSE: Place diff package on NOR
+ # TRUE: Enable FOTA update package in NAND for NOR project
+ # Switch-ability:
+ # Non-switchable
+
+FR1_FR2_SUPPORT = FR1_ONLY
+ # Description:
+ # Specify if NR FR2 is supported
+ # (Please notice that MCU side and DSP side both have this option, and this setting should be aligned in corresponding MCU/DSP makefile)
+ # Option Values:
+ # FR1_ONLY: FIVEG_MODE is supported, FR1 is enabled
+ # FR1_PLUS_FR2: FIVEG_MODE is supported, FR1 and FR2 is enabled
+ # NONE: don't support FR1/FR2
+ # Switch-ability:
+ # Non-switchable
+
+FS_DEDICATED_BUFFER = TRUE
+ # Description:
+ # If this feature is enabled, FS will allocate a dedicated buffer to enhance file system performance. The improved operations are file copy, file move (to differenct drive), disk mount, disk format and memory card hot-plug-in.
+ # Option Values:
+ # FALSE: Disable FS Dedicated Buffer
+ # TRUE: Enable FS Dedicated Buffer
+ # Switch-ability:
+ # Switchable
+
+FS_OPEN_HINT_SUPPORT = TRUE
+ # Description:
+ # FS will try to preserve several recently found locations of files or folders internally. If FS user wants to open those files or folders again later, the opening time could be minimized.
+ # Option Values:
+ # FALSE: Disable FS Internal Open Hint
+ # TRUE: Enable FS Internal Open Hint
+ # Switch-ability:
+ # Switchable
+
+FS_RAMDISK = FALSE
+ # Description:
+ # Enable RAM disk to replace NOR flash disk.
+ # NOTE. To enable FS_RAMDISK, please configure this project as file system on NOR flash.
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: RAM Disk will replace flash disk (e.g., NOR, NAND, eMMC...etc) on file system. This feature is used for SP modem-only project only.
+ # Switch-ability:
+ # Non-switchable
+
+FS_TRACE_SUPPORT = FALSE
+ # Description:
+ # File System will provide run-time trace information with proper configure. The trace information is very helpful to identify problem source.
+ # Option Values:
+ # FALSE: To disable FS debug messange
+ # TRUE: To enable FS debug messange
+ # Switch-ability:
+ # Switchable
+
+GCC_WARN_AS_ERROR = FALSE
+ # Description:
+ # This option will regard build warnings as errors for GCC.
+ # Option Values:
+ # FALSE: Not support warnings as errors
+ # TRUE: Support warnings as errors
+ # Switch-ability:
+ # Non-switchable
+
+GEMINI = 2
+ # Description:
+ # To identify if this project uses a "Single chip-dual SIM" solution.
+ # Option Values:
+ # 2: Enable 2 SIMs, single talk.
+ # 3: Enable 3 SIMs, single talk.
+ # 4: Enable 4 SIMs, single talk.
+ # FALSE: Disable this feature
+ # Switch-ability:
+ # Non-switchable
+
+GEMINI_W = 2
+ # Description:
+ # Description:
+ # To identify if this project uses a "Single chip-dual SIM" solution.
+ # indicate the W count
+ # Option Values:
+ # 4: Enable 4 SIMs, single talk.
+ # 3: Enable 3 SIMs, single talk.
+ # FALSE: Disable this feature
+ # 2: Enable 2 SIMs, single talk.
+ # Switch-ability:
+ # Non-switchable
+ # Option Values:
+ # 2: Enable 2 SIMs, single talk.
+ # 3: Enable 3 SIMs, single talk.
+ # 4: Enable 4 SIMs, single talk.
+ # FALSE: Disable this feature
+ # Switch-ability:
+ # Non-switchable
+
+GERAN_RELEASE_SUPPORT = GERAN_R11_SUPPORT
+ # Description:
+ # The option is to switch different version of release for 2G modem
+ # Option Values:
+ # GERAN_R4_SUPPORT: set the 2G MODEM to 3GPP R4 baseline
+ # GERAN_R5_SUPPORT: set the 2G MODEM to 3GPP R5 baseline
+ # GERAN_R6_SUPPORT: set the 2G MODEM to 3GPP R6 baseline
+ # GERAN_R99_SUPPORT: set the 2G MODEM to 3GPP R99 baseline
+ # Switch-ability:
+ # Non-switchable
+
+GLOBAL_TRACE_DEBUG_LEVEL = 0
+ # Description:
+ # For SMO logging request, If trace'level defined in UTMD is lower than value of feature option, remove trace when compiler time
+ # Option Values:
+ # 0: don't remove trace
+ # 1: Remove Ultra-Low level trace
+ # 2: remove Ultra-Low/Low level trace
+ # 3: remove Ultra-Low/Low/Medium level trace
+ # 4: remove Ultra-Low/Low/Medium/High trace
+ # 5: remove Ultra-Low/Low/Medium/High/Ultra-High level trace
+ # Switch-ability:
+ # Non-switchable
+
+GPRS_DIALUP_PPP_DROP_PACKETS_WHEN_2G_PS_SUSPEND = TRUE
+ # Description:
+ # This feature makes PPP process UART data even if there is no FLC buffer available (ex: In 2G CS Call suspend PS Transfer, so FLC buffer run out)
+ # In this situation, PPP start to decode the UART data into a temp buffer, and if the decoded packet is a IP pac
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+GPRS_MAX_PDP_SUPPORT = 8
+ # Description:
+ # Maximum simultaneous PDP contexts (2~7)
+ # Option Values:
+ # 1: Maximum simultaneous PDP contexts is one
+ # 2: Maximum simultaneous PDP contexts is two
+ # 3: Maximum simultaneous PDP contexts is three
+ # 4: Maximum simultaneous PDP contexts is four
+ # 5: Maximum simultaneous PDP contexts is five
+ # 6: Maximum simultaneous PDP contexts is six
+ # 7: Maximum simultaneous PDP contexts is seven
+ # Switch-ability:
+ # Non-switchable
+
+GPS_SUPPORT = SMART_PHONE_MODEM
+ # Description:
+ # Mapping with SMART PHONE MODEM # NONE, SMART_PHONE_MODEM
+ # Option Values:
+ # NONE: disable release GPS for smart phone modem
+ # SMART_PHONE_MODEM: enable release GPS for smart phone modem
+ # Switch-ability:
+ # Non-switchable
+
+HIF_CCISM_SCP_SUPPORT = FALSE
+ # Description:
+ # Description:
+ # For support hardware interface SCP CCISM
+ # Option Values:
+ # TRUE: Support SCP CCISM interface
+ # FALSE: Not support SCP CCISM interface
+ # Switch-ability:
+ # Non-switchable
+ # ----------------------------------------------------------------
+ # For Support SCP chip full load MD, need to set to TRUE. (MT6771 full load MD set to TRUE)
+ # Option Values:
+ # FALSE: Not support SCP CCISM interface
+ # TRUE: Support SCP CCISM interface
+ # Switch-ability:
+ # Non-switchable
+
+HIF_CLDMA_SUPPORT = FALSE
+ # Description:
+ # Used to enable CLDMA Core related components, CLDMACORE.
+ # Option Values:
+ # FALSE: CLDMA core related components wiil not be built.
+ # TRUE: CLDMA core related components will be built.
+ # Switch-ability:
+ # Non-switchable
+
+HIF_DPMAIF_DP_MD_SUPPORT = FALSE
+ # Description:
+ # Indicate if DPMAIF DL Data Path support for Thin MD USB Case
+ # Option Values:
+ # FALSE: DPMAIF DL Data Path not support for Thin MD USB Case
+ # TRUE: DPMAIF DL Data Path Support for Thin MD USB Case
+ # Switch-ability:
+ # Non-switchable
+
+HIF_PCCIF4_SUPPORT = FALSE
+ # Description:
+ # For support MD <--> Consys interface PCCIF4
+ # Option Values:
+ # TRUE/FALSE: TRUE: Support PCCIF4 interface
+ # FALSE: Not support PCCIF interface
+ # Switch-ability:
+ # Non-switchable
+
+HIF_PCCIF5_SUPPORT = FALSE
+ # Description:
+ # For support MD <--> Consys interface PCCIF5
+ # Option Values:
+ # TRUE/FALSE: TRUE: Support PCCIF5 interface
+ # FALSE: Not support PCCIF5 interface
+ # Switch-ability:
+ # Non-switchable
+
+HIF_PCIE_DETECT = FALSE
+ # Description:
+ # Detect pcie at init stage
+ # Option Values:
+ # FALSE: Do not detect pcie with timeout at init stage
+ # TRUE: Detect pcie with timeout at init stage
+ # Switch-ability:
+ # Non-switchable
+
+HIF_PCIE_SUPPORT = FALSE
+ # Description:
+ # PCIE driver support
+ # Option Values:
+ # FALSE: Disable PCIE driver
+ # TRUE: Enable PCIE driver
+ # Switch-ability:
+ # Non-switchable
+
+IDC_PTA_VERSION = IDC_PTA_DEFAULT
+ # Description:
+ # each project will have different PTA version for IDC feature.
+ # IDC_PTA_DEFAULT: PTA version before 3.0
+ # IDC_PTA_3.0: PTA version 3.0
+ # IDC_PTA_5.0: PTA version 5.0
+ # Option Values:
+ # IDC_PTA_3.0: PTA 3.0
+ # IDC_PTA_5.0: PTA 5.0
+ # IDC_PTA_DEFAULT: default PTA version
+ # Switch-ability:
+ # Switchable
+
+KAL_ASSERT_LEVEL = KAL_ASSERT_LEVEL3
+ # Description:
+ # Setup KAL assert level
+ # 3: for full debugging facility support
+ # 0: for minimal debugging facility support
+ # Option Values:
+ # KAL_ASSERT_LEVEL0: .
+ # KAL_ASSERT_LEVEL1: .
+ # KAL_ASSERT_LEVEL2: .
+ # KAL_ASSERT_LEVEL3: .
+ # KAL_ASSERT_LEVEL4: save entire CPU registers
+ # Switch-ability:
+ # Non-switchable
+
+KAL_DEBUG_LEVEL = NORMAL_DEBUG_KAL
+ # Description:
+ # Control the major KAL debugging facility availability and behavior. More debugging facility consume more extra RAM footprint.
+ #
+ # Less debugging facility may suffer extra effort to locate root cause of issue.
+ #
+ # RICH_DEBUG_KAL > NORMAL_DEBUG_KAL > SLIM_DEBUG_KAL > RELEASE_KAL.
+ #
+ # Default Setting : NORMAL_DEBUG_KAL
+ # Option Values:
+ # NORMAL_DEBUG_KAL: .
+ # RELEASE_KAL: .
+ # RICH_DEBUG_KAL: .
+ # SLIM_DEBUG_KAL: .
+ # Switch-ability:
+ # Non-switchable
+
+KAL_HW_ITC_CUSTOM_LOG_SUPPORT = TRUE
+ # Description:
+ # Turn on/off SWLA custom_logging in KAL_HW_ITC APIs
+ # Option Values:
+ # FALSE: Disable custom_logging in KAL HW_ITC APIs
+ # TRUE: Enable custom_logging in KAL HW_ITC APIs
+ # Switch-ability:
+ # Non-switchable
+
+KAL_TRACE_OUTPUT = FULL
+ # Description:
+ # This option is used to enable or disable the trace output for the concern of saving ROM size
+ # Option Values:
+ # CUST_PARTIAL: Enable partial traces
+ # FULL: Enable all trace
+ # NONE: Disable all trace
+ # Switch-ability:
+ # Switchable
+
+KPALV_SUPPORT = TRUE
+ # Description:
+ # keep-alive mechanism in MD
+ # Option Values:
+ # FALSE: Disable Keep-alive in MD
+ # TRUE: Enable Keep-alive in MD
+ # Switch-ability:
+ # Non-switchable
+
+L1_EPSK_TX = TRUE
+ # Description:
+ # Turn on/off this compile option may switch the function of EPSK modulation transmitter
+ # Option Values:
+ # FALSE: EPSK TX disable
+ # TRUE: EPSK TX enable
+ # Switch-ability:
+ # Non-switchable
+
+LPP_EXT_SUPPORT = TRUE
+ # Description:
+ # Determine if LTE LPP Extension supported.
+ # Note: LPP_EXT_SUPPORT can be turned on only if EUTRAN_MODE_SUPPORT and LPP_SUPPORT is defined.
+ #
+ # Option Values:
+ # TRUE: Enable LTE LPP Extension feature
+ # FALSE: Disable LTE LPP Extension feature
+ #
+ # The Smartphone Feature ID is SPOID00000170
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+LPP_SUPPORT = CONTROL_PLANE
+ # Description:
+ # Determine if LPP protocol is supported.
+ # Note: LPP_SUPPORT can be turned on only if EUTRAN_MODE_SUPPORT and at least one of AGPS_SUPPORT/LTE_OTDOA_SUPPORT/LTE_ECID_SUPPORT is defined.
+ # Option Values:
+ # CONTROL_PLANE: Enable LPP protocol control plane
+ # NONE: Disable LPP feature
+ # Switch-ability:
+ # Non-switchable
+
+LTEA_FEATURE_SET = FULL
+ # Description:
+ # to enable the capability of LTE-A features by NVRAM default value
+ # Option Values:
+ # STAGE1: Support LTE-A Stage1 features
+ # STAGE2: Support LTE-A Stage2 features (CA, EDDA)
+ # FULL: Support LTE-A full features (CA, EDDA, eMBMS, eICIC, feICIC, UL CoMP)(CA, EDDA)
+ # Switch-ability:
+ # Non-switchable
+ # Option Values:
+ # FULL: Support LTE-A full features (CA, EDDA, eMBMS, eICIC, feICIC, UL CoMP)(CA, EDDA)
+ # STAGE1: Support LTE-A Stage1 features
+ # STAGE2: Support LTE-A Stage2 features (CA, EDDA)
+ # Switch-ability:
+ # Non-switchable
+
+LTE_ECID_SUPPORT = TRUE
+ # Description:
+ # Determine if LTE ECID positioning is supported.
+ # Note: LTE_ECID_SUPPORT can be turned on only if EUTRAN_MODE_SUPPORT and LPP_SUPPORT is defined.
+ # Option Values:
+ # FALSE: Disable LTE ECID positioning feature
+ # TRUE: Enable LTE ECID positioning feature
+ # Switch-ability:
+ # Non-switchable
+
+LTE_OTDOA_SUPPORT = TRUE
+ # Description:
+ # Determine if LTE OTDOA positioning is supported.
+ # Note: LTE_OTDOA_SUPPORT can be turned on only if EUTRAN_MODE_SUPPORT and LPP_SUPPORT is defined.
+ # Option Values:
+ # FALSE: Disable LTE OTDOA positioning feature
+ # TRUE: Enable LTE OTDOA positioning feature
+ # Switch-ability:
+ # Non-switchable
+
+LTE_RELEASE_SUPPORT = LTE_RF60_RELEASE
+ # Description:
+ # The option is to switch different asn1 version of release for TS36.331
+ # Option Values:
+ # LTE_R9C0_RELEASE: TS 36.331 9.12.0
+ # LTE_RB70_RELEASE: TS 36.331 11.7.0
+ # LTE_RB90_RELEASE: TS 36.331 11.9.0
+ # LTE_RC50_RELEASE: TS 36.331 12.5.0
+ # LTE_RD10_RELEASE: TS 36.331 13.1.0
+ # LTE_RE40_RELEASE: TS 36.331 14.4.0
+ # NONE: NONE
+ # Switch-ability:
+ # Non-switchable
+
+LWA_SUPPORT = FALSE
+ # Description:
+ # LTE Wifi Aggregation Support
+ # Option Values:
+ # FALSE: Not Support LWA
+ # TRUE: Support LWA
+ # Switch-ability:
+ # Non-switchable
+
+MBIM_MS_NETWORK_BLACKLIST = TRUE
+ # Description:
+ # This feature option is used to enable/disable MBIM_CID_MS_NETWORK_BLACKLIST
+ # Option Values:
+ # FALSE: disable MBIM_CID_MS_NETWORK_BLACKLIST
+ # TRUE: enable MBIM_CID_MS_NETWORK_BLACKLIST
+ # Switch-ability:
+ # Non-switchable
+
+MCIF_PDMA_SUPPORT = FALSE
+ # Description:
+ # To identify if MCIF service support PDMA
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+MCIF_SUPPORT = FALSE
+ # Description:
+ # Flag for MD-Consys Interface (MCIF) support capability
+ # True: Support
+ # False: Not support
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+MCIF_WIFI_SUPPORT = FALSE
+ # Description:
+ # To identify if MCIF service support WiFi Control and Data Path
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+MCU_PMU_DEFAUT_USER = 0
+ # Description:
+ # Add a new option MCU_PMU_DEFAUT_USER for pmu to select default parking user.
+ # Option Values:
+ # 0: SYS
+ # 1: SWLA
+ # 2: EL1BD
+ # Switch-ability:
+ # Non-switchable
+
+MD_TCPIP_SUPPORT = TRUE
+ # Description:
+ # Support TCPIP stack, it will create corresponding tasks and HISR, and enable related features.
+ # Option Values:
+ # FALSE: Disable MD TCP/IP stack
+ # TRUE: Enable MD TCP/IP stack
+ # Switch-ability:
+ # Non-switchable
+
+MD_TCPIP_VERSION = NUCLEUS_V3
+ # Description:
+ # TCPIP stack version.
+ # Option Values:
+ # NUCLEUS_V3: Use 3.x as the version
+ # Switch-ability:
+ # Non-switchable
+
+MMRF_RF_HAL_SEQ_GEN_SUPPORT = FALSE
+ # Description:
+ # this option is used to on/off MMRF RF sequence HAL flow
+ # Option Values:
+ # FALSE: not support MMRF sequence HAL
+ # TRUE: support MMRF sequence HAL
+ # Switch-ability:
+ # Non-switchable
+
+MM_DEVICE = MMRF_DB_CUSTOM
+ # Description:
+ # Based on SKU requirement, FE device database can be select by customer.
+ # Option Values:
+ # MMRF_DB_INTERNAL: FE device DB is more.
+ # MMRF_DB_RELEASE: FE device DB is more.
+ # Switch-ability:
+ # Non-switchable
+
+MODEMRESERVEDSIZE_AUTOCONFIG = TRUE
+ # Description:
+ # To define if image layout is able to be auto-adjusted
+ # Option Values:
+ # FALSE: image layout is not able to be adjusted
+ # TRUE: image layout is able to be adjusted
+ # Switch-ability:
+ # Non-switchable
+
+MODEM_CARD = NONE
+ # Description:
+ # Target is data card module.
+ # Option Values:
+ # CS_CALL_DISABLE: Data card project, has ability to disable CS call
+ # FULL: Data card project
+ # NONE: Disable this feature
+ # Switch-ability:
+ # Non-switchable
+
+MTK_3GPP_SPEC_VER = SPEC_2019JUN
+ # Description:
+ # Option to switch modem 3GPP specification version.
+ # Option Values:
+ # NONE: NONE
+ # SPEC_2018DEC: 2018-Dec specification version
+ # SPEC_2018SEP: 2018-Sep specification version
+ # Switch-ability:
+ # Non-switchable
+
+MTK_BT_CHIP = NONE
+ # Description:
+ # MTK_BT_CHIP
+ # Option Values:
+ # MTK_CONSYS_MT6571: Need to support software BT codec (CVSD / mSBC).
+ # MTK_CONSYS_MT6572: Need to support software BT codec (CVSD / mSBC).
+ # MTK_CONSYS_MT6582: Need to support software BT codec (CVSD / mSBC).
+ # MTK_CONSYS_MT6592: Need to support software BT codec (CVSD / mSBC).
+ # MTK_CONSYS_MT6752: Need to support software BT codec (CVSD / mSBC).
+ # MTK_MT6620: Need to support BT phone call PCM interface.
+ # MTK_MT6622: Need to support BT phone call PCM interface.
+ # MTK_MT6626: Need to support BT phone call PCM interface.
+ # MTK_MT6628: Need to support BT phone call PCM interface.
+ # MTK_MT6630: Need to support BT phone call PCM interface.
+ # NONE: No BT phone call.
+ # Switch-ability:
+ # Switchable
+
+MTK_GWSD_MT_SUPPORT = FALSE
+ # Description:
+ # Feature option for controlling Game With Smooth Data (GWSD)
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+MULTIPLE_IMS_SUPPORT = TRUE
+ # Description:
+ # Description:
+ # Turn on/off multiple IMS feature
+ # Option Values:
+ # TRUE: Enable this feature
+ # FALSE: Disable this feature
+ # Switch-ability:
+ # Non-switchable
+ # Option Values:
+ # FALSE: Turn off Muliple IMS feature
+ # TRUE: Turn on Muliple IMS feature
+ # Switch-ability:
+ # Non-switchable
+
+N5G_ADAPTOR_SUPPORT = FALSE
+ # Description:
+ # Option to enable dummy layer 1 (Protocol Stack Adaptor) for NR 5G in UESIM environment.
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+NAND_SUPPORT = FALSE
+ # Description:
+ # To enable NAND flash support, please set NAND_SUPPORT as TRUE.
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+NVRAM_BIND_TO_CHIP_CIPHER = ENABLE
+ # Description:
+ # This option enables NVRAM HW encryption/decryption on LIDs with the attribute "NVRAM_ATTR_MSP", e.g. SIM-ME-Lock.
+ # Option Values:
+ # DISABLE: Disable NVRAM hardware encryption
+ # ENABLE: Enable NVRAM hardware encryption
+ # Switch-ability:
+ # Switchable
+
+NVRAM_LID_HASH_CHECK = TRUE
+ # Description:
+ # To check whether the NVRAM unique LID info match the hash key.
+ #
+ # http://wiki.mediatek.inc/display/NVRAM/How+to+apply+LID+HASH+key
+ # Option Values:
+ # FALSE: Disable NVRAM LID hash check (For Customer)
+ # TRUE: Enable NVRAM LID hash check in build time (Internal Only)
+ # Switch-ability:
+ # Non-switchable
+
+OS_TICK_PERIOD_IN_US = 1000
+ # Description:
+ # Set the OS tick period in micro second
+ # Option Values:
+ # 4615: For backward compatible, not suggested
+ # 5000: Default OS Tick Period
+ # Switch-ability:
+ # Non-switchable
+
+PCIE_LTR_SUPPORT = FALSE
+ # Description:
+ # Support Latency Tolerance Report for PCIe
+ # Option Values:
+ # FALSE: Disable LTR for PCIe
+ # TRUE: Enable LTR for PCIe
+ # Switch-ability:
+ # Non-switchable
+
+PCIE_TRAS_SUPPORT = FALSE
+ # Description:
+ # Support Traffic Shaping (TRAS) for PCIe
+ # Option Values:
+ # FALSE: Disable TRAS for PCIe
+ # TRUE: Enable TRAS for PCIe
+ # Switch-ability:
+ # Non-switchable
+
+PHB_ADDITIONAL_SUPPORT = TRUE
+ # Description:
+ # USIM Phonebook Support
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Enable this feature
+ # Switch-ability:
+ # Switchable
+
+PHB_FDN_ENTRY = 50
+ # Description:
+ # Maximum fixed dial number in SIM card, its value must <=32
+ # Option Values:
+ # NA: The value can be 1 to 32, must <=32
+ # Switch-ability:
+ # Switchable
+
+PHB_LN_ENTRY = 10
+ # Description:
+ # Number of the call log with single log type from single SIM card, it 's a range better no more than 100, suggestion to be 10, 20, 30, 40, 50, 60, 80, 100 and so on. Totol log num = PHB_LN_ENTRY * log type num * sim card num.
+ # Option Values:
+ # 10: Number of call log with single log type from single SIM card, ex, The dialed call log from SIM1 is 10, total log num = 10 * log type num * sim card num.
+ # 100: Number of call log with single log type from single SIM card, ex, The dialed call log from SIM1 is 100, total log num = 100 * log type num * sim card num.
+ # 20: Number of call log with single log type from single SIM card, ex, The dialed call log from SIM1 is 20, total log num = 20 * log type num * sim card num.
+ # 30: Number of call log with single log type from single SIM card, ex, The dialed call log from SIM1 is 30, total log num = 30 * log type num * sim card num.
+ # 40: Number of call log with single log type from single SIM card, ex, The dialed call log from SIM1 is 40, total log num = 40 * log type num * sim card num.
+ # 50: Number of call log with single log type from single SIM card, ex, The dialed call log from SIM1 is 50, total log num = 50 * log type num * sim card num.
+ # 60: Number of call log with single log type from single SIM card, ex, The dialed call log from SIM1 is 60, total log num = 60 * log type num * sim card num.
+ # 80: Number of call log with single log type from single SIM card, ex, The dialed call log from SIM1 is 80, total log num = 80 * log type num * sim card num.
+ # Switch-ability:
+ # Non-switchable
+
+PHB_PHONE_ENTRY = 10
+ # Description:
+ # Maximum Phonebook entry in Phone, #Switch-ability: [Any] -> [Any]
+ # Option Values:
+ # NA: .
+ # Switch-ability:
+ # Switchable
+
+PHB_SIM_ENTRY = 1000
+ # Description:
+ # Maximum Phonebook entry in SIM card.
+ # Option Values:
+ # NA: .
+ # Switch-ability:
+ # Switchable
+
+PHB_SYNC = ON
+ # Description:
+ # To enable/disable phonebook sync feature.
+ # Option Values:
+ # OFF: Not support Sync from Phonebook
+ # ON: Support Sync from Phonebook
+ # Switch-ability:
+ # Switchable
+
+PLATFORM = MT2735
+ # Description:
+ # Name of BB-chip.
+ # Option Values:
+ # NA: N/A
+ # Switch-ability:
+ # Non-switchable
+
+PMIC = MT6330
+ # Description:
+ # To specify which Power Management IC(PMIC) is used, or no PMIC.
+ # Option Values:
+ # MT6223PMU: .
+ # MT6235PMU: .
+ # MT6236PMU: .
+ # MT6238PMU: .
+ # MT6253ELPMU: .
+ # MT6253PMU: .
+ # MT6255PMU: For MT6255 Usage
+ # MT6258PMU: .
+ # MT6276PMU: .
+ # MT6305: .
+ # MT6318: .
+ # MT6326: .
+ # MT6326_CCCI: .
+ # MT6573PMU: .
+ # NONE: No PMU/PMIC on PCB
+ # Switch-ability:
+ # Non-switchable
+
+R15_DEFLATE_UDC_SUPPORT = FALSE
+ # Description:
+ # Support 3GPP R15 Deflate based UL Data Compression (UDC)
+ # Option Values:
+ # FALSE: Not support R15 Deflate UDC
+ # TRUE: Support R15 Deflate UDC
+ # Switch-ability:
+ # Non-switchable
+
+R7R8_FULL_SET_SUPPORT = FALSE
+ # Description:
+ # Description:
+ # This feature option is to turn ON some rare R7R8 capability indication, such as MACIIS, DRXInFACH, EnhancedCommonState, COMMON_EDCH, HSDSCH_CELL_CHNAGE_ENHANCED, CSoHS, UEA2_UIA2
+ # Option Values:
+ # ENABLE: Enable these feature's capability
+ # DISABLE: Disable this feature's capability
+ # Switch-ability:
+ # [FALSE] -> [TRUE]
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Enable this feature
+ # Switch-ability:
+ # Non-switchable
+
+RAM_SUPPORT_TYPE = NONE
+ # Description:
+ # Define the DRAM supporting type controlled by Modem System
+ # Option Values:
+ # DDR: Consumer DDR1
+ # LPDDR: Low Power DDR1
+ # Switch-ability:
+ # Non-switchable
+
+REDUCE_HEADER_DEPTH = FALSE
+ # Description:
+ # To collect used header files to one folder to reduce compiler's searching time.
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+RF_BYPASS = FALSE
+ # Description:
+ # This feature is for AIQ/DIQ platform.
+ # TRUE : AIQ/DIQ platform - FPGA or EVB w/o RF
+ # FALSE : Normal platform - SP or EVB w/ RF
+ # Option Values:
+ # FALSE: Disable RF_BYPASS
+ # TRUE: Enable RF_BYPASS
+ # Switch-ability:
+ # Non-switchable
+
+RF_DRDI_CAPABILITY_SUPPORT = TRUE
+ # Description:
+ # RF_DRDI_CAPABILITY_SUPPORT = TRUE
+ # Description:
+ # Option Values:
+ # TRUE:Set to TRUE if support DRDI.
+ # FALSE:Set to FALSE if not support DRDI.
+ # Option Values:
+ # FALSE: Set to FALSE if not support DRDI.
+ # TRUE: Set to TRUE if support DRDI.
+ # Switch-ability:
+ # Non-switchable
+
+RF_MODULE = MT2735_2G_MT6190_WIDE_TEMP_CUSTOM
+ # Description:
+ # describe the RF module used in this project
+ # Option Values:
+ # NA: the RF module used in this project
+ # Switch-ability:
+ # Switchable
+
+RX_POWER_OFFSET_SUPPORT = FALSE
+ # Description:
+ # Offset compensates on 2G SACCH level, 3G RSCP, 4G RSRP are tuned by NV parameter and RSSI
+ #
+ # RX_POWER_OFFSET_SUPPORT = FALSE
+ # Description:
+ # Option Values:
+ # TRUE:Set to TRUE if support RX_POWER_OFFSET_SUPPORT.
+ # FALSE:Set to FALSE if not support RX_POWER_OFFSET_SUPPORT.
+ # Option Values:
+ # FALSE: RX power offset support is NOT supported
+ # TRUE: RX power offset support is supported
+ # Switch-ability:
+ # Non-switchable
+
+SCC_FORCE_LOG_TO_SIB = FALSE
+ # Description:
+ # to specify if all MCU/DSP logs are intended to be outputted via SIB, as a force option for convenience
+ # Option Values:
+ # FALSE: Not forced (as is)
+ # TRUE: Forced to be outputted via SIB
+ # Switch-ability:
+ # Non-switchable
+
+SCC_SIB_SUPPORT = FALSE
+ # Description:
+ # Enable SIB support (High speed logging interface) with SCC (SIB Control Channel) module included (since 6291)
+ # Option Values:
+ # FALSE: Disable SIB logging
+ # TRUE: Enable SIB logging
+ # Switch-ability:
+ # Non-switchable
+
+SECURE_SUPPORT = FALSE
+ # Description:
+ # Support security system
+ # Option Values:
+ # FALSE: Non-secure load
+ # TRUE: Secure load
+ # Switch-ability:
+ # Non-switchable
+
+SECURE_VERSION = 1
+ # Description:
+ # Support security system
+ # Option Values:
+ # 0: Secure version 0
+ # 1: Secure version 1
+ # Switch-ability:
+ # Switchable
+
+SECURITY_FEATURE_TEST = FALSE
+ # Description:
+ # Enable/Disable security feature test case
+ # Option Values:
+ # FALSE: disable this feature
+ # TRUE: enable this feature
+ # Switch-ability:
+ # N/A
+
+SERIAL_FLASH_SUPPORT = FALSE
+ # Description:
+ # Description:
+ # To enable serial flash support, please set SERIAL_FLASH_SUPPORT as TRUE.
+ # Option Values:
+ # TRUE:
+ # FALSE:
+ # Switch-ability:
+ # Non-switchable
+ # Option Values:
+ # FALSE: Disable this feature
+ # TRUE: Enable this feature
+ # Switch-ability:
+ # Non-switchable
+
+SIM_SWTICH_CONTROLLER_MT6306 = FALSE
+ # Description:
+ # enable MT6306 4SIM feature
+ # Option Values:
+ # FALSE: disable 4SIM controller for MT6306
+ # TRUE: enable 4SIM controller for MT6306
+ # Switch-ability:
+ # Switchable
+
+SINGLE_BAND_NUM_EXTENSION_SUPPORT = TRUE
+ # Description:
+ # Increase LTE single band size from 25 to 35
+ # TRUE: support
+ # FALSE: not support
+ # Option Values:
+ # FALSE: Not support this feature
+ # TRUE: Support this feature
+ # Switch-ability:
+ # Non-switchable
+
+SMART_PHONE_CORE = ANDROID_MODEM
+ # Description:
+ # To distinguish if it is a smart phone MODEM makefile or a smart phone APP makefile. NONE means it is not a smart-phone make file
+ # Option Values:
+ # ANDROID_MODEM: modem processor software load for Android smart phone
+ # MODEM_ONLY: in-house testing load running on modem processor
+ # NONE: .
+ # Switch-ability:
+ # Non-switchable
+
+SML_SUPPORT = TRUE
+ # Description:
+ # SIM-ME lock support
+ # Option Values:
+ # FALSE: Not support SIM-ME lock
+ # TRUE: Support SIM-ME lock
+ # Switch-ability:
+ # Non-switchable
+
+SMS_OVER_PS_SUPPORT = TRUE
+ # Description:
+ # Wrap the functionality - "SMS over PS" - for switchable
+ # Option Values:
+ # FALSE: Disable SMS send over PS
+ # TRUE: Enable SMS send over PS
+ # Switch-ability:
+ # Non-switchable
+
+SMS_PHONE_ENTRY = 50
+ # Description:
+ # SMS Entry Number in NVRAM
+ # Option Values:
+ # NA: SMS entities on NVRAM
+ # Switch-ability:
+ # Switchable
+
+SMS_R8_NATION_LANGUAGE = FALSE
+ # Description:
+ # The feature option is to support Turkish special character encoding method which is defined in 3GPP 23.038 Release8.
+ # New SMS UDH IEI is introduced to indicate the encoding/decoding alphabet of special Turikish character.
+ # Using the new method, SMS can avoid to use UCS2 coding scheme when the special Turkish character is present in the message.
+ # Option Values:
+ # FALSE: Disable SMS R8 Nation Language (ex: Turkey)
+ # TRUE: Enable SMS R8 Nation Language (ex: Turkey)
+ # Switch-ability:
+ # Non-switchable
+
+SMS_TOTAL_ENTRY = 100
+ # Description:
+ # total number of SMS stored in SIM and NVRAM can be read
+ # Option Values:
+ # NA: SMS entities on NVRAM+SIM
+ # Switch-ability:
+ # Switchable
+
+SPMI = TRUE
+ # Description:
+ # SPMI = TRUE
+ # Description:
+ # To specify System Power Management Interface support or not.
+ # Option Values:
+ # Value:TRUE
+ # Description:auto created - value yes
+ # Value:FALSE
+ # Description:auto created - value no
+ #
+ #
+ # MT6885_oo(xxxx).mak only
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+SSS_SUPPORT = SSS_LIB
+ # Description:
+ # Modem internal security library
+ # Option Values:
+ # SSS_LIB: .
+ # SSS_SOURCE: .
+ # Switch-ability:
+ # Non-switchable
+
+SUBMARINE_SUPPORT = TRUE
+ # Description:
+ # IMS SW re-arch compile option to distinguish to leagcy IMS and new SW arch.
+ # Must be enabled together with IMS_SUPPORT and MD_TCPIP_SUPPORT
+ # Option Values:
+ # FALSE: disable submarine in MD
+ # TRUE: enable SUBMARINE in MD
+ # Switch-ability:
+ # Non-switchable
+
+SUB_BOARD_VER = PCB01
+ # Description:
+ # Sub-name of the PCB or EVB.
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+TASK_BATCH_SCHEDULING = TRUE
+ # Description:
+ # Task Rescheduling for low power
+ # Option Values:
+ # FALSE: Disable Option
+ # TRUE: Enable Option
+ # Switch-ability:
+ # Non-switchable
+
+TA_SAR_TX_POWER_BACKOFF_SUPPORT = FALSE
+ # Description:
+ # This option is used for enabling or disabling TA-SAR feature.
+ # Option Values:
+ # FALSE: Option default FALSE.
+ # Switch-ability:
+ # Non-switchable
+
+TEST_LOAD_TYPE = NONE
+ # Description:
+ # internal test load type
+ # Option Values:
+ # BASIC: BASIC
+ # L1S: L1S
+ # NONE: NONE
+ # UDVT: UDVT
+ # Switch-ability:
+ # Non-switchable
+
+TX_POWER_OFFSET_SUPPORT = TRUE
+ # Description:
+ # Depend on this option to distinguish whether TX POWER OFFSET is supported or not.
+ # Option Values:
+ # FALSE: TX POWER OFFSET is NOT supported
+ # TRUE: TX POWER OFFSET is supported
+ # Switch-ability:
+ # Non-switchable
+
+TX_PWR_EXTENSION = TRUE
+ # Description:
+ # for setting max tx power and reading current tx power
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_RF_MODULE = MT2735_UMTS_FDD_MT6190_WIDE_TEMP_CUSTOM
+ # Description:
+ # This option is used specify which RF module is used in UL1D RF driver
+ # "UL1D" means UMTS Layer 1 Driver.
+ # Option Values:
+ # MT6162: the RF module used in this project
+ # Switch-ability:
+ # Non-switchable
+
+UMTS_TDD128_RF_MODULE = MT2735_UMTS_TDD_MT6190_WIDE_TEMP_CUSTOM
+ # Description:
+ # Modem Capability
+ # Option Values:
+ # NA: the RF module used in this project
+ # Switch-ability:
+ # Non-switchable
+
+USB_COM_PORT_SUPPORT = FALSE
+ # Description:
+ # Open Com Port function
+ # Option Values:
+ # FALSE: Disbale USB comport
+ # TRUE: Enable USB comport
+ # Switch-ability:
+ # Non-switchable
+
+USB_ETHERCORE_VIRTUAL_INTERFACE_SUPPORT = FALSE
+ # Description:
+ # used to enable USB ethercore virtual interface for IMS
+ # Option Values:
+ # TRUE/FALSE: TRUE: Support ethercore virtual interface for IMS
+ # FALSE: Not support ethercore virtual interface for IMS
+ # Switch-ability:
+ # Non-switchable
+
+USB_HS_SUPPORT = FALSE
+ # Description:
+ # Customer can use this compileoption to decide USB2.0 or USB1.1. TRUE:: work in USB2.0
+ # Option Values:
+ # FALSE: Disable USB High-Soeed mode (Run in Full Speed)
+ # TRUE: Enable USB High-Speed
+ # Switch-ability:
+ # Non-switchable
+
+USB_IN_META_SUPPORT = FALSE
+ # Description:
+ # This option is used to turn on Meta mode bu using USB.
+ # Option Values:
+ # FALSE: can only use UART
+ # TRUE: support by using USB
+ # Switch-ability:
+ # Non-switchable
+
+USB_MASS_STORAGE_CDROM_SUPPORT = FALSE
+ # Description:
+ # enable USB mass storage feature
+ # Option Values:
+ # N/A
+ # Switch-ability:
+ # Non-switchable
+
+USB_MASS_STORAGE_SUPPORT = FALSE
+ # Description:
+ # enable USB mass storage feature
+ # Option Values:
+ # FALSE: doesn't support Mass Storage function
+ # TRUE: Support USB mass storage function
+ # Switch-ability:
+ # Non-switchable
+
+USB_MSD_SUPPORT = FALSE
+ # Description:
+ # Used to enable USB Mass Storage device.
+ # Option Values:
+ # FALSE: USB Mass Storage module will not be built.
+ # TRUE: USB Mass Storage module will be built.
+ # Switch-ability:
+ # Non-switchable
+
+USB_RNDIS_SUPPORT = FALSE
+ # Description:
+ # Used to enable USB RNDIS device
+ # Option Values:
+ # FALSE: Disable USB CDC/ACM device
+ # TRUE: Enable USB CDC/ACM device
+ # Switch-ability:
+ # Non-switchable
+
+USE_1X_ONLY = FALSE
+ # Description:
+ # Used for C2K Only for Modem
+ # Option Values:
+ # FALSE: Not C2K Only
+ # TRUE: C2K Only
+ # Switch-ability:
+ # Non-switchable
+
+USE_GPS_TYPE = GPS_TYPE_EXTERNAL_ON_AP
+ # Description:
+ # option to use GPS chip internal or external. For MTK C2K modem solution, always use external GPS chip.
+ # Option Values:
+ # GPS_TYPE_EXTERNAL_ON_AP: GPS chip on AP side
+ # Switch-ability:
+ # Non-switchable
+
+USE_RUIM = TRUE
+ # Description:
+ # TRUE: Device with SIM card
+ # FLASE: Device without SIM card
+ # Option Values:
+ # FLASE: Device without SIM card
+ # TRUE: Device with SIM card
+ # Switch-ability:
+ # Non-switchable
+
+WHITE_CELL_LOCK = TRUE
+ # Description:
+ # This feature option is used to enable/disable cell measurement and white cell lock feature
+ # Option Values:
+ # no: auto created - value no
+ # yes: auto created - value yes
+ # Switch-ability:
+ # Non-switchable
+
+WIFIPROXY_SUPPORT = FALSE
+ # Description:
+ # Please help to create new feature option for wifiproxy modem module. wifiproxy module is already available/enable in all
+ # gen97 and gen98 generation projects and operated/compiled by SUBMARINE_SUPPORT feature.
+ # there is need to separate from SUBMARINE SUPPORT for enable/desable the wifiproxy feature without submarine dependency .
+ # wifiproxy is not dependent module of SUMBARINE support. So need to enable/desable feature without submarine supprut feature.
+ #
+ #
+ # shelved cl: 12860623 in
+ # //VMOLY/BRANCHES_NR15/NR15.R3.T700.MP/mcu/make/projects/MT6885_UESIM(NLWTG).mak
+ # Option Values:
+ # FALSE: WIFIPROXY_SUPPORT = FALSE
+ # TRUE: WIFIPROXY_SUPPORT = TRUE
+ # Switch-ability:
+ # Non-switchable
+
+
+BRANCH = NR15.R3.MD700.IVT.MP1MR3.MP
+
+BUILD = BUILD_NO
+
+CUSTOM_CFLAGS = #-gdwarf-4
+
+DHL_LOG_BUF_LOCATION = SHM
+
+DHL_LOG_CHANNEL = CCB
+
+DHL_META_BUF_LOCATION = SHM
+
+DHL_META_CHANNEL = CCB
+
+EVENT_USAGE_PROFILING = FALSE
+
+HW_VER = MT2735_IVT_HW
+
+IDC_CCCI_PATH_OR_DIRECT_PATH_SUPPORT = 1
+
+IDC_HW_SIGNAL_VIA_SW_MSG_SUPPORT = 1
+
+L5_F001 = FALSE
+
+LOGGING_BUFFER_REALLOCATION_BY_FILTER = FALSE
+
+MCIF_SHM_SUPPORT = FALSE
+
+MD_TFWK = TRUE
+
+MODEM_COMMON_PACKAGE_LOW_POWER_FEATURE = DISABLE
+
+MT_FRAMEWORK_ENABLE = TRUE
+
+NR_N1_25M_30M_SUPPORT = FALSE
+
+NR_N2_25M_30M_SUPPORT = FALSE
+
+NR_N38_25M_30M_40M_SUPPORT = FALSE
+
+NR_N48_SUPPORT = FALSE
+
+NR_N5_25M_30M_SUPPORT = FALSE
+
+NR_N7_25M_30M_40M_50M_SUPPORT = FALSE
+
+ORIGINAL_VERNO = MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
+
+THIN_MODEM_SIM = TRUE
+
+TST_WRITE_TO_FILE = FALSE
+
+VERNO = MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
+CUSTOMER_LABEL = MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6_MT2735.IVT
+
+
+# *************************************************************************
+# TK MD Custom Feature Option Configuration
+# *************************************************************************
+TK_MD_CUS = NONE
+
+
+
+
+# *************************************************************************
+# Release Setting Section
+# *************************************************************************
+RELEASE_PACKAGE = REL_CR_BASIC
+############################################################
+
+COM_DEFS_FOR_MT2735_2G_MT6190_WIDE_TEMP_CUSTOM = MT6190_2G_RF
+COM_DEFS_FOR_MT2735_UMTS_FDD_MT6190_WIDE_TEMP_CUSTOM = MT6190_UMTS_FDD
+COM_DEFS_FOR_MT2735_UMTS_TDD_MT6190_WIDE_TEMP_CUSTOM = MT6190_UMTS_TDD
+COM_DEFS_FOR_MT2735_LTE_MT6190_WIDE_TEMP_CUSTOM = MT6190_LTE_RF
+COM_DEFS_FOR_MT2735_C2K_MT6190_WIDE_TEMP_CUSTOM = MT6190_C2K_RF
+COM_DEFS_FOR_MT2735_MMRF_MT6190_WIDE_TEMP_CUSTOM = MT6190_RF
+COM_DEFS_FOR_MT2735_NR_MT6190_WIDE_TEMP_CUSTOM = MT6190_NR_RF
+
+# *************************************************************************
+# Common preprocessor definitions
+# *************************************************************************
+
+
+
+
+# *************************************************************************
+# By project preprocessor definitions
+# *************************************************************************
+CUSTOM_OPTION += __NR_CA_DL_2CC__
+CUSTOM_OPTION += __DEFAULT_ENABLE_SA__
+CUSTOM_OPTION += __GEMINI_NR_RAM_REDUCE__
+CUSTOM_OPTION += __MDVSIM__
+CUSTOM_OPTION += __VSIM__
+CUSTOM_OPTION += __LTE_EL1_4X4_MIMO_SUPPORT__
+
+# *************************************************************************
+# Component trace definition header files for custom release only
+# *************************************************************************
+# Customer can add new trace headers here for new modules
+NEW_CUS_REL_TRACE_DEFS_MODEM =
+
+