blob: c4510801da65bfadcdbc410094bef4c42dbb8705 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001#
2# Copyright Statement:
3# --------------------
4# This software is protected by Copyright and the information contained
5# herein is confidential. The software may not be copied and the information
6# contained herein may not be used or disclosed except with the written
7# permission of MediaTek Inc. (C) 2005
8#
9# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12# AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15# NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16# SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17# SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21#
22# BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23# LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24# AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25# OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27#
28# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33#
34# *************************************************************************
35# STANDALONE_ACTION.mak - independent build action
36#
37# DISCUSSION:
38#
39# USAGE:
40#
41# IMPORTANT NOTES:
42#
43# *************************************************************************
44#
45# $Revision:$
46# $Modtime:$
47# $Log:$
48#
49# 01 14 2019 yuri.huang
50# [MOLY00363660] [Auto-Gen] Merge 2 links to 1 link to save more build time.
51# (Frank Hu).
52#
53# 04 09 2018 gerry.liao
54# [MOLY00318691] [SM] remove no use variable (PCORE_ROOT, COMMON_ROOT, l1core)
55# .
56#
57# 06 16 2016 wcpadmin
58# smart new env.
59#
60# 01 28 2016 chi-chun.lu
61# [MOLY00162790] [MakeFile] [Remove: Feature Option] DSP_SOLUTION
62#
63# .
64#
65# 01 13 2016 gerry.liao
66# [MOLY00159998] [SM] memquery remove l1 core related feature
67# .
68#
69# 01 13 2016 chi-chun.lu
70# [MOLY00155432] [MakeFile] [UMOLY] [Modify Makefile Rules] UMOLY build env. modifications
71#
72# .
73#
74# 12 30 2015 chi-chun.lu
75# [MOLY00155432] [MakeFile] [UMOLY] [Modify Makefile Rules] UMOLY build env. modifications
76#
77# .
78#
79# 12 07 2015 chi-chun.lu
80# [MOLY00150620] [MakeFile][UMOLY] [Modify Makefile Rules] UMOLY cleanup
81#
82# .
83#
84# 10 28 2015 chi-chun.lu
85# [MOLY00147089] [MakeFile][UMOLY] [Modify Makefile Rules] reorg UMOLY make folder
86#
87# .
88#
89# 04 28 2015 chi-chun.lu
90# [MOLY00109710] [SM] fix c,r command can't pass correctly to .
91# .
92#
93# 03 20 2015 chi-chun.lu
94# [MOLY00099959] [SM] enhance remake action in .
95# .
96#
97# 02 11 2015 ray.lin-wang
98# [MOLY00095788] Merge filter bin files of different cores into a catcher_filter.bin
99# .
100#
101# 01 27 2015 chi-chun.lu
102# [MOLY00093671] [SM] modify memquery.pl related parameter in standalone_action.mak
103# .
104#
105# 01 20 2015 chi-chun.lu
106# [MOLY00092726] [TK6291] [SystemService][Auto-Gen] Memory Utility Refinement
107# .
108#
109# 09 23 2014 tafang.chen
110# [MOLY00062786] [UMOLY][SM] Add _P_ and _L_ for elf,map,sym,cmm files to recognize ., ..
111#
112# 07 17 2014 tafang.chen
113# [MOLY00062786] [UMOLY][SM]
114# Fix -no_pc problem in two phase linking build.
115#
116# 06 17 2014 tafang.chen
117# [MOLY00062786] [UMOLY][SM]
118# Remove named debug message.
119#
120# 06 17 2014 tafang.chen
121# [MOLY00062786] [UMOLY][SM]
122# Fix variation load problem in two-phase linking.(Brian.Chiang)
123#
124# 05 22 2014 tafang.chen
125# [MOLY00062786] [UMOLY][SM]
126# Initial MoDIS build env - fix path problem.
127#
128# 05 07 2014 tafang.chen
129# [MOLY00062786] [UMOLY][SM]
130# Implement two phase linking.
131#
132# 05 06 2014 tafang.chen
133# Fix incorrect single_core settting on . when full build
134#
135# 11 26 2013 ray.lin-wang
136# [MOLY00047495] [MakeFile] [Modify Common Makefile] Cgen Enhancement
137# Support gen query mod sim source in OA domain
138#
139# 06 25 2013 ray.lin-wang
140# [MOLY00027330] [ARM7toMOLY] ARM7 Build/SYSGEN/Functions Update to TRUNK
141# .
142#
143# 06 03 2013 amber.su
144# [MOLY00023890] [SystemService][Auto-Gen][Internal Refinement] Support compiler option judgement
145# .
146#
147# 04 23 2013 amber.su
148# [MOLY00020348] [MT6290 Bring-up][MakeFile] [Modify: Others] Modify build.mak for ROM & File System Overlapping check
149# .
150#
151# 04 12 2013 amber.su
152# [MOLY00014181] [MakeFile] [Add: Build Action] Add gendummysym command for memory expired analysis
153# .
154#
155# 01 24 2013 amber.su
156# [MOLY00009227] [SystemService][AAPMC][Internal Refinement] Support AAPMC to auto-adjust Modem Image Layout
157# .
158#
159# 01 21 2013 amber.su
160# .
161#
162# 01 17 2013 amber.su
163# .
164#
165# 01 08 2013 amber.su
166# [MOLY00008435] [SystemService][MemoryUitlity][Internal Refinement] Provide build command to use Memory Utility
167# .
168#
169# 09 26 2012 amber.su
170# [MOLY00004055] [Custom Release][Build Command] build command change for custom release flow
171# .
172#
173# 09 12 2012 amber.su
174# [MOLY00003467] [Target Build] build command change modification
175# .
176#
177# 07 30 2012 jerry.chang
178# [MOLY00001397] [MOLY] rename gsm2.mak and make2.pl
179# .
180# *************************************************************************
181
182.PHONY: gendummylis memquery gendummysym
183
184ifdef NO_PCIBT
185ifeq ($(NO_PCIBT),TRUE)
186NO_PC_ACTION += -no_pc
187else
188NO_PC_ACTION =
189endif
190endif
191
192ifeq ($(strip $(NO_DSP)),TRUE)
193NO_PC_ACTION += -no_dsp
194endif
195
196# *************************************************************************
197# Generate dummy .lis file for memory analysis
198# *************************************************************************
199gendummylis:
200# mbis time probe
201ifeq ($(strip $(MBIS_EN)),TRUE)
202 @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
203endif
204
205 @if exist $(SCATTERFILE) copy /y $(SCATTERFILE) $(SCATTERFILE).original > NUL
206 @tools\make.exe -f$(strip $(MAKE_COMMON))/build.mak -r -R PROJECT_NAME=$(strip $(PROJECT_NAME)) PROJECT_MAKEFILE="$(strip $(PROJECT_MAKEFILE))" FLAVOR=$(strip $(FLAVOR)) DUMMY_LIS=TRUE sys_auto_gen LINK_BIN_FILE & \
207 (if ERRORLEVEL 1 exit 1)
208
209 @if not exist $(strip $(TARGDIR))\$(IMG_FILE) \
210 echo Error in gendummylis & exit 1
211
212ifeq ($(strip $(VIVA_AUTO_SUPPORT)),TRUE)
213 @tools\make.exe -f$(strip $(MAKE_COMMON))/build.mak -r -R PROJECT_NAME=$(strip $(PROJECT_NAME)) PROJECT_MAKEFILE="$(strip $(PROJECT_MAKEFILE))" FLAVOR=$(strip $(FLAVOR)) FROMELF_BIN_FILE & \
214 (if ERRORLEVEL 1 exit 1)
215 @if not exist $(strip $(TARGDIR))\VIVA_DEBUG md $(strip $(TARGDIR))\VIVA_DEBUG
216 @if exist $(strip $(TARGDIR))\$(strip $(BIN_FILE)) \
217 md $(strip $(TARGDIR))\VIVA_DEBUG\$(strip $(BIN_FILE))_dummy & \
218 copy /y $(strip $(TARGDIR))\$(strip $(BIN_FILE))\*.* $(strip $(TARGDIR))\VIVA_DEBUG\$(strip $(BIN_FILE))_dummy & \
219 copy /y $(strip $(TARGDIR))\$(strip $(LIS_FILE)) $(strip $(TARGDIR))\VIVA_DEBUG\$(strip $(LIS_FILE)).dummy & \
220 rd /S /Q $(strip $(TARGDIR))\$(strip $(BIN_FILE))
221endif
222 @copy /y $(SCATTERFILE) $(SCATTERFILE).dummy > NUL
223 @if exist $(SCATTERFILE).original move /y $(SCATTERFILE).original $(SCATTERFILE) > NUL
224 @if exist $(strip $(TARGDIR))\$(IMG_FILE) del /q $(strip $(TARGDIR))\$(IMG_FILE)
225# mbis time probe
226ifeq ($(strip $(MBIS_EN)),TRUE)
227 @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
228endif
229
230# *************************************************************************
231# Generate dummy .sym file
232# *************************************************************************
233gendummysym:
234# mbis time probe
235ifeq ($(strip $(MBIS_EN)),TRUE)
236 @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
237endif
238
239 @$(IF_EXIST) $(strip $(TMPDIR))/~libs.tmp $(THEN)\
240 ($(ECHO) "--noinhibit-exec " >$(TMPDIR)/~dummylibs.tmp) $(WITH) \
241 ($(CAT) $(strip $(TMPDIR))/~libs.tmp >> $(TMPDIR)/~dummylibs.tmp) \
242 $(CMD_END)
243
244 @$(IF_EXIST) $(strip $(COMPLOGDIR))/link_option.log $(THEN)\
245 ($(ECHO) "--noinhibit-exec " >$(TMPDIR)/~dummylibs.tmp) $(WITH) \
246 ($(CAT) $(strip $(COMPLOGDIR))/link_option.log >> $(TMPDIR)/~dummylibs.tmp) \
247 $(CMD_END)
248
249 @$(IF_NOT_EXIST) $(strip $(TMPDIR))/~dummylibs.tmp $(THEN)\
250 (echo Error: $(strip $(TMPDIR))/~dummylibs.tmp does not existed! $(WITH) exit 1) $(CMD_END)
251
252 @$(IF_EXIST) $(strip $(TMPDIR))/~libs.tmp $(THEN)\
253 ($(ECHO) "--noinhibit-exec " >$(TMPDIR)/~dummylibs.tmp) $(WITH) \
254 ($(CAT) $(strip $(TMPDIR))/~libs.tmp >> $(TMPDIR)/~dummylibs.tmp) \
255 $(CMD_END)
256
257 @$(strip $(LINK)) $(strip $(VIA))$(TMPDIR)/~dummylibs.tmp >$(DEV_NUL) 2>&1
258 @$(strip $(DUMP)) -x $(strip $(TARGDIR))/$(IMG_FILE) > $(strip $(TARGDIR))/dummy_$(SYM_FILE) $(WITH) \
259 ($(IF_ERR_TRUE) $(THEN) \
260 ($(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(IMG_FILE)) $(CMD_END)) $(WITH) \
261 (echo Error: failed to generate .sym file $(WITH) exit 1)\
262 $(CMD_END))
263
264 @$(IF_EXIST) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) $(THEN) ($(DEL_DIR) $(strip $(TARGDIR))/$(strip $(BIN_FILE))) $(CMD_END)
265 @$(IF_EXIST) $(strip $(TARGDIR))/$(IMG_FILE) $(THEN) ($(DEL_FILE) $(strip $(TARGDIR))/$(IMG_FILE)) $(CMD_END)
266 @$(IF_NOT_EXIST) $(strip $(TARGDIR))/dummy_$(SYM_FILE) $(THEN) (echo Error: gendummysym failed! $(WITH) exit 1) $(CMD_END)
267 @$(IF_EXIST) $(TMPDIR)/~dummylibs.tmp $(THEN) ($(DEL_FILE) $(TMPDIR)/~dummylibs.tmp) $(CMD_END)
268 @echo Done for gendummysym
269# mbis time probe
270ifeq ($(strip $(MBIS_EN)),TRUE)
271 @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
272endif
273
274# *************************************************************************
275# Get Memory Usage Information
276# *************************************************************************
277memquery:
278# mbis time probe
279ifeq ($(strip $(MBIS_EN)),TRUE)
280 @$(ECHO) -n -t "T_S,$@,T," >> $(MBIS_BUILD_TIME_TMP)
281endif
282 @$(IF_EXIST) $(FIXPATH)/tools/MemoryUtility/memquery.pl $(THEN) \
283 perl $(FIXPATH)/tools/MemoryUtility/memquery.pl $(strip $(TMPDIR))/~memquery.tmp $(SCATTERFILE) "$(strip $(PROJECT_MAKEFILE))" $(strip $(TARGDIR))/$(MAP_FILE) $(strip $(COMPLOGDIR)) $(strip $(INFOMAKELOG)) $(strip $(TARGDIR))/$(strip $(BIN_FILE)) \
284 $(CMD_END)
285# mbis time probe
286ifeq ($(strip $(MBIS_EN)),TRUE)
287 @$(ECHO) -n -t "T_E,$@,T," >> $(MBIS_BUILD_TIME_TMP)
288endif