xref: /utopia/UTPA2-700.0.x/mxlib/api_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 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