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 DDI 19*53ee8cc1Swenshuai.xi# 20*53ee8cc1Swenshuai.xi# 21*53ee8cc1Swenshuai.xi################################################################################ 22*53ee8cc1Swenshuai.xi 23*53ee8cc1Swenshuai.xiexport 24*53ee8cc1Swenshuai.xiunexport DRV_DIR 25*53ee8cc1Swenshuai.xiunexport API_SRC 26*53ee8cc1Swenshuai.xiunexport API_CC_INCS 27*53ee8cc1Swenshuai.xiunexport VPATH 28*53ee8cc1Swenshuai.xi 29*53ee8cc1Swenshuai.xi 30*53ee8cc1Swenshuai.xi# ********************************************** 31*53ee8cc1Swenshuai.xi# DRV Name 32*53ee8cc1Swenshuai.xi# ********************************************** 33*53ee8cc1Swenshuai.xi#API_NAME = aaa 34*53ee8cc1Swenshuai.xi 35*53ee8cc1Swenshuai.xi# ********************************************** 36*53ee8cc1Swenshuai.xi# DRV Source Files 37*53ee8cc1Swenshuai.xi# ********************************************** 38*53ee8cc1Swenshuai.xi#DRV_DIR = \ 39*53ee8cc1Swenshuai.xi# ddd \ 40*53ee8cc1Swenshuai.xi 41*53ee8cc1Swenshuai.xi 42*53ee8cc1Swenshuai.xi# ********************************************** 43*53ee8cc1Swenshuai.xi# Rules 44*53ee8cc1Swenshuai.xi# ********************************************** 45*53ee8cc1Swenshuai.xiLIB_NAME = api$(API_NAME) 46*53ee8cc1Swenshuai.xi 47*53ee8cc1Swenshuai.xiifeq ($(API_NAME),HDMITX) 48*53ee8cc1Swenshuai.xiifeq ($(CHIP),keltic) 49*53ee8cc1Swenshuai.xiAPI_SRC = $(filter-out $(wildcard $(CURDIR)/apiHDMITx.c), $(wildcard $(CURDIR)/*.c)) 50*53ee8cc1Swenshuai.xielse 51*53ee8cc1Swenshuai.xiAPI_SRC = $(filter-out $(wildcard $(CURDIR)/apiHDMITx_Wrap.c), $(wildcard $(CURDIR)/*.c)) 52*53ee8cc1Swenshuai.xiendif 53*53ee8cc1Swenshuai.xielse 54*53ee8cc1Swenshuai.xiAPI_SRC = $(wildcard $(CURDIR)/*.c) 55*53ee8cc1Swenshuai.xiendif 56*53ee8cc1Swenshuai.xi 57*53ee8cc1Swenshuai.xiAPI_OBJ = $(foreach file, $(notdir $(patsubst %.c, %.o, $(API_SRC))), $(OBJ_PATH)/$(file)) 58*53ee8cc1Swenshuai.xiAPI_IMPORT_SRC = $(wildcard $(CURDIR)/obj_import/$(OS_TYPE)/$(MCU_TYPE)/*.src) 59*53ee8cc1Swenshuai.xiAPI_IMPORT_OBJ = $(foreach file, $(notdir $(patsubst %.src, %.o, $(API_IMPORT_SRC))), $(OBJ_PATH)/$(file)) 60*53ee8cc1Swenshuai.xiAPI_INCDIR = $(foreach dir,$(DRV_DIR),$(DDIDRV)/$(dir)) 61*53ee8cc1Swenshuai.xiAPI_CC_INCS = $(foreach dir,$(API_INCDIR),-I$(dir) -I$(PUBINC)) 62*53ee8cc1Swenshuai.xi 63*53ee8cc1Swenshuai.xiifeq ($(MAKE_TYPE),lint) 64*53ee8cc1Swenshuai.xiifeq ($(shell uname -o),Cygwin) 65*53ee8cc1Swenshuai.xiLINT_INC += $(foreach dir,$(shell cygpath -m $(API_INCDIR)),-i"$(dir)") 66*53ee8cc1Swenshuai.xielse 67*53ee8cc1Swenshuai.xiLINT_INC += $(foreach dir,$(API_INCDIR),-i"$(dir)") 68*53ee8cc1Swenshuai.xiendif 69*53ee8cc1Swenshuai.xiendif 70*53ee8cc1Swenshuai.xi 71*53ee8cc1Swenshuai.xiVPATH = 72*53ee8cc1Swenshuai.xi 73*53ee8cc1Swenshuai.xiifeq ("$(UTOPIA_BSP_VERSION)", "") 74*53ee8cc1Swenshuai.xiUTOPIA_BSP_VERSION = 000000 75*53ee8cc1Swenshuai.xiendif 76*53ee8cc1Swenshuai.xi 77*53ee8cc1Swenshuai.xiifeq ("$(P4PORT)", "") 78*53ee8cc1Swenshuai.xiSW_VERSION_API_$(API_NAME) = 0 79*53ee8cc1Swenshuai.xielse 80*53ee8cc1Swenshuai.xiSW_VERSION_API_$(API_NAME) := $(shell p4 changes -m1 "./...\#have" | egrep Change | awk '{print $$2}') 81*53ee8cc1Swenshuai.xiifeq ("$(SW_VERSION_API_$(API_NAME))", "") 82*53ee8cc1Swenshuai.xiSW_VERSION_API_$(API_NAME) = 0 83*53ee8cc1Swenshuai.xiendif 84*53ee8cc1Swenshuai.xiendif 85*53ee8cc1Swenshuai.xiSW_API_FLOW_ENABLE = TRUE 86*53ee8cc1Swenshuai.xiCC_DEFS += -DSW_VERSION_API_$(API_NAME)=$(SW_VERSION_API_$(API_NAME)) 87*53ee8cc1Swenshuai.xi 88*53ee8cc1Swenshuai.xiVDEC_USE_NEW_LAYOUT = nike madison miami edison eiffel einstein einstein3 napoli kaiser monaco munich keres kirin clippers muji monet manhattan messi maserati maxim kano curry k6 k6lite k7u M7821 M7621 89*53ee8cc1Swenshuai.xiifeq ($(CHIP), $(filter $(CHIP),$(VDEC_USE_NEW_LAYOUT))) 90*53ee8cc1Swenshuai.xiCC_DEFS += -DSUPPORT_NEW_MEM_LAYOUT 91*53ee8cc1Swenshuai.xi#CC_DEFS += -DSUPPORT_NEW_VDEC_FLOW # Use old layout but with new share mem handshake flow 92*53ee8cc1Swenshuai.xiendif 93*53ee8cc1Swenshuai.xi 94*53ee8cc1Swenshuai.xi#ifeq ($(V3_DECODE),true) 95*53ee8cc1Swenshuai.xiCC_DEFS += -DVDEC3 96*53ee8cc1Swenshuai.xiCC_DEFS += -DVDEC3_FB 97*53ee8cc1Swenshuai.xi#endif 98*53ee8cc1Swenshuai.xi 99*53ee8cc1Swenshuai.xi# Note: Use old layout *CANNOT* enable EVD 100*53ee8cc1Swenshuai.xiVDEC_SUPPORT_EVD = einstein napoli madison monaco munich keres kirin clippers muji monet manhattan messi maserati maxim kano curry k6 k6lite k7u M7821 M7621 101*53ee8cc1Swenshuai.xiifeq ($(CHIP), $(filter $(CHIP),$(VDEC_SUPPORT_EVD))) 102*53ee8cc1Swenshuai.xiCC_DEFS += -DSUPPORT_EVD=1 103*53ee8cc1Swenshuai.xielse 104*53ee8cc1Swenshuai.xiCC_DEFS += -DSUPPORT_EVD=0 105*53ee8cc1Swenshuai.xiendif 106*53ee8cc1Swenshuai.xi 107*53ee8cc1Swenshuai.xiVDEC_SUPPORT_G2VP9 = monaco muji 108*53ee8cc1Swenshuai.xiifeq ($(CHIP), $(filter $(CHIP),$(VDEC_SUPPORT_G2VP9))) 109*53ee8cc1Swenshuai.xiCC_DEFS += -DSUPPORT_G2VP9=1 110*53ee8cc1Swenshuai.xielse 111*53ee8cc1Swenshuai.xiCC_DEFS += -DSUPPORT_G2VP9=0 112*53ee8cc1Swenshuai.xiendif 113*53ee8cc1Swenshuai.xi 114*53ee8cc1Swenshuai.xiVDEC_SUPPORT_MSVP9 = manhattan messi maserati maxim kano curry k6 k6lite k7u M7821 M7621 115*53ee8cc1Swenshuai.xiifeq ($(CHIP), $(filter $(CHIP),$(VDEC_SUPPORT_MSVP9))) 116*53ee8cc1Swenshuai.xiCC_DEFS += -DSUPPORT_MSVP9=1 117*53ee8cc1Swenshuai.xielse 118*53ee8cc1Swenshuai.xiCC_DEFS += -DSUPPORT_MSVP9=0 119*53ee8cc1Swenshuai.xiendif 120*53ee8cc1Swenshuai.xi 121*53ee8cc1Swenshuai.xi.NOTPARALLEL : hvd_v3 mjpeg_v3 mvd_v3 122*53ee8cc1Swenshuai.xi.PHONY : all clean $(DRV_DIR) depend 123*53ee8cc1Swenshuai.xi 124*53ee8cc1Swenshuai.xiall : $(API_OBJ) $(API_IMPORT_OBJ) $(DRV_DIR) 125*53ee8cc1Swenshuai.xi 126*53ee8cc1Swenshuai.xilib : setup all 127*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),nos) 128*53ee8cc1Swenshuai.xiendif 129*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),linux) 130*53ee8cc1Swenshuai.xiifeq ($(PLATFORM),android) 131*53ee8cc1Swenshuai.xiendif 132*53ee8cc1Swenshuai.xiendif 133*53ee8cc1Swenshuai.xi 134*53ee8cc1Swenshuai.xiifeq ($(LINK_TYPE),dynamic) 135*53ee8cc1Swenshuai.xi ifeq ($(CONFIG_INCREMENTAL_BUILD),y) 136*53ee8cc1Swenshuai.xi @$(CC) $(CFG_CC_OPTS) $(LD_LIBS_INC) $(LD_OPTS) $(wildcard $(OBJ_PATH)/$(LIB_NAME)_T/*.T) $(API_OBJ) $(API_IMPORT_OBJ) $(HAL_IMPORT_OBJ) $(MLOG_LIB_PATH) -o $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) ; 137*53ee8cc1Swenshuai.xi ifeq ($(CONFIG_VERSION_INFO_EMBADE), y) 138*53ee8cc1Swenshuai.xi @sh $(VERSION)/versionembadder.sh $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT).temp ./version_info 139*53ee8cc1Swenshuai.xi @rm -f $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 140*53ee8cc1Swenshuai.xi @mv -f $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT).temp $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 141*53ee8cc1Swenshuai.xi endif 142*53ee8cc1Swenshuai.xi else 143*53ee8cc1Swenshuai.xi @$(CC) $(CFG_CC_OPTS) $(LD_OPTS) $(wildcard $(OBJ_PATH)/$(LIB_NAME)_T/*.T) $(API_OBJ) $(API_IMPORT_OBJ) $(MLOG_LIB_PATH) -o $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) ; 144*53ee8cc1Swenshuai.xi @$(OBJCOPY) --add-section .mmodule_version=./version_info $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 145*53ee8cc1Swenshuai.xi ifeq ($(CONFIG_VERSION_INFO_EMBADE), y) 146*53ee8cc1Swenshuai.xi @sh $(VERSION)/versionembadder.sh $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT).temp ./version_info 147*53ee8cc1Swenshuai.xi @rm -f $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 148*53ee8cc1Swenshuai.xi @mv -f $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT).temp $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 149*53ee8cc1Swenshuai.xi endif 150*53ee8cc1Swenshuai.xi endif 151*53ee8cc1Swenshuai.xi# @rm -f $(OBJ_PATH)/*.T 152*53ee8cc1Swenshuai.xiendif 153*53ee8cc1Swenshuai.xi 154*53ee8cc1Swenshuai.xiifeq ($(TOOLCHAIN),mips-linux-gnu) 155*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),nos) 156*53ee8cc1Swenshuai.xiSW_MBOOT_FLOW = TRUE 157*53ee8cc1Swenshuai.xiendif 158*53ee8cc1Swenshuai.xiendif 159*53ee8cc1Swenshuai.xi 160*53ee8cc1Swenshuai.xi$(DRV_DIR) : 161*53ee8cc1Swenshuai.xiifeq ($(LINK_TYPE),dynamic) 162*53ee8cc1Swenshuai.xi @$(MAKE) BUILDING_API=1 -s -C $(DDIDRV)/$@ 163*53ee8cc1Swenshuai.xielse 164*53ee8cc1Swenshuai.xi @$(MAKE) -C $(DDIDRV)/$@ 165*53ee8cc1Swenshuai.xiendif 166*53ee8cc1Swenshuai.xi 167*53ee8cc1Swenshuai.xi$(API_IMPORT_OBJ) : 168*53ee8cc1Swenshuai.xi echo find api import_obj cp from $(filter %$(notdir $*).src,$(API_IMPORT_SRC)) to $@ 169*53ee8cc1Swenshuai.xi cp $(filter %$(notdir $*).src,$(API_IMPORT_SRC)) $@ 170*53ee8cc1Swenshuai.xiifneq ($(LINK_TYPE),dynamic) 171*53ee8cc1Swenshuai.xi @$(AR) cru $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) $@; 172*53ee8cc1Swenshuai.xi ifeq ($(CONFIG_VERSION_INFO_EMBADE), y) 173*53ee8cc1Swenshuai.xi @sh $(VERSION)/versionembadder.sh $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT).temp ./version_info 174*53ee8cc1Swenshuai.xi @rm -f $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 175*53ee8cc1Swenshuai.xi @mv -f $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT).temp $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 176*53ee8cc1Swenshuai.xi endif 177*53ee8cc1Swenshuai.xiifeq ($(BLT_TYPE),retail) 178*53ee8cc1Swenshuai.xi @$(STRIP) -S $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 179*53ee8cc1Swenshuai.xiendif 180*53ee8cc1Swenshuai.xiendif 181*53ee8cc1Swenshuai.xi 182*53ee8cc1Swenshuai.xi$(API_OBJ) : $(OBJ_PATH)/%.o : %.c 183*53ee8cc1Swenshuai.xiifneq ($(MAKE_TYPE),lint) 184*53ee8cc1Swenshuai.xi @echo [CC] $(notdir $<) 185*53ee8cc1Swenshuai.xi @$(CC) $(CC_OPTS) $(CC_DEFS) $(CC_INCS) $(API_CC_INCS) -o $@ $<; 186*53ee8cc1Swenshuai.xiifneq ($(LINK_TYPE),dynamic) 187*53ee8cc1Swenshuai.xi @$(AR) cru $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) $@; 188*53ee8cc1Swenshuai.xi ifeq ($(CONFIG_VERSION_INFO_EMBADE), y) 189*53ee8cc1Swenshuai.xi @sh $(VERSION)/versionembadder.sh $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT).temp ./version_info 190*53ee8cc1Swenshuai.xi @rm -f $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 191*53ee8cc1Swenshuai.xi @mv -f $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT).temp $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 192*53ee8cc1Swenshuai.xi endif 193*53ee8cc1Swenshuai.xiendif 194*53ee8cc1Swenshuai.xielse 195*53ee8cc1Swenshuai.xi @echo [LINT] $(notdir $<) 196*53ee8cc1Swenshuai.xiifeq ($(shell uname -o),Cygwin) 197*53ee8cc1Swenshuai.xi @$(LINT_CMD) $(CC_DEFS) $(LINT_INC) $(shell cygpath -m $<) >>$(LINT_LOG) 198*53ee8cc1Swenshuai.xi# echo $(shell cygpath -m $<) >>$(LINT_FILES) 199*53ee8cc1Swenshuai.xielse 200*53ee8cc1Swenshuai.xi @$(LINT_CMD) $(CC_DEFS) $(LINT_INC) $< >>$(LINT_LOG) 201*53ee8cc1Swenshuai.xi# echo $< >>$(LINT_FILES) 202*53ee8cc1Swenshuai.xiendif 203*53ee8cc1Swenshuai.xiendif 204*53ee8cc1Swenshuai.xi 205*53ee8cc1Swenshuai.xiifeq ($(PARA), 1) 206*53ee8cc1Swenshuai.xi @if [ ! -f $(CURDIR)/cpptestscan.bdf ]; then \ 207*53ee8cc1Swenshuai.xi echo ERROR! No $(CURDIR)/cpptestscan.bdf; \ 208*53ee8cc1Swenshuai.xi fi 209*53ee8cc1Swenshuai.xi @if [ -f $(CURDIR)/cpptestscan.bdf ]; then \ 210*53ee8cc1Swenshuai.xi cat $(CURDIR)/cpptestscan.bdf >> $(PROJ)/cpptestscan.bdf; \ 211*53ee8cc1Swenshuai.xi rm -f $(CURDIR)/cpptestscan.bdf; \ 212*53ee8cc1Swenshuai.xi fi 213*53ee8cc1Swenshuai.xiendif 214*53ee8cc1Swenshuai.xi 215*53ee8cc1Swenshuai.xisetup : 216*53ee8cc1Swenshuai.xiifeq ($(LINK_TYPE),dynamic) 217*53ee8cc1Swenshuai.xi @echo [api_rule.mk][lib$(LIB_NAME).$(LIB_EXT)] 218*53ee8cc1Swenshuai.xi# @rm -f $(OBJ_PATH)/*.T 219*53ee8cc1Swenshuai.xielse 220*53ee8cc1Swenshuai.xi @echo [api_rule.mk][lib$(LIB_NAME).$(LIB_EXT)] 221*53ee8cc1Swenshuai.xiendif 222*53ee8cc1Swenshuai.xi 223*53ee8cc1Swenshuai.xiclean : 224*53ee8cc1Swenshuai.xi @$(foreach dir, $(DRV_DIR), $(MAKE) -s -C $(DDIDRV)/$(dir) clean;) 225*53ee8cc1Swenshuai.xi @rm -f $(API_OBJ) 226*53ee8cc1Swenshuai.xi @rm -f $(API_IMPORT_OBJ) 227*53ee8cc1Swenshuai.xi @rm -f $(DDI_PATH)/lib$(LIB_NAME).a 228*53ee8cc1Swenshuai.xi @rm -f $(DDI_PATH)/lib$(LIB_NAME).so 229*53ee8cc1Swenshuai.xi 230*53ee8cc1Swenshuai.xi 231