1*53ee8cc1Swenshuai.xi 2*53ee8cc1Swenshuai.xi################################################################################ 3*53ee8cc1Swenshuai.xi# 4*53ee8cc1Swenshuai.xi# Copyright (c) 2008-2009 MStar Semiconductor, Inc. 5*53ee8cc1Swenshuai.xi# All rights reserved. 6*53ee8cc1Swenshuai.xi# 7*53ee8cc1Swenshuai.xi# Unless otherwise stipulated in writing, any and all information contained 8*53ee8cc1Swenshuai.xi# herein regardless in any format shall remain the sole proprietary of 9*53ee8cc1Swenshuai.xi# MStar Semiconductor Inc. and be kept in strict confidence 10*53ee8cc1Swenshuai.xi# ("MStar Confidential Information") by the recipient. 11*53ee8cc1Swenshuai.xi# Any unauthorized act including without limitation unauthorized disclosure, 12*53ee8cc1Swenshuai.xi# copying, use, reproduction, sale, distribution, modification, disassembling, 13*53ee8cc1Swenshuai.xi# reverse engineering and compiling of the contents of MStar Confidential 14*53ee8cc1Swenshuai.xi# Information is unlawful and strictly prohibited. MStar hereby reserves the 15*53ee8cc1Swenshuai.xi# rights to any and all damages, losses, costs and expenses resulting therefrom. 16*53ee8cc1Swenshuai.xi# 17*53ee8cc1Swenshuai.xi# 18*53ee8cc1Swenshuai.xi# Makefile used for building application. 19*53ee8cc1Swenshuai.xi# 20*53ee8cc1Swenshuai.xi# 21*53ee8cc1Swenshuai.xi################################################################################ 22*53ee8cc1Swenshuai.xi 23*53ee8cc1Swenshuai.xiexport 24*53ee8cc1Swenshuai.xiunexport VPATH 25*53ee8cc1Swenshuai.xiunexport SRCDIR_CHIP SRCDIR_LIB SRCDIR_SYS SRCDIR_FS 26*53ee8cc1Swenshuai.xiunexport OBJ_C_CHIP0 OBJ_C_ASM0 OBJ_C_LIB0 OBJ_C_SYS0 27*53ee8cc1Swenshuai.xiunexport LIB_INC 28*53ee8cc1Swenshuai.xi 29*53ee8cc1Swenshuai.xi 30*53ee8cc1Swenshuai.xi# ********************************************** 31*53ee8cc1Swenshuai.xi# Environment 32*53ee8cc1Swenshuai.xi# ********************************************** 33*53ee8cc1Swenshuai.xiPROJ = $(PWD) 34*53ee8cc1Swenshuai.xiROOT = $(PROJ)/../.. 35*53ee8cc1Swenshuai.xiROOTLIB = $(ROOT)/mxlib 36*53ee8cc1Swenshuai.xiDDIAPI = $(ROOTLIB)/api 37*53ee8cc1Swenshuai.xiDDIDRV = $(ROOTLIB)/drv 38*53ee8cc1Swenshuai.xiDDIHAL = $(ROOTLIB)/hal 39*53ee8cc1Swenshuai.xiCONFIG = $(PROJ)/.config 40*53ee8cc1Swenshuai.xiAUTOCONFIG = $(PROJ)/include/generated/ 41*53ee8cc1Swenshuai.xiPUBINC = $(ROOTLIB)/include 42*53ee8cc1Swenshuai.xiMODULESPATH = $(ROOT)/modules 43*53ee8cc1Swenshuai.xi 44*53ee8cc1Swenshuai.xiexport DDIAPI DDIDRV PROJ PUBINC 45*53ee8cc1Swenshuai.xi 46*53ee8cc1Swenshuai.xi# Import configure file 47*53ee8cc1Swenshuai.xi# Required: 48*53ee8cc1Swenshuai.xi# $(ROOT), $(ROOTLIB) 49*53ee8cc1Swenshuai.xi# ********************************************** 50*53ee8cc1Swenshuai.xi#-include config 51*53ee8cc1Swenshuai.xi-include $(CONFIG) 52*53ee8cc1Swenshuai.xi# ********************************************** 53*53ee8cc1Swenshuai.xi 54*53ee8cc1Swenshuai.xi 55*53ee8cc1Swenshuai.xi# ********************************************** 56*53ee8cc1Swenshuai.xi# Parse env arguments from $(CONFIG) 57*53ee8cc1Swenshuai.xi# ********************************************** 58*53ee8cc1Swenshuai.xiTOOLCHAIN = $(subst ",,$(CONFIG_TOOLCHAIN)) 59*53ee8cc1Swenshuai.xiTOOLCHAIN_VER = $(subst ",,$(CONFIG_TOOLCHAIN_VER)) 60*53ee8cc1Swenshuai.xiCHIP = $(subst ",,$(CONFIG_CHIP)) 61*53ee8cc1Swenshuai.xiCHIP_NAME = $(shell echo $(CHIP) | tr a-z A-Z) 62*53ee8cc1Swenshuai.xiOS_TYPE = $(subst ",,$(CONFIG_OS_TYPE)) 63*53ee8cc1Swenshuai.xiLINK_TYPE = $(subst ",,$(CONFIG_LINK_TYPE)) 64*53ee8cc1Swenshuai.xiFW_TYPE = $(subst ",,$(CONFIG_FW_TYPE)) 65*53ee8cc1Swenshuai.xiENDIAN = $(subst ",,$(CONFIG_ENDIAN)) 66*53ee8cc1Swenshuai.xiPROCESSOR = $(subst ",,$(CONFIG_PROCESSOR)) 67*53ee8cc1Swenshuai.xiMCU_TYPE = $(subst ",,$(CONFIG_MCU_TYPE)) 68*53ee8cc1Swenshuai.xiCOPRO_TYPE = $(subst ",,$(CONFIG_COPRO_TYPE)) 69*53ee8cc1Swenshuai.xiXC_SEAMLESS_SCALING = $(subst ",,$(CONFIG_XC_SEAMLESS_SCALING)) 70*53ee8cc1Swenshuai.xiXC_4K2K_PATCH_ENABLE = $(subst ",,$(CONFIG_XC_4K2K_PATCH_ENABLE)) 71*53ee8cc1Swenshuai.xiMSTAR_DVFS_ENABLE = $(subst ",,$(CONFIG_MSTAR_DVFS_ENABLE)) 72*53ee8cc1Swenshuai.xiBLT_TYPE = $(subst ",,$(CONFIG_BLT_TYPE)) 73*53ee8cc1Swenshuai.xiFPU = $(subst ",,$(CONFIG_FPU)) 74*53ee8cc1Swenshuai.xiEXT_PLATFORM_FLAG = $(subst ",,$(CONFIG_EXT_PLATFORM_FLAG)) 75*53ee8cc1Swenshuai.xiMAKE_TYPE = $(subst ",,$(CONFIG_MAKE_TYPE)) 76*53ee8cc1Swenshuai.xiDEBUG_LEVEL = $(subst ",,$(CONFIG_DEBUG_LEVEL)) 77*53ee8cc1Swenshuai.xiAUDIO_UTOPIA_20_ENABLE = $(subst ",,$(CONFIG_AUDIO_UTOPIA_20_ENABLE)) 78*53ee8cc1Swenshuai.xiAUDIO_UTOPIA2K_EN = $(subst ",,$(CONFIG_DRV_AUDIO)) 79*53ee8cc1Swenshuai.xiKERN_VER = $(subst ",,$(CONFIG_KERN_VER)) 80*53ee8cc1Swenshuai.xiFPGA_ENV = $(subst ",,$(CONFIG_FPGA)) 81*53ee8cc1Swenshuai.xiASSERT_TYPE = $(subst ",,$(CONFIG_ASSERT_TYPE)) 82*53ee8cc1Swenshuai.xiCIPHER_UTOPIA_20_ENABLE = $(subst ",,$(CONFIG_CIPHER_UTOPIA_20_ENABLE)) 83*53ee8cc1Swenshuai.xiCIPHER_NO_PRINTF_ENABLE = $(subst ",,$(CONFIG_CIPHER_NO_PRINTF_ENABLE)) 84*53ee8cc1Swenshuai.xiCA_UTOPIA_20_ENABLE = $(subst ",,$(CONFIG_CA2_UTOPIA_20_ENABLE)) 85*53ee8cc1Swenshuai.xiCA_NO_PRINTF_ENABLE = $(subst ",,$(CONFIG_CA2_NO_PRINTF_ENABLE)) 86*53ee8cc1Swenshuai.xiSTRUCT_PACK = $(subst ",,$(CONFIG_UTOPIA_DRIVER_STRUCT_PACKED)) 87*53ee8cc1Swenshuai.xi# ****************************************************************************************************** 88*53ee8cc1Swenshuai.xi# Customization Flag 89*53ee8cc1Swenshuai.xi# ****************************************************************************************************** 90*53ee8cc1Swenshuai.xiROLLS_ROYCE = $(subst ",,$(CONFIG_ROLLS_ROYCE)) 91*53ee8cc1Swenshuai.xi 92*53ee8cc1Swenshuai.xi# ****************************************************************************************************** 93*53ee8cc1Swenshuai.xi# Parse DMX & DSCMB env arguments from $(CONFIG) 94*53ee8cc1Swenshuai.xi# ****************************************************************************************************** 95*53ee8cc1Swenshuai.xiDMX_UTOPIA_20_ENABLE = $(subst ",,$(CONFIG_DMX_UTOPIA_20_ENABLE)) 96*53ee8cc1Swenshuai.xiDMX_UTOPIA_2K_EN = $(subst ",,$(CONFIG_API_DMX)) 97*53ee8cc1Swenshuai.xiSTC64_ENABLE = $(subst ",,$(CONFIG_STC64_ENABLE)) 98*53ee8cc1Swenshuai.xiVQ_ENABLE = $(subst ",,$(CONFIG_VQ_ENABLE)) 99*53ee8cc1Swenshuai.xiFILE_VQ_ENABLE = $(subst ",,$(CONFIG_FIVQ_ENABLE)) 100*53ee8cc1Swenshuai.xiFQ_ENABLE = $(subst ",,$(CONFIG_FQ_ENABLE)) 101*53ee8cc1Swenshuai.xiEXT_FILTER_ENABLE = $(subst ",,$(CONFIG_EXT_FILTER_ENABLE)) 102*53ee8cc1Swenshuai.xiTS2_ENABLE = $(subst ",,$(CONFIG_TSP2_ENABLE)) 103*53ee8cc1Swenshuai.xiTS3_ENABLE = $(subst ",,$(CONFIG_TSP3_ENABLE)) 104*53ee8cc1Swenshuai.xiMMFILEIN_ENABLE = $(subst ",,$(CONFIG_MMFILEIN_ENABLE)) 105*53ee8cc1Swenshuai.xiMMFI3D_ENABLE = $(subst ",,$(CONFIG_MMFI3D_ENABLE)) 106*53ee8cc1Swenshuai.xiMMFI2_EXTRA_AUFIFO_ENABLE = $(subst ",,$(CONFIG_MMFI2_EXTRA_AUFIFO_ENABLE)) 107*53ee8cc1Swenshuai.xiMOBF_ENABLE = $(subst ",,$(CONFIG_MOBF_ENABLE)) 108*53ee8cc1Swenshuai.xiMMFIMOBF_ENABLE = $(subst ",,$(CONFIG_MMFIMOBF_ENABLE)) 109*53ee8cc1Swenshuai.xiUSE_HWPCR_ENABLE = $(subst ",,$(CONFIG_USE_HWPCR_ENABLE)) 110*53ee8cc1Swenshuai.xiDMX_DEBUG_TABLE_ENABLE = $(subst ",,$(CONFIG_DMX_DEBUG_TABLE_ENABLE)) 111*53ee8cc1Swenshuai.xiEXTRA_PVR1_FLT_ENABLE = $(subst ",,$(CONFIG_EXTRA_PVR1_FLT_ENABLE)) 112*53ee8cc1Swenshuai.xiTS2_LIVE_ENABLE = $(subst ",,$(CONFIG_TS2_LIVE_ENABLE)) 113*53ee8cc1Swenshuai.xiTSIO_SUPPORT = $(subst ",,$(CONFIG_TSIO_SUPPORT)) 114*53ee8cc1Swenshuai.xiTSO_SUPPORT = $(subst ",,$(CONFIG_TSO_SUPPORT)) 115*53ee8cc1Swenshuai.xiRASP_SUPPORT = $(subst ",,$(CONFIG_RASP_SUPPORT)) 116*53ee8cc1Swenshuai.xi#RASP_SUPPORT = $(subst ",,$(CONFIG_DRV_RASP)) 117*53ee8cc1Swenshuai.xiTSO_20_SUPPORT = $(subst ",,$(CONFIG_TSO_VER_20_SUPPORT)) 118*53ee8cc1Swenshuai.xiTSO_BOXSERIES_SUPPORT = $(subst ",,$(CONFIG_TSO_HW_BOX_SERIES)) 119*53ee8cc1Swenshuai.xiTSP3_DULFLT_ENABLE = $(subst ",,$(CONFIG_TSP3_DULFLT_ENABLE)) 120*53ee8cc1Swenshuai.xiMERGE_STR_SUPPORT = $(subst ",,$(CONFIG_MERGE_STREAM_SUPPORT)) 121*53ee8cc1Swenshuai.xiSECURE_PVR_SUPPORT = $(subst ",,$(CONFIG_SECURE_PVR_SUPPORT)) 122*53ee8cc1Swenshuai.xiTSO_PVR_SUPPORT = $(subst ",,$(CONFIG_TSO_PVR_SUPPORT)) 123*53ee8cc1Swenshuai.xiPVR_IFRAMELUT_SUPPORT = $(subst ",,$(CONFIG_PVR_IFRAMELUT_SUPPORT)) 124*53ee8cc1Swenshuai.xiGENERAL_DSCMBTYPE_SUPPORT = $(subst ",,$(CONFIG_MERGE_STREAM_SUPPORT)) 125*53ee8cc1Swenshuai.xiDSCMB_CSA_ENABLE = $(subst ",,$(CONFIG_GENERAL_DSCMB_SUPPORT)) 126*53ee8cc1Swenshuai.xiDSCMB_MULTI2_ENABLE = $(subst ",,$(CONFIG_DSCMB_MULTI2_ENABLE)) 127*53ee8cc1Swenshuai.xiPCMCIA_MODULE_TYPE = $(subst ",,$(CONFIG_DRV_PCMCIA)) 128*53ee8cc1Swenshuai.xiDONT_USE_CMA = $(subst ",,$(CONFIG_DONT_USE_CMA)) 129*53ee8cc1Swenshuai.xiOTV_SUPPORT = $(subst ",,$(CONFIG_OTV_SUPPORT)) 130*53ee8cc1Swenshuai.xiDMX_BOX_MULTIPROCESS_SUPPORT = $(subst ",,$(CONFIG_DMX_BOX_MULTIPROCESS_SUPPORT)) 131*53ee8cc1Swenshuai.xiifeq ($(CONFIG_DRV_DSCMB2), y) 132*53ee8cc1Swenshuai.xiDSCMB_UTOPIA_20_ENABLE = $(subst ",,$(CONFIG_DSCMB2_UTOPIA_20_ENABLE)) 133*53ee8cc1Swenshuai.xiDSCMB_NSK_ENABLE = $(subst ",,$(CONFIG_DSCMB2_NSK_ENABLE)) 134*53ee8cc1Swenshuai.xiDSCMB_MULTI2_ENABLE = $(subst ",,$(CONFIG_DSCMB2_MULTI2_ENABLE)) 135*53ee8cc1Swenshuai.xiDSCMB_NO_PRINTF_ENABLE = $(subst ",,$(CONFIG_DSCMB2_NO_PRINTF_ENABLE)) 136*53ee8cc1Swenshuai.xiDSCMB_HW_SEM_ENABLE = $(subst ",,$(CONFIG_DSCMB2_HW_SEM_ENABLE)) 137*53ee8cc1Swenshuai.xiDSCMB_SECURE_MODE_ENABLE = $(subst ",,$(CONFIG_DSCMB2_SECURE_MODE_ENABLE)) 138*53ee8cc1Swenshuai.xiendif 139*53ee8cc1Swenshuai.xi# ****************************************************************************************************** 140*53ee8cc1Swenshuai.xi 141*53ee8cc1Swenshuai.xiifeq ($(CONFIG_HARD),y) 142*53ee8cc1Swenshuai.xi FPU_ENABLE = 1 143*53ee8cc1Swenshuai.xielse 144*53ee8cc1Swenshuai.xi FPU_ENABLE = 0 145*53ee8cc1Swenshuai.xiendif 146*53ee8cc1Swenshuai.xi 147*53ee8cc1Swenshuai.xi# Image name 148*53ee8cc1Swenshuai.xiIMAGENAME = $(CHIP)_$(OS_TYPE) 149*53ee8cc1Swenshuai.xi 150*53ee8cc1Swenshuai.xi# Lint Command, option file 151*53ee8cc1Swenshuai.xiLINT_OPT = opt_linux.lnt 152*53ee8cc1Swenshuai.xi 153*53ee8cc1Swenshuai.xiifeq ($(shell uname -o),Cygwin) 154*53ee8cc1Swenshuai.xi LINT_CMD = $(CURDIR)/../../tools/lint/lint-nt.exe -b -v -zero -fff 155*53ee8cc1Swenshuai.xi LINT_CMD += -i$(shell cygpath -m $(CURDIR)/../../tools/lint/lnt) $(LINT_OPT) 156*53ee8cc1Swenshuai.xielse 157*53ee8cc1Swenshuai.xi LINT_CMD = $(CURDIR)/../../tools/lint/flint -b -v -zero -fff 158*53ee8cc1Swenshuai.xi LINT_CMD += -i$(CURDIR)/../../tools/lint/lnt $(LINT_OPT) 159*53ee8cc1Swenshuai.xiendif 160*53ee8cc1Swenshuai.xi 161*53ee8cc1Swenshuai.xi 162*53ee8cc1Swenshuai.xi# ********************************************** 163*53ee8cc1Swenshuai.xi# Build Option 164*53ee8cc1Swenshuai.xi# ********************************************** 165*53ee8cc1Swenshuai.xi 166*53ee8cc1Swenshuai.xi 167*53ee8cc1Swenshuai.xiCFG_CC_DEFS = -D'CHIP_$(CHIP_NAME)' -D'MS_C_STDLIB' 168*53ee8cc1Swenshuai.xiCFG_CC_OPTS = 169*53ee8cc1Swenshuai.xiCFG_LD_OPTS = 170*53ee8cc1Swenshuai.xiCFG_CC_EXTRA_DEFS = 171*53ee8cc1Swenshuai.xiCFG_CC_EXTRA_OPTS = 172*53ee8cc1Swenshuai.xiCPU_NAME = 173*53ee8cc1Swenshuai.xi 174*53ee8cc1Swenshuai.xi 175*53ee8cc1Swenshuai.xiifeq ($(CONFIG_CHIP_INT_SPI_MODE),y) 176*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'CHIP_INT_SPI_MODE' 177*53ee8cc1Swenshuai.xiendif 178*53ee8cc1Swenshuai.xi 179*53ee8cc1Swenshuai.xi 180*53ee8cc1Swenshuai.xiifeq ($(ASSERT_TYPE), block) 181*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'BLOCK_ASSERT' 182*53ee8cc1Swenshuai.xiendif 183*53ee8cc1Swenshuai.xi 184*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE),aeon) 185*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'MCU_AEON' 186*53ee8cc1Swenshuai.xi ifeq ($(CONFIG_R2),y) 187*53ee8cc1Swenshuai.xi CPU_NAME = r2 188*53ee8cc1Swenshuai.xi COPRO_TYPE = R2 189*53ee8cc1Swenshuai.xi else 190*53ee8cc1Swenshuai.xi CPU_NAME = aeon 191*53ee8cc1Swenshuai.xi COPRO_TYPE = AEON 192*53ee8cc1Swenshuai.xi endif 193*53ee8cc1Swenshuai.xiendif 194*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE),mips4ke) 195*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'MCU_MIPS_4KE' 196*53ee8cc1Swenshuai.xi CPU_NAME = mips4ke 197*53ee8cc1Swenshuai.xiendif 198*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE),mips34k) 199*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'MCU_MIPS_34K' 200*53ee8cc1Swenshuai.xi CPU_NAME = mips34k 201*53ee8cc1Swenshuai.xiendif 202*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE),mips74k) 203*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'MCU_MIPS_74K' 204*53ee8cc1Swenshuai.xi CPU_NAME = mips74k 205*53ee8cc1Swenshuai.xiendif 206*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE),arm_ca12) 207*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'MCU_ARM_CA12' 208*53ee8cc1Swenshuai.xi CPU_NAME = armca12 209*53ee8cc1Swenshuai.xiendif 210*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE),arm9) 211*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'MCU_ARM_9' 212*53ee8cc1Swenshuai.xi CPU_NAME = armca9 213*53ee8cc1Swenshuai.xiendif 214*53ee8cc1Swenshuai.xi 215*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE),arm_ca7) 216*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'MCU_ARM_CA7' 217*53ee8cc1Swenshuai.xi CPU_NAME = armca7 218*53ee8cc1Swenshuai.xiendif 219*53ee8cc1Swenshuai.xi 220*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE),arm_ca53) 221*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'MCU_ARM_CA53' 222*53ee8cc1Swenshuai.xi CPU_NAME = armca53 223*53ee8cc1Swenshuai.xiendif 224*53ee8cc1Swenshuai.xi 225*53ee8cc1Swenshuai.xiifeq ($(CHIP),edison) 226*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'edison' 227*53ee8cc1Swenshuai.xiendif 228*53ee8cc1Swenshuai.xi 229*53ee8cc1Swenshuai.xiifeq ($(CHIP),nike) 230*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'nike' 231*53ee8cc1Swenshuai.xiendif 232*53ee8cc1Swenshuai.xi 233*53ee8cc1Swenshuai.xiifeq ($(CHIP),madison) 234*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'madison' 235*53ee8cc1Swenshuai.xiendif 236*53ee8cc1Swenshuai.xi 237*53ee8cc1Swenshuai.xiifeq ($(CHIP),clippers) 238*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'clippers' 239*53ee8cc1Swenshuai.xiendif 240*53ee8cc1Swenshuai.xi 241*53ee8cc1Swenshuai.xiifeq ($(CHIP),miami) 242*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'miami' 243*53ee8cc1Swenshuai.xiendif 244*53ee8cc1Swenshuai.xi 245*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),ecos) 246*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'MSOS_TYPE_ECOS' 247*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'UTPA2' 248*53ee8cc1Swenshuai.xiendif 249*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),ucos) 250*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'MSOS_TYPE_UCOS' 251*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'UTPA2' 252*53ee8cc1Swenshuai.xiendif 253*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),linux) 254*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'MSOS_TYPE_LINUX' 255*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'UTPA2' 256*53ee8cc1Swenshuai.xiendif 257*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),nos) 258*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'MSOS_TYPE_NOS' 259*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'UTPA2' 260*53ee8cc1Swenshuai.xi 261*53ee8cc1Swenshuai.xi ifeq ($(EXT_PLATFORM_FLAG),mboot) 262*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'MBOOT' 263*53ee8cc1Swenshuai.xi endif 264*53ee8cc1Swenshuai.xi 265*53ee8cc1Swenshuai.xiendif 266*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),nuttx) 267*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'MSOS_TYPE_NUTTX' 268*53ee8cc1Swenshuai.xiendif 269*53ee8cc1Swenshuai.xi 270*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),optee) 271*53ee8cc1Swenshuai.xi CFG_CC_EXTRA_DEFS += -D'MSOS_TYPE_OPTEE' 272*53ee8cc1Swenshuai.xiendif 273*53ee8cc1Swenshuai.xi 274*53ee8cc1Swenshuai.xiifeq ($(FW_TYPE),external) 275*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'FW_EXTERNAL_BIN' 276*53ee8cc1Swenshuai.xiendif 277*53ee8cc1Swenshuai.xiifeq ($(FW_TYPE),embedded) 278*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'FW_EMBEDDED_ASC' 279*53ee8cc1Swenshuai.xiendif 280*53ee8cc1Swenshuai.xi 281*53ee8cc1Swenshuai.xiifeq ($(CONFIG_UTOPIA_20),y) 282*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'UTOPIA_20' 283*53ee8cc1Swenshuai.xiendif 284*53ee8cc1Swenshuai.xi 285*53ee8cc1Swenshuai.xiifeq ($(AUDIO_UTOPIA2K_EN),m) 286*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'AUDIO_UTOPIA2K' 287*53ee8cc1Swenshuai.xiendif 288*53ee8cc1Swenshuai.xi 289*53ee8cc1Swenshuai.xiifeq ($(FPGA_ENV),y) 290*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'FPGA_ENV' 291*53ee8cc1Swenshuai.xiendif 292*53ee8cc1Swenshuai.xi 293*53ee8cc1Swenshuai.xiifeq ($(CONFIG_DLMALLOC),y) 294*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'ENABLE_DLMALLOC' 295*53ee8cc1Swenshuai.xiendif 296*53ee8cc1Swenshuai.xi 297*53ee8cc1Swenshuai.xiifeq ($(CONFIG_KERNEL_DLMALLOC),y) 298*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'ENABLE_KERNEL_DLMALLOC' 299*53ee8cc1Swenshuai.xi endif 300*53ee8cc1Swenshuai.xi 301*53ee8cc1Swenshuai.xiifeq ($(CONFIG_BIFROST_32BIT_MODE),y) 302*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'BIFROST_32BIT_MODE' 303*53ee8cc1Swenshuai.xiendif 304*53ee8cc1Swenshuai.xi 305*53ee8cc1Swenshuai.xiifeq ($(CONFIG_MLOG_ARM_472), y) 306*53ee8cc1Swenshuai.xi MLOG_LIB_PATH = $(ROOT)/tools/MLog/arm-gnueabi/4.7.2/hardfloat/static/libMLog.a 307*53ee8cc1Swenshuai.xiendif 308*53ee8cc1Swenshuai.xiifeq ($(CONFIG_MLOG_ARM_483), y) 309*53ee8cc1Swenshuai.xi MLOG_LIB_PATH = $(ROOT)/tools/MLog/arm-gnueabi/4.8.3/hardfloat/static/libMLog.a 310*53ee8cc1Swenshuai.xiendif 311*53ee8cc1Swenshuai.xiifeq ($(CONFIG_MLOG_ARM_49X), y) 312*53ee8cc1Swenshuai.xi MLOG_LIB_PATH = $(ROOT)/tools/MLog/armv7a-gnueabi/4.9.x-google/hardfloat/static/libMLog.a 313*53ee8cc1Swenshuai.xiendif 314*53ee8cc1Swenshuai.xi 315*53ee8cc1Swenshuai.xi# ********************************************** 316*53ee8cc1Swenshuai.xi# DMX & DSCMB Build Option 317*53ee8cc1Swenshuai.xi# ********************************************** 318*53ee8cc1Swenshuai.xi 319*53ee8cc1Swenshuai.xiTSP4_CHIPS = kaiser keltic keres kano k6 k6lite k7u curry 320*53ee8cc1Swenshuai.xi 321*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DMX_DEBUG=0' 322*53ee8cc1Swenshuai.xi 323*53ee8cc1Swenshuai.xiifeq ($(DMX_UTOPIA_20_ENABLE),y) 324*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DMX_UTOPIA_20' 325*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'TSP_UTOPIA_20' 326*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'MMFI_UTOPIA_20' 327*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'RASP_UTOPIA_20' 328*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'TSO_UTOPIA_20' 329*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'OTV_UTOPIA_20' 330*53ee8cc1Swenshuai.xiendif 331*53ee8cc1Swenshuai.xi 332*53ee8cc1Swenshuai.xiifeq ($(DMX_UTOPIA_2K_EN),m) 333*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DMX_UTOPIA_2K' 334*53ee8cc1Swenshuai.xiendif 335*53ee8cc1Swenshuai.xi 336*53ee8cc1Swenshuai.xiifeq ($(CONFIG_API_VDEC_EX),m) 337*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'VDEC_UTOPIA_2K' 338*53ee8cc1Swenshuai.xiendif 339*53ee8cc1Swenshuai.xi 340*53ee8cc1Swenshuai.xiifeq ($(CONFIG_API_VDEC_V3),m) 341*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'VDEC_UTOPIA_2K' 342*53ee8cc1Swenshuai.xiendif 343*53ee8cc1Swenshuai.xi 344*53ee8cc1Swenshuai.xiifeq ($(CONFIG_API_NJPEG_EX),m) 345*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'NJPEG_UTOPIA_2K' 346*53ee8cc1Swenshuai.xiendif 347*53ee8cc1Swenshuai.xi 348*53ee8cc1Swenshuai.xiifeq ($(CONFIG_API_GPD),m) 349*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'GPD_UTOPIA_2K' 350*53ee8cc1Swenshuai.xiendif 351*53ee8cc1Swenshuai.xi 352*53ee8cc1Swenshuai.xiifeq ($(STC64_ENABLE),y) 353*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'STC64_SUPPORT' 354*53ee8cc1Swenshuai.xiendif 355*53ee8cc1Swenshuai.xiifeq ($(VQ_ENABLE),y) 356*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'VQ_ENABLE' 357*53ee8cc1Swenshuai.xiendif 358*53ee8cc1Swenshuai.xiifeq ($(FILE_VQ_ENABLE),y) 359*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'FIVQ_ENABLE' 360*53ee8cc1Swenshuai.xiendif 361*53ee8cc1Swenshuai.xiifeq ($(FQ_ENABLE),y) 362*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'FQ_ENABLE' 363*53ee8cc1Swenshuai.xiendif 364*53ee8cc1Swenshuai.xiifeq ($(EXT_FILTER_ENABLE),y) 365*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'EXT_FILTER_SUPPORT' 366*53ee8cc1Swenshuai.xiendif 367*53ee8cc1Swenshuai.xiifeq ($(TS2_ENABLE),y) 368*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'TS2_IF_SUPPORT' 369*53ee8cc1Swenshuai.xiendif 370*53ee8cc1Swenshuai.xiifeq ($(TS3_ENABLE),y) 371*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'TS3_IF_SUPPORT' 372*53ee8cc1Swenshuai.xiendif 373*53ee8cc1Swenshuai.xiifeq ($(MMFILEIN_ENABLE),y) 374*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'MMFILEIN' 375*53ee8cc1Swenshuai.xiendif 376*53ee8cc1Swenshuai.xiifeq ($(MMFI3D_ENABLE),y) 377*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'MMFI_VD3D' 378*53ee8cc1Swenshuai.xiendif 379*53ee8cc1Swenshuai.xiifeq ($(MMFI2_EXTRA_AUFIFO_ENABLE),y) 380*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'MMFI2_EXTRA_AUFIFO' 381*53ee8cc1Swenshuai.xiendif 382*53ee8cc1Swenshuai.xiifeq ($(MOBF_ENABLE),y) 383*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'MOBF_ENABLE' 384*53ee8cc1Swenshuai.xiendif 385*53ee8cc1Swenshuai.xiifeq ($(MMFIMOBF_ENABLE),y) 386*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'MM_MOBF' 387*53ee8cc1Swenshuai.xiendif 388*53ee8cc1Swenshuai.xiifeq ($(DMX_DEBUG_TABLE_ENABLE),y) 389*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DEBUG_TABLE_SUPPORT' 390*53ee8cc1Swenshuai.xiendif 391*53ee8cc1Swenshuai.xiifeq ($(EXTRA_PVR1_FLT_ENABLE),y) 392*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'EXT_PVR1_FLT' 393*53ee8cc1Swenshuai.xiendif 394*53ee8cc1Swenshuai.xi 395*53ee8cc1Swenshuai.xiifeq ($(TS2_LIVE_ENABLE),y) 396*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'TS2_LIVE_SUPPORT' 397*53ee8cc1Swenshuai.xiendif 398*53ee8cc1Swenshuai.xi 399*53ee8cc1Swenshuai.xiifeq ($(TSIO_SUPPORT),y) 400*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'TSIO_ENABLE' 401*53ee8cc1Swenshuai.xiendif 402*53ee8cc1Swenshuai.xi 403*53ee8cc1Swenshuai.xiifeq ($(TSO_SUPPORT),y) 404*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'TSO_ENABLE' 405*53ee8cc1Swenshuai.xiendif 406*53ee8cc1Swenshuai.xi 407*53ee8cc1Swenshuai.xiifeq ($(RASP_SUPPORT),y) 408*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'RASP_ENABLE' 409*53ee8cc1Swenshuai.xiendif 410*53ee8cc1Swenshuai.xi 411*53ee8cc1Swenshuai.xiifeq ($(TSO_20_SUPPORT),y) 412*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'TSO_20_ENABLE' 413*53ee8cc1Swenshuai.xiendif 414*53ee8cc1Swenshuai.xi 415*53ee8cc1Swenshuai.xiifeq ($(TSO_BOXSERIES_SUPPORT),y) 416*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'TSO_HW_BOX_SERIES' 417*53ee8cc1Swenshuai.xiendif 418*53ee8cc1Swenshuai.xi 419*53ee8cc1Swenshuai.xiifeq ($(TSP3_DULFLT_ENABLE),y) 420*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'DUP_PIDFLT' 421*53ee8cc1Swenshuai.xiendif 422*53ee8cc1Swenshuai.xi 423*53ee8cc1Swenshuai.xiifeq ($(DSCMB_CSA_ENABLE),y) 424*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DSCMB_CSA_ENABLE' 425*53ee8cc1Swenshuai.xiendif 426*53ee8cc1Swenshuai.xiifeq ($(DSCMB_MULTI2_ENABLE),y) 427*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DSCMB_MULTI2_ENABLE' 428*53ee8cc1Swenshuai.xiendif 429*53ee8cc1Swenshuai.xi 430*53ee8cc1Swenshuai.xiifeq ($(DSCMB_UTOPIA_20_ENABLE),y) 431*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DSCMB_UTOPIA_20' 432*53ee8cc1Swenshuai.xiendif 433*53ee8cc1Swenshuai.xi 434*53ee8cc1Swenshuai.xiifeq ($(DSCMB_NO_PRINTF_ENABLE),y) 435*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DSCMB_NO_PRINTF' 436*53ee8cc1Swenshuai.xiendif 437*53ee8cc1Swenshuai.xi 438*53ee8cc1Swenshuai.xiifeq ($(DSCMB_HW_SEM_ENABLE),y) 439*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DSCMB_HW_SEM' 440*53ee8cc1Swenshuai.xiendif 441*53ee8cc1Swenshuai.xi 442*53ee8cc1Swenshuai.xiifeq ($(DSCMB_SECURE_MODE_ENABLE),y) 443*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DSCMB_SECURE_MODE' 444*53ee8cc1Swenshuai.xiendif 445*53ee8cc1Swenshuai.xi 446*53ee8cc1Swenshuai.xi 447*53ee8cc1Swenshuai.xiifeq ($(CIPHER_UTOPIA_20_ENABLE),y) 448*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'CIPHER_UTOPIA_20' 449*53ee8cc1Swenshuai.xiendif 450*53ee8cc1Swenshuai.xi 451*53ee8cc1Swenshuai.xiifeq ($(CIPHER_NO_PRINTF_ENABLE),y) 452*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'CIPHER_NO_PRINTF' 453*53ee8cc1Swenshuai.xiendif 454*53ee8cc1Swenshuai.xi 455*53ee8cc1Swenshuai.xiifeq ($(CA_UTOPIA_20_ENABLE),y) 456*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'CA_UTOPIA_20' 457*53ee8cc1Swenshuai.xiendif 458*53ee8cc1Swenshuai.xi 459*53ee8cc1Swenshuai.xiifeq ($(CA_NO_PRINTF_ENABLE),y) 460*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'CA_NO_PRINTF' 461*53ee8cc1Swenshuai.xiendif 462*53ee8cc1Swenshuai.xi 463*53ee8cc1Swenshuai.xiifeq ($(PCMCIA_MODULE_TYPE),m) 464*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'PCMCIA_UTPA2K' 465*53ee8cc1Swenshuai.xiendif 466*53ee8cc1Swenshuai.xi 467*53ee8cc1Swenshuai.xiifeq ($(OTV_SUPPORT),y) 468*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'OTV_ENABLE' 469*53ee8cc1Swenshuai.xiendif 470*53ee8cc1Swenshuai.xi 471*53ee8cc1Swenshuai.xiifeq ($(DMX_BOX_MULTIPROCESS_SUPPORT),y) 472*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DMX_BOX_MULTIPROCESS_ENABLE' 473*53ee8cc1Swenshuai.xiendif 474*53ee8cc1Swenshuai.xi 475*53ee8cc1Swenshuai.xiifeq ($(DONT_USE_CMA),y) 476*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DONT_USE_CMA' 477*53ee8cc1Swenshuai.xiendif 478*53ee8cc1Swenshuai.xi 479*53ee8cc1Swenshuai.xiifeq ($(USE_HWPCR_ENABLE),y) 480*53ee8cc1Swenshuai.xi ifeq ($(CHIP),$(filter $(CHIP),$(TSP4_CHIPS))) 481*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'HW_PCRFLT_ENABLE=1' 482*53ee8cc1Swenshuai.xi else 483*53ee8cc1Swenshuai.xi CFG_CC_DEFS += -D'HWPCR_ENABLE' 484*53ee8cc1Swenshuai.xi endif 485*53ee8cc1Swenshuai.xiendif 486*53ee8cc1Swenshuai.xi 487*53ee8cc1Swenshuai.xiifeq ($(MERGE_STR_SUPPORT),y) 488*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'MERGE_STR_SUPPORT' 489*53ee8cc1Swenshuai.xiendif 490*53ee8cc1Swenshuai.xi 491*53ee8cc1Swenshuai.xiifeq ($(SECURE_PVR_SUPPORT),y) 492*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'SECURE_PVR_ENABLE' 493*53ee8cc1Swenshuai.xiendif 494*53ee8cc1Swenshuai.xi 495*53ee8cc1Swenshuai.xiifeq ($(CHIP), $(filter $(CHIP),monaco miami clippers muji munich milan monet)) 496*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DMX_RESET_FI_TIMESTAMP' 497*53ee8cc1Swenshuai.xiendif 498*53ee8cc1Swenshuai.xi 499*53ee8cc1Swenshuai.xiifeq ($(TSO_PVR_SUPPORT),y) 500*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'TSO_PVR_SUPPORT' 501*53ee8cc1Swenshuai.xiendif 502*53ee8cc1Swenshuai.xi 503*53ee8cc1Swenshuai.xiifeq ($(PVR_IFRAMELUT_SUPPORT),y) 504*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'PVR_IFRAMELUT_SUPPORT' 505*53ee8cc1Swenshuai.xiendif 506*53ee8cc1Swenshuai.xi 507*53ee8cc1Swenshuai.xiifeq ($(CHIP), $(filter $(CHIP),curry)) 508*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'DMX_OPT_BOUND' 509*53ee8cc1Swenshuai.xiendif 510*53ee8cc1Swenshuai.xi 511*53ee8cc1Swenshuai.xiifeq ($(GENERAL_DSCMBTYPE_SUPPORT),y) 512*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'GENERAL_DSCMB' 513*53ee8cc1Swenshuai.xiendif 514*53ee8cc1Swenshuai.xi 515*53ee8cc1Swenshuai.xiifeq ($(XC_4K2K_PATCH_ENABLE),y) 516*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'ENABLE_4K2K_PATCH' 517*53ee8cc1Swenshuai.xiendif 518*53ee8cc1Swenshuai.xi 519*53ee8cc1Swenshuai.xi# ********************************************** 520*53ee8cc1Swenshuai.xi# Customization Flag 521*53ee8cc1Swenshuai.xi# ********************************************** 522*53ee8cc1Swenshuai.xiifeq ($(ROLLS_ROYCE),y) 523*53ee8cc1Swenshuai.xiCFG_CC_DEFS += -D'ROLLS_ROYCE' 524*53ee8cc1Swenshuai.xiendif 525*53ee8cc1Swenshuai.xi 526*53ee8cc1Swenshuai.xi# ********************************************** 527*53ee8cc1Swenshuai.xi 528*53ee8cc1Swenshuai.xi# ********************************************** 529*53ee8cc1Swenshuai.xi# Tool Chain Configuration 530*53ee8cc1Swenshuai.xi# 531*53ee8cc1Swenshuai.xi# Required ENV 532*53ee8cc1Swenshuai.xi# $(ROOT) e.g //utopia/ 533*53ee8cc1Swenshuai.xi# 534*53ee8cc1Swenshuai.xi# Supported TOOLCHAIN 535*53ee8cc1Swenshuai.xi# mips-linux-gnu 536*53ee8cc1Swenshuai.xi# mips-sde-elf 537*53ee8cc1Swenshuai.xi# mips2_fp_le 538*53ee8cc1Swenshuai.xi# aeon 539*53ee8cc1Swenshuai.xi# mipsisa32-elf (OBSOLETE) 540*53ee8cc1Swenshuai.xi# arm-none-linux-gnueabi 541*53ee8cc1Swenshuai.xi 542*53ee8cc1Swenshuai.xi# Effected ENV 543*53ee8cc1Swenshuai.xi# CFG_STDLIB_DIR = 544*53ee8cc1Swenshuai.xi# CFG_LINT = 545*53ee8cc1Swenshuai.xi# CFG_CC_OPTS += 546*53ee8cc1Swenshuai.xi# CFG_LD_OPTS += 547*53ee8cc1Swenshuai.xi# CFG_AS_OPTS += 548*53ee8cc1Swenshuai.xi# ********************************************** 549*53ee8cc1Swenshuai.xi 550*53ee8cc1Swenshuai.xiinclude $(ROOTLIB)/cfg_tool.mk 551*53ee8cc1Swenshuai.xi 552*53ee8cc1Swenshuai.xi 553*53ee8cc1Swenshuai.xiifeq ($(LINK_TYPE),dynamic) 554*53ee8cc1Swenshuai.xi CFG_LD_OPTS += -shared 555*53ee8cc1Swenshuai.xi LIB_EXT = so 556*53ee8cc1Swenshuai.xielse 557*53ee8cc1Swenshuai.xi CFG_LD_OPTS += --gc-sections -static 558*53ee8cc1Swenshuai.xi LIB_EXT = a 559*53ee8cc1Swenshuai.xiendif 560*53ee8cc1Swenshuai.xi 561*53ee8cc1Swenshuai.xi 562*53ee8cc1Swenshuai.xi 563*53ee8cc1Swenshuai.xi# Project specific 564*53ee8cc1Swenshuai.xi# ********************************************** 565*53ee8cc1Swenshuai.xi# Base Operating System 566*53ee8cc1Swenshuai.xiOS_BUILT = 567*53ee8cc1Swenshuai.xi 568*53ee8cc1Swenshuai.xi 569*53ee8cc1Swenshuai.xi# ********************************************** 570*53ee8cc1Swenshuai.xi# Directories 571*53ee8cc1Swenshuai.xi# ********************************************** 572*53ee8cc1Swenshuai.xi# Source files of specific CHIP in library 573*53ee8cc1Swenshuai.xiSRCDIR_CHIP = \ 574*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP) \ 575*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/bdma \ 576*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/sem \ 577*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/mmio \ 578*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/mbx \ 579*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/uart \ 580*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/irq \ 581*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/sys \ 582*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/miu \ 583*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/gpio \ 584*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/cpu \ 585*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/dac \ 586*53ee8cc1Swenshuai.xi $(ROOTLIB)/api/swi2c \ 587*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/cpu \ 588*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/gpio 589*53ee8cc1Swenshuai.xi 590*53ee8cc1Swenshuai.xi# Source files of library 591*53ee8cc1Swenshuai.xiSRCDIR_LIB = \ 592*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/bdma \ 593*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/sem \ 594*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/mmio \ 595*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/mbx/$(OS_TYPE) \ 596*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/mbx/api_mbx \ 597*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/uart \ 598*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/irq \ 599*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/sys \ 600*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/miu \ 601*53ee8cc1Swenshuai.xi 602*53ee8cc1Swenshuai.xi 603*53ee8cc1Swenshuai.xiSRCDIR_SYS = \ 604*53ee8cc1Swenshuai.xi $(ROOTLIB)/msos/$(MCU_TYPE) \ 605*53ee8cc1Swenshuai.xi $(ROOTLIB)/msos/$(OS_TYPE) \ 606*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/msos/$(OS_TYPE) \ 607*53ee8cc1Swenshuai.xi $(ROOTLIB)/msos/common \ 608*53ee8cc1Swenshuai.xi $(ROOTLIB)/utopia_core/$(OS_TYPE) 609*53ee8cc1Swenshuai.xi 610*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),$(filter $(OS_TYPE),linux ecos)) 611*53ee8cc1Swenshuai.xiSRCDIR_FS = $(ROOTLIB)/msfs/$(OS_TYPE) 612*53ee8cc1Swenshuai.xiendif 613*53ee8cc1Swenshuai.xi 614*53ee8cc1Swenshuai.xi# Header file of specific chip 615*53ee8cc1Swenshuai.xiINCDIR_CHIP = \ 616*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP) \ 617*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/bdma \ 618*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/sem \ 619*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/mmio \ 620*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/mbx \ 621*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/uart \ 622*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/irq \ 623*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/sys \ 624*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/miu \ 625*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/dac/include \ 626*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/gpio 627*53ee8cc1Swenshuai.xi 628*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),ucos) 629*53ee8cc1Swenshuai.xiINCDIR_CHIP += $(ROOTLIB)/hal/$(CHIP)/cpu 630*53ee8cc1Swenshuai.xiendif 631*53ee8cc1Swenshuai.xi 632*53ee8cc1Swenshuai.xi# Header file of inline assembly in library 633*53ee8cc1Swenshuai.xiINCDIR_ASM = \ 634*53ee8cc1Swenshuai.xi 635*53ee8cc1Swenshuai.xi# Header files of library 636*53ee8cc1Swenshuai.xiINCDIR_LIB = \ 637*53ee8cc1Swenshuai.xi $(PROJ) \ 638*53ee8cc1Swenshuai.xi $(ROOTLIB) \ 639*53ee8cc1Swenshuai.xi $(ROOTLIB)/api/vdec \ 640*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/bdma \ 641*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/mbx \ 642*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/mbx/$(OS_TYPE) \ 643*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/sem \ 644*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/mmio \ 645*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/irq \ 646*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/sys \ 647*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/uart \ 648*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/miu \ 649*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/dac \ 650*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/audio/internal \ 651*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP) \ 652*53ee8cc1Swenshuai.xi $(ROOTLIB)/msos \ 653*53ee8cc1Swenshuai.xi $(ROOTLIB)/msos/$(OS_TYPE) \ 654*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/msos/$(OS_TYPE) \ 655*53ee8cc1Swenshuai.xi $(ROOTLIB)/utopia_core/ \ 656*53ee8cc1Swenshuai.xi $(ROOTLIB)/utopia_api_relation/ 657*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),$(filter $(OS_TYPE),linux ecos)) 658*53ee8cc1Swenshuai.xiINCDIR_LIB += $(ROOTLIB)/msfs 659*53ee8cc1Swenshuai.xiendif 660*53ee8cc1Swenshuai.xi 661*53ee8cc1Swenshuai.xiINCDIR_LIB_H = \ 662*53ee8cc1Swenshuai.xi $(ROOTLIB)/drv/miu \ 663*53ee8cc1Swenshuai.xi 664*53ee8cc1Swenshuai.xi# FW binary files of library 665*53ee8cc1Swenshuai.xiBINDIR_LIB = \ 666*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/hvd \ 667*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/mvd \ 668*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/audsp \ 669*53ee8cc1Swenshuai.xi $(ROOTLIB)/hal/$(CHIP)/tsp \ 670*53ee8cc1Swenshuai.xi 671*53ee8cc1Swenshuai.xiifeq ($(CHIP),monaco) 672*53ee8cc1Swenshuai.xiBINDIR_LIB += $(ROOTLIB)/hal/$(CHIP)/vpu_v3 673*53ee8cc1Swenshuai.xielse 674*53ee8cc1Swenshuai.xiBINDIR_LIB += $(ROOTLIB)/hal/$(CHIP)/vpu_ex 675*53ee8cc1Swenshuai.xiendif 676*53ee8cc1Swenshuai.xi 677*53ee8cc1Swenshuai.xiBIN_PATH = $(PROJ)/bin 678*53ee8cc1Swenshuai.xiOBJ_PATH = $(PROJ)/obj 679*53ee8cc1Swenshuai.xiBSPLIB_PATH = $(PROJ)/bsp/lib 680*53ee8cc1Swenshuai.xiBSPINC_PATH = $(PROJ)/bsp/include 681*53ee8cc1Swenshuai.xiBSPBIN_PATH = $(PROJ)/bsp/bin 682*53ee8cc1Swenshuai.xiBSPMSC_PATH = $(PROJ)/bsp/misc 683*53ee8cc1Swenshuai.xi 684*53ee8cc1Swenshuai.xi 685*53ee8cc1Swenshuai.xi# Search source file path 686*53ee8cc1Swenshuai.xiVPATH = $(SRCDIR_CHIP) $(SRCDIR_SYS) $(SRCDIR_ASM) $(SRCDIR_LIB) 687*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),linux) 688*53ee8cc1Swenshuai.xiVPATH += $(SRCDIR_FS) 689*53ee8cc1Swenshuai.xiendif 690*53ee8cc1Swenshuai.xi 691*53ee8cc1Swenshuai.xiinclude $(ROOTLIB)/ddi.mk 692*53ee8cc1Swenshuai.xiinclude $(ROOTLIB)/mxlib.mk 693*53ee8cc1Swenshuai.xi 694*53ee8cc1Swenshuai.xi 695*53ee8cc1Swenshuai.xi# ********************************************** 696*53ee8cc1Swenshuai.xi# Image file names 697*53ee8cc1Swenshuai.xi# ********************************************** 698*53ee8cc1Swenshuai.xiIMAGE_BIN = $(BIN_PATH)/$(IMAGENAME).bin 699*53ee8cc1Swenshuai.xiIMAGE_REC = $(BIN_PATH)/$(IMAGENAME).rec 700*53ee8cc1Swenshuai.xiIMAGE_ELF = $(BIN_PATH)/$(IMAGENAME).elf 701*53ee8cc1Swenshuai.xiIMAGE_MAP = $(BIN_PATH)/$(IMAGENAME).map 702*53ee8cc1Swenshuai.xiIMAGE_DIS = $(BIN_PATH)/$(IMAGENAME).dis 703*53ee8cc1Swenshuai.xiIMAGE_SIZ = $(BIN_PATH)/$(IMAGENAME).siz 704*53ee8cc1Swenshuai.xiIMAGE_SYM = $(BIN_PATH)/$(IMAGENAME).sym 705*53ee8cc1Swenshuai.xi 706*53ee8cc1Swenshuai.xi 707*53ee8cc1Swenshuai.xi# ********************************************** 708*53ee8cc1Swenshuai.xi# Files to be compiled 709*53ee8cc1Swenshuai.xi# ********************************************** 710*53ee8cc1Swenshuai.xiSRC_C_CHIP = $(foreach dir, $(SRCDIR_CHIP), $(wildcard $(dir)/*.c)) 711*53ee8cc1Swenshuai.xiSRC_C_ASM = $(foreach dir, $(SRCDIR_ASM), $(wildcard $(dir)/*.c)) 712*53ee8cc1Swenshuai.xiSRC_C_LIB = $(foreach dir, $(SRCDIR_LIB), $(wildcard $(dir)/*.c)) 713*53ee8cc1Swenshuai.xiSRC_C_SYS = $(foreach dir, $(SRCDIR_SYS), $(wildcard $(dir)/*.c)) 714*53ee8cc1Swenshuai.xi 715*53ee8cc1Swenshuai.xiOBJ_C_CHIP0 = $(notdir $(patsubst %.c, %.o, $(SRC_C_CHIP))) 716*53ee8cc1Swenshuai.xiOBJ_C_ASM0 = $(notdir $(patsubst %.c, %.o, $(SRC_C_ASM) )) 717*53ee8cc1Swenshuai.xiOBJ_C_LIB0 = $(notdir $(patsubst %.c, %.o, $(SRC_C_LIB) )) 718*53ee8cc1Swenshuai.xiOBJ_C_SYS0 = $(notdir $(patsubst %.c, %.o, $(SRC_C_SYS) )) 719*53ee8cc1Swenshuai.xi 720*53ee8cc1Swenshuai.xiOBJ_C_CHIP = $(foreach file, $(OBJ_C_CHIP0), $(OBJ_PATH)/$(file)) 721*53ee8cc1Swenshuai.xiOBJ_C_ASM = $(foreach file, $(OBJ_C_ASM0), $(OBJ_PATH)/$(file)) 722*53ee8cc1Swenshuai.xiOBJ_C_LIB = $(foreach file, $(OBJ_C_LIB0), $(OBJ_PATH)/$(file)) 723*53ee8cc1Swenshuai.xiOBJ_C_SYS = $(foreach file, $(OBJ_C_SYS0), $(OBJ_PATH)/$(file)) 724*53ee8cc1Swenshuai.xi 725*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),linux) 726*53ee8cc1Swenshuai.xiSRC_C_FS = $(foreach dir, $(SRCDIR_FS), $(wildcard $(dir)/*.c)) 727*53ee8cc1Swenshuai.xiOBJ_C_FS0 = $(notdir $(patsubst %.c, %.o, $(SRC_C_FS) )) 728*53ee8cc1Swenshuai.xiOBJ_C_FS = $(foreach file, $(OBJ_C_FS0), $(OBJ_PATH)/$(file)) 729*53ee8cc1Swenshuai.xiendif 730*53ee8cc1Swenshuai.xi 731*53ee8cc1Swenshuai.xi# ********************************************** 732*53ee8cc1Swenshuai.xi# Libraries 733*53ee8cc1Swenshuai.xi# ********************************************** 734*53ee8cc1Swenshuai.xi 735*53ee8cc1Swenshuai.xiDDI_PATH = $(ROOT)/lib/$(CHIP)_$(OS_TYPE)_$(MCU_TYPE)/$(MCU_TYPE)_$(BLT_TYPE) 736*53ee8cc1Swenshuai.xi 737*53ee8cc1Swenshuai.xi# Standard Libraries Path 738*53ee8cc1Swenshuai.xi 739*53ee8cc1Swenshuai.xi 740*53ee8cc1Swenshuai.xi# Middleware Libraries Path 741*53ee8cc1Swenshuai.xi 742*53ee8cc1Swenshuai.xi 743*53ee8cc1Swenshuai.xi# Libraries 744*53ee8cc1Swenshuai.xiDDI_LIB = $(DDI_PATH)/lib$(OS_TYPE).$(LIB_EXT) 745*53ee8cc1Swenshuai.xi 746*53ee8cc1Swenshuai.xi# Include files of output library 747*53ee8cc1Swenshuai.xiLIB_INC = 748*53ee8cc1Swenshuai.xiLIB_INC += $(foreach dir, $(INCDIR_LIB), $(wildcard $(dir)/asm*.h)) 749*53ee8cc1Swenshuai.xiLIB_INC += $(foreach dir, $(INCDIR_LIB), $(wildcard $(dir)/api*.h)) 750*53ee8cc1Swenshuai.xiLIB_INC += $(foreach dir, $(INCDIR_LIB), $(wildcard $(dir)/drv*.h)) 751*53ee8cc1Swenshuai.xiLIB_INC += $(foreach dir, $(INCDIR_LIB), $(wildcard $(dir)/Ms*.h)) 752*53ee8cc1Swenshuai.xiLIB_INC += $(foreach dir, $(INCDIR_LIB), $(wildcard $(dir)/regCHIP.h)) 753*53ee8cc1Swenshuai.xiLIB_INC += $(foreach dir, $(INCDIR_LIB), $(wildcard $(dir)/$(CFG_BOARD).h)) 754*53ee8cc1Swenshuai.xiLIB_INC += $(foreach dir, $(INCDIR_LIB), $(wildcard $(dir)/utopia.h)) 755*53ee8cc1Swenshuai.xiLIB_INC += $(foreach dir, $(INCDIR_LIB), $(wildcard $(dir)/utopia_dapi.h)) 756*53ee8cc1Swenshuai.xiLIB_INC += $(foreach dir, $(INCDIR_LIB), $(wildcard $(dir)/utopia_driver_id.h)) 757*53ee8cc1Swenshuai.xiifeq ($(CONFIG_API_DAC), y) 758*53ee8cc1Swenshuai.xiLIB_INC += $(foreach dir, $(INCDIR_CHIP), $(wildcard $(dir)/mdrv_dac_tbl.h)) 759*53ee8cc1Swenshuai.xiendif 760*53ee8cc1Swenshuai.xi 761*53ee8cc1Swenshuai.xiLIB_INC_2 = 762*53ee8cc1Swenshuai.xiLIB_INC_2 += $(foreach dir, $(MXLIB-y), $(wildcard $(dir)/api*.h)) 763*53ee8cc1Swenshuai.xiLIB_INC_2 += $(foreach dir, $(MXLIB-y), $(wildcard $(dir)/drv*.h)) 764*53ee8cc1Swenshuai.xiLIB_INC_2 += $(foreach dir, $(MXLIB-m), $(wildcard $(dir)/api*.h)) 765*53ee8cc1Swenshuai.xiLIB_INC_2 += $(foreach dir, $(MXLIB-m), $(wildcard $(dir)/drv*.h)) 766*53ee8cc1Swenshuai.xi 767*53ee8cc1Swenshuai.xi# FW Binary files of output library 768*53ee8cc1Swenshuai.xiLIB_FW_BIN = 769*53ee8cc1Swenshuai.xiLIB_FW_BIN += $(foreach dir, $(BINDIR_LIB), $(wildcard $(dir)/fw*.bin)) 770*53ee8cc1Swenshuai.xiLIB_FW_BIN += $(foreach dir, $(BINDIR_LIB), $(wildcard $(dir)/fw*.dat)) 771*53ee8cc1Swenshuai.xiLIB_FW_BIN += $(foreach dir, $(BINDIR_LIB), $(wildcard $(dir)/out_*.bin)) 772*53ee8cc1Swenshuai.xiLIB_FW_BIN += $(foreach dir, $(BINDIR_LIB), $(wildcard $(dir)/aucode_*.h)) 773*53ee8cc1Swenshuai.xi 774*53ee8cc1Swenshuai.xi# Misc files 775*53ee8cc1Swenshuai.xiLIB_MISC = 776*53ee8cc1Swenshuai.xiifeq ($(CONFIG_API_DAC), y) 777*53ee8cc1Swenshuai.xiLIB_MISC += $(foreach dir, $(INCDIR_CHIP), $(wildcard $(dir)/mdrv_dac_tbl.c)) 778*53ee8cc1Swenshuai.xiendif 779*53ee8cc1Swenshuai.xi 780*53ee8cc1Swenshuai.xi# Public include files 781*53ee8cc1Swenshuai.xiPUB_INC = 782*53ee8cc1Swenshuai.xiPUB_INC += $(foreach dir, $(PUBINC), $(wildcard $(dir)/*.h)) 783*53ee8cc1Swenshuai.xi 784*53ee8cc1Swenshuai.xi# ********************************************** 785*53ee8cc1Swenshuai.xi# Compiler and linker options 786*53ee8cc1Swenshuai.xi# ********************************************** 787*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),linux) 788*53ee8cc1Swenshuai.xi 789*53ee8cc1Swenshuai.xiifeq ($(EXT_PLATFORM_FLAG),android) 790*53ee8cc1Swenshuai.xi# ********************************************** 791*53ee8cc1Swenshuai.xi# Compiler and linker options for android 792*53ee8cc1Swenshuai.xi# ********************************************** 793*53ee8cc1Swenshuai.xi 794*53ee8cc1Swenshuai.xiANDROID_DIR = $(ANDROID_BUILD_TOP) 795*53ee8cc1Swenshuai.xiOS_INC_DIR = \ 796*53ee8cc1Swenshuai.xi $(ANDROID_DIR)/bionic/libc/arch-arm/include \ 797*53ee8cc1Swenshuai.xi $(ANDROID_DIR)/bionic/libc/include \ 798*53ee8cc1Swenshuai.xi $(ANDROID_DIR)/bionic/libc/kernel/common \ 799*53ee8cc1Swenshuai.xi $(ANDROID_DIR)/bionic/libc/kernel/arch-arm \ 800*53ee8cc1Swenshuai.xi $(ANDROID_DIR)/bionic/libm/include \ 801*53ee8cc1Swenshuai.xi $(ANDROID_DIR)/bionic/libm/include/arch/arm \ 802*53ee8cc1Swenshuai.xi $(ANDROID_DIR)/bionic/libthread_db/include \ 803*53ee8cc1Swenshuai.xi $(ANDROID_DIR)/system/core/include 804*53ee8cc1Swenshuai.xiOS_LIB_DIR = $(ANDROID_DIR)/bionic/lib 805*53ee8cc1Swenshuai.xi 806*53ee8cc1Swenshuai.xiALL_INC_DIR = $(INCDIR_ASM) $(INCDIR_CHIP) $(INCDIR_LIB) $(INCDIR_LIB_H) $(OS_INC_DIR) 807*53ee8cc1Swenshuai.xi 808*53ee8cc1Swenshuai.xiCC_INCS = $(foreach dir, $(ALL_INC_DIR), -I$(dir) -I$(PUBINC)) 809*53ee8cc1Swenshuai.xi 810*53ee8cc1Swenshuai.xiCC_DEFS = $(CFG_CC_DEFS) $(CFG_CC_EXTRA_DEFS) -D'OS_LINUX' -D'LIB_NAME="$(IMAGENAME).lib"' -D'PWS_AUTOGEN' 811*53ee8cc1Swenshuai.xiCC_DEFS += -D'TV_OS' -D'ANDROID' -D'SK_RELEASE' 812*53ee8cc1Swenshuai.xi 813*53ee8cc1Swenshuai.xi# GCC options: 814*53ee8cc1Swenshuai.xiCC_OPTS = $(CFG_CC_OPTS) -c 815*53ee8cc1Swenshuai.xi# TARGET_GLOBAL_CFLAGS 816*53ee8cc1Swenshuai.xiCC_OPTS += -fno-exceptions -Wno-multichar \ 817*53ee8cc1Swenshuai.xi -fpic \ 818*53ee8cc1Swenshuai.xi -ffunction-sections \ 819*53ee8cc1Swenshuai.xi -funwind-tables \ 820*53ee8cc1Swenshuai.xi -fstack-protector \ 821*53ee8cc1Swenshuai.xi -Wa,--noexecstack \ 822*53ee8cc1Swenshuai.xi -Werror=format-security \ 823*53ee8cc1Swenshuai.xi -fno-short-enums \ 824*53ee8cc1Swenshuai.xi -Wno-psabi \ 825*53ee8cc1Swenshuai.xi -mthumb-interwork \ 826*53ee8cc1Swenshuai.xi -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith 827*53ee8cc1Swenshuai.xi#TARGET_ERROR_FLAGS 828*53ee8cc1Swenshuai.xiCC_OPTS += -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point 829*53ee8cc1Swenshuai.xi# TARGET_RELEASE_CFLAGS 830*53ee8cc1Swenshuai.xiCC_OPTS += -DNDEBUG \ 831*53ee8cc1Swenshuai.xi -g \ 832*53ee8cc1Swenshuai.xi -Wstrict-aliasing=2 \ 833*53ee8cc1Swenshuai.xi -finline-functions \ 834*53ee8cc1Swenshuai.xi -fno-inline-functions-called-once \ 835*53ee8cc1Swenshuai.xi -fgcse-after-reload \ 836*53ee8cc1Swenshuai.xi -frerun-cse-after-loop \ 837*53ee8cc1Swenshuai.xi -frename-registers \ 838*53ee8cc1Swenshuai.xi -DNDEBUG -UDEBUG \ 839*53ee8cc1Swenshuai.xi -DMS_OPTIMIZE 840*53ee8cc1Swenshuai.xi# TARGET_ARCH_CFLAGS 841*53ee8cc1Swenshuai.xiCC_OPTS += -Os \ 842*53ee8cc1Swenshuai.xi -fomit-frame-pointer \ 843*53ee8cc1Swenshuai.xi -fstrict-aliasing \ 844*53ee8cc1Swenshuai.xi -funswitch-loops \ 845*53ee8cc1Swenshuai.xi -finline-limit=300 846*53ee8cc1Swenshuai.xi 847*53ee8cc1Swenshuai.xielse 848*53ee8cc1Swenshuai.xi# ********************************************** 849*53ee8cc1Swenshuai.xi# Compiler and linker options for linux 850*53ee8cc1Swenshuai.xi# ********************************************** 851*53ee8cc1Swenshuai.xi 852*53ee8cc1Swenshuai.xiOS_INC_DIR = 853*53ee8cc1Swenshuai.xi 854*53ee8cc1Swenshuai.xiALL_INC_DIR = $(INCDIR_ASM) $(INCDIR_CHIP) $(INCDIR_LIB) $(INCDIR_LIB_H) $(OS_INC_DIR) 855*53ee8cc1Swenshuai.xi 856*53ee8cc1Swenshuai.xiCC_INCS = $(foreach dir, $(ALL_INC_DIR), -I$(dir) -I$(PUBINC)) 857*53ee8cc1Swenshuai.xiCC_INCS += -I$(AUTOCONFIG) 858*53ee8cc1Swenshuai.xi 859*53ee8cc1Swenshuai.xiCC_DEFS = $(CFG_CC_DEFS) $(CFG_CC_EXTRA_DEFS) -D'OS_LINUX' -D'LIB_NAME="$(IMAGENAME).lib"' -D'PWS_AUTOGEN' 860*53ee8cc1Swenshuai.xi 861*53ee8cc1Swenshuai.xiifeq ($(EXT_PLATFORM_FLAG),tvos) 862*53ee8cc1Swenshuai.xiCC_DEFS += -D'TV_OS' 863*53ee8cc1Swenshuai.xiendif 864*53ee8cc1Swenshuai.xi 865*53ee8cc1Swenshuai.xi# GCC options: 866*53ee8cc1Swenshuai.xiCC_OPTS = $(CFG_CC_OPTS) -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef 867*53ee8cc1Swenshuai.xiCC_OPTS += -fno-strict-aliasing -fno-optimize-sibling-calls -fno-exceptions 868*53ee8cc1Swenshuai.xiCC_OPTS += -ffunction-sections -fdata-sections 869*53ee8cc1Swenshuai.xiCC_OPTS += -c 870*53ee8cc1Swenshuai.xiifeq ($(TOOLCHAIN),arm-buildroot-linux-uclibcgnueabi) 871*53ee8cc1Swenshuai.xiCC_OPTS += -fPIC 872*53ee8cc1Swenshuai.xiendif 873*53ee8cc1Swenshuai.xi 874*53ee8cc1Swenshuai.xiifeq ($(CONFIG_STACK_PROTECTOR),y) 875*53ee8cc1Swenshuai.xi # currently we use 4.8.2 and 4.9.2 876*53ee8cc1Swenshuai.xi ifeq ($(TOOLCHAIN_VER), $(filter $(TOOLCHAIN_VER), 4.8.2 4.9.2)) 877*53ee8cc1Swenshuai.xi CC_OPTS += -fstack-protector 878*53ee8cc1Swenshuai.xi else 879*53ee8cc1Swenshuai.xi $(error "Only toolchain ver > 4.8 supports -fstack-protector (current = $(TOOLCHAIN_VER))") 880*53ee8cc1Swenshuai.xi endif 881*53ee8cc1Swenshuai.xiendif 882*53ee8cc1Swenshuai.xi 883*53ee8cc1Swenshuai.xi# for symbol backtrace 884*53ee8cc1Swenshuai.xiCC_OPTS += -rdynamic 885*53ee8cc1Swenshuai.xiendif 886*53ee8cc1Swenshuai.xi 887*53ee8cc1Swenshuai.xielse 888*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),ucos) 889*53ee8cc1Swenshuai.xi# ********************************************** 890*53ee8cc1Swenshuai.xi# Compiler and linker options for ucos 891*53ee8cc1Swenshuai.xi# ********************************************** 892*53ee8cc1Swenshuai.xiOS_INC_DIR = $(ROOT)/../../GreenLion/platform/ucos/include 893*53ee8cc1Swenshuai.xiOS_INC_DIR += $(ROOT)/../../GreenLion/platform/ucos/HDI3/inc 894*53ee8cc1Swenshuai.xi 895*53ee8cc1Swenshuai.xiALL_INC_DIR = $(INCDIR_ASM) $(INCDIR_CHIP) $(INCDIR_LIB) $(INCDIR_LIB_H) $(OS_INC_DIR) 896*53ee8cc1Swenshuai.xiCC_INCS = $(foreach dir, $(ALL_INC_DIR), -I$(dir) -I$(PUBINC)) 897*53ee8cc1Swenshuai.xiCC_INCS += -I$(AUTOCONFIG) 898*53ee8cc1Swenshuai.xiCC_DEFS = $(CFG_CC_DEFS) $(CFG_CC_EXTRA_DEFS) -D'OS_UCOS' -D'LIB_NAME="$(IMAGENAME).lib"' -D'PWS_AUTOGEN' 899*53ee8cc1Swenshuai.xi 900*53ee8cc1Swenshuai.xi# GCC options: 901*53ee8cc1Swenshuai.xiCC_OPTS = $(CFG_CC_OPTS) -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef 902*53ee8cc1Swenshuai.xiCC_OPTS += -fno-strict-aliasing -fno-optimize-sibling-calls -fno-exceptions 903*53ee8cc1Swenshuai.xiifeq ($(TOOLCHAIN),arm-none-eabi) 904*53ee8cc1Swenshuai.xiCC_OPTS += -c 905*53ee8cc1Swenshuai.xielse 906*53ee8cc1Swenshuai.xiCC_OPTS += -c -G0 907*53ee8cc1Swenshuai.xiendif 908*53ee8cc1Swenshuai.xi 909*53ee8cc1Swenshuai.xielse 910*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),ecos) 911*53ee8cc1Swenshuai.xi# ********************************************** 912*53ee8cc1Swenshuai.xi# Compiler and linker options for Ecos 913*53ee8cc1Swenshuai.xi# ********************************************** 914*53ee8cc1Swenshuai.xiifeq ($(FPU_ENABLE),1) 915*53ee8cc1Swenshuai.xiifeq ($(CHIP),kano) 916*53ee8cc1Swenshuai.xi OS_INC_DIR = $(ROOT)/../../GreenLion/platform/ecos/ecos_kano_CA53_net_fileio_posix_fat_cpuload_c++_none_armeabi/include 917*53ee8cc1Swenshuai.xielse ifeq ($(CHIP),k6) 918*53ee8cc1Swenshuai.xi OS_INC_DIR = $(ROOT)/../../../GreenLion/platform/ecos/ecos_k6_CA53_net_fileio_posix_fat_cpuload_c++_none_armeabi/include 919*53ee8cc1Swenshuai.xielse ifeq ($(CHIP),k6lite) 920*53ee8cc1Swenshuai.xi OS_INC_DIR = $(ROOT)/../../../GreenLion/platform/ecos/ecos_k6lite_CA7_net_fileio_posix_fat_cpuload_c++_none_armeabi/include 921*53ee8cc1Swenshuai.xielse 922*53ee8cc1Swenshuai.xi OS_INC_DIR = $(ROOT)/../GreenLion/platform/ecos/ecos_keres_74kf_net_fileio_posix_fat_ntfs_mipsisa32_c++/include 923*53ee8cc1Swenshuai.xiendif 924*53ee8cc1Swenshuai.xielse 925*53ee8cc1Swenshuai.xiifeq ($(CHIP),kano) 926*53ee8cc1Swenshuai.xi OS_INC_DIR = $(ROOT)/../../GreenLion/platform/ecos/ecos_kano_CA53_net_fileio_posix_fat_cpuload_c++_none_armeabi/include 927*53ee8cc1Swenshuai.xielse ifeq ($(CHIP),k6) 928*53ee8cc1Swenshuai.xi OS_INC_DIR = $(ROOT)/../../../GreenLion/platform/ecos/ecos_k6_CA53_net_fileio_posix_fat_cpuload_c++_none_armeabi/include 929*53ee8cc1Swenshuai.xielse ifeq ($(CHIP),k6lite) 930*53ee8cc1Swenshuai.xi OS_INC_DIR = $(ROOT)/../../../GreenLion/platform/ecos/ecos_k6lite_CA7_net_fileio_posix_fat_cpuload_c++_none_armeabi/include 931*53ee8cc1Swenshuai.xielse 932*53ee8cc1Swenshuai.xi OS_INC_DIR = $(ROOT)/../GreenLion/platform/ecos/ecos_keres_74kc_net_fileio_posix_fat_ntfs_mipsisa32_c++/include 933*53ee8cc1Swenshuai.xiendif 934*53ee8cc1Swenshuai.xiendif 935*53ee8cc1Swenshuai.xi 936*53ee8cc1Swenshuai.xiALL_INC_DIR = $(INCDIR_ASM) $(INCDIR_CHIP) $(INCDIR_LIB) $(INCDIR_LIB_H) $(OS_INC_DIR) 937*53ee8cc1Swenshuai.xiCC_INCS = $(foreach dir, $(ALL_INC_DIR), -I$(dir) -I$(PUBINC)) 938*53ee8cc1Swenshuai.xiCC_INCS += -I$(AUTOCONFIG) 939*53ee8cc1Swenshuai.xiCC_DEFS = $(CFG_CC_DEFS) $(CFG_CC_EXTRA_DEFS) -D'OS_ECOS' -D'LIB_NAME="$(IMAGENAME).lib"' -D'PWS_AUTOGEN' 940*53ee8cc1Swenshuai.xi 941*53ee8cc1Swenshuai.xi# GCC options: 942*53ee8cc1Swenshuai.xiCC_OPTS = $(CFG_CC_OPTS) -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef 943*53ee8cc1Swenshuai.xiCC_OPTS += -fno-strict-aliasing -fno-optimize-sibling-calls -fno-exceptions 944*53ee8cc1Swenshuai.xiifeq ($(TOOLCHAIN),arm-none-eabi) 945*53ee8cc1Swenshuai.xiCC_OPTS += -c 946*53ee8cc1Swenshuai.xielse 947*53ee8cc1Swenshuai.xiCC_OPTS += -c -G0 948*53ee8cc1Swenshuai.xiendif 949*53ee8cc1Swenshuai.xi 950*53ee8cc1Swenshuai.xielse 951*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),nuttx) 952*53ee8cc1Swenshuai.xi# ********************************************** 953*53ee8cc1Swenshuai.xi# Compiler and linker options for Nuttx 954*53ee8cc1Swenshuai.xi# ********************************************** 955*53ee8cc1Swenshuai.xi 956*53ee8cc1Swenshuai.xiOS_INC_DIR = 957*53ee8cc1Swenshuai.xiALL_INC_DIR = $(INCDIR_ASM) $(INCDIR_CHIP) $(INCDIR_LIB) $(INCDIR_LIB_H) $(OS_INC_DIR) 958*53ee8cc1Swenshuai.xiCC_INCS = $(foreach dir, $(ALL_INC_DIR), -I$(dir) -I$(PUBINC)) 959*53ee8cc1Swenshuai.xiCC_INCS += -I$(AUTOCONFIG) 960*53ee8cc1Swenshuai.xiCC_DEFS = $(CFG_CC_DEFS) $(CFG_CC_EXTRA_DEFS) -D'OS_NOS' -D'LIB_NAME="$(IMAGENAME).lib"' -D'PWS_AUTOGEN' 961*53ee8cc1Swenshuai.xi 962*53ee8cc1Swenshuai.xi# GCC options: 963*53ee8cc1Swenshuai.xiCC_OPTS = $(CFG_CC_OPTS) -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Wcast-align 964*53ee8cc1Swenshuai.xiCC_OPTS += -fomit-frame-pointer -fno-exceptions 965*53ee8cc1Swenshuai.xiCC_OPTS += -ffunction-sections -fdata-sections 966*53ee8cc1Swenshuai.xiCC_OPTS += -c -march=aeonR2 -EL 967*53ee8cc1Swenshuai.xi 968*53ee8cc1Swenshuai.xielse 969*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),optee) 970*53ee8cc1Swenshuai.xi# ********************************************** 971*53ee8cc1Swenshuai.xi# Compiler and linker options for Optee 972*53ee8cc1Swenshuai.xi# ********************************************** 973*53ee8cc1Swenshuai.xi 974*53ee8cc1Swenshuai.xiOS_INC_DIR = 975*53ee8cc1Swenshuai.xiALL_INC_DIR = $(INCDIR_ASM) $(INCDIR_CHIP) $(INCDIR_LIB) $(INCDIR_LIB_H) $(OS_INC_DIR) 976*53ee8cc1Swenshuai.xiCC_INCS = $(foreach dir, $(ALL_INC_DIR), -I$(dir) -I$(PUBINC)) 977*53ee8cc1Swenshuai.xiCC_INCS += -I$(AUTOCONFIG) 978*53ee8cc1Swenshuai.xiCC_DEFS = $(CFG_CC_DEFS) $(CFG_CC_EXTRA_DEFS) -D'OS_NOS' -D'LIB_NAME="$(IMAGENAME).lib"' -D'PWS_AUTOGEN' 979*53ee8cc1Swenshuai.xi 980*53ee8cc1Swenshuai.xi# GCC options: 981*53ee8cc1Swenshuai.xiCC_OPTS = $(CFG_CC_OPTS) -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Wcast-align 982*53ee8cc1Swenshuai.xiCC_OPTS += -fomit-frame-pointer -fno-exceptions 983*53ee8cc1Swenshuai.xiCC_OPTS += -ffunction-sections -fdata-sections 984*53ee8cc1Swenshuai.xiCC_OPTS += -c 985*53ee8cc1Swenshuai.xi 986*53ee8cc1Swenshuai.xielse 987*53ee8cc1Swenshuai.xi# ********************************************** 988*53ee8cc1Swenshuai.xi# Compiler and linker options for Non-OS 989*53ee8cc1Swenshuai.xi# ********************************************** 990*53ee8cc1Swenshuai.xi 991*53ee8cc1Swenshuai.xiOS_INC_DIR = 992*53ee8cc1Swenshuai.xiALL_INC_DIR = $(INCDIR_ASM) $(INCDIR_CHIP) $(INCDIR_LIB) $(INCDIR_LIB_H) $(OS_INC_DIR) 993*53ee8cc1Swenshuai.xiCC_INCS = $(foreach dir, $(ALL_INC_DIR), -I$(dir) -I$(PUBINC)) 994*53ee8cc1Swenshuai.xiCC_INCS += -I$(AUTOCONFIG) 995*53ee8cc1Swenshuai.xiCC_DEFS = $(CFG_CC_DEFS) $(CFG_CC_EXTRA_DEFS) -D'OS_NOS' -D'LIB_NAME="$(IMAGENAME).lib"' -D'PWS_AUTOGEN' 996*53ee8cc1Swenshuai.xi 997*53ee8cc1Swenshuai.xi# GCC options: 998*53ee8cc1Swenshuai.xiCC_OPTS = $(CFG_CC_OPTS) -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Wcast-align 999*53ee8cc1Swenshuai.xiCC_OPTS += -fomit-frame-pointer -fno-exceptions 1000*53ee8cc1Swenshuai.xiCC_OPTS += -ffunction-sections -fdata-sections 1001*53ee8cc1Swenshuai.xi 1002*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE),aeon) 1003*53ee8cc1Swenshuai.xiCC_OPTS += -march=aeonR2 -EL 1004*53ee8cc1Swenshuai.xiendif 1005*53ee8cc1Swenshuai.xi 1006*53ee8cc1Swenshuai.xi 1007*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE), arm_ca53) 1008*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE), nos) 1009*53ee8cc1Swenshuai.xiCC_OPTS += -mno-unaligned-access 1010*53ee8cc1Swenshuai.xielse 1011*53ee8cc1Swenshuai.xiCC_OPTS += -mstrict-align 1012*53ee8cc1Swenshuai.xiendif 1013*53ee8cc1Swenshuai.xiendif 1014*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE), arm_ca12) 1015*53ee8cc1Swenshuai.xiCC_OPTS += -mno-unaligned-access 1016*53ee8cc1Swenshuai.xiendif 1017*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE), arm_ca7) 1018*53ee8cc1Swenshuai.xiCC_OPTS += -mno-unaligned-access 1019*53ee8cc1Swenshuai.xiendif 1020*53ee8cc1Swenshuai.xiifeq ($(MCU_TYPE),arm9) 1021*53ee8cc1Swenshuai.xiCC_OPTS += -mno-unaligned-access 1022*53ee8cc1Swenshuai.xiendif 1023*53ee8cc1Swenshuai.xi 1024*53ee8cc1Swenshuai.xiifeq ($(EXT_PLATFORM_FLAG),mboot) 1025*53ee8cc1Swenshuai.xiCC_OPTS += -fno-short-enums -Wno-unused -Wno-cast-align -fno-strict-aliasing 1026*53ee8cc1Swenshuai.xiendif 1027*53ee8cc1Swenshuai.xi 1028*53ee8cc1Swenshuai.xiCC_OPTS += -c 1029*53ee8cc1Swenshuai.xi 1030*53ee8cc1Swenshuai.xiendif 1031*53ee8cc1Swenshuai.xiendif 1032*53ee8cc1Swenshuai.xiendif 1033*53ee8cc1Swenshuai.xiendif 1034*53ee8cc1Swenshuai.xiendif 1035*53ee8cc1Swenshuai.xi 1036*53ee8cc1Swenshuai.xi# AS options: 1037*53ee8cc1Swenshuai.xiAS_OPTS = $(CFG_AS_OPTS) -G0 -Os 1038*53ee8cc1Swenshuai.xi 1039*53ee8cc1Swenshuai.xi 1040*53ee8cc1Swenshuai.xi# LD options: 1041*53ee8cc1Swenshuai.xiLD_SCRIPT = 1042*53ee8cc1Swenshuai.xiLD_LIBS = -L$(DDI_PATH) -L$(OS_LIB_DIR) -L$(CFG_STDLIB_DIR) -T$(LD_SCRIPT) 1043*53ee8cc1Swenshuai.xiLD_OPTS = $(CFG_LD_OPTS) 1044*53ee8cc1Swenshuai.xi 1045*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),nos) 1046*53ee8cc1Swenshuai.xiLD_OPTS += -nostdlib 1047*53ee8cc1Swenshuai.xiendif 1048*53ee8cc1Swenshuai.xi 1049*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),ecos) 1050*53ee8cc1Swenshuai.xiLD_OPTS += -nostdlib -Map $(IMAGE_MAP) 1051*53ee8cc1Swenshuai.xiendif 1052*53ee8cc1Swenshuai.xi 1053*53ee8cc1Swenshuai.xi 1054*53ee8cc1Swenshuai.xiifeq ($(BLT_TYPE),debug) 1055*53ee8cc1Swenshuai.xiCC_OPTS += -O0 -g3 1056*53ee8cc1Swenshuai.xiCC_DEFS += -D'MS_DEBUG' 1057*53ee8cc1Swenshuai.xielse 1058*53ee8cc1Swenshuai.xiCC_OPTS += -Os 1059*53ee8cc1Swenshuai.xiCC_DEFS += -D'MS_OPTIMIZE' 1060*53ee8cc1Swenshuai.xiendif 1061*53ee8cc1Swenshuai.xi 1062*53ee8cc1Swenshuai.xiCC_OPTS += $(CFG_CC_EXTRA_OPTS) 1063*53ee8cc1Swenshuai.xiCC_DEFS += -D'CONFIG_ENABLE_MENUCONFIG' 1064*53ee8cc1Swenshuai.xi# ********************************************** 1065*53ee8cc1Swenshuai.xi# C Helper Utilities 1066*53ee8cc1Swenshuai.xi# ********************************************** 1067*53ee8cc1Swenshuai.xi# Generate relative path for Doxygen 1068*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),linux) 1069*53ee8cc1Swenshuai.xiDXY_SRC = $(subst $(PROJ)/,,$(PUBINC)) 1070*53ee8cc1Swenshuai.xielse 1071*53ee8cc1Swenshuai.xiDXY_SRC = $(subst $(PROJ)/,,$(LIB_INC) $(SRC_C_LIB) $(SRCDIR_SYS)) 1072*53ee8cc1Swenshuai.xiendif 1073*53ee8cc1Swenshuai.xiDXY_SRC += $(subst $(PROJ)/,,$(foreach dir,$(MXLIB),$(wildcard $(dir)/*.c))) 1074*53ee8cc1Swenshuai.xi 1075*53ee8cc1Swenshuai.xi# Generate options list for Lint 1076*53ee8cc1Swenshuai.xiifeq ($(shell uname -o),Cygwin) #TODO: revise cygwin related 1077*53ee8cc1Swenshuai.xiLINT_LOG = $(shell cygpath -m $(CURDIR)/lint_test.log) 1078*53ee8cc1Swenshuai.xiLINT_FILES = $(shell cygpath -m $(CURDIR)/lint_files.lnt) 1079*53ee8cc1Swenshuai.xiLINT_INC = $(foreach dir,$(shell cygpath -m $(ALL_INC_DIR)),-i"$(dir)") -i"$(shell cygpath -m $(CFG_LINT))" 1080*53ee8cc1Swenshuai.xielse 1081*53ee8cc1Swenshuai.xiLINT_LOG = $(CURDIR)/lint_test.log 1082*53ee8cc1Swenshuai.xiLINT_FILES = $(CURDIR)/lint_files.lnt 1083*53ee8cc1Swenshuai.xiLINT_INC = $(foreach dir,$(ALL_INC_DIR),-I"$(dir)") 1084*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),linux) 1085*53ee8cc1Swenshuai.xiLINT_INC += -I/tools/arm-2010.09/arm-none-linux-gnueabi/libc/usr/include/ 1086*53ee8cc1Swenshuai.xiLINT_INC += -I/tools/arm-2010.09/lib/gcc/arm-none-linux-gnueabi/4.5.1/include/ 1087*53ee8cc1Swenshuai.xiLINT_INC += -I/tools/arm/Linaro/gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux/ 1088*53ee8cc1Swenshuai.xiendif 1089*53ee8cc1Swenshuai.xiendif 1090*53ee8cc1Swenshuai.xi 1091*53ee8cc1Swenshuai.xi 1092*53ee8cc1Swenshuai.xi# ********************************************** 1093*53ee8cc1Swenshuai.xi# Rules 1094*53ee8cc1Swenshuai.xi# ********************************************** 1095*53ee8cc1Swenshuai.xi.PHONY : all setup clean bsp depend docgen $(MXLIB-y) $(MXLIB-m) parallel 1096*53ee8cc1Swenshuai.xi 1097*53ee8cc1Swenshuai.xiparallel: 1098*53ee8cc1Swenshuai.xi @$(MAKE) -s -f parallel.mk 1099*53ee8cc1Swenshuai.xi 1100*53ee8cc1Swenshuai.xi# Project Build 1101*53ee8cc1Swenshuai.xi 1102*53ee8cc1Swenshuai.xiall: parallel 1103*53ee8cc1Swenshuai.xi 1104*53ee8cc1Swenshuai.xilog_gccver: 1105*53ee8cc1Swenshuai.xi @$(CC) -v > .GCCver.log 2>&1 1106*53ee8cc1Swenshuai.xi 1107*53ee8cc1Swenshuai.xicheck_build_toolver: log_gccver 1108*53ee8cc1Swenshuai.xi @echo "### Start checking workspace tool chain version against $(TOOLCHAIN) $(TOOLCHAIN_VER) ###" 1109*53ee8cc1Swenshuai.xi @if [ '$(shell grep "gcc version $(TOOLCHAIN_VER)" .GCCver.log)' ] ;\ 1110*53ee8cc1Swenshuai.xi then echo "### Pass checking workspace tool chain version ###" ;\ 1111*53ee8cc1Swenshuai.xi rm .GCCver.log ;\ 1112*53ee8cc1Swenshuai.xi else echo -e "\033[0;31m[Error] Tool chain version should be $(TOOLCHAIN) $(TOOLCHAIN_VER). please check it!!\033[0m" ;\ 1113*53ee8cc1Swenshuai.xi echo "Your workspace tool chain version:" ;\ 1114*53ee8cc1Swenshuai.xi $(CC) -v ;\ 1115*53ee8cc1Swenshuai.xi echo "### End checking workspace tool chain version ###" ;\ 1116*53ee8cc1Swenshuai.xi rm .GCCver.log ;exit 99;\ 1117*53ee8cc1Swenshuai.xi fi 1118*53ee8cc1Swenshuai.xi 1119*53ee8cc1Swenshuai.xi# Library Document Auto Generation 1120*53ee8cc1Swenshuai.xidocgenOneUtopia : 1121*53ee8cc1Swenshuai.xi rm -f -r dxyOneUtopia_files; 1122*53ee8cc1Swenshuai.xi -mkdir -p dxyOneUtopia_files 2> /dev/null; 1123*53ee8cc1Swenshuai.xi doxygen -u bspOneUtopia.dxyfile; 1124*53ee8cc1Swenshuai.xi# Library Package 1125*53ee8cc1Swenshuai.xibsp : 1126*53ee8cc1Swenshuai.xi @rm -f -r $(BSPLIB_PATH) 1127*53ee8cc1Swenshuai.xi @rm -f -r $(BSPINC_PATH) 1128*53ee8cc1Swenshuai.xi @rm -f -r $(BSPBIN_PATH) 1129*53ee8cc1Swenshuai.xi @rm -f -r $(BSPMSC_PATH) 1130*53ee8cc1Swenshuai.xi -@mkdir -p $(BSPLIB_PATH) 2> /dev/null; 1131*53ee8cc1Swenshuai.xi -@mkdir -p $(BSPINC_PATH) 2> /dev/null; 1132*53ee8cc1Swenshuai.xi -@mkdir -p $(BSPBIN_PATH) 2> /dev/null; 1133*53ee8cc1Swenshuai.xi -@mkdir -p $(BSPMSC_PATH) 2> /dev/null; 1134*53ee8cc1Swenshuai.xi @cp $(DDI_PATH)/*.$(LIB_EXT) $(BSPLIB_PATH) 1135*53ee8cc1Swenshuai.xiifeq ($(ByPassOneUtopia),y) 1136*53ee8cc1Swenshuai.xi @echo -e "\033[41;36mBypass OneUtopia!!!\033[0m" 1137*53ee8cc1Swenshuai.xi @cp $(PUB_INC) $(BSPINC_PATH) 1138*53ee8cc1Swenshuai.xi @cp $(LIB_INC) $(BSPINC_PATH) 1139*53ee8cc1Swenshuai.xi @cp $(LIB_INC_2) $(BSPINC_PATH) 1140*53ee8cc1Swenshuai.xi 1141*53ee8cc1Swenshuai.xielse 1142*53ee8cc1Swenshuai.xiifeq ($(CHIP),$(filter $(CHIP),maserati maxim M7821 M7621)) 1143*53ee8cc1Swenshuai.xi @echo -e "\033[41;36m$(CHIP) Enable OneUtopia\033[0m" 1144*53ee8cc1Swenshuai.xi @sh Reduced.sh api_with_header_file.csv $(shell echo $(PROJ) |sed -e "s/\/build[/]*$$//g") $$Version 1145*53ee8cc1Swenshuai.xielse 1146*53ee8cc1Swenshuai.xi @cp $(PUB_INC) $(BSPINC_PATH) 1147*53ee8cc1Swenshuai.xi @cp $(LIB_INC) $(BSPINC_PATH) 1148*53ee8cc1Swenshuai.xi @cp $(LIB_INC_2) $(BSPINC_PATH) 1149*53ee8cc1Swenshuai.xiendif 1150*53ee8cc1Swenshuai.xiendif 1151*53ee8cc1Swenshuai.xi @cp $(LIB_FW_BIN) $(BSPBIN_PATH) 1152*53ee8cc1Swenshuai.xi @test -f $(BSPLIB_PATH)/libdrvCIPHER.so && ln -s libdrvCIPHER.so $(BSPLIB_PATH)/libdrvAESDMA.so || { echo ""; } 1153*53ee8cc1Swenshuai.xiifeq ($(CONFIG_API_DAC), y) 1154*53ee8cc1Swenshuai.xi @cp $(LIB_MISC) $(BSPMSC_PATH) 1155*53ee8cc1Swenshuai.xiendif 1156*53ee8cc1Swenshuai.xi 1157*53ee8cc1Swenshuai.xiifeq ($(EXT_PLATFORM_FLAG),android) 1158*53ee8cc1Swenshuai.xi @$(AR) crsP $(BSPLIB_PATH)/libutopia.a $(OBJ_PATH)/* 1159*53ee8cc1Swenshuai.xiendif 1160*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),ecos) 1161*53ee8cc1Swenshuai.xiifeq ($(FPU_ENABLE), 1) 1162*53ee8cc1Swenshuai.xi @echo "Add Dummy Hardfloat Section for check in ..."; 1163*53ee8cc1Swenshuai.xi# for i in `ls $(BSPLIB_PATH)/*.a`; do $(AR) -r $$i $(CHIP)/hardfloat.o; done 1164*53ee8cc1Swenshuai.xiendif 1165*53ee8cc1Swenshuai.xiendif 1166*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),linux) 1167*53ee8cc1Swenshuai.xiifeq ($(LINK_TYPE),dynamic) 1168*53ee8cc1Swenshuai.xi @$(CC) $(CFG_CC_OPTS) $(LD_OPTS) $(OBJ_PATH)/*.o $(MLOG_LIB_PATH) -o $(PROJ)/bsp/libutopia.so 1169*53ee8cc1Swenshuai.xi @$(CC) $(CFG_CC_OPTS) $(LD_OPTS) $(OBJ_PATH)/*.o $(MLOG_LIB_PATH) -s -o $(PROJ)/bsp/libutopia.so.strip 1170*53ee8cc1Swenshuai.xiendif 1171*53ee8cc1Swenshuai.xiendif 1172*53ee8cc1Swenshuai.xiifeq ($(CHIP),$(filter $(CHIP),maserati maxim M7821 M7621)) 1173*53ee8cc1Swenshuai.xi @echo "CHIP: $(CHIP) use Oneutopia-docgen"; 1174*53ee8cc1Swenshuai.xi @make docgenOneUtopia 1175*53ee8cc1Swenshuai.xi @tar zcvf $(CHIP)_$(OS_TYPE)_$(EXT_PLATFORM_FLAG)_$(CPU_NAME)_$(FPU)_$(LINK_TYPE)_$(BLT_TYPE).doc.tgz dxyOneUtopia_files 1> /dev/null 1176*53ee8cc1Swenshuai.xi @tar zcvf $(CHIP)_$(OS_TYPE)_$(EXT_PLATFORM_FLAG)_$(CPU_NAME)_$(FPU)_$(LINK_TYPE)_$(BLT_TYPE).tgz bsp 1> /dev/null 1177*53ee8cc1Swenshuai.xielse 1178*53ee8cc1Swenshuai.xi @echo "Make $(CHIP) $(PROJNAME) board support package..."; 1179*53ee8cc1Swenshuai.xi @make docgen 1180*53ee8cc1Swenshuai.xi @tar zcvf $(CHIP)_$(OS_TYPE)_$(EXT_PLATFORM_FLAG)_$(CPU_NAME)_$(FPU)_$(LINK_TYPE)_$(BLT_TYPE).doc.tgz dxy_files 1> /dev/null 1181*53ee8cc1Swenshuai.xi @tar zcvf $(CHIP)_$(OS_TYPE)_$(EXT_PLATFORM_FLAG)_$(CPU_NAME)_$(FPU)_$(LINK_TYPE)_$(BLT_TYPE).tgz bsp 1> /dev/null 1182*53ee8cc1Swenshuai.xiendif 1183*53ee8cc1Swenshuai.xi 1184*53ee8cc1Swenshuai.xi# Library Document Auto Generation 1185*53ee8cc1Swenshuai.xidocgen : 1186*53ee8cc1Swenshuai.xi rm -f -r dxy_files; 1187*53ee8cc1Swenshuai.xi -mkdir -p dxy_files 2> /dev/null; 1188*53ee8cc1Swenshuai.xi @echo 'INPUT += \ ' > dxy.infile; 1189*53ee8cc1Swenshuai.xi @echo $(DXY_SRC) >> dxy.infile; 1190*53ee8cc1Swenshuai.xi doxygen -u bsp.dxyfile; 1191*53ee8cc1Swenshuai.xi# rm -f dxy.infile; 1192*53ee8cc1Swenshuai.xi @echo DXY_SRC = $(DXY_SRC) 1193*53ee8cc1Swenshuai.xi 1194*53ee8cc1Swenshuai.xi 1195*53ee8cc1Swenshuai.xi# Project Lint Report 1196*53ee8cc1Swenshuai.xilint : 1197*53ee8cc1Swenshuai.xi @echo "Generate $(CHIP) $(PROJNAME) lint report $(LINT_LOG)..."; 1198*53ee8cc1Swenshuai.xi @echo `grep 'Error' $(LINT_LOG) | wc -l` LINT Errors 1199*53ee8cc1Swenshuai.xi 1200*53ee8cc1Swenshuai.xi 1201*53ee8cc1Swenshuai.xi# Project Library Build 1202*53ee8cc1Swenshuai.xiSYS_MSG : 1203*53ee8cc1Swenshuai.xi @echo [Makefile][$(notdir $(DDI_LIB))] 1204*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),ecos) 1205*53ee8cc1Swenshuai.xi @echo OS_INC_DIR = $(OS_INC_DIR) 1206*53ee8cc1Swenshuai.xiendif 1207*53ee8cc1Swenshuai.xi 1208*53ee8cc1Swenshuai.xiSYS_LIB : $(OBJ_C_CHIP) $(OBJ_C_SYS) $(OBJ_C_ASM) $(OBJ_C_LIB) 1209*53ee8cc1Swenshuai.xi @echo "syslib" $(OBJ_C_SYS) 1210*53ee8cc1Swenshuai.xiifneq ($(MAKE_TYPE),lint) 1211*53ee8cc1Swenshuai.xiifeq ($(LINK_TYPE),dynamic) 1212*53ee8cc1Swenshuai.xi @$(CC) $(CFG_CC_OPTS) $(LD_OPTS) -o $(DDI_LIB) $^ $(MLOG_LIB_PATH); 1213*53ee8cc1Swenshuai.xi @$(OBJCOPY) --add-section .mmodule_version=$(ROOTLIB)/msos/version_info $(DDI_LIB) 1214*53ee8cc1Swenshuai.xielse 1215*53ee8cc1Swenshuai.xiifeq ($(EXT_PLATFORM_FLAG),android) 1216*53ee8cc1Swenshuai.xi @$(AR) crsP $(DDI_LIB) $^; 1217*53ee8cc1Swenshuai.xielse 1218*53ee8cc1Swenshuai.xi @$(AR) -cru $(DDI_LIB) $^; 1219*53ee8cc1Swenshuai.xiendif 1220*53ee8cc1Swenshuai.xiendif 1221*53ee8cc1Swenshuai.xiendif 1222*53ee8cc1Swenshuai.xi @date; 1223*53ee8cc1Swenshuai.xi @echo '*************************************** Building environment *****************************************' 1224*53ee8cc1Swenshuai.xi @echo '#' 1225*53ee8cc1Swenshuai.xi @echo '# CHIP[$(CHIP)] OS[$(OS_TYPE)] CPU[$(CPU_NAME)] FPU[$(FPU)] link_type[$(LINK_TYPE)] release_type[$(BLT_TYPE)] Platform[$(EXT_PLATFORM_FLAG)]' 1226*53ee8cc1Swenshuai.xi @echo '#' 1227*53ee8cc1Swenshuai.xi 1228*53ee8cc1Swenshuai.xiifeq (1,1) 1229*53ee8cc1Swenshuai.xisyslib : check_build_toolver SYS_MSG SYS_LIB 1230*53ee8cc1Swenshuai.xielse 1231*53ee8cc1Swenshuai.xisyslib : 1232*53ee8cc1Swenshuai.xiendif 1233*53ee8cc1Swenshuai.xi 1234*53ee8cc1Swenshuai.xi$(MXLIB-m): 1235*53ee8cc1Swenshuai.xi @$(MAKE) -s -C $@ lib 1236*53ee8cc1Swenshuai.xi 1237*53ee8cc1Swenshuai.xi$(MXLIB-y) : 1238*53ee8cc1Swenshuai.xi @$(MAKE) -s -C $@ lib 1239*53ee8cc1Swenshuai.xiifeq ($(PARA), 1) 1240*53ee8cc1Swenshuai.xi @if [ ! -f $@/cpptestscan.bdf ]; then \ 1241*53ee8cc1Swenshuai.xi echo ERROR! No $@/cpptestscan.bdf; \ 1242*53ee8cc1Swenshuai.xi fi 1243*53ee8cc1Swenshuai.xi @if [ -f $@/cpptestscan.bdf ]; then \ 1244*53ee8cc1Swenshuai.xi cat $@/cpptestscan.bdf >> $(PROJ)/cpptestscan.bdf; \ 1245*53ee8cc1Swenshuai.xi rm $@/cpptestscan.bdf; \ 1246*53ee8cc1Swenshuai.xi fi 1247*53ee8cc1Swenshuai.xiendif 1248*53ee8cc1Swenshuai.xi 1249*53ee8cc1Swenshuai.xi# Project Source Build 1250*53ee8cc1Swenshuai.xi$(OBJ_C_CHIP) $(OBJ_C_ASM) $(OBJ_C_SYS): $(OBJ_PATH)/%.o : %.c 1251*53ee8cc1Swenshuai.xiifneq ($(MAKE_TYPE),lint) 1252*53ee8cc1Swenshuai.xi @echo [CC] $(notdir $@) 1253*53ee8cc1Swenshuai.xi @$(CC) $(CC_OPTS) $(CC_DEFS) $(CC_INCS) -o $@ $<; 1254*53ee8cc1Swenshuai.xielse 1255*53ee8cc1Swenshuai.xi @echo [LINT] $(notdir $<) 1256*53ee8cc1Swenshuai.xiifeq ($(shell uname -o),Cygwin) 1257*53ee8cc1Swenshuai.xi @$(LINT_CMD) $(CC_DEFS) $(LINT_INC) $(shell cygpath -m $<) >>$(LINT_LOG) 1258*53ee8cc1Swenshuai.xi @echo $< >>$(LINT_FILES) 1259*53ee8cc1Swenshuai.xielse 1260*53ee8cc1Swenshuai.xi @$(LINT_CMD) $(CC_DEFS) $(LINT_INC) $< >>$(LINT_LOG) 1261*53ee8cc1Swenshuai.xi @echo $< >>$(LINT_FILES) 1262*53ee8cc1Swenshuai.xiendif 1263*53ee8cc1Swenshuai.xiendif 1264*53ee8cc1Swenshuai.xi 1265*53ee8cc1Swenshuai.xi# @$(AR) -cru $(DDI_LIB) $@; 1266*53ee8cc1Swenshuai.xi 1267*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),linux) 1268*53ee8cc1Swenshuai.xi$(OBJ_C_LIB) $(OBJ_C_FS): $(OBJ_PATH)/%.o : %.c 1269*53ee8cc1Swenshuai.xielse 1270*53ee8cc1Swenshuai.xi$(OBJ_C_LIB) : $(OBJ_PATH)/%.o : %.c 1271*53ee8cc1Swenshuai.xiendif 1272*53ee8cc1Swenshuai.xiifneq ($(MAKE_TYPE),lint) 1273*53ee8cc1Swenshuai.xi @$(CC) $(CC_OPTS) $(CC_DEFS) $(CC_INCS) -o $@ $<; 1274*53ee8cc1Swenshuai.xielse 1275*53ee8cc1Swenshuai.xi echo [LINT] $(notdir $<) 1276*53ee8cc1Swenshuai.xiifeq ($(shell uname -o),Cygwin) 1277*53ee8cc1Swenshuai.xi @$(LINT_CMD) $(CC_DEFS) $(LINT_INC) $(shell cygpath -m $<) >>$(LINT_LOG) 1278*53ee8cc1Swenshuai.xi echo $< >>$(LINT_FILES) 1279*53ee8cc1Swenshuai.xielse 1280*53ee8cc1Swenshuai.xi @$(LINT_CMD) $(CC_DEFS) $(LINT_INC) $< >>$(LINT_LOG) 1281*53ee8cc1Swenshuai.xi echo $< >>$(LINT_FILES) 1282*53ee8cc1Swenshuai.xiendif 1283*53ee8cc1Swenshuai.xiendif 1284*53ee8cc1Swenshuai.xi#ifeq ($(OS_TYPE),$(notdir $(<D))) 1285*53ee8cc1Swenshuai.xi 1286*53ee8cc1Swenshuai.xi 1287*53ee8cc1Swenshuai.xi# Single Driver Build 1288*53ee8cc1Swenshuai.xi$(DRV_DIR): check_build_toolver setup 1289*53ee8cc1Swenshuai.xi @echo [ddi.mk] $@ 1290*53ee8cc1Swenshuai.xi @$(MAKE) -C $(DDIDRV)/$@ clean lib 1291*53ee8cc1Swenshuai.xi @echo '**************************************** Building environment ****************************************' 1292*53ee8cc1Swenshuai.xi @echo '#' 1293*53ee8cc1Swenshuai.xi @echo '# CHIP[$(CHIP)] OS[$(OS_TYPE)] CPU[$(CPU_NAME)] FPU[$(FPU)] link_type[$(LINK_TYPE)] release_type[$(BLT_TYPE)] Platform[$(EXT_PLATFORM_FLAG)]' 1294*53ee8cc1Swenshuai.xi @echo '#' 1295*53ee8cc1Swenshuai.xi 1296*53ee8cc1Swenshuai.xi$(API_DIR): check_build_toolver setup 1297*53ee8cc1Swenshuai.xi @echo [ddi.mk] $@ 1298*53ee8cc1Swenshuai.xi @$(MAKE) -s -C $(DDIAPI)/$@ clean lib 1299*53ee8cc1Swenshuai.xi @echo '**************************************** Building environment ****************************************' 1300*53ee8cc1Swenshuai.xi @echo '#' 1301*53ee8cc1Swenshuai.xi @echo '# CHIP[$(CHIP)] OS[$(OS_TYPE)] CPU[$(CPU_NAME)] FPU[$(FPU)] link_type[$(LINK_TYPE)] release_type[$(BLT_TYPE)] Platform[$(EXT_PLATFORM_FLAG)]' 1302*53ee8cc1Swenshuai.xi @echo '#' 1303*53ee8cc1Swenshuai.xi 1304*53ee8cc1Swenshuai.ximsos_setup: setup 1305*53ee8cc1Swenshuai.xi @echo [Makefile][libMsOS.$(LIB_EXT)] 1306*53ee8cc1Swenshuai.xi# @if [ -f $(OBJ_PATH)/MsOS_$(OS_TYPE).o ];\ 1307*53ee8cc1Swenshuai.xi then\ 1308*53ee8cc1Swenshuai.xi rm $(OBJ_PATH)/MsOS_$(OS_TYPE).o;\ 1309*53ee8cc1Swenshuai.xi fi 1310*53ee8cc1Swenshuai.xi 1311*53ee8cc1Swenshuai.ximsos: check_build_toolver msos_setup $(DDI_PATH)/libMsOS.$(LIB_EXT) 1312*53ee8cc1Swenshuai.xiifneq ($(MAKE_TYPE),lint) 1313*53ee8cc1Swenshuai.xiifeq ($(LINK_TYPE),dynamic) 1314*53ee8cc1Swenshuai.xi @$(CC) $(CFG_CC_OPTS) $(LD_OPTS) -o $(DDI_PATH)/libMsOS.$(LIB_EXT) $(OBJ_C_SYS) $(MLOG_LIB_PATH); 1315*53ee8cc1Swenshuai.xi @$(OBJCOPY) --add-section .mmodule_version=$(ROOTLIB)/msos/version_info $(DDI_PATH)/libMsOS.$(LIB_EXT) 1316*53ee8cc1Swenshuai.xielse 1317*53ee8cc1Swenshuai.xiifeq ($(EXT_PLATFORM_FLAG),android) 1318*53ee8cc1Swenshuai.xi @$(AR) crsP $(DDI_PATH)/libMsOS.$(LIB_EXT) $(OBJ_C_SYS); 1319*53ee8cc1Swenshuai.xielse 1320*53ee8cc1Swenshuai.xi @$(AR) -cru $(DDI_PATH)/libMsOS.$(LIB_EXT) $(OBJ_C_SYS); 1321*53ee8cc1Swenshuai.xiendif 1322*53ee8cc1Swenshuai.xiendif 1323*53ee8cc1Swenshuai.xiendif 1324*53ee8cc1Swenshuai.xi 1325*53ee8cc1Swenshuai.xi$(DDI_PATH)/libMsOS.$(LIB_EXT) : $(OBJ_C_SYS) 1326*53ee8cc1Swenshuai.xi 1327*53ee8cc1Swenshuai.xibuild_env: $(DRV_DIR) 1328*53ee8cc1Swenshuai.xi @echo 'haha' 1329*53ee8cc1Swenshuai.xi 1330*53ee8cc1Swenshuai.ximsfs_setup: setup 1331*53ee8cc1Swenshuai.xi @echo [Makefile][libMsFS.$(LIB_EXT)] 1332*53ee8cc1Swenshuai.xi 1333*53ee8cc1Swenshuai.ximsfs: msfs_setup $(DDI_PATH)/libMsFS.$(LIB_EXT) 1334*53ee8cc1Swenshuai.xiifneq ($(MAKE_TYPE),lint) 1335*53ee8cc1Swenshuai.xiifeq ($(LINK_TYPE),dynamic) 1336*53ee8cc1Swenshuai.xi @$(CC) $(CFG_CC_OPTS) $(LD_OPTS) -o $(DDI_PATH)/libMsFS.$(LIB_EXT) $(OBJ_C_FS); 1337*53ee8cc1Swenshuai.xielse 1338*53ee8cc1Swenshuai.xiifeq ($(EXT_PLATFORM_FLAG),android) 1339*53ee8cc1Swenshuai.xi @$(AR) crsP $(DDI_PATH)/libMsFS.$(LIB_EXT) $(OBJ_C_FS); 1340*53ee8cc1Swenshuai.xielse 1341*53ee8cc1Swenshuai.xi @$(AR) -cru $(DDI_PATH)/libMsFS.$(LIB_EXT) $(OBJ_C_FS); 1342*53ee8cc1Swenshuai.xiendif 1343*53ee8cc1Swenshuai.xiendif 1344*53ee8cc1Swenshuai.xiendif 1345*53ee8cc1Swenshuai.xi 1346*53ee8cc1Swenshuai.xi$(DDI_PATH)/libMsFS.$(LIB_EXT) : $(OBJ_C_FS) 1347*53ee8cc1Swenshuai.xi 1348*53ee8cc1Swenshuai.xi# Project Setup 1349*53ee8cc1Swenshuai.xisetup : 1350*53ee8cc1Swenshuai.xiifeq ($(CHIP),$(filter $(CHIP),maserati maxim M7821 M7621)) 1351*53ee8cc1Swenshuai.xi @echo -e "\033[41;36m $(shell echo $(PROJ) |sed -e "s/\/build[/]*$$//g") \033[0m" 1352*53ee8cc1Swenshuai.xi @sh MXlibBk.sh $(shell echo $(PROJ) |sed -e "s/\/build[/]*$$//g") 1353*53ee8cc1Swenshuai.xi @cp $(PROJ)/MsVersion.h $(ROOTLIB)/include/MsVersion.h 1354*53ee8cc1Swenshuai.xiendif 1355*53ee8cc1Swenshuai.xi @cp $(ROOTLIB)/include/UFO/UFO_$(CHIP).h $(ROOTLIB)/include/UFO.h 1356*53ee8cc1Swenshuai.xi @sed -i -e 's/#define UFO_PUBLIC_HEADER.*/#define UFO_PUBLIC_HEADER_700/g' $(PUBINC)/UFO.h 1357*53ee8cc1Swenshuai.xiifeq ($(STRUCT_PACK),y) 1358*53ee8cc1Swenshuai.xi @sed -i -e 's/#define DLL_PACKED.*/#define DLL_PACKED __attribute__((__packed__))/g' $(PUBINC)/MsTypes.h 1359*53ee8cc1Swenshuai.xielse 1360*53ee8cc1Swenshuai.xi @sed -i -e 's/#define DLL_PACKED.*/#define DLL_PACKED/g' $(PUBINC)/MsTypes.h 1361*53ee8cc1Swenshuai.xiendif 1362*53ee8cc1Swenshuai.xi -@mkdir -p $(OBJ_PATH) 2> /dev/null; 1363*53ee8cc1Swenshuai.xi -@mkdir -p $(BIN_PATH) 2> /dev/null; 1364*53ee8cc1Swenshuai.xi -@mkdir -p $(DDI_PATH) 2> /dev/null; 1365*53ee8cc1Swenshuai.xi @echo "Make $(CHIP) $(PROJNAME) library..."; 1366*53ee8cc1Swenshuai.xi @date; 1367*53ee8cc1Swenshuai.xiifeq ($(MAKE_TYPE),lint) 1368*53ee8cc1Swenshuai.xi @rm -rf $(LINT_FILES) 1369*53ee8cc1Swenshuai.xi @rm -rf $(LINT_LOG) 1370*53ee8cc1Swenshuai.xiendif 1371*53ee8cc1Swenshuai.xi 1372*53ee8cc1Swenshuai.xi 1373*53ee8cc1Swenshuai.xi# Kernel Driver 1374*53ee8cc1Swenshuai.xi# ## LKM2K, KERNELDIR, and EXTRA_CFLAGS were defined in utpa2k.mk 1375*53ee8cc1Swenshuai.xiCFG_2K_DEFS = $(CFG_CC_DEFS) 1376*53ee8cc1Swenshuai.xi 1377*53ee8cc1Swenshuai.xiinclude $(PROJ)/utpa2k.mk 1378*53ee8cc1Swenshuai.xi 1379*53ee8cc1Swenshuai.xiEXTRA_CFLAGS += $(foreach dir, $(ALL_INC_DIR), -I$(dir)) 1380*53ee8cc1Swenshuai.xiEXTRA_CFLAGS += -I$(AUTOCONFIG) 1381*53ee8cc1Swenshuai.xiifeq ($(BLT_TYPE),debug) 1382*53ee8cc1Swenshuai.xiEXTRA_CFLAGS += -D'MS_DEBUG' 1383*53ee8cc1Swenshuai.xielse 1384*53ee8cc1Swenshuai.xiEXTRA_CFLAGS += -D'MS_OPTIMIZE' 1385*53ee8cc1Swenshuai.xiendif 1386*53ee8cc1Swenshuai.xiutpa2k-srcs = $(foreach dir, $(LKM2K), $(wildcard $(dir)/*.c)) 1387*53ee8cc1Swenshuai.xiutpa2k-objs-tmp := $(patsubst %.c,%.o,$(utpa2k-srcs)) 1388*53ee8cc1Swenshuai.xiutpa2k-objs := $(subst $(PWD), , $(utpa2k-objs-tmp)) 1389*53ee8cc1Swenshuai.xiobj-m := utpa2k.o 1390*53ee8cc1Swenshuai.xi#obj-m := hello.o 1391*53ee8cc1Swenshuai.xi 1392*53ee8cc1Swenshuai.xiEXTRA_CFLAGS += -D'SUPPORT_EVD=1' 1393*53ee8cc1Swenshuai.xiEXTRA_CFLAGS += -D'SUPPORT_NEW_MEM_LAYOUT' 1394*53ee8cc1Swenshuai.xi 1395*53ee8cc1Swenshuai.xikdrv: 1396*53ee8cc1Swenshuai.xi @cp $(ROOTLIB)/include/UFO/UFO_$(CHIP).h $(ROOTLIB)/include/UFO.h 1397*53ee8cc1Swenshuai.xi @sed -i -e 's/#define UFO_PUBLIC_HEADER.*/#define UFO_PUBLIC_HEADER_700/g' $(PUBINC)/UFO.h 1398*53ee8cc1Swenshuai.xiifeq ($(STRUCT_PACK),y) 1399*53ee8cc1Swenshuai.xi @sed -i -e 's/#define DLL_PACKED.*/#define DLL_PACKED __attribute__((__packed__))/g' $(PUBINC)/MsTypes.h 1400*53ee8cc1Swenshuai.xielse 1401*53ee8cc1Swenshuai.xi @sed -i -e 's/#define DLL_PACKED.*/#define DLL_PACKED/g' $(PUBINC)/MsTypes.h 1402*53ee8cc1Swenshuai.xiendif 1403*53ee8cc1Swenshuai.xi $(MAKE) -C $(KERNELDIR) M=$(PWD) modules EXTRA_CFLAGS="$(EXTRA_CFLAGS)" 1404*53ee8cc1Swenshuai.xi 1405*53ee8cc1Swenshuai.xi####lsy++ 1406*53ee8cc1Swenshuai.xiifeq ($(ExportAllSymbol),y) 1407*53ee8cc1Swenshuai.xi @sh ./CreateKsym.sh 1408*53ee8cc1Swenshuai.xi $(MAKE) -s clean 1409*53ee8cc1Swenshuai.xi @cp $(ROOTLIB)/include/UFO/UFO_$(CHIP).h $(ROOTLIB)/include/UFO.h 1410*53ee8cc1Swenshuai.xi @sed -i -e 's/#define UFO_PUBLIC_HEADER.*/#define UFO_PUBLIC_HEADER_700/g' $(PUBINC)/UFO.h 1411*53ee8cc1Swenshuai.xi $(MAKE) -C $(KERNELDIR) M=$(PWD) modules EXTRA_CFLAGS="$(EXTRA_CFLAGS)" 1412*53ee8cc1Swenshuai.xiendif 1413*53ee8cc1Swenshuai.xi 1414*53ee8cc1Swenshuai.xi# Project Clean 1415*53ee8cc1Swenshuai.xiclean : 1416*53ee8cc1Swenshuai.xi @rm -f $(ROOTLIB)/include/UFO.h 1417*53ee8cc1Swenshuai.xi @$(foreach dir, $(MXLIB-y), $(MAKE) -s -C $(dir) clean;) 1418*53ee8cc1Swenshuai.xi @$(foreach dir, $(MXLIB-m), $(MAKE) -s -C $(dir) clean;) 1419*53ee8cc1Swenshuai.xi @rm -rf $(OBJ_PATH) 1420*53ee8cc1Swenshuai.xi @rm -rf $(BIN_PATH) 1421*53ee8cc1Swenshuai.xi @rm -rf $(DDI_PATH) 1422*53ee8cc1Swenshuai.xi @rm -rf $(PKG_DIR)/include/$(CHIP); 1423*53ee8cc1Swenshuai.xi @rm -rf $(PKG_DIR)/os; 1424*53ee8cc1Swenshuai.xi @rm -rf lint_files 1425*53ee8cc1Swenshuai.xi @rm -rf dxy_files 1426*53ee8cc1Swenshuai.xi @rm -rf bsp 1427*53ee8cc1Swenshuai.xi @rm -f *.tgz 1428*53ee8cc1Swenshuai.xi @rm -f dxy.* 1429*53ee8cc1Swenshuai.xi @find $(MODULESPATH) \ 1430*53ee8cc1Swenshuai.xi \( -name '*.[os]' -o -name '*.ko' -o -name '.*.cmd' \ 1431*53ee8cc1Swenshuai.xi -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \ 1432*53ee8cc1Swenshuai.xi -o -name '*.symtypes' -o -name '*.symvers' -o -name 'modules.order' \ 1433*53ee8cc1Swenshuai.xi -o -name 'Module.markers' -o -name '.tmp_*.o.*' \) \ 1434*53ee8cc1Swenshuai.xi -type f -print | xargs rm -f 1435*53ee8cc1Swenshuai.xi @find . \ 1436*53ee8cc1Swenshuai.xi \( -name 'utpa2k.ko' -o -name 'utpa2k.mod.c' \ 1437*53ee8cc1Swenshuai.xi -o -name 'utpa2k.mod.o' -o -name 'utpa2k.o' \ 1438*53ee8cc1Swenshuai.xi -o -name '.utpa2k.*' -o -name 'modules.order' -o -name 'Module.symvers' \) \ 1439*53ee8cc1Swenshuai.xi -type f -print | xargs rm -f 1440*53ee8cc1Swenshuai.xi @rm -rf .tmp_versions 1441*53ee8cc1Swenshuai.xiifeq ($(PARA), 1) 1442*53ee8cc1Swenshuai.xi @rm -f $(PROJ)/cpptestscan.bdf 1443*53ee8cc1Swenshuai.xiendif 1444*53ee8cc1Swenshuai.xi @echo "Clean $(CHIP) $(PROJNAME) library..." 1445*53ee8cc1Swenshuai.xi 1446*53ee8cc1Swenshuai.xi 1447*53ee8cc1Swenshuai.xi# Project Dependence 1448*53ee8cc1Swenshuai.xidepend : 1449*53ee8cc1Swenshuai.xi $(CC) $(CC_OPTS) $(CC_DEFS) $(CC_INCS) -M $(SRC_C_CHIP) $(SRC_C_ASM) $(SRC_C_LIB) > $(BIN_PATH)/depend.mk 1450*53ee8cc1Swenshuai.xi 1451*53ee8cc1Swenshuai.xi 1452*53ee8cc1Swenshuai.xi# Project Dependence Full version 1453*53ee8cc1Swenshuai.xidep : 1454*53ee8cc1Swenshuai.xi $(CC) $(CC_OPTS) $(CC_DEFS) $(CC_INCS) -M $(SRC_C_CHIP) $(SRC_C_ASM) $(SRC_C_LIB) > $(BIN_PATH)/depend.mk 1455*53ee8cc1Swenshuai.xi cat $(BIN_PATH)/depend.mk | sed -e 's/\(.*\)\.o/\$$\(OBJ_PATH\)\/\1.o/g' > depend.mk 1456*53ee8cc1Swenshuai.xi 1457*53ee8cc1Swenshuai.xi 1458*53ee8cc1Swenshuai.xi-include depend.mk 1459*53ee8cc1Swenshuai.xi 1460*53ee8cc1Swenshuai.xi# ********************************************** 1461*53ee8cc1Swenshuai.xi# Menuconfig 1462*53ee8cc1Swenshuai.xi# ********************************************** 1463*53ee8cc1Swenshuai.xiPHONY += all 1464*53ee8cc1Swenshuai.xi_all: all 1465*53ee8cc1Swenshuai.xi 1466*53ee8cc1Swenshuai.xisrctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(PWD)) 1467*53ee8cc1Swenshuai.xi#src := $(srctree) 1468*53ee8cc1Swenshuai.xi 1469*53ee8cc1Swenshuai.xiexport srctree objtree 1470*53ee8cc1Swenshuai.xi 1471*53ee8cc1Swenshuai.xiKCONFIG_CONFIG ?= .config 1472*53ee8cc1Swenshuai.xiexport KCONFIG_CONFIG 1473*53ee8cc1Swenshuai.xi 1474*53ee8cc1Swenshuai.xi# SHELL used by kbuild 1475*53ee8cc1Swenshuai.xiCONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ 1476*53ee8cc1Swenshuai.xi else if [ -x /bin/bash ]; then echo /bin/bash; \ 1477*53ee8cc1Swenshuai.xi else echo sh; fi ; fi) 1478*53ee8cc1Swenshuai.xi 1479*53ee8cc1Swenshuai.xiHOSTCC = gcc 1480*53ee8cc1Swenshuai.xiHOSTCXX = g++ 1481*53ee8cc1Swenshuai.xiHOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -Os -fomit-frame-pointer 1482*53ee8cc1Swenshuai.xiHOSTCXXFLAGS = -Os 1483*53ee8cc1Swenshuai.xi 1484*53ee8cc1Swenshuai.xi# Beautify output 1485*53ee8cc1Swenshuai.xi# --------------------------------------------------------------------------- 1486*53ee8cc1Swenshuai.xi# 1487*53ee8cc1Swenshuai.xi# Normally, we echo the whole command before executing it. By making 1488*53ee8cc1Swenshuai.xi# that echo $($(quiet)$(cmd)), we now have the possibility to set 1489*53ee8cc1Swenshuai.xi# $(quiet) to choose other forms of output instead, e.g. 1490*53ee8cc1Swenshuai.xi# 1491*53ee8cc1Swenshuai.xi# quiet_cmd_cc_o_c = Compiling $(RELDIR)/$@ 1492*53ee8cc1Swenshuai.xi# cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $< 1493*53ee8cc1Swenshuai.xi# 1494*53ee8cc1Swenshuai.xi# If $(quiet) is empty, the whole command will be printed. 1495*53ee8cc1Swenshuai.xi# If it is set to "quiet_", only the short version will be printed. 1496*53ee8cc1Swenshuai.xi# If it is set to "silent_", nothing will be printed at all, since 1497*53ee8cc1Swenshuai.xi# the variable $(silent_cmd_cc_o_c) doesn't exist. 1498*53ee8cc1Swenshuai.xi# 1499*53ee8cc1Swenshuai.xi# A simple variant is to prefix commands with $(Q) - that's useful 1500*53ee8cc1Swenshuai.xi# for commands that shall be hidden in non-verbose mode. 1501*53ee8cc1Swenshuai.xi# 1502*53ee8cc1Swenshuai.xi# $(Q)ln $@ :< 1503*53ee8cc1Swenshuai.xi# 1504*53ee8cc1Swenshuai.xi# If KBUILD_VERBOSE equals 0 then the above command will be hidden. 1505*53ee8cc1Swenshuai.xi# If KBUILD_VERBOSE equals 1 then the above command is displayed. 1506*53ee8cc1Swenshuai.xi 1507*53ee8cc1Swenshuai.xiifeq ($(KBUILD_VERBOSE),1) 1508*53ee8cc1Swenshuai.xi quiet = 1509*53ee8cc1Swenshuai.xi Q = 1510*53ee8cc1Swenshuai.xielse 1511*53ee8cc1Swenshuai.xi quiet=quiet_ 1512*53ee8cc1Swenshuai.xi Q = @ 1513*53ee8cc1Swenshuai.xiendif 1514*53ee8cc1Swenshuai.xi 1515*53ee8cc1Swenshuai.xi# If the user is running make -s (silent mode), suppress echoing of 1516*53ee8cc1Swenshuai.xi# commands 1517*53ee8cc1Swenshuai.xi 1518*53ee8cc1Swenshuai.xiifneq ($(findstring s,$(MAKEFLAGS)),) 1519*53ee8cc1Swenshuai.xi quiet=silent_ 1520*53ee8cc1Swenshuai.xiendif 1521*53ee8cc1Swenshuai.xi 1522*53ee8cc1Swenshuai.xiexport quiet Q KBUILD_VERBOSE 1523*53ee8cc1Swenshuai.xi 1524*53ee8cc1Swenshuai.xi 1525*53ee8cc1Swenshuai.xi# Look for make include files relative to root of kernel src 1526*53ee8cc1Swenshuai.xiMAKEFLAGS += --include-dir=$(srctree) 1527*53ee8cc1Swenshuai.xi 1528*53ee8cc1Swenshuai.xi# We need some generic definitions (do not try to remake the file). 1529*53ee8cc1Swenshuai.xi$(srctree)/scripts/Kbuild.include: ; 1530*53ee8cc1Swenshuai.xiinclude $(srctree)/scripts/Kbuild.include 1531*53ee8cc1Swenshuai.xi 1532*53ee8cc1Swenshuai.xi# Make variables (CC, etc...) 1533*53ee8cc1Swenshuai.xi 1534*53ee8cc1Swenshuai.xiAWK = awk 1535*53ee8cc1Swenshuai.xi 1536*53ee8cc1Swenshuai.xiexport HOSTCC 1537*53ee8cc1Swenshuai.xi 1538*53ee8cc1Swenshuai.xi# =========================================================================== 1539*53ee8cc1Swenshuai.xi# Rules shared between *config targets and build targets 1540*53ee8cc1Swenshuai.xi 1541*53ee8cc1Swenshuai.xi# Basic helpers built in scripts/ 1542*53ee8cc1Swenshuai.xiPHONY += scripts_basic 1543*53ee8cc1Swenshuai.xiscripts_basic: 1544*53ee8cc1Swenshuai.xi $(Q)$(MAKE) $(build)=scripts/basic 1545*53ee8cc1Swenshuai.xi $(Q)rm -f .tmp_quiet_recordmcount 1546*53ee8cc1Swenshuai.xi 1547*53ee8cc1Swenshuai.xi# To avoid any implicit rule to kick in, define an empty command. 1548*53ee8cc1Swenshuai.xiscripts/basic/%: scripts_basic ; 1549*53ee8cc1Swenshuai.xi 1550*53ee8cc1Swenshuai.xiPHONY += outputmakefile 1551*53ee8cc1Swenshuai.xi# outputmakefile generates a Makefile in the output directory, if using a 1552*53ee8cc1Swenshuai.xi# separate output directory. This allows convenient use of make in the 1553*53ee8cc1Swenshuai.xi# output directory. 1554*53ee8cc1Swenshuai.xioutputmakefile: 1555*53ee8cc1Swenshuai.xi 1556*53ee8cc1Swenshuai.xi 1557*53ee8cc1Swenshuai.xi# To make sure we do not include .config for any of the *config targets 1558*53ee8cc1Swenshuai.xi# catch them early, and hand them over to scripts/kconfig/Makefile 1559*53ee8cc1Swenshuai.xi# It is allowed to specify more targets when calling make, including 1560*53ee8cc1Swenshuai.xi# mixing *config targets and build targets. 1561*53ee8cc1Swenshuai.xi# For example 'make oldconfig all'. 1562*53ee8cc1Swenshuai.xi# Detect when mixed targets is specified, and make a second invocation 1563*53ee8cc1Swenshuai.xi# of make so .config is not included in this case either (for *config). 1564*53ee8cc1Swenshuai.xi 1565*53ee8cc1Swenshuai.xi 1566*53ee8cc1Swenshuai.xiconfig-targets := 0 1567*53ee8cc1Swenshuai.ximixed-targets := 0 1568*53ee8cc1Swenshuai.xidot-config := 1 1569*53ee8cc1Swenshuai.xi 1570*53ee8cc1Swenshuai.xiifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),) 1571*53ee8cc1Swenshuai.xi ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),) 1572*53ee8cc1Swenshuai.xi dot-config := 0 1573*53ee8cc1Swenshuai.xi endif 1574*53ee8cc1Swenshuai.xiendif 1575*53ee8cc1Swenshuai.xi 1576*53ee8cc1Swenshuai.xiifeq ($(KBUILD_EXTMOD),) 1577*53ee8cc1Swenshuai.xi ifneq ($(filter config %config,$(MAKECMDGOALS)),) 1578*53ee8cc1Swenshuai.xi config-targets := 1 1579*53ee8cc1Swenshuai.xi ifneq ($(filter-out config %config,$(MAKECMDGOALS)),) 1580*53ee8cc1Swenshuai.xi mixed-targets := 1 1581*53ee8cc1Swenshuai.xi endif 1582*53ee8cc1Swenshuai.xi endif 1583*53ee8cc1Swenshuai.xiendif 1584*53ee8cc1Swenshuai.xi 1585*53ee8cc1Swenshuai.xiifeq ($(mixed-targets),1) 1586*53ee8cc1Swenshuai.xi# =========================================================================== 1587*53ee8cc1Swenshuai.xi# We're called with mixed targets (*config and build targets). 1588*53ee8cc1Swenshuai.xi# Handle them one by one. 1589*53ee8cc1Swenshuai.xi 1590*53ee8cc1Swenshuai.xi%:: FORCE 1591*53ee8cc1Swenshuai.xi $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= $@ 1592*53ee8cc1Swenshuai.xi 1593*53ee8cc1Swenshuai.xielse 1594*53ee8cc1Swenshuai.xiifeq ($(config-targets),1) 1595*53ee8cc1Swenshuai.xi# =========================================================================== 1596*53ee8cc1Swenshuai.xi# *config targets only - make sure prerequisites are updated, and descend 1597*53ee8cc1Swenshuai.xi# in scripts/kconfig to make the *config target 1598*53ee8cc1Swenshuai.xi 1599*53ee8cc1Swenshuai.xi# Read arch specific Makefile to set KBUILD_DEFCONFIG as needed. 1600*53ee8cc1Swenshuai.xi# KBUILD_DEFCONFIG may point out an alternative default configuration 1601*53ee8cc1Swenshuai.xi# used for 'make defconfig' 1602*53ee8cc1Swenshuai.xiexport KBUILD_DEFCONFIG KBUILD_KCONFIG 1603*53ee8cc1Swenshuai.xi 1604*53ee8cc1Swenshuai.xiconfig: scripts_basic outputmakefile FORCE 1605*53ee8cc1Swenshuai.xi $(Q)mkdir -p include/config 1606*53ee8cc1Swenshuai.xi $(Q)$(MAKE) $(build)=scripts/kconfig $@ 1607*53ee8cc1Swenshuai.xi 1608*53ee8cc1Swenshuai.xi%config: scripts_basic outputmakefile FORCE 1609*53ee8cc1Swenshuai.xi $(Q)mkdir -p include/config 1610*53ee8cc1Swenshuai.xi $(Q)$(MAKE) $(build)=scripts/kconfig $@ 1611*53ee8cc1Swenshuai.xi 1612*53ee8cc1Swenshuai.xielse 1613*53ee8cc1Swenshuai.xi 1614*53ee8cc1Swenshuai.xi 1615*53ee8cc1Swenshuai.xi# Read in config 1616*53ee8cc1Swenshuai.xi-include include/config/auto.conf 1617*53ee8cc1Swenshuai.xi 1618*53ee8cc1Swenshuai.xi# Read in dependencies to all Kconfig* files, make sure to run 1619*53ee8cc1Swenshuai.xi# oldconfig if changes are detected. 1620*53ee8cc1Swenshuai.xi-include include/config/auto.conf.cmd 1621*53ee8cc1Swenshuai.xi 1622*53ee8cc1Swenshuai.xi# To avoid any implicit rule to kick in, define an empty command 1623*53ee8cc1Swenshuai.xi$(KCONFIG_CONFIG) include/config/auto.conf.cmd: ; 1624*53ee8cc1Swenshuai.xi 1625*53ee8cc1Swenshuai.xi# If .config is newer than include/config/auto.conf, someone tinkered 1626*53ee8cc1Swenshuai.xi# with it and forgot to run make oldconfig. 1627*53ee8cc1Swenshuai.xi# if auto.conf.cmd is missing then we are probably in a cleaned tree so 1628*53ee8cc1Swenshuai.xi# we execute the config step to be sure to catch updated Kconfig files 1629*53ee8cc1Swenshuai.xiinclude/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd 1630*53ee8cc1Swenshuai.xi $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig 1631*53ee8cc1Swenshuai.xi 1632*53ee8cc1Swenshuai.xi 1633*53ee8cc1Swenshuai.xiendif #ifeq ($(config-targets),1) 1634*53ee8cc1Swenshuai.xiendif #ifeq ($(mixed-targets),1) 1635*53ee8cc1Swenshuai.xi 1636*53ee8cc1Swenshuai.xiPHONY += checkstack kernelrelease kernelversion 1637*53ee8cc1Swenshuai.xi 1638*53ee8cc1Swenshuai.xiPHONY += FORCE 1639*53ee8cc1Swenshuai.xiFORCE: 1640*53ee8cc1Swenshuai.xi 1641*53ee8cc1Swenshuai.xi# Declare the contents of the .PHONY variable as phony. We keep that 1642*53ee8cc1Swenshuai.xi# information in a variable so we can use it in if_changed and friends. 1643*53ee8cc1Swenshuai.xi.PHONY: $(PHONY) 1644