| # |
| # 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 |