[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
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