2 PDK_INSTALL_PATH ?= $(abspath ../../)
4 include $(PDK_INSTALL_PATH)/ti/build/Rules.make
6 XDC = $(XDC_INSTALL_PATH)/xdc
8 ifeq ($(LIMIT_BOARDS),)
9 BOARD_LIST_ALL = evmDRA72x evmDRA75x evmDRA78x evmAM572x idkAM572x idkAM571x idkAM574x
10 BOARD_LIST_ALL += $(BOARD_LIST_J6_TDA)
11 BOARD_LIST_ALL += $(BOARD_LIST_J7_TDA)
12 BOARD_LIST_ALL += $(BOARD_LIST_TPR12)
13 BOARD_LIST_ALL += am64x_evm am64x_svb
14 else
15 # If LIMIT_BOARDS is defined use it
16 BOARD_LIST_ALL = $(LIMIT_BOARDS)
17 endif
19 ifeq ($(LIMIT_CORES),)
20 #Limit core list based on board
21 ifeq ($(BOARD),$(filter $(BOARD), j721e_evm))
22 CORE_LIST_ALL = $(CORE_LIST_j721e)
23 endif
24 ifeq ($(BOARD),$(filter $(BOARD), j7200_evm))
25 CORE_LIST_ALL = $(CORE_LIST_j7200)
26 endif
27 ifeq ($(BOARD),$(filter $(BOARD), am65xx_evm am65xx_idk))
28 CORE_LIST_ALL = $(CORE_LIST_am65xx)
29 endif
30 ifeq ($(BOARD),$(filter $(BOARD), $(BOARD_LIST_J6_TDA)))
31 CORE_LIST_ALL = a15_0 ipu1_0 ipu1_1 ipu2_0 ipu2_1 c66x c66xdsp_1 c66xdsp_2 arp32_1 arp32_2 arp32_3 arp32_4 arm9_0 c674x
32 CORE_LIST_ALL += mcu1_0 mcu1_1 mpu1_0 mpu1_1
33 endif
34 ifeq ($(BOARD),$(filter $(BOARD), tpr12_evm tpr12_qt))
35 CORE_LIST_ALL = $(CORE_LIST_tpr12)
36 endif
37 ifeq ($(BOARD),$(filter $(BOARD), am64x_evm am64x_svb))
38 CORE_LIST_ALL = $(CORE_LIST_am64x)
39 endif
40 else
41 # If LIMIT_CORES is defined use it
42 CORE_LIST_ALL = $(LIMIT_CORES)
43 endif
45 BUILD_PROFILE_LIST_ALL ?= release debug
47 # Variables used
50 #if COMP is not defined, the build comprises of all modules in the ti/build/component.mk
51 ifeq ($(COMP),)
53 FINAL_LIB_LIST = $(pdk_LIB_LIST)
54 FINAL_APP_LIB_LIST = $(pdk_APP_LIB_LIST)
55 FINAL_EXAMPLE_LIST = $(pdk_EXAMPLE_LIST)
56 FINAL_FIRM_LIST = $(pdk_FIRM_LIST)
57 FINAL_PKG_LIST_ALL = $(pdk_PKG_LIST_ALL)
58 FINAL_DUP_EXAMPLE_LIST = $(pdk_DUP_EXAMPLE_LIST)
59 FINAL_UTILS_LIST_ALL = $(pdk_UTILS_LIST)
60 FINAL_EXAMPLE_LIST_INFO=$(pdk_EXAMPLE_LIST)
62 else
63 #if COMP is defined, this is built from within a component, eg) ti/drv/mmcsd> make all
64 # In this case only that module's LIB,APPLIB, EXAMPLES should be built
66 FINAL_LIB_LIST =$($(COMP)_LIB_LIST)
67 FINAL_APP_LIB_LIST = $($(COMP)_APP_LIB_LIST)
68 FINAL_EXAMPLE_LIST=$($(COMP)_EXAMPLE_LIST)
69 FINAL_FIRM_LIST = $($(COMP)_FIRM_LIST)
70 FINAL_DUP_EXAMPLE_LIST = $($(COMP)_DUP_EXAMPLE_LIST)
71 FINAL_PKG_LIST_ALL=$($(COMP)_LIB_LIST) $($(COMP)_APP_LIB_LIST) $($(COMP)_EXAMPLE_LIST) $($(COMP)_FIRM_LIST)
72 FINAL_UTILS_LIST_ALL = $($(COMP)_UTILS_LIST)
73 FINAL_EXAMPLE_LIST_INFO=$($(COMP)_EXAMPLE_LIST)
75 endif
77 # Consolidated list of targets to be built
78 FINAL_LIB_LIST_CLEAN = $(addsuffix _clean, $(FINAL_LIB_LIST))
79 FINAL_APP_LIB_LIST_CLEAN = $(addsuffix _clean, $(FINAL_APP_LIB_LIST))
80 FINAL_EXAMPLE_LIST_CLEAN = $(addsuffix _clean, $(FINAL_EXAMPLE_LIST))
81 FINAL_FIRM_LIST_CLEAN = $(addsuffix _clean, $(FINAL_FIRM_LIST))
82 FINAL_DUP_EXAMPLE_LIST_CLEAN = $(addsuffix _clean, $(FINAL_DUP_EXAMPLE_LIST))
83 FINAL_DUP_EXAMPLE_LIST_PACKAGE = $(addsuffix _package, $(FINAL_DUP_EXAMPLE_LIST))
84 FINAL_PKG_LIST_PACKAGE = $(addsuffix _package, $(FINAL_PKG_LIST_ALL))
85 FINAL_PKG_LIST_ALL_CLEAN = $(addsuffix _clean, $(FINAL_PKG_LIST_ALL))
86 FINAL_UTILS_LIST_CLEAN = $(addsuffix _clean, $(FINAL_UTILS_LIST_ALL))
87 FINAL_PKG_LIST_INFO = $(addsuffix _info, $(FINAL_EXAMPLE_LIST_INFO))
88 FINAL_DUP_EXAMPLE_INFO = $(addsuffix _info, $(FINAL_DUP_EXAMPLE_LIST))
90 # Create the _has_dep target for the <module> if _DEPENDS_ON is defined in the <module>_component.mk
91 # For example, CREATE_DEP_TARGETS(nimu_icssg,FINAL_LIB_LIST) does the following:
92 # 1) creates nimu_icssg_has_dep: emac_has_dep (as 'nimu_icssg_DEPENDS_ON = emac' is mentioned in nimu_component.mk)
93 # 2) FINAL_LIB_LIST_DEP_LIST += emac (This is to take emac out of the FINAL_LIB_LIST_HAS_DEP because it will be built by nimu_icssg_has_dep
94 # However CREATE_DEP_TARGETS(mmcsd,FINAL_LIB_LIST) will create mmcsd_has_dep: (as 'mmcsd_DEPENDS_ON ' is not defined in mmcsd_component.mk)
95 # 3) Build the <module> after the dependency is built
97 define CREATE_DEP_TARGETS
98 ifneq ($($(1)_DEPENDS_ON),)
99 ifeq ($($(1)_DEPENDS_ON),$(filter $($(1)_DEPENDS_ON), $($(2))))
100 $(1)_has_dep: $($(1)_DEPENDS_ON)_has_dep
101 +$(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile $(1)
103 $(2)_DEP_LIST += $($(1)_DEPENDS_ON)
104 else
105 $(1)_has_dep:
106 +$(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile $(1)
107 endif
108 else
109 $(1)_has_dep:
110 +$(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile $(1)
111 endif
112 endef
115 # For all the targets to build, create the Dependency targets.
116 $(foreach LIB,$(FINAL_LIB_LIST),$(eval $(call CREATE_DEP_TARGETS,$(LIB),FINAL_LIB_LIST)))
117 $(foreach APP_LIB,$(FINAL_APP_LIB_LIST),$(eval $(call CREATE_DEP_TARGETS,$(APP_LIB),FINAL_APP_LIB_LIST)))
118 $(foreach EXAMPLE,$(FINAL_EXAMPLE_LIST),$(eval $(call CREATE_DEP_TARGETS,$(EXAMPLE),FINAL_EXAMPLE_LIST)))
119 $(foreach DUP_EXAMPLE,$(FINAL_DUP_EXAMPLE_LIST),$(eval $(call CREATE_DEP_TARGETS,$(DUP_EXAMPLE),FINAL_DUP_EXAMPLE_LIST)))
120 $(foreach FIRM,$(FINAL_FIRM_LIST),$(eval $(call CREATE_DEP_TARGETS,$(FIRM),FINAL_FIRM_LIST)))
121 $(foreach UTIL,$(FINAL_UTILS_LIST_ALL),$(eval $(call CREATE_DEP_TARGETS,$(UTIL),FINAL_UTILS_LIST_ALL)))
123 # Create *_has_dep targets , filtering out the duplicate entries (which already appeared as dependent targets to others
124 # For example nimu_icssg_has_dep already builds emac (nimu_icssg_DEPENDS_ON = emac)
125 FINAL_LIB_HAS_DEP_LIST = $(addsuffix _has_dep, $(filter-out $(FINAL_LIB_LIST_DEP_LIST), $(FINAL_LIB_LIST)))
126 FINAL_APP_LIB_HAS_DEP_LIST = $(addsuffix _has_dep,$(filter-out $(FINAL_APP_LIB_LIST_DEP_LIST),$(FINAL_APP_LIB_LIST)))
127 FINAL_EXAMPLE_HAS_DEP_LIST = $(addsuffix _has_dep, $(filter-out $(FINAL_EXAMPLE_LIST_DEP_LIST),$(FINAL_EXAMPLE_LIST)))
128 FINAL_DUP_EXAMPLE_HAS_DEP_LIST = $(addsuffix _has_dep,$(filter-out $(FINAL_DUP_EXAMPLE_LIST_DEP_LIST),$(FINAL_DUP_EXAMPLE_LIST)))
129 FINAL_FIRM_HAS_DEP_LIST = $(addsuffix _has_dep, $(filter-out $(FINAL_FIRM_LIST_DEP_LIST),$(FINAL_FIRM_LIST)))
130 FINAL_UTILS_LIST_ALL_HAS_DEP_LIST = $(addsuffix _has_dep, $(filter-out $(FINAL_UTILS_LIST_ALL_DEP_LIST),$(FINAL_UTILS_LIST_ALL)))
133 .PHONY : all all_libs all_apps all_apps_core version pdk_examples pdk_libs lib app_lib apps tar firm doxygen xdc_meta pdk_libs_clean pdk_app_libs pdk_app_libs_clean examples examples_clean clean package $(pdk_PKG_LIST_ALL) $(pdk_DUP_EXAMPLE_LIST) all_firm firm all_firm_versions all_apps pdk_examples pdk_dup_apps $(FINAL_LIB_HAS_DEP_LIST) $(FINAL_APP_LIB_HAS_DEP_LIST) $(FINAL_EXAMPLE_HAS_DEP_LIST) $(FINAL_DUP_EXAMPLE_HAS_DEP_LIST) $(FINAL_FIRM_HAS_DEP_LIST) %_has_dep $(FINAL_UTILS_LIST_ALL) $(FINAL_PKG_LIST_INFO) $(FINAL_DUP_EXAMPLE_INFO)
135 all: version all_apps
137 all_apps: all_libs
138 +$(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile all_apps_core
140 all_libs: pdk_libs pdk_app_libs firm
142 all_apps_core: pdk_examples
143 $(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile pdk_dup_apps
145 version:
146 $(ECHO) ------------------------------------------------------
147 $(ECHO) \# PDK MM.NN.PP.BB
148 $(ECHO) ------------------------------------------------------
150 pdk_libs: $(FINAL_LIB_HAS_DEP_LIST)
152 pdk_libs_clean: $(FINAL_LIB_LIST_CLEAN)
154 pdk_app_libs: $(FINAL_APP_LIB_HAS_DEP_LIST)
156 pdk_examples: examples
158 pdk_dup_apps: $(FINAL_DUP_EXAMPLE_HAS_DEP_LIST)
160 pdk_app_libs_clean: $(FINAL_APP_LIB_LIST_CLEAN)
162 all_firm: $(FINAL_FIRM_HAS_DEP_LIST)
164 all_firm_clean: $(FINAL_FIRM_LIST_CLEAN)
166 examples: $(FINAL_EXAMPLE_HAS_DEP_LIST)
168 examples_clean: $(FINAL_EXAMPLE_LIST_CLEAN)
170 examples_info: $(FINAL_PKG_LIST_INFO) $(FINAL_DUP_EXAMPLE_INFO)
172 clean: pdk_libs_clean pdk_app_libs_clean examples_clean all_firm_clean
173 $(foreach dup_app, $(FINAL_DUP_EXAMPLE_LIST_CLEAN),\
174 $(MAKE) $(dup_app);\
175 )
177 allclean: destroot_clean all_libs_clean
179 destroot_clean:
180 ifneq ($(DEST_ROOT),)
181 $(RM) -rf $(DEST_ROOT)
182 endif
184 all_libs_clean:
185 $(RM) -rf ../*/lib
186 $(RM) -rf ../*/*/lib
187 $(RM) -rf ../*/*/*/lib
188 $(RM) -rf ../*/*/*/*/lib
189 $(RM) -rf ../drv/emac/firmware/icss_dualmac/bin/
190 $(RM) -rf ../boot/sbl/binary
192 package: $(FINAL_PKG_LIST_PACKAGE) $(FINAL_DUP_EXAMPLE_LIST_PACKAGE)
194 help:
195 $(ECHO) ------------------------------------------------------
196 $(ECHO) \# PDK make help
197 $(ECHO) ------------------------------------------------------
198 $(ECHO) make -s [OPTIONAL MAKE VARIABLES] Note: use gmake for windows
199 $(ECHO)
200 $(ECHO) "Supported targets:"
201 $(ECHO) "------------------"
202 $(ECHO) "all : Builds all libraries and examples for the provided CORE and BOARD"
203 $(ECHO) "allcores : Builds all libraries and examples for all applicable CORES for a BOARD"
204 $(ECHO) "clean : Cleans all libraries and examples for the provided CORE and BOARD"
205 $(ECHO) "allcores_clean : Cleans all libraries and examples for all applicable CORES for a BOARD"
206 $(ECHO) "allclean : Removes the binary directory using rm -rf"
207 $(ECHO) "pdk_examples : Builds all examples"
208 $(ECHO) "pdk_libs : Builds all libraries"
209 $(ECHO) "pdk_app_libs : Builds all application utility libaries"
210 $(ECHO) "custom_target : Builds the target list provided by BUILD_TARGET_LIST_ALL= for all cores and profiles"
211 $(ECHO) "<Module> : Builds a module. Possible values:"
212 $(ECHO) "[$(FINAL_LIB_LIST)]"
213 $(ECHO) ""
214 $(ECHO) "<Module_App_lib> : Builds application libraries:"
215 $(ECHO) "[$(FINAL_APP_LIB_LIST)]"
216 $(ECHO) ""
217 $(ECHO) "<Module_App> : Builds an application. Possible values:"
218 $(ECHO) "[$(FINAL_EXAMPLE_LIST) $(FINAL_DUP_EXAMPLE_LIST)]"
219 $(ECHO) ""
220 $(ECHO) "<Utils> : Runs utilities which generate code. Possible values:"
221 $(ECHO) "[$(FINAL_UTILS_LIST_ALL) ]"
222 $(ECHO) ""
223 $(ECHO) "Optional make variables:"
224 $(ECHO) "------------------------"
225 $(ECHO) "BOARD=[$(BOARD_LIST_ALL)]"
226 $(ECHO) " Default: $(BOARD)"
227 $(ECHO) "CORE=[$(CORE_LIST_ALL)]"
228 $(ECHO) " Default: $(CORE)"
229 $(ECHO) "BUILD_PROFILE=[$(BUILD_PROFILE_LIST_ALL)]"
230 $(ECHO) " Default: $(BUILD_PROFILE)"
231 $(ECHO) "OS=[Windows_NT linux]"
232 $(ECHO) " Default: Windows_NT"
233 $(ECHO) " COMP = $(COMP)"
234 $(ECHO) " PDK_INSTALL_PATH = $(PDK_INSTALL_PATH)"
235 $(ECHO) " XDC_INSTALL_PATH = $(XDC_INSTALL_PATH)"
237 allcores:
238 $(foreach current_core, $(CORE_LIST_ALL),\
239 $(MAKE) all CORE=$(current_core) BOARD=$(BOARD) BUILD_PROFILE_$(current_core)=$(BUILD_PROFILE);\
240 )
242 allcores_clean:
243 $(foreach current_core, $(CORE_LIST_ALL),\
244 $(MAKE) clean CORE=$(current_core) BOARD=$(BOARD) BUILD_PROFILE_$(current_core)=$(BUILD_PROFILE);\
245 )
247 allcores_package:
248 $(foreach current_core, $(CORE_LIST_ALL),\
249 $(MAKE) package CORE=$(current_core) BOARD=$(BOARD) BUILD_PROFILE_$(current_core)=$(BUILD_PROFILE);\
250 )
252 allboards:
253 $(foreach current_board, $(BOARD_LIST_ALL),\
254 $(MAKE) allcores BOARD=$(current_board) BUILD_PROFILE=$(BUILD_PROFILE);\
255 )
257 allboards_clean:
258 $(foreach current_board, $(BOARD_LIST_ALL),\
259 $(MAKE) allcores_clean BOARD=$(current_board) BUILD_PROFILE=$(BUILD_PROFILE);\
260 )
262 profiles:
263 $(foreach current_profile, $(BUILD_PROFILE_LIST_ALL),\
264 $(MAKE) allcores BOARD=$(BOARD) BUILD_PROFILE=$(current_profile);\
265 )
267 profiles_clean:
268 $(foreach current_profile, $(BUILD_PROFILE_LIST_ALL),\
269 $(MAKE) allcores_clean BOARD=$(BOARD) BUILD_PROFILE=$(current_profile);\
270 )
272 pdk_libs_allcores:
273 $(foreach current_core, $(CORE_LIST_ALL),\
274 $(MAKE) pdk_libs CORE=$(current_core) BOARD=$(BOARD) BUILD_PROFILE_$(current_core)=$(BUILD_PROFILE);\
275 )
277 pdk_libs_allcores_clean:
278 $(foreach current_core, $(CORE_LIST_ALL),\
279 $(MAKE) pdk_libs_clean CORE=$(current_core) BOARD=$(BOARD) BUILD_PROFILE_$(current_core)=$(BUILD_PROFILE);\
280 )
282 pdk_libs_profiles:
283 $(foreach current_profile, $(BUILD_PROFILE_LIST_ALL),\
284 $(MAKE) pdk_libs_allcores BOARD=$(BOARD) BUILD_PROFILE=$(current_profile);\
285 )
287 pdk_libs_profiles_clean:
288 $(foreach current_profile, $(BUILD_PROFILE_LIST_ALL),\
289 $(MAKE) pdk_libs_allcores_clean BOARD=$(BOARD) BUILD_PROFILE=$(current_profile);\
290 )
292 custom_target:
293 $(foreach current_profile, $(BUILD_PROFILE_LIST_ALL),\
294 $(foreach current_core, $(CORE_LIST_ALL),\
295 $(foreach current_build_target, $(BUILD_TARGET_LIST_ALL),\
296 $(MAKE) $(current_build_target) CORE=$(current_core) BOARD=$(BOARD) BUILD_PROFILE_$(current_core)=$(current_profile);\
297 )))
299 allall:
300 $(foreach current_board, $(BOARD_LIST_ALL),\
301 $(MAKE) profiles BOARD=$(current_board);\
302 )
304 allall_clean:
305 $(foreach current_board, $(BOARD_LIST_ALL),\
306 $(MAKE) profiles_clean BOARD=$(current_board);\
307 )
309 # $(ECHO) "all_firm_versions: HOSTCORE is $(HOSTCORE) CORE is $(CORE) PRUVERSION is $(pru_version)"; \
311 all_firm_versions:
312 $(foreach pru_version, $(PRU_VERSION_LIST),\
313 $(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile all_firm HOSTCORE=$(HOSTCORE) CORE=$(CORE) PRUVERSION=$(pru_version); \
314 )
316 # Build firmware targets for PRU cores which are defined in LIMIT_CORES only
317 firm:
318 $(foreach pru_core, $(filter $(PRUCORE_LIST), $(LIMIT_CORES)),\
319 $(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile all_firm_versions HOSTCORE=$(CORE) CORE=$(pru_core); \
320 )
322 lib: pdk_libs
324 apps: examples
325 app_libs: pdk_app_libs
327 xdc_meta:
328 $(XDC) XDCBUILDCFG=config_mk.bld
330 xdc_meta_clean:
331 $(XDC) clean XDCBUILDCFG=config_mk.bld
333 doxygen: xdc_meta
334 ifeq ($(DOXYGEN_SUPPORT),yes)
335 $(ECHO) Creating Doxygen API guide ...
336 @doxygen docs/Doxyfile
337 else
338 $(ECHO) No Doxygen Support available ...
339 endif
341 clean_doxygen:
342 ifeq ($(DOXYGEN_SUPPORT),yes)
343 $(ECHO) cleaned Doxygen API guide ...
344 $(RM) -rf docs/doxygen
345 else
346 $(ECHO) No Doxygen Support available ...
347 endif
349 tar: lib firm doxygen
350 $(ECHO) Creating the Release Tar ball for $(COMP)...
351 $(XDC) clean XDCBUILDCFG=config_mk.bld
352 $(XDC) release XDCBUILDCFG=config_mk.bld
353 $(ECHO) please check $(COMP)/packages folder for the release tarball
355 #=================================================================
356 #All PDKs libs and tests
357 $(FINAL_PKG_LIST_ALL) $(FINAL_DUP_EXAMPLE_LIST):
358 $(if $(filter $(SOC), $(subst emptyreplacement,,$($@_SOCLIST))),\
359 $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
360 $(if $(filter yes, $(subst emptyreplacement,,$($@_XDC_CONFIGURO))),\
361 $(MAKE) -C $($@_PATH) $($@_MAKEFILE) xdc_configuro,),),\
362 $(if $(filter $(BOARD), $(subst emptyreplacement,,$($@_BOARDLIST))),\
363 $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
364 $(if $(filter yes, $(subst emptyreplacement,,$($@_XDC_CONFIGURO))),\
365 $(MAKE) -C $($@_PATH) $($@_MAKEFILE) xdc_configuro,),),))
366 $(if $(filter $(SOC), $(subst emptyreplacement,,$($@_SOCLIST))),\
367 $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
368 $(MAKE) -C $($@_PATH) $($@_MAKEFILE),$(ECHO) Nothing to be done for $(SOC) $(CORE) $@),\
369 $(if $(filter $(BOARD), $(subst emptyreplacement,,$($@_BOARDLIST))),\
370 $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
371 $(MAKE) -C $($@_PATH) $($@_MAKEFILE),$(ECHO) Nothing to be done for $(BOARD) $(SOC) $(CORE) $@),$(ECHO) Nothing to be done for $(SOC) $@))
372 $(if $(filter $(SOC), $(subst emptyreplacement,,$($@_SOCLIST))),\
373 $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
374 $(if $(filter yes, $(subst emptyreplacement,,$($@_SBL_IMAGEGEN))),\
375 $(MAKE) -C $($@_PATH) $($@_MAKEFILE) sbl_imagegen,),),\
376 $(if $(filter $(BOARD), $(subst emptyreplacement,,$($@_BOARDLIST))),\
377 $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
378 $(if $(filter yes, $(subst emptyreplacement,,$($@_SBL_IMAGEGEN))),\
379 $(MAKE) -C $($@_PATH) $($@_MAKEFILE) sbl_imagegen,),),))
380 $(if $(filter $(SOC), $(subst emptyreplacement,,$($@_SOCLIST))),\
381 $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
382 $(if $(filter yes, $(subst emptyreplacement,,$($@_SBL_APPIMAGEGEN))),\
383 $(MAKE) -C $($@_PATH) $($@_MAKEFILE) sbl_appimagegen,),),\
384 $(if $(filter $(BOARD), $(subst emptyreplacement,,$($@_BOARDLIST))),\
385 $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
386 $(if $(filter yes, $(subst emptyreplacement,,$($@_SBL_APPIMAGEGEN))),\
387 $(MAKE) -C $($@_PATH) $($@_MAKEFILE) sbl_appimagegen,),),))
389 $(FINAL_PKG_LIST_ALL_CLEAN) $(FINAL_DUP_EXAMPLE_LIST_CLEAN):
390 $(if $(filter $(SOC), $(subst emptyreplacement,,$($(subst _clean,,$@)_SOCLIST))),\
391 $(MAKE) -C $($(subst _clean,,$@)_PATH) $($(subst _clean,,$@)_MAKEFILE) clean,\
392 $(if $(filter $(BOARD), $(subst emptyreplacement,,$($(subst _clean,,$@)_BOARDLIST))),\
393 $(MAKE) -C $($(subst _clean,,$@)_PATH) $($(subst _clean,,$@)_MAKEFILE) clean,))
395 $(FINAL_UTILS_LIST_ALL):
396 $(if $(filter $(SOC), $(subst emptyreplacement,,$($@_SOCLIST))),\
397 $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
398 $(MAKE) -C $($@_PATH) $($@_MAKEFILE),$(ECHO) Nothing to be done for $(SOC) $(CORE) $@),\
399 $(if $(filter $(BOARD), $(subst emptyreplacement,,$($@_BOARDLIST))),\
400 $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
401 $(MAKE) -C $($@_PATH) $($@_MAKEFILE),$(ECHO) Nothing to be done for $(BOARD) $(SOC) $(CORE) $@),$(ECHO) Nothing to be done for $(SOC) $@))
403 $(FINAL_PKG_LIST_PACKAGE) $(FINAL_DUP_EXAMPLE_LIST_PACKAGE):
404 $(if $(filter $(SOC), $(subst emptyreplacement,,$($(subst _package,,$@)_SOCLIST))),\
405 $(MAKE) -C $($(subst _package,,$@)_PATH) $($(subst _package,,$@)_MAKEFILE) package,\
406 $(if $(filter $(BOARD), $(subst emptyreplacement,,$($(subst _package,,$@)_BOARDLIST))),\
407 $(MAKE) -C $($(subst _package,,$@)_PATH) $($(subst _package,,$@)_MAKEFILE) package,$(ECHO) Nothing to be done for $(SOC) $(subst _package,,$@)))
409 $(FINAL_PKG_LIST_INFO) $(FINAL_DUP_EXAMPLE_INFO):
410 $(if $(filter $(SOC), $(subst emptyreplacement,,$($(subst _info,,$@)_SOCLIST))),\
411 $(ECHO) $(subst _info,,$@) Applicable Cores: $($(subst _info,,$@)_$(SOC)_CORELIST) ,\
412 $(if $(filter $(BOARD), $(subst emptyreplacement,,$($(subst _info,,$@)_BOARDLIST))),\
413 $(ECHO) $(subst _info,,$@) Applicable Cores: $($(subst _info,,$@)_$(SOC)_CORELIST) ,))
415 #Below is used only for checking c++ build errors during development, not to be used for any other purpose
416 cplusplus_build:
417 +$(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile all BUILD_PROFILE=debug CPLUSPLUS_BUILD=yes
419 # Nothing beyond this point