xref: /utopia/UTPA2-700.0.x/mxlib/sys_rule.mk (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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