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 SYS_SRC 25*53ee8cc1Swenshuai.xiunexport SYS_CC_INCS 26*53ee8cc1Swenshuai.xiunexport VPATH 27*53ee8cc1Swenshuai.xi 28*53ee8cc1Swenshuai.xi 29*53ee8cc1Swenshuai.xi# ********************************************** 30*53ee8cc1Swenshuai.xi# Rules 31*53ee8cc1Swenshuai.xi# ********************************************** 32*53ee8cc1Swenshuai.xiLIB_NAME = $(SYS_NAME) 33*53ee8cc1Swenshuai.xi 34*53ee8cc1Swenshuai.xiSYS_SRC = $(wildcard $(CURDIR)/*.c) 35*53ee8cc1Swenshuai.xiSYS_OBJ = $(foreach file, $(notdir $(patsubst %.c, %.o, $(SYS_SRC))), $(OBJ_PATH)/$(file)) 36*53ee8cc1Swenshuai.xiSYS_IMPORT_SRC = $(wildcard $(CURDIR)/obj_import/$(OS_TYPE)/$(MCU_TYPE)/*.src) 37*53ee8cc1Swenshuai.xiSYS_IMPORT_OBJ = $(foreach file, $(notdir $(patsubst %.src, %.o, $(SYS_IMPORT_SRC))), $(OBJ_PATH)/$(file)) 38*53ee8cc1Swenshuai.xiSYS_CC_INCS = $(foreach dir,$(SYS_INCDIR),-I$(dir)) 39*53ee8cc1Swenshuai.xi 40*53ee8cc1Swenshuai.xiifeq ($(MAKE_TYPE),lint) 41*53ee8cc1Swenshuai.xiifeq ($(shell uname -o),Cygwin) 42*53ee8cc1Swenshuai.xiLINT_INC += $(foreach dir,$(shell cygpath -m $(SYS_INCDIR)),-i"$(dir)") 43*53ee8cc1Swenshuai.xielse 44*53ee8cc1Swenshuai.xiLINT_INC += $(foreach dir,$(SYS_INCDIR),-i"$(dir)") 45*53ee8cc1Swenshuai.xiendif 46*53ee8cc1Swenshuai.xiendif 47*53ee8cc1Swenshuai.xi 48*53ee8cc1Swenshuai.xiVPATH = 49*53ee8cc1Swenshuai.xi 50*53ee8cc1Swenshuai.xiifeq ("$(UTOPIA_BSP_VERSION)", "") 51*53ee8cc1Swenshuai.xiUTOPIA_BSP_VERSION = 000000 52*53ee8cc1Swenshuai.xiendif 53*53ee8cc1Swenshuai.xi 54*53ee8cc1Swenshuai.xiifeq ("$(P4PORT)", "") 55*53ee8cc1Swenshuai.xiSW_VERSION_SYS_$(SYS_NAME) = 0 56*53ee8cc1Swenshuai.xielse 57*53ee8cc1Swenshuai.xiSW_VERSION_SYS_$(SYS_NAME) := $(shell p4 changes -m1 "./...\#have" | egrep Change | awk '{print $$2}') 58*53ee8cc1Swenshuai.xiifeq ("$(SW_VERSION_SYS_$(SYS_NAME))", "") 59*53ee8cc1Swenshuai.xiSW_VERSION_SYS_$(SYS_NAME) = 0 60*53ee8cc1Swenshuai.xiendif 61*53ee8cc1Swenshuai.xiendif 62*53ee8cc1Swenshuai.xiSW_SYS_FLOW_ENABLE = TRUE 63*53ee8cc1Swenshuai.xiCC_DEFS += -DSW_VERSION_SYS_$(SYS_NAME)=$(SW_VERSION_SYS_$(SYS_NAME)) 64*53ee8cc1Swenshuai.xi 65*53ee8cc1Swenshuai.xi.PHONY : all clean depend 66*53ee8cc1Swenshuai.xi 67*53ee8cc1Swenshuai.xiall : $(SYS_OBJ) $(SYS_IMPORT_OBJ) 68*53ee8cc1Swenshuai.xi 69*53ee8cc1Swenshuai.xilib : setup all 70*53ee8cc1Swenshuai.xiifeq ($(LINK_TYPE),dynamic) 71*53ee8cc1Swenshuai.xi @$(CC) $(CFG_CC_OPTS) $(LD_OPTS) $(wildcard $(OBJ_PATH)/*.T) $(SYS_OBJ) $(SYS_IMPORT_OBJ) -o $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) ; 72*53ee8cc1Swenshuai.xi @rm -f $(OBJ_PATH)/*.T 73*53ee8cc1Swenshuai.xiendif 74*53ee8cc1Swenshuai.xi 75*53ee8cc1Swenshuai.xiifeq ($(TOOLCHAIN),mips-linux-gnu) 76*53ee8cc1Swenshuai.xiifeq ($(OS_TYPE),nos) 77*53ee8cc1Swenshuai.xiSW_MBOOT_FLOW = TRUE 78*53ee8cc1Swenshuai.xiendif 79*53ee8cc1Swenshuai.xiendif 80*53ee8cc1Swenshuai.xi 81*53ee8cc1Swenshuai.xi @$(OBJCOPY) --add-section .mmodule_version=../version_info $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 82*53ee8cc1Swenshuai.xi 83*53ee8cc1Swenshuai.xiifeq ($(PARA), 1) 84*53ee8cc1Swenshuai.xi @if [ ! -f $(DDIDRV)/$@/cpptestscan.bdf ]; then \ 85*53ee8cc1Swenshuai.xi echo ERROR! No $(DDIDRV)/$@/cpptestscan.bdf; \ 86*53ee8cc1Swenshuai.xi fi 87*53ee8cc1Swenshuai.xi @if [ -f $(DDIDRV)/$@/cpptestscan.bdf ]; then \ 88*53ee8cc1Swenshuai.xi cat $(DDIDRV)/$@/cpptestscan.bdf >> $(PROJ)/cpptestscan.bdf; \ 89*53ee8cc1Swenshuai.xi rm -f $(DDIDRV)/$@/cpptestscan.bdf; \ 90*53ee8cc1Swenshuai.xi fi 91*53ee8cc1Swenshuai.xiendif 92*53ee8cc1Swenshuai.xi 93*53ee8cc1Swenshuai.xi$(SYS_IMPORT_OBJ) : 94*53ee8cc1Swenshuai.xi echo find api import_obj cp from $(filter %$(notdir $*).src,$(SYS_IMPORT_SRC)) to $@ 95*53ee8cc1Swenshuai.xi cp $(filter %$(notdir $*).src,$(SYS_IMPORT_SRC)) $@ 96*53ee8cc1Swenshuai.xiifneq ($(LINK_TYPE),dynamic) 97*53ee8cc1Swenshuai.xi @$(AR) cru $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) $@; 98*53ee8cc1Swenshuai.xiifeq ($(BLT_TYPE),retail) 99*53ee8cc1Swenshuai.xi @$(STRIP) -S $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) 100*53ee8cc1Swenshuai.xiendif 101*53ee8cc1Swenshuai.xiendif 102*53ee8cc1Swenshuai.xi 103*53ee8cc1Swenshuai.xi$(SYS_OBJ) : $(OBJ_PATH)/%.o : %.c 104*53ee8cc1Swenshuai.xiifneq ($(MAKE_TYPE),lint) 105*53ee8cc1Swenshuai.xi @echo [CC] $(notdir $<) 106*53ee8cc1Swenshuai.xi @$(CC) $(CC_OPTS) $(CC_DEFS) $(CC_INCS) $(SYS_CC_INCS) -o $@ $<; 107*53ee8cc1Swenshuai.xiifneq ($(LINK_TYPE),dynamic) 108*53ee8cc1Swenshuai.xi @$(AR) cru $(DDI_PATH)/lib$(LIB_NAME).$(LIB_EXT) $@; 109*53ee8cc1Swenshuai.xiendif 110*53ee8cc1Swenshuai.xielse 111*53ee8cc1Swenshuai.xi @echo [LINT] $(notdir $<) 112*53ee8cc1Swenshuai.xiifeq ($(shell uname -o),Cygwin) 113*53ee8cc1Swenshuai.xi @$(LINT_CMD) $(CC_DEFS) $(LINT_INC) $(shell cygpath -m $<) >>$(LINT_LOG) 114*53ee8cc1Swenshuai.xi# echo $(shell cygpath -m $<) >>$(LINT_FILES) 115*53ee8cc1Swenshuai.xielse 116*53ee8cc1Swenshuai.xi @$(LINT_CMD) $(CC_DEFS) $(LINT_INC) $< >>$(LINT_LOG) 117*53ee8cc1Swenshuai.xi# echo $< >>$(LINT_FILES) 118*53ee8cc1Swenshuai.xiendif 119*53ee8cc1Swenshuai.xiendif 120*53ee8cc1Swenshuai.xi 121*53ee8cc1Swenshuai.xisetup : 122*53ee8cc1Swenshuai.xiifeq ($(LINK_TYPE),dynamic) 123*53ee8cc1Swenshuai.xi @echo [api_rule.mk][lib$(LIB_NAME).$(LIB_EXT)] 124*53ee8cc1Swenshuai.xi @rm -f $(OBJ_PATH)/*.T 125*53ee8cc1Swenshuai.xielse 126*53ee8cc1Swenshuai.xi @echo [api_rule.mk][lib$(LIB_NAME).$(LIB_EXT)] 127*53ee8cc1Swenshuai.xiendif 128*53ee8cc1Swenshuai.xi 129*53ee8cc1Swenshuai.xiclean : 130*53ee8cc1Swenshuai.xi @rm -f $(SYS_OBJ) 131*53ee8cc1Swenshuai.xi @rm -f $(SYS_IMPORT_OBJ) 132*53ee8cc1Swenshuai.xi @rm -f $(DDI_PATH)/lib$(LIB_NAME).a 133*53ee8cc1Swenshuai.xi @rm -f $(DDI_PATH)/lib$(LIB_NAME).so 134*53ee8cc1Swenshuai.xi 135*53ee8cc1Swenshuai.xi 136