blob: f1d8a39461adab210543c7d1e778bed58b834bb1 [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001#
2# Copyright Statement:
3# --------------------
4# This software is protected by Copyright and the information contained
5# herein is confidential. The software may not be copied and the information
6# contained herein may not be used or disclosed except with the written
7# permission of MediaTek Inc. (C) 2005
8#
9# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12# AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15# NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16# SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17# SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21#
22# BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23# LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24# AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25# OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27#
28# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33
34# *************************************************************************
35# Include GNU Make Standard Library (GMSL)
36# *************************************************************************
37include ./tools/GMSL/gmsl
38Upper = $(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)))))))))))))))))))))))))))
39
40
41CUSTOM_FLD_MAPPING = $(if $($(subst /,_,$(patsubst %/,%,$(subst //,/,$(subst \,/,$(call lc, $(1))))))), \
42 $($(subst /,_,$(patsubst %/,%,$(subst //,/,$(subst \,/,$(call lc, $(1))))))),\
43 $(if $(wildcard $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/$(strip $(CUSTOM_FLAVOR))),\
44 $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/$(strip $(CUSTOM_FLAVOR)),\
45 $(if $(wildcard $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/DEFAULT), \
46 $(subst //,/,$(subst \,/,$(call lc, $(1))))/$(BOARD_VER)/DEFAULT,)))
47
48
49AUTO_MERGE_FILE_CHECK = $(if $(shell $(LIST_DIR) "$(call CUSTOM_FLD_MAPPING,$(1))/$(2)" 2>$(DEV_NUL)), $(call CUSTOM_FLD_MAPPING,$(1))/$(2), \
50 $(if $(shell $(LIST_DIR) "$(1)/_Default_BB/$(strip $(PLATFORM))/$(2)" 2>$(DEV_NUL)), $(1)/_Default_BB/$(strip $(PLATFORM))/$(2),))
51# *************************************************************************
52# Set defaul value to Ckmake flag
53# *************************************************************************
54DEPENDENCY_CONFLICT = FALSE
55# *************************************************************************
56# Dependency Check error message Interfaces
57# *************************************************************************
58# ------------------------------------------------------------------------
59# Usage: $(call DEP_ERR_SETA_OR_SETB,OptA,ValA,OptB,ValB)
60# $(call DEP_ERR_SETA_OR_SETB,OptA,ValA,OptB,ValB1/ValB2/.../ValBn)
61# $(call DEP_ERR_SETA_OR_SETB,OptA,ValA,OptB,non ValB)
62# Output: PLEASE set OptA as ValA or set OptB as ValB
63# PLEASE set OptA as ValA or set OptB as ValB1/ValB2/.../ValBn
64# PLEASE set OptA as ValA or set OptB as non ValB
65#
66# Example: $(call DEP_ERR_SETA_OR_SETB,BROWSER_SUPPORT,OBIGO_Q05A,UNIFIED_MESSAGE_MARK_SEVERAL_SUPPORT,non OBIGO_Q05A)
67# PLEASE set BROWSER_SUPPORT as OBIGO_Q05A or set UNIFIED_MESSAGE_MARK_SEVERAL_SUPPORT as non OBIGO_Q05A
68# ------------------------------------------------------------------------
69DEP_ERR_SETA_OR_SETB = $(warning ERROR: PLEASE set $1 as $2 or set $3 as $4)
70# ------------------------------------------------------------------------
71# Usage: $(call DEP_ERR_ONA_OR_OFFB,OptA,OptB)
72# $(call DEP_ERR_ONA_OR_OFFB,OptA,OptB$OptC&...&OptN)
73# Output: PLEASE turn on OptA or turn off OptB
74#
75# Example: $(call DEP_ERR_ONA_OR_OFFB,NAND_SUPPORT,NAND_FLASH_BOOTING)
76# PLEASE turn on NAND_SUPPORT or turn off NAND_FLASH_BOOTING
77# ------------------------------------------------------------------------
78DEP_ERR_ONA_OR_OFFB = $(warning ERROR: PLEASE turn on $1 or turn off $2)
79# ------------------------------------------------------------------------
80# Usage: $(call DEP_ERR_SETA_OR_OFFB,OptA,ValA,OptB)
81# $(call DEP_ERR_SETA_OR_OFFB,OptA,ValA1/ValA2/.../ValAn,OptB)
82# $(call DEP_ERR_SETA_OR_OFFB,OptA,non ValA,OptB)
83# Output: PLEASE set OptA as ValA or turn off OptB
84# PLEASE set OptA as ValA1/ValA2/.../ValAn or turn off OptB
85# PLEASE set OptA as non ValA or turn off OptB
86#
87# Example: $(call DEP_ERR_SETA_OR_OFFB,MELODY_VER,DSP_WT_SYN,J2ME_SUPPORT)
88# PLEASE set MELODY_VER as DSP_WT_SYN or turn off J2ME_SUPPORT
89# ------------------------------------------------------------------------
90DEP_ERR_SETA_OR_OFFB = $(warning ERROR: PLEASE set $1 as $2 or turn off $3)
91# ------------------------------------------------------------------------
92# Usage: $(call DEP_ERR_SETA_OR_ONB,OptA,ValA,OptB)
93# $(call DEP_ERR_SETA_OR_ONB,OptA,ValA1/ValA2/.../ValAn,OptB)
94# $(call DEP_ERR_SETA_OR_ONB,OptA,non ValA,OptB)
95# Output: PLEASE set OptA as ValA or turn on OptB
96# PLEASE set OptA as ValA1/ValA2/.../ValAn or turn on OptB
97# PLEASE set OptA as non ValA or turn on OptB
98#
99# Example: $(call DEP_ERR_SETA_OR_ONB,MMS_SUPPORT,non OBIGO_Q05A,UNIFIED_MESSAGE_FOLDER)
100# PLEASE set MMS_SUPPORT as non OBIGO_Q05A or turn on UNIFIED_MESSAGE_FOLDER
101# ------------------------------------------------------------------------
102DEP_ERR_SETA_OR_ONB = $(warning ERROR: PLEASE set $1 as $2 or turn on $3)
103# ------------------------------------------------------------------------
104# Usage: $(call DEP_ERR_OFFA_OR_OFFB,OptA,OptB)
105# Output: PLEASE turn off OptA or turn off OptB
106#
107# Example: $(call DEP_ERR_OFFA_OR_OFFB,CMUX_SUPPORT,BLUETOOTH_SUPPORT)
108# PLEASE turn off CMUX_SUPPORT or turn off BLUETOOTH_SUPPORT
109# ------------------------------------------------------------------------
110DEP_ERR_OFFA_OR_OFFB = $(warning ERROR: PLEASE turn off $1 or turn off $2)
111# ------------------------------------------------------------------------
112# Usage: $(call DEP_ERR_ONA_OR_ONB,OptA,OptB)
113# Output: PLEASE turn on OptA or turn on OptB
114#
115# Example: $(call DEP_ERR_ONA_OR_ONB,UCM_SUPPORT,VOIP_SUPPORT)
116# PLEASE turn on UCM_SUPPORT or turn on VOIP_SUPPORT
117# ------------------------------------------------------------------------
118DEP_ERR_ONA_OR_ONB = $(warning ERROR: PLEASE turn on $1 or turn on $2)
119# *************************************************************************
120# Set defaul value to eliminate "option not define" warning
121# *************************************************************************
122BM_NEW = FALSE
123COMPOBJS =
124
125SUPPORT_PLATFORM = TK6291 ELBRUS MT6763 MT6295M MT6739 MT6771 MT3967 MT6779 MT6297 MT6885 MERCURY MT6873 MT6853 MT6893 MT6833 MT6880 MT6890 MT6877 MT2735
126
127ifndef PROJECT_NAME
128$(error PROJECT_NAME is not defined)
129endif
130ifndef PROJECT_MAKEFILE
131$(error PROJECT_MAKEFILE is not defined)
132endif
133ifndef FLAVOR
134$(error FLAVOR is not defined)
135endif
136
137# *************************************************************************
138# Include temporary build script
139# *************************************************************************
140
141# default cmd setting
142include make/common/cmd_cfg.mak
143
144-include make/common/Verno.bld
145ifneq ($(wildcard make/common/Verno.bld),)
146ifdef VERNO
147MTK_INTERNAL_VERNO := $(strip $(VERNO))
148endif
149endif
150
151HW_VER := $(call Upper,$(strip $(PROJECT_NAME)))_HW
152
153
154include $(PROJECT_MAKEFILE)
155include make/common/buildconfig.mak
156-include make/common/build_warning_def.mak
157-include $(strip $(TMPDIR))/~buildinfo.tmp
158-include $(strip $(TMPDIR))/~net_path.tmp
159-include $(strip $(TMPDIR))/cus_folder.tmp
160include $(strip $(MAKE_COMMON))/compiler.mak
161
162VERNO := $(call Upper,$(strip $(VERNO)))
163
164ifndef CUSTOM_FLAVOR
165$(error CUSTOM_FLAVOR is not defined)
166endif
167
168
169# *************************************************************************
170# Determine to build in which domain
171# *************************************************************************
172# Default MPD 5G release
173MPD_SOURCE_FULL_BUILD = FALSE
174ifneq ($(wildcard make/common/rel/mpd/5g),)
175 MPD_SOURCE_FULL_BUILD = TRUE
176endif
177
178# Default MPD 4G release
179MPD_SOURCE_4G_BUILD = FALSE
180ifneq ($(wildcard make/common/rel/mpd/4g),)
181 MPD_SOURCE_4G_BUILD = TRUE
182endif
183
184# Default SWRD release
185MTK_SW_DOMAIN = FALSE
186ifneq ($(wildcard make/common/rel/hq/USR.txt),)
187 ifeq ($(wildcard make/common/rel/mpd),)
188 MTK_SW_DOMAIN = TRUE
189 endif
190endif
191
192# Default custom release
193ifndef CUSTOM_RELEASE
194 CUSTOM_RELEASE = FALSE
195endif
196
197# *************************************************************************
198# Common definitions
199# *************************************************************************
200
201COMMINCDIRS += $(CUSTOM_COMMINC)
202COM_DEFS += $(CUSTOM_OPTION)
203
204NEED_BUILD_BOOTLOADER = FALSE
205
206# MD OFFLOAD COPRO Setting
207MD_COPRO_CONFIG := FALSE
208FORCE_GEN := FALSE
209
210# always off
211DHL_MALMO_SUPPORT = FALSE
212CSD_SUPPORT = NONE
213FEATURE_OVERLOAD = FALSE
214HIF_SDIO_SUPPORT = FALSE
215MDSYS = NONE
216NVRAM_PSEUDO_MERGE = OFF
217OP01_2G_ONLY = FALSE
218
219# always on
220AEC_ENABLE = TRUE
221DRV_DEBUG_MEMORY_TRACE_SUPPORT = TRUE
222
223COM_DEFS += __HW_PFC_SUPPORT__
224COM_DEFS += __USB_COMPORT_SUPPORT_MTK_DRIVER__
225COM_DEFS += __DISABLE_A5_2__
226COM_DEFS += PMIC_INIT_PHONE_ON_EVB
227COM_DEFS += __IPV6__ __IPV4V6__
228COM_DEFS += __VAMOS_1__ __VAMOS_2__
229COM_DEFS += __R99__
230COM_DEFS += __CENTRALIZED_SLEEP_MANAGER__
231COM_DEFS += __L1_GPS_CO_CLOCK_SUPPORT__
232COM_DEFS += __L1_LOCK_AFCDAC_AT_STARTUP_SUPPORT__
233COM_DEFS += __L1_CRYSTAL_ON_PMIC_SUPPORT__
234COM_DEFS += __MMRF_BSIBPIRS_DYNAMIC_ALLOCATION_SUPPORT__
235COM_DEFS += __CGLA__ __UICC_CHANNEL_SUPPORT__
236COM_DEFS += __SIM_RECOVERY_ENHANCEMENT__
237COM_DEFS += __USIM_SUPPORT__ __EF_NETPAR_SUPPORT__ __PHB_USIM_SUPPORT__
238COM_DEFS += __SLIM_MODEM_EM_MODE__ __MODEM_EM_MODE__
239ifneq ($(strip $(UE_SIMULATOR)),TRUE)
240 COM_DEFS += __TAS_SUPPORT__
241endif
242ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
243 COM_DEFS += __3G_NEW_DATA_PLANE_ARCH__ __RATDM_UL_SHAQ__ __RATDM_SHAQ_HAS_PRIORITY_QUEUE__ __CSHSPA_SUPPORT__
244 ifeq ($(strip $(UMTS_TDD_SUPPORT)),UMTS_TDD128_MODE_SUPPORT)
245 COM_DEFS += __UMTS_TDD128_BAND_A__
246 COM_DEFS += __UMTS_TDD128_BAND_F__
247 endif
248 COM_DEFS += __UL2_HSPA_PLUS_RX_COPRO__
249 COM_DEFS += __UL2_HSPA_PLUS_TX_COPRO__
250 COM_DEFS += __AOC_SUPPORT__
251 COM_DEFS += __ECC_RETRY_ENHANCEMENT__
252 COM_DEFS += __REL4__ __GERAN_R4__
253 COM_DEFS += __REL5__ __GERAN_R5__
254 COM_DEFS += __2G_RF_CUSTOM_TOOL_SUPPORT__
255 ifneq ($(strip $(UE_SIMULATOR)), TRUE)
256 COM_DEFS += MTK_SLEEP_ENABLE
257 endif
258endif
259ifeq ($(filter L1S BASIC,$(TEST_LOAD_TYPE)),)
260 COM_DEFS += __IS_BYTECOPY_SUPPORT__
261 COM_DEFS += __RFC2507_SUPPORT__
262endif
263ifeq ($(strip $(TEST_LOAD_TYPE)),NONE)
264 COM_DEFS += __RLC_HSDPA_COPRO__ __MAC_HSDPA_COPRO__
265 COM_DEFS += __L2_HSUPA_COPRO__
266 COM_DEFS += __CTM_SUPPORT__
267endif
268# custom option
269COM_DEFS += __MANUAL_MODE_NW_SEL__
270COM_DEFS += __AT_ESWM_SUPPORT__
271COM_DEFS += __CHECK_SYMBOL_MULTIPLE_DEFINITION__
272COM_DEFS += __DRV_NO_USB_CHARGER__
273COM_DEFS += DRV_USB_FORCE_TRIGGER_ONE_EINT
274COM_DEFS += MSDC_MMC40_SUPPORT
275COM_DEFS += __R6_OOS__
276COM_DEFS += __SMP_ARCH__
277COM_DEFS += __USB_HIGH_SPEED_COM_PORT_ENABLE__
278ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
279 COM_DEFS += __DYNAMIC_HSPA_PREFERENCE__
280 COM_DEFS += __KAL_CROSS_CORE_SUPPORT__
281 COM_DEFS += __NBR_CELL_INFO__
282 COM_DEFS += TK6268_FPGA1
283 COM_DEFS += __UMTS_NEW_ARCH__
284endif
285ifeq ($(strip $(TEST_LOAD_TYPE)),BASIC)
286 COM_DEFS += MRS_NOT_PRESENT
287endif
288ifeq ($(strip $(TEST_LOAD_TYPE)),L1S)
289 COM_DEFS += UL1_PHASE4_TEST
290endif
291ifeq ($(strip $(TEST_LOAD_TYPE)),NONE)
292 ifdef MODEM_SPEC
293 ifneq ($(strip $(MODEM_SPEC)),MTK_MODEM_C2K)
294 COM_DEFS += __CHANNEL_LOCK__
295 endif
296 endif
297endif
298ifeq ($(filter __FPGA__,$(strip $(COM_DEFS))),)
299 ifneq ($(strip $(UE_SIMULATOR)),TRUE)
300 COM_DEFS += __SATCC__ __SATCE__ __SATCL__
301 COM_DEFS += __SATCZ__ __SATCAA__
302 endif
303endif
304
305#Custom Option for SE3 UT
306ifneq ($(strip $(UE_SIMULATOR)),TRUE)
307 ifeq ($(strip $(MODIS_CONFIG)),TRUE)
308 COM_DEFS += __L4C_GPRS_UT__ __L4BPDN_UT__
309 COM_DEFS += __EM_MODE__ __MODEM_EM_MODE__ UNIT_TEST __TCM_UT__ __TCM_UGTCM_UT__
310 COM_DEFS += __IPV6__ __IPV4V6__ __REL7__ __REL8__
311 COM_DEFS += __SP_GEMINI_3G_SWITCH__ __NRSPCA__
312 COM_DEFS += __SM_UT__ __IPV6_8960_RD_INTERNAL_TEST__ __SM_PRESERVE_RT_PDP_SEVERAL_SECONDS__
313 COM_DEFS += __TCM_RAT_TCM_UT__
314 COM_DEFS += __PAM_UT__
315
316 #RATDM UT
317 COM_DEFS += __RATDM_UT__
318
319 #PDCP/RABM UT
320 COM_DEFS += __PDCP_UT__ __PDCP_LOOPBACK_UT__
321
322 #LLC UT
323 COM_DEFS += __LLC_UT__
324
325 #SNDCP UT
326 COM_DEFS += __SNDCP_UT__ SND_UT_FLC
327
328 ifeq ($(strip $(IMS_SUPPORT)),TRUE)
329 COM_DEFS += __IMS_SUPPORT__
330 endif
331
332 #CSD UT
333 #CSD support is removed from Project Make
334
335 #Removed due to PS1 request (Hope UT logic is same with real target)
336 #COM_DEFS += __MULTI_CARRIER_HSDPA__=3
337 #COM_DEFS += __DCHSUPA_ADJ_FREQ_SUPPORT__
338 endif
339endif
340
341# *************************************************************************
342# COM_DEFS_FOR_xxx defined
343# *************************************************************************
344# Platform Options
345COM_DEFS_FOR_FPGA = FPGA
346COM_DEFS_FOR_$(strip $(PLATFORM)) = $(strip $(PLATFORM)) $(strip $(PLATFORM))_$(strip $(CHIP_VER))
347
348ifeq ($(strip $(PLATFORM)),MT6893)
349 COM_DEFS_FOR_MT6893 += MT6885 MT6885_$(strip $(CHIP_VER))
350endif
351
352COM_DEFS_FOR_PLATFORM = COM_DEFS_FOR_$(strip $(PLATFORM))
353
354# RF Module Options
355#add for UESIM project
356COM_DEFS_FOR_MT6176_UMTS_FDD = MT6176_RF MT6176_UMTS_FDD
357COM_DEFS_FOR_MT6176_LTE = MT6176_RF MT6176_LTE_RF
358COM_DEFS_FOR_MT6179_LTE = MT6179_RF MT6179_LTE_RF
359
360COM_DEFS_FOR_RF_MODULE = COM_DEFS_FOR_$(strip $(RF_MODULE))
361
362ifdef UMTS_RF_MODULE
363ifneq ($(strip $(UMTS_RF_MODULE)),NONE)
364 COM_DEFS_FOR_RF_MODULE = COM_DEFS_FOR_$(strip $(UMTS_RF_MODULE))
365endif
366endif
367
368ifdef UMTS_TDD128_RF_MODULE
369ifneq ($(strip $(UMTS_TDD128_RF_MODULE)),NONE)
370 COM_DEFS_FOR_RF_MODULE = COM_DEFS_FOR_$(strip $(UMTS_TDD128_RF_MODULE))
371endif
372endif
373
374ifdef LTE_RF_MODULE
375ifneq ($(strip $(LTE_RF_MODULE)),NONE)
376 COM_DEFS_FOR_RF_MODULE = COM_DEFS_FOR_$(strip $(LTE_RF_MODULE))
377endif
378endif
379
380# BAND_SUPPORT Options
381COM_DEFS_FOR_PGSM900 = __PGSM900__
382COM_DEFS_FOR_EGSM900 = __EGSM900__
383COM_DEFS_FOR_RGSM900 = __RGSM900__
384COM_DEFS_FOR_DCS1800 = __DCS1800__
385COM_DEFS_FOR_PCS1900 = __PCS1900__
386COM_DEFS_FOR_GSM850 = __GSM850__
387COM_DEFS_FOR_GSM450 = __GSM450__
388COM_DEFS_FOR_DUAL900 = __EGSM900__ __DCS1800__
389COM_DEFS_FOR_TRIPLE = __EGSM900__ __DCS1800__ __PCS1900__
390COM_DEFS_FOR_QUAD = __EGSM900__ __DCS1800__ __PCS1900__ __GSM850__
391COM_DEFS_FOR_DUAL850 = __GSM850__ __PCS1900__
392COM_DEFS_FOR_TRIPLE850 = __GSM850__ __DCS1800__ __PCS1900__ TRIPLE850
393
394COM_DEFS_FOR_BAND_SUPPORT = COM_DEFS_FOR_$(strip $(BAND_SUPPORT))
395# BAND_SUPPORT Options end
396
397# AFC_VCXO_TYPE Options
398COM_DEFS_FOR_VCXO = AFC_VCXO
399COM_DEFS_FOR_VCXO_SC = AFC_VCXO AFC_SC
400COM_DEFS_FOR_VCXO_TC = AFC_VCXO AFC_TC
401COM_DEFS_FOR_VCXO_SC_TC = AFC_VCXO AFC_SC AFC_TC
402COM_DEFS_FOR_VCXO_2G = AFC_VCXO_2G
403
404COM_DEFS_FOR_AFC_VCXO_TYPE = COM_DEFS_FOR_$(strip $(AFC_VCXO_TYPE))
405# AFC_VCXO_TYPE Options end
406
407# *************************************************************************
408# parameter config in para_def.mak
409# *************************************************************************
410include $(strip $(MAKE_COMMON))/rule_def/para_def.mak
411
412# *************************************************************************
413# Component Compile Options
414# *************************************************************************
415include $(strip $(MAKE_COMMON))/rule_def/common_def.mak
416
417# *************************************************************************
418# Components list
419# *************************************************************************
420include $(strip $(MAKE_COMMON))/rule_def/complist_def.mak
421
422# *************************************************************************
423# Common include path
424# *************************************************************************
425include $(strip $(MAKE_COMMON))/rule_def/commincdirs_def.mak
426
427# *************************************************************************
428# L1 TMD Files
429# *************************************************************************
430include $(strip $(MAKE_COMMON))/rule_def/tmd_def.mak
431
432# *************************************************************************
433# Component trace definition header files
434# *************************************************************************
435include $(strip $(MAKE_COMMON))/rule_def/trace_def.mak
436
437# *************************************************************************
438# Include checkvalue.mak to check invalid feature values.
439# *************************************************************************
440-include make/common/checkvalue.mak
441-include make/common/old_features.mak
442
443# *************************************************************************
444# Include MPD specail compile settings.
445# *************************************************************************
446include $(strip $(MAKE_COMMON))/rule_def/mpd_sp_def.mak
447
448
449# *************************************************************************
450# Check rel setting and decide for REL_SRC_COMP(_SW)/REL_MTK_COMP(_SW)
451# *************************************************************************
452
453#For custom UCR package
454ifneq ($(strip $(RELEASE_PACKAGE)), REL_INTERNAL)
455 include make/common/rel/$(strip $(RELEASE_PACKAGE)).mak
456endif
457CUS_REL_SRC_COMP_CUST := $(filter $(REL_SRC_COMP),$(COMPLIST))
458CUS_REL_MTK_COMP_CUST := $(filter $(REL_MTK_COMP),$(COMPLIST))
459
460ifneq ($(strip $(CUSTOM_RELEASE)),TRUE)
461 #Check internal(MPD/SWRD) rel setting
462 include make/common/rel/REL_SUB_MPD_5G.mak
463
464 ifneq ($(NO_PCIBT),TRUE)
465 #Check if module is not defined in internal domain
466 ifneq ($(filter-out $(REL_SUB_COMP), $(FIVEG_COMP) $(FOURG_COMP) $(COMPLIST)),)
467 $(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)
468 $(warning Please refer http://wiki/display/MOLY/How+to+add+a+new+module for internal rel setting.)
469 DEPENDENCY_CONFLICT = TRUE
470 endif
471
472 #Check if module is not defined in custom domain
473 ifneq ($(strip $(MODIS_CONFIG)),TRUE)
474 ifneq ($(filter-out $(REL_CR_COMP), $(FIVEG_COMP) $(FOURG_COMP) $(COMPLIST)),)
475 $(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)
476 $(warning Please refer http://wiki/display/MOLY/How+to+add+a+new+module for custom rel setting.)
477 DEPENDENCY_CONFLICT = TRUE
478 endif
479 endif
480
481 #For MPD 5G check
482 REL_FIVEG_SRC_COMP := $(REL_SRC_COMP_SUB_MPD_5G)
483 ifneq ($(filter-out $(REL_FIVEG_SRC_COMP),$(FIVEG_COMP)),)
484 $(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)
485 $(warning Please refer http://wiki/display/MOLY/How+to+add+a+new+module for MPD srel etting.)
486 DEPENDENCY_CONFLICT = TRUE
487 endif
488
489 #For MPD 4G check
490 REL_FOURG_SRC_COMP := $(REL_SRC_COMP_SUB_MPD_4G)
491 ifneq ($(filter-out $(REL_FOURG_SRC_COMP),$(FOURG_COMP)),)
492 $(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)
493 $(warning Please refer http://wiki/display/MOLY/How+to+add+a+new+module for MPD rel setting.)
494 DEPENDENCY_CONFLICT = TRUE
495 endif
496
497 #For MPD common/ SWRD check
498 REL_COMMON_SRC_COMP := $(REL_SRC_COMP_SUB_MPD_COMMON) $(REL_SRC_COMP_SUB_SW)
499 ifneq ($(filter-out $(REL_COMMON_SRC_COMP),$(filter-out $(FIVEG_COMP)$(FOURG_COMP),$(COMPLIST))),)
500 $(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)
501 $(warning Please refer http://wiki/display/MOLY/How+to+add+a+new+module for other MPD setting.)
502 DEPENDENCY_CONFLICT = TRUE
503 endif
504 endif
505
506 ifeq ($(MPD_SOURCE_FULL_BUILD), TRUE)
507 #For SWRD USR package
508 CUS_REL_SRC_COMP_SW := $(filter $(REL_SRC_COMP_SW),$(COMPLIST))
509 CUS_REL_MTK_COMP_SW := $(filter $(REL_MTK_COMP_SW),$(COMPLIST))
510
511 # Dedide for REL_SRC_COMP/REL_MTK_COMP in each domain
512 else ifeq ($(strip $(MPD_SOURCE_4G_BUILD)),TRUE)
513 include make/common/rel/REL_SUB_MPD_4G.mak
514 else ifeq ($(strip $(MTK_SW_DOMAIN)),TRUE)
515 include make/common/rel/REL_SUB_SW.mak
516 else
517 include make/common/rel/REL_SUB_MPD_COMMON.mak
518 endif
519endif
520
521# *************************************************************************
522# EXTRA_LTE settings.
523# *************************************************************************
524SP_LTE_COMP += emm esm etc eval
525
526ifneq ($(wildcard $(LTE_SRC_FDR)),)
527COMPLIST += $(SP_LTE_COMP)
528endif
529
530AUTO_MERGE_FLR = ./custom/driver/audio ./custom/driver/drv/misc_drv
531AUTO_MERGE_PTH = $(foreach DIR,$(AUTO_MERGE_FLR),$(call CUSTOM_FLD_MAPPING,$(DIR)) $(DIR)/_Default_BB/$(strip $(PLATFORM)))
532COMMINCDIRS := $(AUTO_MERGE_PTH) $(COMMINCDIRS)
533
534# *************************************************************************
535# COMPOBJS compile settings.
536# *************************************************************************
537
538CUST_REL_LIB := $(wildcard ./cust_rel_lib/lib*.a)
539ifneq ($(strip $(CUST_REL_LIB)),)
540 COMPOBJS += $(strip $(CUST_REL_LIB))
541endif
542
543ifeq ($(strip $(SMART_PHONE_CORE)),ANDROID_MODEM)
544 ifdef MTK_BT_CHIP
545 ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
546 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libcvsd_codec.a
547 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libmsbc_codec.a
548 else
549 COMPOBJS += driver/audio/lib/MTKGCC/libcvsd_codec.a
550 COMPOBJS += driver/audio/lib/MTKGCC/libmsbc_codec.a
551 endif
552 else
553 ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
554 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libcvsd_codec.a
555 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libmsbc_codec.a
556 else
557 COMPOBJS += driver/audio/lib/MTKGCC/libcvsd_codec.a
558 COMPOBJS += driver/audio/lib/MTKGCC/libmsbc_codec.a
559 endif
560 endif
561
562 ifeq ($(strip $(VOLTE_SUPPORT)),TRUE)
563 ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
564 #COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libdtmf.a
565 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg711.a
566 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg711plc.a
567 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg722.a
568 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg726.a
569 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg729.a
570 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libg7231.a
571 else
572 COMPOBJS += driver/audio/lib/MTKGCC/libdtmf.a
573 COMPOBJS += driver/audio/lib/MTKGCC/libg711.a
574 COMPOBJS += driver/audio/lib/MTKGCC/libg711plc.a
575 COMPOBJS += driver/audio/lib/MTKGCC/libg722.a
576 COMPOBJS += driver/audio/lib/MTKGCC/libg726.a
577 COMPOBJS += driver/audio/lib/MTKGCC/libg729.a
578 COMPOBJS += driver/audio/lib/MTKGCC/libg7231.a
579 endif
580 endif
581
582 ifdef TEST_LOAD_TYPE
583 ifeq ($(strip $(TEST_LOAD_TYPE)),NONE)
584 ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
585 COMPOBJS += driver/audio/lib/MTKGCC_SHAOLIN/libblisrc.a
586 CUS_REL_OBJ_LIST += driver/audio/lib/MTKGCC_SHAOLIN/libblisrc.a
587 else
588 COMPOBJS += driver/audio/lib/MTKGCC/libblisrc.a
589 CUS_REL_OBJ_LIST += driver/audio/lib/MTKGCC/libblisrc.a
590 endif
591 endif
592 endif
593endif
594
595ifdef SSS_SUPPORT
596 ifeq ($(strip $(SSS_SUPPORT)),SSS_LIB)
597 ifeq ($(strip $(COMPILER)),GCC)
598 ifneq ($(filter MIPS32 MIPS16 NANOMIPS,$(strip $(COMPILER_ISA))),)
599 ifneq ($(filter MIPS32 MIPS16,$(strip $(COMPILER_ISA))),)
600 COMPOBJS += service/sss/lib/libsss_gcc_sv5.a
601 endif
602 ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
603 COMPOBJS += service/sss/lib/libsss_gcc_NANOMIPS.a
604 endif
605 else
606 $(warning ERROR: sss can not support compiler $(strip $(COMPILER_ISA), please check!)
607 DEPENDENCY_CONFLICT = TRUE
608 endif
609 CUS_REL_OBJ_LIST += ./service/sss/lib/sss_gcc_sv5.lib
610 else
611 $(warning ERROR: sss can not support compiler $(strip $(COMPILER), please check!)
612 DEPENDENCY_CONFLICT = TRUE
613 endif
614 endif
615 ifeq ($(strip $(SSS_SUPPORT)),SSS_SOURCE)
616 ifeq ($(strip $(COMPILER)),GCC)
617 ifneq ($(filter MIPS32 MIPS16,$(strip $(COMPILER_ISA))),)
618 SSS_SOURCE_COPY_DST := service/sss/lib/libsss_gcc_sv5.a
619 endif
620 ifeq ($(strip $(COMPILER_ISA)),NANOMIPS)
621 SSS_SOURCE_COPY_DST := service/sss/lib/libsss_gcc_NANOMIPS.a
622 endif
623 endif
624 endif
625endif
626
627# BASIC projects do not need L1_UTMD_FILES
628ifeq ($(strip $(TEST_LOAD_TYPE)),BASIC)
629 L1_UTMD_FILES :=
630endif
631
632# catcher_filter config file
633include interface/service/logging_database/XDD/Catcher_filters_Setting.mak
634
635#####################################################################
636# No whole archive lib (the libs list in below will not check symbol multiple definition)
637#####################################################################
638NO_WHOLE_ARCHIVE_LIB := custom
639
640#####################################################################
641# DSP ASE MODULES define
642#####################################################################
643# lib release, SMP in all core
644DSP_ASE_MODULES := audio
645
646# *************************************************************************
647# Dependency rule
648# *************************************************************************
649include $(strip $(MAKE_COMMON))/rule_def/dep_def.mak
650
651COMP_TRACE_DEFS = $(COMP_TRACE_DEFS_MODEM)
652
653# *************************************************************************
654# Include extra dependency check.
655# *************************************************************************
656-include make/common/extra_dep.mak
657
658ALL_COMPLIST := $(sort $(FIVEG_COMP) $(FOURG_COMP) $(COMPLIST))
659# Generate CUS_REL_SRC_COMP/REL_MTK_COMP
660CUS_REL_SRC_COMP_TEMP := $(filter $(REL_SRC_COMP),$(ALL_COMPLIST))
661CUS_REL_SRC_COMP += $(CUS_REL_SRC_COMP_TEMP)
662
663CUS_REL_MTK_COMP_TEMP := $(filter $(REL_MTK_COMP),$(ALL_COMPLIST))
664CUS_REL_MTK_COMP += $(CUS_REL_MTK_COMP_TEMP)
665
666# Remove the REMOVE_CUSTOM_OPTION specified in project makefile from COM_DEFS
667COM_DEFS := $(filter-out $(REMOVE_CUSTOM_OPTION),$(COM_DEFS))
668
669###########################################
670
671ifeq ($(strip $(ATEST_SYS_ENABLE)),TRUE)
672include make/module/middleware/internal/atest_sys.mak
673endif
674
675ifdef VARIATION_PROJ
676 ifneq ($(strip $(VARIATION_PROJ)),)
677 include make/common/variation/$(strip $(VARIATION_PROJ)).mak
678 ALL_COMPLIST := $(sort $(FIVEG_COMP) $(FOURG_COMP) $(COMPLIST))
679 CUS_REL_SRC_COMP_TEMP := $(filter $(REL_SRC_COMP) $(CUS_REL_SRC_COMP),$(ALL_COMPLIST))
680 CUS_REL_SRC_COMP := $(CUS_REL_SRC_COMP_TEMP)
681 CUS_REL_MTK_COMP_TEMP := $(filter $(REL_MTK_COMP) $(CUS_REL_MTK_COMP),$(ALL_COMPLIST))
682 CUS_REL_MTK_COMP := $(CUS_REL_MTK_COMP_TEMP)
683 endif
684endif
685
686# consistency check for ALL_COMPLIST & CUS_REL_XXX_COMP
687# check each comp in $(CUS_REL_XXX_COMP) if it has been put in $(ALL_COMPLIST)
688CREL_COMP_NOT_COMPLIST = $(filter-out $(ALL_COMPLIST),$(CUS_REL_SRC_COMP) $(CUS_REL_PAR_SRC_COMP) $(CUS_REL_MTK_COMP))
689# CREL_COMP_NOT_COMPLIST := $(filter-out fota,$(CREL_COMP_NOT_COMPLIST))
690ifneq ($(words $(CREL_COMP_NOT_COMPLIST)),0)
691 $(warning ERROR: $(foreach comp,$(CREL_COMP_NOT_COMPLIST),"$(comp)") in CUS_REL_XXX_COMP but NOT in COMPLIST)
692 DEPENDENCY_CONFLICT = TRUE
693endif
694
695# check no module define in $(CUS_REL_SRC_COMP) and $(CUS_REL_MTK_COMP) both
696COMP_BOTH_IN_SRC_MTK = $(filter $(CUS_REL_SRC_COMP),$(CUS_REL_MTK_COMP))
697ifneq ($(words $(COMP_BOTH_IN_SRC_MTK)),0)
698 $(warning ERROR: $(foreach comp,$(COMP_BOTH_IN_SRC_MTK),"$(comp)") in CUS_REL_SRC_COMP but also in CUS_REL_MTK_COMP)
699 DEPENDENCY_CONFLICT = TRUE
700endif
701
702# COMPLIST(during CUSTOM_RELEASE) = CUS_REL_SRC_COMP + CUS_REL_PAR_SRC_COMP
703ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
704 COMPLIST = $(strip $(CUS_REL_SRC_COMP))
705else
706 ifeq ($(strip $(MTK_SW_DOMAIN)),TRUE)
707 COMPLIST = $(strip $(CUS_REL_SRC_COMP))
708 endif
709endif
710
711# *************************************************************************
712# Check whether module is source code build in sub
713# *************************************************************************
714
715# check the COM_DEFS value
716COM_DEFS_INVALID_LIST := TRUE FALSE ENABLE DISABLE FULL SLIM NONE
717ifdef COM_DEFS
718 COM_DEFS_INVALID_VALUE := $(filter $(strip $(COM_DEFS)),$(COM_DEFS_INVALID_LIST))
719 ifneq ($(COM_DEFS_INVALID_VALUE),)
720 $(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))))
721 DEPENDENCY_CONFLICT = TRUE
722 endif
723endif
724
725# L1_UTMD_FILES check: the LTE security files can NOT be added to L1_UTMD_FILES.
726ifdef L1_UTMD_FILES
727L1_UTMD_FILES_TEMP := $(filter protocol/lte_sec/% ,$(L1_UTMD_FILES))
728L1_UTMD_FILES_TEMP := $(filter l1/lte_sec/% ,$(L1_UTMD_FILES_TEMP))
729 ifneq ($(strip $(L1_UTMD_FILES_TEMP)),)
730 $(warning ERROR: L1_UTMD_FILES value $(foreach comp,$(L1_UTMD_FILES_TEMP),"$(comp)") is NOT allowable,)
731 $(warning ERROR: the LTE security files can NOT be added to L1_UTMD_FILES.)
732 DEPENDENCY_CONFLICT = TRUE
733 endif
734endif
735
736# COMP_TRACE_DEFS_MODEM check: the LTE security files can NOT be added to COMP_TRACE_DEFS_MODEM
737ifdef COMP_TRACE_DEFS_MODEM
738COMP_TRACE_DEFS_MODEM_TEMP := $(filter protocol/lte_sec/% ,$(COMP_TRACE_DEFS_MODEM))
739COMP_TRACE_DEFS_MODEM_TEMP := $(filter l1/lte_sec/% ,$(COMP_TRACE_DEFS_MODEM_TEMP))
740 ifneq ($(strip $(COMP_TRACE_DEFS_MODEM_TEMP)),)
741 $(warning ERROR: COMP_TRACE_DEFS_MODEM value $(foreach comp,$(COMP_TRACE_DEFS_MODEM_TEMP),"$(comp)") is NOT allowable,)
742 $(warning ERROR: the LTE security files can NOT be added to COMP_TRACE_DEFS_MODEM.)
743 DEPENDENCY_CONFLICT = TRUE
744 endif
745endif
746
747# L1_UTMD_FILES_LTE_SEC check: only the LTE security files can be added.
748ifdef L1_UTMD_FILES_LTE_SEC
749L1_UTMD_FILES_LTE_SEC_TEMP := $(filter-out protocol/lte_sec/% ,$(L1_UTMD_FILES_LTE_SEC))
750L1_UTMD_FILES_LTE_SEC_TEMP := $(filter-out l1/lte_sec/% ,$(L1_UTMD_FILES_LTE_SEC_TEMP))
751 ifneq ($(strip $(L1_UTMD_FILES_LTE_SEC_TEMP)),)
752 #$(warning ERROR: L1_UTMD_FILES_LTE_SEC value $(foreach comp,$(L1_UTMD_FILES_LTE_SEC_TEMP),"$(comp)") is NOT allowable,)
753 #$(warning ERROR: only the LTE security files can be added to L1_UTMD_FILES_LTE_SEC.)
754 #DEPENDENCY_CONFLICT = TRUE
755 endif
756endif
757
758# COMP_TRACE_DEFS_MODEM_LTE_SEC check: only the LTE security files can be added.
759ifdef COMP_TRACE_DEFS_MODEM_LTE_SEC
760COMP_TRACE_DEFS_MODEM_LTE_SEC_TEMP := $(filter-out protocol/lte_sec/% ,$(COMP_TRACE_DEFS_MODEM_LTE_SEC))
761COMP_TRACE_DEFS_MODEM_LTE_SEC_TEMP := $(filter-out l1/lte_sec/% ,$(COMP_TRACE_DEFS_MODEM_LTE_SEC_TEMP))
762 ifneq ($(strip $(COMP_TRACE_DEFS_MODEM_LTE_SEC_TEMP)),)
763 #$(warning ERROR: COMP_TRACE_DEFS_MODEM_LTE_SEC value $(foreach comp,$(COMP_TRACE_DEFS_MODEM_LTE_SEC_TEMP),"$(comp)") is NOT allowable,)
764 #$(warning ERROR: only the LTE security files can be added to COMP_TRACE_DEFS_MODEM_LTE_SEC.)
765 #DEPENDENCY_CONFLICT = TRUE
766 endif
767endif
768
769ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
770 ifneq ($(strip $(FLAVOR)), $(strip $(ORIGINAL_FLAVOR)))
771 $(warning ERROR: ORIGINAL_FLAVOR value should be $(FLAVOR))
772 DEPENDENCY_CONFLICT = TRUE
773 endif
774endif
775
776ifeq ($(strip $(CUSTOM_RELEASE)),FALSE)
777 ifneq ($(strip $(PROJECT_NAME)), $(strip $(ORIGINAL_PROJECT_NAME)))
778 $(warning ERROR: ORIGINAL_PROJECT_NAME value should be $(PROJECT_NAME))
779 DEPENDENCY_CONFLICT = TRUE
780 endif
781endif
782
783# temp add
784UNIVERSAL_DATABASE_SUPPORT = TRUE
785
786COMMINCDIRS := $(sort $(COMMINCDIRS))
787
788ifdef DEPENDENCY_CONFLICT
789 ifeq ($(strip $(DEPENDENCY_CONFLICT)),TRUE)
790 $(error PLEASE check above dependency errors!)
791 endif
792endif