]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/pdk.git/commitdiff
PRSDK-7419: Static top level makefile & setupenv.sh for unified PDK git repo
authorMahesh Radhakrishnan <m-radhakrishnan2@ti.com>
Wed, 13 Nov 2019 19:22:39 +0000 (14:22 -0500)
committerMahesh Radhakrishnan <a0875154@ti.com>
Tue, 17 Dec 2019 17:29:07 +0000 (11:29 -0600)
17 files changed:
packages/makefile [new file with mode: 0755]
packages/pdksetupenv.bat [new file with mode: 0644]
packages/pdksetupenv.sh [new file with mode: 0755]
packages/ti/board/diag/board_diag_component.mk
packages/ti/board/diag/makefile
packages/ti/boot/sbl/makefile
packages/ti/boot/sbl/sbl_component.mk
packages/ti/build/Rules.make
packages/ti/build/comp_top.mk
packages/ti/build/make_install
packages/ti/build/makefile
packages/ti/build/makefile_non-buildinfra [new file with mode: 0644]
packages/ti/build/makerules/component.mk
packages/ti/build/makerules/platform.mk
packages/ti/build/pdk_tools_path.mk [new file with mode: 0644]
packages/ti/transport/ndk/nimu/nimu_component.mk
packages/ti/transport/ndk/nimu/src/v7/src_files_v7.mk

diff --git a/packages/makefile b/packages/makefile
new file mode 100755 (executable)
index 0000000..6b5c9e4
--- /dev/null
@@ -0,0 +1,172 @@
+#*******************************************************************************
+#* FILE PURPOSE: Top level makefile for Creating Component Libraries and example 
+#*               binaries of PDK
+#*******************************************************************************
+#* FILE NAME: makefile
+#*
+#* DESCRIPTION: Builds the PDK Drivers & Examples 
+#*
+#*
+#*******************************************************************************
+#*
+# (Mandatory) Specify where various tools are installed.
+.NOTPARALLEL:
+# This make file is not parallel in its highest level. This is done to serialize the multiple SOCS,BOARDS,CORES.
+# However the subsequent makefiles invoked by this makefile have parallelism supported. i.e -j option given to this
+# makefile will be passed on to the subsequent makefiles resulting in parallel builds. 
+
+ifeq ($(RULES_MAKE), )
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+else
+include $(RULES_MAKE)
+endif
+
+ifndef MAKE
+export MAKE = make
+endif
+
+ifndef ECHO
+export ECHO = echo
+endif
+
+ifndef RM
+export RM = rm -f
+endif
+
+ifndef CP
+export CP = cp
+endif
+
+ifneq ($(LIMIT_SOCS),)
+SOC_LIST = $(LIMIT_SOCS)
+else
+SOC_LIST = $(SOC)
+endif
+
+ifneq ($(LIMIT_BOARDS),)
+BOARD_LIST = $(LIMIT_BOARDS)
+else
+BOARD_LIST = $(BOARD)
+endif
+
+
+ifneq ($(LIMIT_CORES),)
+# PRU cores are not built directly
+CORE_LIST = $(filter-out $(PRUCORE_LIST),$(LIMIT_CORES))
+else
+CORE_LIST = $(CORE)
+endif
+.PHONY: all all_libs all_examples clean env_check help xdc_meta \
+   buildinfra_all buildinfra_clean buildinfra_pdk_examples \
+   non-buildinfra_all non-buildinfra_clean buildinfra_pdk_libs  non-buildinfra_pdk_examples \
+   cplusplus_build
+
+# Default BUILD profile is release
+BUILD_PROFILE ?= release
+#The top level makefile two kinds of sub modules. Ones which are supported by the 'build infrastructure' and which are not.
+# i.e The modules which supports 'build infrastructure' are included in ti/build/component.mk and follow a standard set of conventions and targets. 
+# They can be built using ti/build/makefile. Many newer targets such as AM3/4/5/6/7 have their modules in this category.
+# Those targets in this makefile has the 'buildinfra_' prefix in them.
+
+# The non-build infrastructure modules are the ones which do not adhere to the ti/build/component.mk . They have custom makefiles which are either RTSC generated or custom written makefiles with custom targets & build options.
+# Many legacy components for K1/K2 follow this methodology.
+# Those non-build infrastructure targets in this makefile has 'non-buildinfra_' prefix in them.
+
+
+### Common targets for build infra and non-build infra
+all: env_check buildinfra_all non-buildinfra_all
+all_libs: env_check buildinfra_pdk_libs non-buildinfra_pdk_libs
+all_examples: env_check buildinfra_pdk_examples non-buildinfra_pdk_examples
+clean: env_check buildinfra_clean non-buildinfra_clean
+
+### Targets which are built by build infrastructure (ti/build/makefile
+# The below builds for each SOC, its applicable BOARDS and CORES, filtered by the LIMIT_SOCS/BOARDS/CORES
+
+buildinfra_all buildinfra_pdk_libs buildinfra_pdk_examples buildinfra_clean :
+       $(foreach current_soc, $(SOC_LIST),\
+       $(foreach current_board, $(filter $(BOARD_LIST),$(BOARD_LIST_$(current_soc)) ), \
+       $(foreach current_core, $(filter $(CORE_LIST),$(CORE_LIST_$(current_soc)) ), \
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/build -f makefile $(subst buildinfra_,,$@) CORE=$(current_core) BOARD=$(current_board) SOC=$(current_soc) BUILD_PROFILE=$(BUILD_PROFILE);\
+       )))
+
+#      echo "$@ called with CORE=$(current_core) BOARD=$(current_board) SOC=$(current_soc) BUILD_PROFILE=$(BUILD_PROFILE)";\
+
+### Targets which are not built by build infrastructure, (eg legacy rtsc generated makefiles,custom makefiles
+non-buildinfra_all non-buildinfra_pdk_libs non-buildinfra_pdk_examples:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/build -f makefile_non-buildinfra $(subst non-buildinfra_,,$@) PDK_SOC=$(PDK_SOC)
+
+### Non library/example targets
+
+env_check:
+ifeq ($(PDK_SOC),)
+       $(ECHO) "Warning !! PDK_SOC is not set!!! Please run 'help' and refer to 'Optional Arguments' in the help section"
+endif
+
+help: env_check
+       $(ECHO) "------------------------------------------------------"
+       $(ECHO) "\# Top level make help"
+       $(ECHO) "------------------------------------------------------"
+       $(ECHO) "make <target> [OPTIONAL ARGUMENTS]"
+       $(ECHO) ""
+       $(ECHO) "------------------"
+       $(ECHO) "TARGETS <target>"
+       $(ECHO) "------------------"
+       $(ECHO) " all: Builds all modules (includes library & applications). Available modules are "
+       $(ECHO) "     Example:  \"make all \""
+       $(ECHO) ""
+       $(ECHO) " clean: Cleans libraries & applications of all modules. Available modules are "
+       $(ECHO) "     Example:  \"make clean \""
+       $(ECHO) ""
+       $(ECHO) " all_libs: Builds all pdk driver libraries"
+       $(ECHO) "     Example:  \"make all_libs \""
+       $(ECHO) ""
+       $(ECHO) " clean: Cleans libraries & applications of all modules."
+       $(ECHO) "     Example:  \"make clean \""
+       $(ECHO) ""
+       $(ECHO) " xdc_meta/xdc_meta: Generates xdc meta file (used if pdk is cloned from pdk.git)."
+       $(ECHO) "     Example:  \"make xdc_meta \""
+       $(ECHO) ""
+       $(ECHO) "------------------"
+       $(ECHO) "OPTIONAL ARGUMENTS "
+       $(ECHO) "------------------"
+       $(ECHO) "LIMIT_SOCS=<socs>  This will restrict the building of libraries/apps to the particular SOC(s) specified"
+       $(ECHO) "Valid values of LIMIT_SOCS are $(LIMIT_SOCS)"
+       $(ECHO) ""
+       $(ECHO) "LIMIT_BOARDS=<boards>  This will restrict the building of libraries/apps to the particular BOARD(s) specified"
+       $(ECHO) "Valid values of LIMIT_BOARDS are $(LIMIT_BOARDS)"
+       $(ECHO) ""
+       $(ECHO) "LIMIT_CORES=<cores>  This will restrict the building of libraries/apps to the particular CORE(s) specified"
+       $(ECHO) "Valid values of LIMIT_CORES are $(LIMIT_CORES)"
+       $(ECHO) ""
+       $(ECHO) "PDK_SOC=<soc>  This will specify the SOC version if the pdk directory does not specify it (if git clone pdk.git is used)"
+       $(ECHO) "If pdk is git cloned, PDK_SOC should be set to the <soc> where the original PDK directory from the installer was pdk_<soc>_<version>)"
+       $(ECHO) "For example if the original PDK installed directory (which got replaced by pdk.git) was <procsdk_install_dir>/pdk_am65xx_1_0_5, PDK_SOC=am65xx"
+       $(ECHO) ""
+       $(ECHO) "BUILD_PROFILE=<release/debug>  This will determine the type of libraries/examples generated (release/debug friendly). Default is 'release "
+       $(ECHO) "Valid values of LIMIT_CORES are $(LIMIT_CORES)"
+       $(ECHO) ""
+       $(ECHO) "SOC=<soc> CORE=<core> BOARD=<board> This will build libraries/examples for the specified combination of <soc,core,board>"
+       $(ECHO) "Valid values of SOC/BOARD/CORE are found from LIMIT_SOC/BOARD/CORES above"
+       
+       
+
+
+# if PDK.git is initiated from a fresh clone, the XDC meta headers will not have been generated. (xdc meta headers are used for CCS based projects)
+# These headers are usually generated during the procsdk installer building process ('make release' from within a component's directory)
+# This xdc_meta target will help enable the user to generate the same meta files after a fresh git clone of pdk
+
+# Find all the directories with package.xdc and run xdc_meta on them to generate the rtsc meta files
+PACKAGE_XDC_LOC := $(wildcard */package.xdc)
+PACKAGE_XDC_LOC += $(wildcard */*/package.xdc)
+PACKAGE_XDC_LOC += $(wildcard */*/*/package.xdc)
+PACKAGE_XDC_LOC += $(wildcard */*/*/*/package.xdc)
+SUBDIRS =  $(filter-out ./,$(dir $(PACKAGE_XDC_LOC)))
+xdc_meta:
+       $(foreach xdcdir, $(SUBDIRS),\
+       $(MAKE) -C $(xdcdir) $@; \
+       )
+
+cplusplus_build:
+       $(MAKE) all BUILD_PROFILE=debug CPLUSPLUS_BUILD=yes
+
diff --git a/packages/pdksetupenv.bat b/packages/pdksetupenv.bat
new file mode 100644 (file)
index 0000000..3f6122e
--- /dev/null
@@ -0,0 +1,90 @@
+@REM ******************************************************************************\r
+@REM * FILE PURPOSE: Environment Setup for building PDK\r
+@REM ******************************************************************************\r
+@REM * FILE NAME: pdksetupenv.bat\r
+@REM *\r
+@REM * DESCRIPTION: \r
+@REM *  Configures and sets up the Build Environment for PDK.\r
+@REM *\r
+@REM *  The batch file expects an optional argument:PDK_INSTALL_PATH: Location\r
+@REM *  of the PDK package.  If the argument is not specified the batch file\r
+@REM *  assumes that the PDK is installed in the same location where the batch\r
+@REM *  file is located and is being executed.\r
+@REM *\r
+@REM * USAGE:\r
+@REM *  pdksetupenv.bat "C:\ti\pdk_<device>_<version>\packages"\r
+@REM *   --- OR ---\r
+@REM *  pdksetupenv.bat\r
+@REM *\r
+@REM * Copyright (C) 2012-2019, Texas Instruments, Inc.\r
+@REM *****************************************************************************\r
+@echo off\r
+@REM *******************************************************************************\r
+@REM ********************** GET PARAMETERS PASSED THROUGH ARGUMENT   ***************\r
+@REM *******************************************************************************\r
+@REM Parameter Validation: Check if the argument was passed to the batch file and\r
+@REM if so we use that else we default to the working directory where the batch \r
+@REM file was invoked from\r
+\r
+\r
+@REM Find the PDK SOC and Version from the directory name\r
+cd ..\\r
+set s=%CD:\= %\r
+for %%a  in (%s%) do (\r
+ set pdkdir=%%a\r
+)\r
+\r
+for /f "tokens=1,2,3,4,5 delims=/_" %%a in ("%pdkdir%") do set pdk_soc=%%b&set v1=%%c&set v2=%%d&set v3=%%e\r
+set pdkdir_ver=%v1%_%v2%_%v3%\r
+\r
+@REM Find the SDK directory to set SDK_INSTALL_PATH if it is not already set\r
+cd ..\r
+set sdkdir=%CD%\r
+\r
+@REM return to the original directory (pdk_*/packages)\r
+cd %pdkdir%\r
+cd packages\r
+\r
+\r
+if not defined SDK_INSTALL_PATH (\r
+   set SDK_INSTALL_PATH=%sdkdir%\r
+)\r
+\r
+if not defined PDK_INSTALL_PATH (\r
+   set PDK_INSTALL_PATH=%SDK_INSTALL_PATH%/%pdkdir%/packages\r
+)\r
+@REM PDK SoC and version\r
+if not defined PDK_SOC (\r
+   set PDK_SOC=%pdk_soc%\r
+)\r
+\r
+if not defined PDK_VERSION (\r
+    set PDK_VERSION=%pdkdir_ver%\r
+)\r
+\r
+@REM Find the XDC version from pdk/packages/ti/build/pdk_tools_path.mk\r
+for /f %%i IN ('findstr "XDC_VERSION=" %PDK_INSTALL_PATH%\ti\build\pdk_tools_path.mk') do set xdcver=%%i\r
+for /f "tokens=1,2 delims=//=" %%a in ("%xdcver%") do set XDC_VERSION=%%b\r
+\r
+if not defined GMAKE_INSTALL_PATH (\r
+    set GMAKE_INSTALL_PATH=%SDK_INSTALL_PATH%/xdctools_%XDC_VERSION%\r
+)\r
+set GMAKE_INSTALL_PATH=%GMAKE_INSTALL_PATH:\=/%\r
+@REM GMAKE Tool location; Uncomment the following line to set the \r
+@REM gmake install path into env PATH variable.\r
+set PATH=%GMAKE_INSTALL_PATH:/=\%;%PATH%\r
+\r
+@REM Define Rules.make\r
+set RULES_MAKE=%PDK_INSTALL_PATH%/ti/build/Rules.make\r
+\r
+@REM Print the environmental variables\r
+@echo ***************************************************\r
+@echo Environment Configuration:\r
+@echo ***************************************************\r
+@echo     SDK_INSTALL_PATH        : %SDK_INSTALL_PATH%\r
+@echo     PDK_INSTALL_PATH        : %PDK_INSTALL_PATH%\r
+@echo     GMAKE_INSTALL_PATH      : %GMAKE_INSTALL_PATH%\r
+@echo     PDK_SOC                 : %PDK_SOC%\r
+@echo     PDK_VERSION             : %PDK_VERSION%\r
+@echo     RULES_MAKE              : %RULES_MAKE%\r
+@echo ***************************************************\r
diff --git a/packages/pdksetupenv.sh b/packages/pdksetupenv.sh
new file mode 100755 (executable)
index 0000000..2912f2d
--- /dev/null
@@ -0,0 +1,90 @@
+#!/bin/bash
+# ******************************************************************************
+# * FILE PURPOSE: Environment Setup for building PDK
+# ******************************************************************************
+# * FILE NAME: pdksetupenv.sh
+# *
+# * DESCRIPTION: 
+# *  Configures and sets up the Build Environment for PDK. 
+# *
+# *  The batch file expects an optional argument:PDK_INSTALL_PATH: Location
+# *  of the PDK package.  If the argument is not specified the batch file
+# *  assumes that the PDK is installed in the same location where the batch
+# *  file is located and is being executed.
+# *
+# * USAGE:
+# *  source ./pdksetupenv.sh ~/ti/pdk_<device>_<version>/packages
+# *     --- OR ---
+# *  source ./pdksetupenv.sh
+# *
+# * Copyright (C) 2012-2018, Texas Instruments, Inc.
+# *****************************************************************************
+
+# *******************************************************************************
+# ******************* CHECK IF SCRIPT WAS SOURCED OR SIMPLY RUN   ***************
+# *******************************************************************************
+# pdksetupenv.sh must always be sourced. Sometimes, peole forget this and can run
+# it. We display and error and a prompt whe we detect this.
+if [[ "$(basename -- "$0")" == "pdksetupenv.sh" ]]; then
+    echo "Error!! Don't run $0, source it" >&2
+    echo "USAGE:" >&2
+    echo "    source $0" >&2
+    exit 1
+fi
+
+# *******************************************************************************
+# ********************** GET PARAMETERS PASSED THROUGH ARGUMENT   ***************
+# *******************************************************************************
+# Parameter Validation: Check if the argument was passed to the batch file and
+# if so we use that else we default to the working directory where the batch 
+# file was invoked from
+
+tempVar=$1
+if [ ! -z $tempVar ];then
+    export PDK_INSTALL_PATH=$tempVar
+else
+    export PDK_INSTALL_PATH=${PWD}
+fi
+
+# Derive PDK_SOC and PDK_VERSION from the directory name PWD
+cd ..
+CURDIR_LAST=${PWD##*/}
+IFS='_' read -ra ADDR <<< "$CURDIR_LAST"
+
+
+if [ -z $PDK_SOC ]; then
+   export PDK_SOC=${ADDR[1]}
+fi
+
+if [ -z "${ADDR[2]}" ]; then
+    export PDK_VERSION=
+else    
+    export PDK_VERSION=${ADDR[2]}_${ADDR[3]}_${ADDR[4]}
+fi
+cd -
+
+# TI SDK root directory. Derive from PDK INSTALL PATH
+if [ -z $SDK_INSTALL_PATH ]; then
+cd ../../
+export SDK_INSTALL_PATH=${PWD}
+cd -
+fi
+
+# *******************************************************************************
+# ********************** CHECK REQUIRED ENVIRONMENT DEFINES BEGIN ***************
+# *******************************************************************************
+
+
+# Rules.make location. 
+export RULES_MAKE="${PDK_INSTALL_PATH}/ti/build/Rules.make"
+
+
+echo "**************************************************************************"
+echo "Environment Configuration:"
+echo "**************************************************************************"
+echo "    SDK_INSTALL_PATH        : $SDK_INSTALL_PATH"
+echo "    PDK_INSTALL_PATH        : $PDK_INSTALL_PATH"
+echo "    PDK_SOC                 : $PDK_SOC"
+echo "    PDK_VERSION             : $PDK_VERSION"
+echo "    RULES_MAKE              : $RULES_MAKE"
+echo "**************************************************************************"
index da730e6e8b686381c2a4a827ab52269725f8e5d4..c4b087bdcd8d5fa6d66fbdad5f7ed2ba52ed81fd 100755 (executable)
@@ -219,7 +219,12 @@ cpsw_board_diag_BOARDLIST = $(board_diag_$(SOC)_BOARDLIST)
 cpsw_board_diag_$(SOC)_CORELIST = mcu2_0
 export cpsw_board_diag_$(SOC)_CORELIST
 export cpsw_board_diag_SBL_APPIMAGEGEN = $(board_diag_APPIMAGEGEN_CTRL)
+
+# Add CPSW example only if the CPSW component path exists
+ifneq ($(wildcard $(PDK_CPSW_COMP_PATH)),)
 board_diag_EXAMPLE_LIST += cpsw_board_diag
+endif
+
 
 # CURRENT MONITOR
 currentMonitor_board_diag_COMP_LIST = currentMonitor_board_diag
index b2aa4e06ec2355312018d7201957619d3a83d7db..0a7978ff9444409d0c3c091c9d11dea223c72a4c 100755 (executable)
@@ -82,7 +82,8 @@ else
 export SPISCRIPT=./create_spi.sh
 endif
 
-ALL_BOARDS = idkAM571x idkAM572x idkAM574x evmAM572x evmK2G iceK2G evmAM335x evmAM437x idkAM437x skAM437x bbbAM335x icev2AM335x skAM335x evmOMAPL137 iceAMIC110 am65xx_evm am65xx_idk j721e_evm
+ALL_BOARDS ?= idkAM571x idkAM572x idkAM574x evmAM572x evmK2G iceK2G evmAM335x evmAM437x idkAM437x skAM437x bbbAM335x icev2AM335x skAM335x evmOMAPL137 iceAMIC110 am65xx_evm am65xx_idk j721e_evm
+
 
 idkAM571x_DIAG = dcan eeprom emmc framework framework_loader gmac haptics icss_emac lcd_touchscreen led led_industrial mcspi mem mmcsd pmic qspi timer uart
 idkAM572x_DIAG = dcan eeprom emmc framework framework_loader gmac haptics icss_emac lcd_touchscreen led led_industrial mcspi mem mmcsd pmic qspi uart
index 55949e8ef547b4f216749455ffde8d8f1eac30f4..bdb0ee57b51828df0f2023e7186dd220998d901e 100644 (file)
@@ -64,12 +64,53 @@ export MAKE = make
 endif
 
 # PHONY Targets
-.PHONY: all clean spi_flashwriter spi_flashwriter_clean flashwriter flashwriter_clean mmcsd_flashwriter mmcsd_flashwriter_clean example example_clean tools sbl_lib sbl_lib_clean
+.PHONY: all clean spi_flashwriter spi_flashwriter_clean flashwriter flashwriter_clean mmcsd_flashwriter mmcsd_flashwriter_clean example example_clean tools sbl_lib sbl_lib_clean all_sbl_images all_sbl_images_clean
 
 # all rule
 all:
        @$(MAKE) -f ./board/$(BOARD)/build/makefile all
 
+# This target is used to build all configurations for a particular SBL_PLATFORM
+all_sbl_images:
+ifeq ($(SBL_PLATFORM),$(filter $(SBL_PLATFORM), am65xx j721e))
+       # All keystone 3
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl/build all
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl/build all
+else
+ifeq ($(SBL_PLATFORM), am57xx)
+       # am57xx
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=idkAM572x SOC=AM572x BOOTMODE=mmcsd
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=idkAM572x SOC=AM572x BOOTMODE=qspi
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=idkAM574x SOC=AM574x BOOTMODE=mmcsd
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=idkAM574x SOC=AM574x BOOTMODE=qspi
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=idkAM571x SOC=AM571x BOOTMODE=mmcsd
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=idkAM571x SOC=AM571x BOOTMODE=qspi
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=evmAM572x SOC=AM572x BOOTMODE=mmcsd
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=evmAM572x SOC=AM572x BOOTMODE=emmc
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl flashwriter BOARD=idkAM572x SOC=AM572x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl flashwriter BOARD=idkAM574x SOC=AM574x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl flashwriter BOARD=idkAM571x SOC=AM571x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl sbl_lib BOARD=idkAM572x SOC=AM572x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl sbl_lib BOARD=idkAM574x SOC=AM574x
+else ifeq ($(SBL_PLATFORM), k2g)
+       # k2g
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=evmK2G SOC=K2G BOOTMODE=mmcsd
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=evmK2G SOC=K2G BOOTMODE=qspi
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl flashwriter BOARD=evmK2G SOC=K2G
+else ifeq ($(SBL_PLATFORM), omapl137)
+       # omapl137
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=evmOMAPL137 SOC=OMAPL137 BOOTMODE=spi
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl spi_flashwriter BOARD=evmOMAPL137 SOC=OMAPL137
+else ifeq ($(SBL_PLATFORM), omapl138)
+       # omapl138
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=lcdkOMAPL138 SOC=OMAPL138 BOOTMODE=mmcsd
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all BOARD=lcdkC6748 SOC=C6748 BOOTMODE=mmcsd
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl mmcsd_flashwriter BOARD=lcdkOMAPL138 SOC=OMAPL138
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl mmcsd_flashwriter BOARD=lcdkC6748 SOC=C6748
+endif
+endif
+
+
 spi_flashwriter:
        @$(MAKE) -f ./tools/flashWriter/spi/src/makefile $@
 
@@ -135,4 +176,37 @@ sbl_lib_clean:
 eveLoader_clean:
 ifeq ($(SOC),$(filter $(SOC), AM572x AM574x))
        @$(MAKE) -C ./example/mpuM4EveLoaderApp $@
-endif
\ No newline at end of file
+endif
+
+# This target is used to clean all images for a particular SBL_PLATFORM
+all_sbl_images_clean:
+ifeq ($(SBL_PLATFORM), am57xx)
+       # am57xx
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl clean BOARD=idkAM572x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl clean BOARD=idkAM574x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl clean BOARD=idkAM571x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl clean BOARD=evmAM572x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl flashwriter_clean BOARD=idkAM572x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl flashwriter_clean BOARD=idkAM574x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl flashwriter_clean BOARD=idkAM571x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl sbl_lib_clean BOARD=idkAM572x
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl sbl_lib_clean BOARD=idkAM574x
+else ifeq ($(SBL_PLATFORM), k2g)
+       # k2g
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl clean BOARD=evmK2G
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl flashwriter_clean BOARD=evmK2G
+else ifeq ($(SBL_PLATFORM), omapl137)
+       # omapl137
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl clean BOARD=evmOMAPL137
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl spi_flashwriter_clean BOARD=evmOMAPL137
+else ifeq ($(SBL_PLATFORM), omapl138)
+       # omapl138
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl clean BOARD=lcdkOMAPL138
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl clean BOARD=lcdkC6748
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl mmcsd_flashwriter_clean BOARD=lcdkOMAPL138
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl mmcsd_flashwriter_clean BOARD=lcdkC6748
+else ifeq ($(SBL_PLATFORM),$(filter $(SBL_PLATFORM), am65xx j721e))
+       # All keystone3
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl/build clean
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl/build clean
+endif
index 7678444caa89bbc0efc3fb9856b2284506f604f1..332e87c765fca32cb5fd1917fe4dedf3268ca168 100755 (executable)
@@ -332,6 +332,9 @@ sbl_multicore_amp_BINPATH = $(PDK_SBL_COMP_PATH)/example/k3MulticoreApp/binary
 sbl_multicore_amp_PATH = $(PDK_SBL_COMP_PATH)/example/k3MulticoreApp
 sbl_multicore_amp_MAKEFILE = -f$(PDK_SBL_COMP_PATH)/build/sbl_multicore_amp.mk
 export sbl_multicore_amp_MAKEFILE
+# SBL multicore amp depends on sbl_boot_test for all the cores
+sbl_multicore_amp_DEPENDS_ON=sbl_boot_test
+export sbl_multicore_amp_DEPENDS_ON
 sbl_multicore_amp_BOARD_DEPENDENCY = no
 sbl_multicore_amp_SOC_DEPENDENCY = no
 sbl_multicore_amp_CORE_DEPENDENCY = no
@@ -380,6 +383,9 @@ sbl_multicore_smp_BINPATH = $(PDK_SBL_COMP_PATH)/example/k3MulticoreApp/binary
 sbl_multicore_smp_PATH = $(PDK_SBL_COMP_PATH)/example/k3MulticoreApp
 sbl_multicore_smp_MAKEFILE = -f$(PDK_SBL_COMP_PATH)/build/sbl_multicore_smp.mk
 export sbl_multicore_smp_MAKEFILE
+# SBL multicore smp depends on sbl_smp_test for all the cores
+sbl_multicore_smp_DEPENDS_ON=sbl_smp_test
+export sbl_multicore_smp_DEPENDS_ON
 sbl_multicore_smp_BOARD_DEPENDENCY = no
 sbl_multicore_smp_SOC_DEPENDENCY = no
 sbl_multicore_smp_CORE_DEPENDENCY = no
index a5fa041f8131649f83efa13863e1a3017389c59d..355dbf057952f4979b5381670d53eeec5e44b750 100755 (executable)
@@ -40,6 +40,62 @@ TOOLS_INSTALL_PATH ?= $(SDK_INSTALL_PATH)
 #Default BUILD_OS_TYPE (tirtos/baremetal/qnx)
 export BUILD_OS_TYPE ?= tirtos
 
+#if PDK_SOC is specified , derive LIMIT_SOCS from there (if LIMIT_SOCS not defined)
+ifneq ($(PDK_SOC),)
+
+LIMIT_CORES_am335x    = $(CORE_LIST_am335x)
+LIMIT_CORES_am437x    = $(CORE_LIST_am437x)
+LIMIT_CORES_am57xx    = $(sort $(CORE_LIST_am571x) $(CORE_LIST_am572x) $(CORE_LIST_am574x))
+LIMIT_CORES_omapl137  = $(CORE_LIST_omapl137)
+LIMIT_CORES_omapl138  = $(CORE_LIST_omapl138)
+LIMIT_CORES_k2hk      = $(sort $(CORE_LIST_k2h) $(CORE_LIST_k2k))
+LIMIT_CORES_k2e       = $(CORE_LIST_k2e)
+LIMIT_CORES_k2l       = $(CORE_LIST_k2l)
+LIMIT_CORES_k2g       = $(CORE_LIST_k2g)
+LIMIT_CORES_k2g-hs    = $(CORE_LIST_k2g)
+LIMIT_CORES_c665x     = $(CORE_LIST_c6657)
+LIMIT_CORES_c667x     = $(CORE_LIST_c6678)
+LIMIT_CORES_am65xx    = $(CORE_LIST_am65xx)
+LIMIT_CORES_am65xx-hs = $(CORE_LIST_am65xx)
+# Filter out c7x-hostemu as Processor SDK does not build use it
+LIMIT_CORES_j7        = $(filter-out c7x-hostemu,$(sort $(CORE_LIST_j721e) $(CORE_LIST_j7200)))
+
+export LIMIT_CORES ?= $(LIMIT_CORES_$(PDK_SOC))
+
+LIMIT_SOCS_k2g       = k2g
+LIMIT_SOCS_k2g-hs    = k2g
+LIMIT_SOCS_k2hk      = k2hk
+LIMIT_SOCS_k2e       = k2e
+LIMIT_SOCS_k2l       = k2l
+LIMIT_SOCS_am57xx    = am571x am572x am574x
+LIMIT_SOCS_am437x    = am437x
+LIMIT_SOCS_am335x    = am335x
+LIMIT_SOCS_am65xx    = am65xx
+LIMIT_SOCS_am65xx-hs = am65xx
+LIMIT_SOCS_j7        = j721e j7200
+
+export LIMIT_SOCS ?= $(LIMIT_SOCS_$(PDK_SOC))
+
+LIMIT_BOARDS_j7        = $(BOARD_LIST_j721e) $(BOARD_LIST_j7200)
+LIMIT_BOARDS_am335x    = $(BOARD_LIST_am335x)
+LIMIT_BOARDS_omapl137  = $(BOARD_LIST_omapl137)
+LIMIT_BOARDS_k2l       = $(BOARD_LIST_k2l)
+LIMIT_BOARDS_am437x    = $(BOARD_LIST_am437x)
+LIMIT_BOARDS_am437x-hs = $(BOARD_LIST_am437x)
+LIMIT_BOARDS_k2hk      = $(BOARD_LIST_k2h) $(BOARD_LIST_k2k)
+LIMIT_BOARDS_k2g       = $(BOARD_LIST_k2g)
+LIMIT_BOARDS_k2g-hs    = $(BOARD_LIST_k2g)
+LIMIT_BOARDS_k2e       = $(BOARD_LIST_k2e)
+LIMIT_BOARDS_am65xx    = $(BOARD_LIST_am65xx)
+LIMIT_BOARDS_am65xx-hs = $(BOARD_LIST_am65xx)
+LIMIT_BOARDS_c665x     = $(BOARD_LIST_c6657)
+LIMIT_BOARDS_c667x     = $(BOARD_LIST_c6678)
+LIMIT_BOARDS_omapl138  = $(BOARD_LIST_omapl138)
+LIMIT_BOARDS_am57xx    = $(BOARD_LIST_am571x) $(BOARD_LIST_am572x) $(BOARD_LIST_am574x)
+
+export LIMIT_BOARDS ?= $(LIMIT_BOARDS_$(PDK_SOC))
+
+endif
 # Default board
 # Supported values are printed in "make -s help" option. Below are the list for reference.
 #                   evmDRA72x, evmDRA75x, evmDRA78x,
@@ -47,31 +103,19 @@ export BUILD_OS_TYPE ?= tirtos
 #                   evmK2H, evmK2K, evmK2E, evmK2L, evmK2G, evmC6678, evmC6657,
 #                   evmAM335x, icev2AM335x, iceAMIC110, skAM335x, bbbAM335x,
 #                   evmAM437x idkAM437x skAM437x evmOMAPL137 lcdkOMAPL138
-#                   And also refer $(BOARD_LIST_J6_TDA) below
-#
-ifeq ($(LIMIT_BOARDS),)
-  # TDA parts do not define this environment variable, default board and soc for TDA parts
-  export BOARD ?= j721e_evm
-  export SOC ?= j721e
-else
-ifeq ($(LIMIT_BOARDS), j721e_evm)
-  export BOARD = j721e_evm
-  export SOC = j721e
-else
-ifeq ($(LIMIT_BOARDS), j721e_sim)
-  export BOARD = j721e_sim
-  export SOC = j721e
-else
-  # default board and soc for Catalog parts
-  export BOARD ?= idkAM572x
-  export SOC   ?= am572x
-endif
-endif
-endif
+
 ################################################################################
 # Other user configurable variables
 ################################################################################
 
+#if LIMIT_BOARDS if it is defined
+ifneq ($(LIMIT_BOARDS),)
+BOARD ?= $(firstword $(LIMIT_BOARDS))
+else
+#if LIMIT_BOARDS is not defined, default BOARD and SOC to the below
+export BOARD ?= j721e_evm
+export SOC ?= j721e
+endif
 # Default to m4 build depending on BOARD selected!!
 ifeq ($(BOARD),$(filter $(BOARD), evmAM572x idkAM572x idkAM571x idkAM574x))
   CORE ?= a15_0
@@ -96,192 +140,11 @@ export BUILD_PROFILE ?= release
 # Supported Values: yes | no
 export TREAT_WARNINGS_AS_ERROR ?= yes
 
-#Various boards support for J6 TDA family of devices
-BOARD_LIST_J6_TDA = tda2xx-evm tda2ex-evm tda3xx-evm tda2px-evm
-BOARD_LIST_J6_TDA += tda2xx-evm-radar tda2px-evm-radar tda3xx-evm-radar
-BOARD_LIST_J6_TDA += tda3xx-ar12-booster tda3xx-ar12-alps tda3xx-ar12-rvp
-BOARD_LIST_J6_TDA += tda2ex-eth-srv tda2xx-rvp tda3xx-rvp
-BOARD_LIST_J6_TDA += tda2xx-cascade-radar
-export BOARD_LIST_J6_TDA
-
 #Various boards support for J7 TDA family of devices
 BOARD_LIST_J7_TDA = j721e_sim j721e_hostemu j721e_ccqt j721e_loki j721e_qt j721e_vhwazebu j721e_evm
 BOARD_LIST_J7_TDA += j7200_sim j7200_hostemu j7200_evm am64x_evm
 export BOARD_LIST_J7_TDA
 
-################################################################################
-# Configure toolchain paths
-################################################################################
-ifeq ($(BOARD),$(filter $(BOARD), $(BOARD_LIST_J6_TDA)))
-  # This section applies to J6 TDA SOCs in Processor SDK VISION release.
-  # For remaining SOC/BOARDS skip to the else part.
-  # SoC & Version of PDK for TDA builds
-  PDK_SOC=
-  PDK_VERSION=01_09_00_00
-
-  #Tool versions for TDA builds
-  GCC_CROSS_TOOL_PREFIX=arm-none-eabi-
-  GCC_CROSS_TOOL_TAG=4_9-2015q3
-  CGT_VERSION=7.4.2
-  GCC_VERSION_FPULIB=4.9.3
-  CGT_ARM_VERSION=16.9.2.LTS
-  CGT_ARP32_VERSION=1.0.7
-
-  #Component versions for TDA builds
-  BIOS_VERSION=6_46_04_53
-  EDMA_VERSION=02_12_00_20
-  XDC_VERSION=3_32_01_22_core
-  MSHIELD_VERSION=4_5_3
-  export mmwavelink_version=mmwave_dfp_01_01_00_00
-
-  export GCC_FLOAT_PATH ?= FPU
-else
-  # This section applies to all broader set of boards with SOCs beyond TDA class
-  # in Processor SDK RTOS release
-  PDK_VERSION_STR=_$(PDK_SOC)_$(PDK_VERSION)
-ifeq ($(PDK_VERSION),)
-  PDK_VERSION_STR=
-endif
-
-  #Tool versions for non-TDA builds
-  GCC_CROSS_TOOL_PREFIX=arm-none-eabi-
-  GCC_CROSS_TOOL_TAG=7-2018-q2-update
-  GCC_ARCH64_VERSION=7.2.1-2017.11
-  CGT_VERSION=8.3.2
-
-  CGT_C7X_VERSION=1.2.0.STS
-  CGT_ARM_VERSION=18.12.1.LTS
-  GCC_VERSION_HARDLIB=7.3.1
-
-  CGT_ARP32_VERSION=1.0.8
-  CG_XML_VERSION=2.61.00
-
-  #Component versions for non-TDA builds
-  BIOS_VERSION=6_76_03_01
-  XDC_VERSION=3_55_02_22_core
-
-  EDMA_VERSION=2_12_05_30E
-  SECDEV_VERSION=01_06_00_05
-  CGT_PRU_VERSION=2.3.2
-
-  #Hardcode IPC version if it is not set already
-  IPC_VERSION ?= 3_47_01_00
-  NDK_VERSION=3_61_01_01
-  NS_VERSION=2_60_01_06
-
-  UIA_VERSION=2_30_01_02
-  XDAIS_VERSION=7_24_00_04
-  AER_VERSION=17_0_0_0
-
-  # C674x DSP libraries sould be used for OMAPL13x platform
-ifeq ($(SOC),$(filter $(SOC), omapl137 omapl138))
-  DSPLIB_VERSION ?= c674x_3_4_0_3
-  IMGLIB_VERSION ?= c674x_3_1_1_0
-  MATHLIB_VERSION ?= c674x_3_1_2_3
-else
-  DSPLIB_VERSION ?= c66x_3_4_0_3
-  IMGLIB_VERSION ?= c66x_3_1_1_0
-  MATHLIB_VERSION ?= c66x_3_1_2_3
-endif
-
-  export GCC_FLOAT_PATH ?= HARD
-endif
-
-################################################################################
-# Dependent toolchain paths variables
-################################################################################
-# Version of GCC
-GCC_VERSION=$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
-GCC_VERSION_ARM_A15=$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
-ifeq ($(BOARD),$(filter $(BOARD), $(BOARD_LIST_J6_TDA)))
-  # This section applies to J6 TDA SOCs in Processor SDK VISION release.
-  # For remaining SOC/BOARDS skip to the else part.
-  ifeq ($(OS),Windows_NT)
-    OS_FOLDER=windows
-  else
-    OS_FOLDER=linux
-  endif
-  export TOOLCHAIN_PATH_GCC        ?= $(SDK_INSTALL_PATH)/ti_components/cg_tools/$(OS_FOLDER)/gcc-$(GCC_VERSION)
-  export TOOLCHAIN_PATH_A15        ?= $(SDK_INSTALL_PATH)/ti_components/cg_tools/$(OS_FOLDER)/gcc-$(GCC_VERSION_ARM_A15)
-  export TOOLCHAIN_PATH_M4         ?= $(SDK_INSTALL_PATH)/ti_components/cg_tools/$(OS_FOLDER)/ti-cgt-arm_$(CGT_ARM_VERSION)
-  export C6X_GEN_INSTALL_PATH      ?= $(SDK_INSTALL_PATH)/ti_components/cg_tools/$(OS_FOLDER)/C6000_$(CGT_VERSION)
-  export TOOLCHAIN_PATH_EVE        ?= $(SDK_INSTALL_PATH)/ti_components/cg_tools/$(OS_FOLDER)/arp32_$(CGT_ARP32_VERSION)
-  export PDK_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/ti_components/drivers/pdk_$(PDK_VERSION)/packages
-  export EDMA3LLD_BIOS6_INSTALLDIR ?= $(SDK_INSTALL_PATH)/ti_components/drivers/edma3_lld_$(EDMA_VERSION)
-  export BIOS_INSTALL_PATH         ?= $(SDK_INSTALL_PATH)/ti_components/os_tools/bios_$(BIOS_VERSION)
-  export XDC_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/ti_components/os_tools/$(OS_FOLDER)/xdctools_$(XDC_VERSION)
-  export RADARLINK_INSTALL_PATH    ?= $(SDK_INSTALL_PATH)/ti_components/radar/$(mmwavelink_version)
-  export MSHIELD_DK_DIR            ?= $(SDK_INSTALL_PATH)/ti_components/mshield-dk_std_$(MSHIELD_VERSION)
-  export TI_SECURE_DEV_PKG         := $(MSHIELD_DK_DIR)
-else
-  export GCC_VERSION_ARM_A8=$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
-  export GCC_VERSION_ARM_A9=$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
-  export CROSS_TOOL_PRFX           ?= $(GCC_CROSS_TOOL_PREFIX)
-  export C6X_GEN_INSTALL_PATH      ?= $(TOOLS_INSTALL_PATH)/ti-cgt-c6000_$(CGT_VERSION)
-  export C7X_GEN_INSTALL_PATH      ?= $(TOOLS_INSTALL_PATH)/ti-cgt-c7000_$(CGT_C7X_VERSION)
-  export CL_PRU_INSTALL_PATH       ?= $(TOOLS_INSTALL_PATH)/ti-cgt-pru_$(CGT_PRU_VERSION)
-  export TOOLCHAIN_PATH_A8         ?= $(TOOLS_INSTALL_PATH)/gcc-$(GCC_VERSION_ARM_A8)
-  export TOOLCHAIN_PATH_A9         ?= $(TOOLS_INSTALL_PATH)/gcc-$(GCC_VERSION_ARM_A9)
-  export TOOLCHAIN_PATH_Arm9       ?= $(TOOLS_INSTALL_PATH)/ti-cgt-arm_$(CGT_ARM_VERSION)
-  export TOOLCHAIN_PATH_A15        ?= $(TOOLS_INSTALL_PATH)/gcc-$(GCC_VERSION_ARM_A15)
-ifeq ($(OS),Windows_NT)
-  #Paths for windows machine
-  export TOOLCHAIN_PATH_GCC_ARCH64 ?= $(TOOLS_INSTALL_PATH)/gcc-linaro-$(GCC_ARCH64_VERSION)-i686-mingw32_aarch64-elf
-else
-  #Paths for linux machine
-  export TOOLCHAIN_PATH_GCC_ARCH64 ?= $(TOOLS_INSTALL_PATH)/gcc-linaro-$(GCC_ARCH64_VERSION)-x86_64_aarch64-elf
-endif
-
-  export TOOLCHAIN_PATH_QNX_A72    ?= $(QNX_HOST)/usr/bin
-  export TOOLCHAIN_PATH_A53        ?= $(TOOLCHAIN_PATH_GCC_ARCH64)
-  export TOOLCHAIN_PATH_A72        ?= $(TOOLCHAIN_PATH_GCC_ARCH64)
-  export TOOLCHAIN_PATH_EVE        ?= $(TOOLS_INSTALL_PATH)/arp32_$(CGT_ARP32_VERSION)
-  export TOOLCHAIN_PATH_M4         ?= $(TOOLS_INSTALL_PATH)/ti-cgt-arm_$(CGT_ARM_VERSION)
-  export TOOLCHAIN_PATH_R5         ?= $(TOOLS_INSTALL_PATH)/ti-cgt-arm_$(CGT_ARM_VERSION)
-  export BIOS_INSTALL_PATH         ?= $(SDK_INSTALL_PATH)/bios_$(BIOS_VERSION)
-  export DSPLIB_INSTALL_PATH       ?= $(SDK_INSTALL_PATH)/dsplib_$(DSPLIB_VERSION)
-  export EDMA3LLD_BIOS6_INSTALLDIR ?= $(SDK_INSTALL_PATH)/edma3_lld_$(EDMA_VERSION)
-  export IMGLIB_INSTALL_PATH       ?= $(SDK_INSTALL_PATH)/imglib_$(IMGLIB_VERSION)
-  export IPC_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/ipc_$(IPC_VERSION)
-  export MATHLIB_INSTALL_PATH      ?= $(SDK_INSTALL_PATH)/mathlib_$(MATHLIB_VERSION)
-  export NDK_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/ndk_$(NDK_VERSION)
-  export NS_INSTALL_PATH           ?= $(SDK_INSTALL_PATH)/ns_$(NS_VERSION)
-  export PDK_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/pdk$(PDK_VERSION_STR)/packages
-  export UIA_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/uia_$(UIA_VERSION)
-  export XDC_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/xdctools_$(XDC_VERSION)
-  export UTILS_INSTALL_DIR         ?= $(XDC_INSTALL_PATH)/bin
-  export RADARLINK_INSTALL_PATH    ?= $(SDK_INSTALL_PATH)/$(mmwavelink_version)
-  export CG_XML_BIN_INSTALL_PATH   ?= $(SDK_INSTALL_PATH)/cg_xml_$(CG_XML_VERSION)/bin
-  export TI_SECURE_DEV_PKG         ?= $(SDK_INSTALL_PATH)/proc-sdk-secdev_$(SECDEV_VERSION)
-  export XDAIS_INSTALL_PATH        ?= $(SDK_INSTALL_PATH)/xdais_$(XDAIS_VERSION)
-  export AER_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/aer_c64Px_obj_$(AER_VERSION)
-  export GCC_ARM_NONE_TOOLCHAIN    ?= $(SDK_INSTALL_PATH)/gcc-$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
-  export TI_CGT6x_INSTALL_DIR      ?= $(SDK_INSTALL_PATH)/c6000_7.4.16
-  export M4_TOOLCHAIN_INSTALL_DIR  ?= $(TOOLCHAIN_PATH_M4)
-endif
-
-ifeq ($(SOC),$(filter $(SOC), am335x))
-  export HARDLIB_PATH ?= $(TOOLCHAIN_PATH_A8)/lib/gcc/arm-none-eabi/$(GCC_VERSION_HARDLIB)/hard
-  export FPULIB_PATH ?= $(TOOLCHAIN_PATH_A8)/lib/gcc/arm-none-eabi/$(GCC_VERSION_FPULIB)/fpu
-else ifeq  ($(SOC),$(filter $(SOC), am437x))
-  export HARDLIB_PATH ?= $(TOOLCHAIN_PATH_A9)/lib/gcc/arm-none-eabi/$(GCC_VERSION_HARDLIB)/hard
-  export FPULIB_PATH ?= $(TOOLCHAIN_PATH_A9)/lib/gcc/arm-none-eabi/$(GCC_VERSION_FPULIB)/fpu
-else
-  export HARDLIB_PATH ?= $(TOOLCHAIN_PATH_A15)/lib/gcc/arm-none-eabi/$(GCC_VERSION_HARDLIB)/hard
-  export FPULIB_PATH ?= $(TOOLCHAIN_PATH_A15)/lib/gcc/arm-none-eabi/$(GCC_VERSION_FPULIB)/fpu
-endif
-
-export CGTOOLS=$(C6X_GEN_INSTALL_PATH)
-export XDCCGROOT=$(C6X_GEN_INSTALL_PATH)
-
-# Utilities directory. This is required only if the build machine is Windows.
-#   - specify the installation directory of utility which supports POSIX commands
-#     (eg: Cygwin installation or MSYS installation).
-# This could be in CCS install directory as in c:/ti/ccsv<ver>/utils/cygwin or
-# the XDC install bin folder represented by  $(UTILS_INSTALL_DIR)
-ifeq ($(OS),Windows_NT)
-  export utils_PATH ?= $(UTILS_INSTALL_DIR)
-endif
 
 ################################################################################
 # Other advanced configurable variables
@@ -307,11 +170,13 @@ export xdc_PATH := $(XDC_INSTALL_PATH)
 export edma3_lld_PATH := $(EDMA3LLD_BIOS6_INSTALLDIR)
 export ndk_PATH := $(NDK_INSTALL_PATH)
 export radarLink_PATH := $(RADARLINK_INSTALL_PATH)
+export ipc_PATH := $(IPC_INSTALL_PATH)
+export uia_PATH := $(UIA_INSTALL_PATH)
 
 export ROOTDIR := $(pdk_PATH)
-XDCPATH =
+XDCPATH = 
 ifeq ($(BUILD_OS_TYPE),tirtos)
-  XDCPATH = $(bios_PATH)/packages;$(xdc_PATH)/packages;$(edma3_lld_PATH)/packages;$(ndk_PATH)/packages;$(pdk_PATH);
+  XDCPATH = $(bios_PATH)/packages;$(xdc_PATH)/packages;$(edma3_lld_PATH)/packages;$(ndk_PATH)/packages;$(pdk_PATH);$(ipc_PATH)/packages;$(uia_PATH)/packages;
 endif
 export XDCPATH
 
@@ -334,4 +199,32 @@ ifeq ($(MAKERULEDIR), )
 endif
 include $(MAKERULEDIR)/build_config.mk
 include $(MAKERULEDIR)/platform.mk
+include $(PDK_INSTALL_PATH)/ti/build/pdk_tools_path.mk
 include $(MAKERULEDIR)/env.mk
+
+export PRUCORE_LIST = $(CORE_LIST_PRU)
+
+################################################################################
+# Build Tools Configuration
+################################################################################
+
+ifeq ($(OS),Windows_NT)
+  PATH := $(PATH)
+endif
+
+# Compiler Tools:
+# PATH := $(C6X_GEN_INSTALL_PATH)/bin;$(PATH)
+
+# XDC Tools location:
+PATH := $(XDC_INSTALL_PATH);$(XDC_INSTALL_PATH)/bin;$(XDC_INSTALL_PATH)/packages/xdc/services/io/release;$(PATH)
+
+ifeq ($(OS),Windows_NT)
+  PATH := $(subst /,\,$(PATH))
+else
+  PATH := $(subst ;,:,$(PATH))
+endif
+
+export PATH
+
+LIBDIR ?= ./lib
+export LIBDIR
index f350324b1af77ed5537e66eef0455766995a6382..852e35de273a6ff8a6ed1ed263a4059b96bdc4a0 100755 (executable)
@@ -1,5 +1,5 @@
 #  ============================================================================
-#  (C) Copyright 2016-2018 Texas Instruments, Inc.
+#  (C) Copyright 2016-2019 Texas Instruments, Inc.
 #
 #  Redistribution and use in source and binary forms, with or without
 #  modification, are permitted provided that the following conditions
 #
 #  ============================================================================
 
-XDC = $(XDC_INSTALL_PATH)/xdc
+# This file is included by components to build libraries/examples from within a component
+# This file eventually invokes ti/build/makefile with the correct SOC,CORE,BOARD combination
 
-#options for sphinx documentation
-SPHINXBUILD = sphinx-build
-DESIGNDOC_ROOT = docs/design
-ALLSPHINXOPTS   = -d $(DESIGNDOC_ROOT)/build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(DESIGNDOC_ROOT)
 
-# check if we need to limit the Build to limitted SOCS
-ifdef LIMIT_BOARDS
-  BOARD_LIST_ALL = $(filter $(LIMIT_BOARDS), $($(COMP)_BOARDLIST))
-else
-  BOARD_LIST_ALL = $($(COMP)_BOARDLIST)
-endif
+# This is to serialize the targets per every element in LIMIT_SOCS,LIMIT_BOARDS,LIMIT_CORES combination
+# However, the parallelism (-j) is supported as it is passed on to ti/build/makefile with a SOC,CORE,BOARD combination
+.NOT_PARALLEL:
 
-# check if we need to limit the Build to limitted SOCS
-ifdef LIMIT_SOCS
-  SOC_LIST_ALL = $(filter $(LIMIT_SOCS), $($(COMP)_SOCLIST))
-else
-  SOC_LIST_ALL = $($(COMP)_SOCLIST)
-endif
 
-# check if we need to limit the build to limitted cores
-ifdef LIMIT_CORES
-  CORE_LIST_ALL = $(filter $(LIMIT_CORES), $($(COMP)_$(SOC)_CORELIST))
-else
-  CORE_LIST_ALL = $($(COMP)_$(SOC)_CORELIST)
-endif
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
 
-# For core indpendent libraries, chose the 'base' core the other cores' target can depend on 
-LIM_CORE_BASE_LIST := $(foreach core_type,$(DEFAULT_CORE_TYPES),$(firstword $(filter $(core_type)%,$(CORE_LIST_ALL))))
-# The rest of the cores, i.e (CORE_LIST_ALL - LIM_CORE_BASE_LIST). These will depend on the LIM_CORE_BASE_LIST
-LIM_CORE_REST_LIST := $(filter-out $(LIM_CORE_BASE_LIST),$(CORE_LIST_ALL))
+# Targets which are BOARD,CORE,SOC specific
+# NOTE: Do not change the order as 'all' needs to be run first if target is unspecified
 
-PRUCORE_LIST = pru_0 pru_1
+TARGETS_FOR_MULT_SOC_BOARDS = all 
+TARGETS_FOR_MULT_SOC_BOARDS += apps clean lib app_libs firm
 
-# If the component enables this, parallel builds are disabled for this component
-ifeq ($($(COMP)_DISABLE_PARALLEL_MAKE),yes)
-.NOTPARALLEL:
-endif
+# BOARD,CORE,SOC independent targets
+TARGETS_SOC_BOARD_INDP      = tar help doxygen xdc_meta
 
-ifeq ($(lib_$(COMP)_BUILD_DEPENDENCY),soc)
-    lib_BOARD_SOC_LIST_ALL = $(addsuffix _lib, $(SOC_LIST_ALL))
-endif
-ifeq ($(lib_$(COMP)_BUILD_DEPENDENCY),board)
-    lib_BOARD_SOC_LIST_ALL = $(addsuffix _lib, $(BOARD_LIST_ALL))
-endif
-lib_CORE_LIST_ALL = $(addsuffix _lib, $(filter-out $(PRUCORE_LIST),$(CORE_LIST_ALL)))
-lib_CORE_LIST_BASE = $(addsuffix _lib, $(filter-out $(PRUCORE_LIST),$(LIM_CORE_BASE_LIST)))
-lib_CORE_LIST_REST = $(addsuffix _lib, $(filter-out $(PRUCORE_LIST),$(LIM_CORE_REST_LIST)))
+.PHONY : $(TARGETS_FOR_MULT_SOC_BOARDS) $(TARGETS_SOC_BOARD_INDP) release package
 
-lib_LIB_ENDIAN_LIST = $(addsuffix _lib, $(LIB_ENDIAN_LIST))
-ifeq ($(lib_$(COMP)_BUILD_DEPENDENCY),soc)
-    lib_BOARD_SOC_LIST_ALL_CLEAN = $(addsuffix _lclean, $(SOC_LIST_ALL))
-endif
-ifeq ($(lib_$(COMP)_BUILD_DEPENDENCY),board)
-    lib_BOARD_SOC_LIST_ALL_CLEAN = $(addsuffix _lclean, $(BOARD_LIST_ALL))
-endif
-lib_CORE_LIST_ALL_CLEAN = $(addsuffix _lclean, $(filter-out $(PRUCORE_LIST),$(CORE_LIST_ALL)))
-lib_LIB_ENDIAN_LIST_CLEAN = $(addsuffix _lclean, $(LIB_ENDIAN_LIST))
+# Invoke the ti/build/makefile with {BOARD,CORE,SOC} and COMP name
+# For each SOC, build the BOARD,CORE combination for each relevant BOARD,SOC for that SOC
+$(TARGETS_FOR_MULT_SOC_BOARDS):
+       $(foreach current_soc, $(LIMIT_SOCS),\
+       $(foreach current_board, $(filter $(LIMIT_BOARDS),$(BOARD_LIST_$(current_soc))), \
+       $(foreach current_core, $(filter $(LIMIT_CORES), $(filter-out $(PRUCORE_LIST),$(CORE_LIST_$(current_soc)))),\
+       $(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile $@ COMP=$(COMP) CORE=$(current_core) BOARD=$(current_board) SOC=$(current_soc);\
+       )))
 
-app_lib_BOARD_SOC_LIST_ALL = $(addsuffix _app_lib, $(BOARD_LIST_ALL))
-app_lib_CORE_LIST_ALL = $(addsuffix _app_lib, $(CORE_LIST_ALL))
-app_lib_LIB_ENDIAN_LIST = $(addsuffix _app_lib, $(LIB_ENDIAN_LIST))
+package:
+       $(foreach current_board, $(BOARD),\
+       $(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile $@ COMP=$(COMP) BOARD=$(current_board);\
+       )
 
-app_lib_BOARD_SOC_LIST_ALL_CLEAN = $(addsuffix _app_lclean, $(BOARD_LIST_ALL))
-app_lib_CORE_LIST_ALL_CLEAN = $(addsuffix _app_lclean, $(CORE_LIST_ALL))
-app_lib_LIB_ENDIAN_LIST_CLEAN = $(addsuffix _app_lclean, $(LIB_ENDIAN_LIST))
+release: lib firm tar 
 
-app_BOARD_LIST_ALL = $(addsuffix _app, $(BOARD_LIST_ALL))
-app_CORE_LIST_ALL = $(addsuffix _app, $(CORE_LIST_ALL))
-
-app_LIB_ENDIAN_LIST = $(addsuffix _app, $(LIB_ENDIAN_LIST))
-app_LIB_BOARD_LIST = $(addsuffix _app, $(BOARD_LIST_ALL))
-app_LIB_SOC_LIST = $(addsuffix _app, $(SOC_LIST_ALL))
-
-app_BOARD_LIST_ALL_CLEAN = $(addsuffix _aclean, $(BOARD_LIST_ALL))
-app_CORE_LIST_ALL_CLEAN = $(addsuffix _aclean, $(CORE_LIST_ALL))
-app_LIB_ENDIAN_LIST_CLEAN = $(addsuffix _aclean, $(LIB_ENDIAN_LIST))
-
-firm_SOC_LIST_ALL = $(addsuffix _firm, $(SOC_LIST_ALL))
-firm_CORE_LIST_ALL = $(addsuffix _firm, $(filter $(PRUCORE_LIST),$(CORE_LIST_ALL)))
-firm_HOST_CORE_LIST = $(addsuffix _firm, $(filter-out $(PRUCORE_LIST),$(CORE_LIST_ALL)))
-firm_VERSION_LIST_ALL = $(addsuffix _firm, $(PRU_VERSION_LIST))
-firm_SOC_LIST_ALL_CLEAN = $(addsuffix _fclean, $(SOC_LIST_ALL))
-firm_CORE_LIST_ALL_CLEAN = $(addsuffix _fclean, $(filter $(PRUCORE_LIST),$(CORE_LIST_ALL)))
-firm_HOST_CORE_LIST_CLEAN = $(addsuffix _fclean, $(filter-out $(PRUCORE_LIST),$(CORE_LIST_ALL)))
-firm_VERSION_LIST_ALL_CLEAN = $(addsuffix _fclean, $(PRU_VERSION_LIST))
-
-comp_PKG_LIST_ALL = $($(COMP)_EXAMPLE_LIST) $($(COMP)_DUP_EXAMPLE_LIST) $($(COMP)_APP_LIB_LIST) $($(COMP)_LIB_LIST) $($(COMP)_FIRM_LIST)
-comp_LIB_LIST_CLEAN = $(addsuffix _clean, $($(COMP)_LIB_LIST))
-comp_APP_LIB_LIST_CLEAN = $(addsuffix _clean, $($(COMP)_APP_LIB_LIST))
-comp_EXAMPLE_LIST_CLEAN = $(addsuffix _clean, $($(COMP)_EXAMPLE_LIST))
-comp_FIRM_LIST_CLEAN = $(addsuffix _clean, $($(COMP)_FIRM_LIST))
-comp_PKG_LIST_ALL_CLEAN = $(addsuffix _clean, $(comp_PKG_LIST_ALL))
-comp_PKG_LIST_PACKAGE = $(addsuffix _package, $(comp_PKG_LIST_ALL))
-
-
-package_BOARD_LIST_ALL = $(addsuffix _package_board, $(BOARD))
-
-# If the component enables doxygen, this will evaluate to "yesyes" and doxygen
-# will be built. If this value is overridden by the user to any other value, or
-# $(COMP)_DOXYGEN_SUPPORT is not "yes", doxygen is not built.
-DOXYGEN_SUPPORT ?= yes$($(COMP)_DOXYGEN_SUPPORT)
-
-.PHONY : apps appcores app_clean clean_appcores \
-         lib libcores lib_allendians lib_clean clean_libcores clean_lib_allendians  \
-         all all_cpp comp_libs comp_libs_clean examples examples_clean clean package $(comp_PKG_LIST_ALL) \
-         doxygen release tar lib lib_clean \
-         $(lib_BOARD_SOC_LIST_ALL) $(lib_CORE_LIST_ALL) $(lib_LIB_ENDIAN_LIST) $(lib_BOARD_SOC_LIST_ALL_CLEAN) \
-         $(lib_CORE_LIST_ALL_CLEAN) $(lib_LIB_ENDIAN_LIST_CLEAN) \
-         $(app_lib_BOARD_SOC_LIST_ALL) $(app_lib_CORE_LIST_ALL) $(app_lib_LIB_ENDIAN_LIST) \
-        $(firm_SOC_LIST_ALL) $(firm_CORE_LIST_ALL) $(firm_VERSION_LIST_ALL) $(firm_VERSION_LIST_ALL_CLEAN) $(firm_SOC_LIST_ALL_CLEAN) $(firm_CORE_LIST_ALL_CLEAN) \
-         $(app_lib_BOARD_SOC_LIST_ALL_CLEAN) $(app_lib_CORE_LIST_ALL_CLEAN) $(app_lib_LIB_ENDIAN_LIST_CLEAN) \
-         $(app_BOARD_LIST_ALL) $(app_CORE_LIST_ALL) $(app_BOARD_LIST_ALL_CLEAN) $(app_CORE_LIST_ALL_CLEAN)
-                
-
-all: lib firm app_lib apps 
-clean: lib_clean firm_clean app_lib_clean app_clean
-
-ifeq ($(lib_$(COMP)_BUILD_DEPENDENCY),soc)
-$(lib_BOARD_SOC_LIST_ALL):
-       $(MAKE) libcores SOC=$(subst _lib,,$@)
-endif
-ifeq ($(lib_$(COMP)_BUILD_DEPENDENCY),board)
-$(lib_BOARD_SOC_LIST_ALL):
-       $(MAKE) libcores BOARD=$(subst _lib,,$@)
-endif
-
-all_cpp: lib app_lib
-
-$(lib_CORE_LIST_ALL):
-       $(MAKE) lib_allendians CORE=$(subst _lib,,$@) BUILD_PROFILE_$(subst _lib,,$@)=$(BUILD_PROFILE)
-
-$(lib_LIB_ENDIAN_LIST):
-       $(MAKE) comp_libs ENDIAN=$(subst _lib,,$@)
-
-ifeq ($(lib_$(COMP)_BUILD_DEPENDENCY),soc)
-$(lib_BOARD_SOC_LIST_ALL_CLEAN):
-       $(MAKE) clean_libcores SOC=$(subst _lclean,,$@)
-endif
-ifeq ($(lib_$(COMP)_BUILD_DEPENDENCY),board)
-$(lib_BOARD_SOC_LIST_ALL_CLEAN):
-       $(MAKE) clean_libcores BOARD=$(subst _lclean,,$@)
-endif
-
-$(lib_CORE_LIST_ALL_CLEAN):
-       $(MAKE) clean_lib_allendians CORE=$(subst _lclean,,$@) BUILD_PROFILE_$(subst _lclean,,$@)=$(BUILD_PROFILE)
-
-$(lib_LIB_ENDIAN_LIST_CLEAN):
-       $(MAKE) comp_libs_clean ENDIAN=$(subst _lclean,,$@)
-
-$(app_lib_BOARD_SOC_LIST_ALL):
-       $(MAKE) app_libcores BOARD=$(subst _app_lib,,$@)
-
-$(firm_SOC_LIST_ALL):
-       $(MAKE) firmcores SOC=$(subst _firm,,$@)
-
-$(firm_CORE_LIST_ALL):
-       $(MAKE) firm_allhostcores CORE=$(subst _firm,,$@)
-
-$(firm_HOST_CORE_LIST):
-       $(MAKE) firm_allversion HOSTCORE=$(subst _firm,,$@)
-
-$(firm_VERSION_LIST_ALL):
-       $(MAKE) comp_firm PRUVERSION=$(subst _firm,,$@)
-
-$(app_lib_CORE_LIST_ALL):
-       $(MAKE) app_lib_allendians CORE=$(subst _app_lib,,$@) BUILD_PROFILE_$(subst _app_lib,,$@)=$(BUILD_PROFILE)
-$(firm_SOC_LIST_ALL_CLEAN):
-       $(MAKE) clean_firmcores SOC=$(subst _fclean,,$@)
-
-$(app_lib_LIB_ENDIAN_LIST):
-       $(MAKE) comp_app_libs ENDIAN=$(subst _app_lib,,$@)
-$(firm_CORE_LIST_ALL_CLEAN):
-       $(MAKE) clean_firm_allhostcores CORE=$(subst _fclean,,$@)
-
-$(firm_HOST_CORE_LIST_CLEAN):
-       $(MAKE) clean_firm_allversion HOSTCORE=$(subst _fclean,,$@)
-
-$(firm_VERSION_LIST_ALL_CLEAN):
-       $(MAKE) comp_firm_clean PRUVERSION=$(subst _fclean,,$@)
-
-$(app_lib_BOARD_SOC_LIST_ALL_CLEAN):
-       $(MAKE) clean_app_libcores BOARD=$(subst _app_lclean,,$@)
-
-$(app_lib_CORE_LIST_ALL_CLEAN):
-       $(MAKE) clean_app_lib_allendians CORE=$(subst _app_lclean,,$@) BUILD_PROFILE_$(subst _app_lclean,,$@)=$(BUILD_PROFILE)
-
-$(app_lib_LIB_ENDIAN_LIST_CLEAN):
-       $(MAKE) comp_app_libs_clean ENDIAN=$(subst _app_lclean,,$@)
-
-$(app_BOARD_LIST_ALL):
-       $(MAKE) appcores BOARD=$(subst _app,,$@)
-
-$(app_CORE_LIST_ALL):
-ifeq ($(CPLUSPLUS_BUILD), yes)
-       $(ECHO) "Skipping the application build for C++"
-else
-       $(MAKE) examples CORE=$(subst _app,,$@) BUILD_PROFILE_$(subst _app,,$@)=$(BUILD_PROFILE)
-endif
-
-$(app_BOARD_LIST_ALL_CLEAN):
-       $(MAKE) clean_appcores BOARD=$(subst _aclean,,$@)
+%_var_display:
+       $(ECHO) " $(subst _var_display,,$@) is $($(subst _var_display,,$@))"
        
-$(app_CORE_LIST_ALL_CLEAN):
-       $(MAKE) examples_clean CORE=$(subst _aclean,,$@) BUILD_PROFILE_$(subst _aclean,,$@)=$(BUILD_PROFILE)
-
-$(package_BOARD_LIST_ALL):
-       $(MAKE) $(comp_PKG_LIST_PACKAGE) BOARD=$(subst _package_board,,$@)
-
-
-xdc_meta:
-       $(XDC) XDCBUILDCFG=config_mk.bld
-
-xdc_meta_clean:
-       $(XDC) clean XDCBUILDCFG=config_mk.bld
-
-.PHONY: designdoc_html
-designdoc_html:
-       $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(DESIGNDOC_ROOT)/build/html
-       @echo
-       @echo "Build finished. The HTML pages are in $(DESIGNDOC_ROOT)/build/html."
-
-.PHONY: designdoc_singlehtml
-designdoc_singlehtml:
-       $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(DESIGNDOC_ROOT)/build/singlehtml
-       @echo
-       @echo "Build finished. The HTML page is in $(DESIGNDOC_ROOT)/build/singlehtml."
-
-.PHONY: designdoc_latexpdf
-designdoc_latexpdf:
-       $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(DESIGNDOC_ROOT)/build/latex
-       @echo "Running LaTeX files through pdflatex..."
-       $(MAKE) -C $(DESIGNDOC_ROOT)/build/latex all-pdf
-       @echo "pdflatex finished; the PDF files are in $(DESIGNDOC_ROOT)/build/latex."
-
-.PHONY: designdoc
-designdoc:
-#For design documentation
-ifeq ($(OS),linux)
-ifeq ($($(COMP)_DESIGNDOC_HTML_SUPPORT),yes)
-       $(ECHO) Creating html design documentation ...
-       make designdoc_html
-endif
-ifeq ($($(COMP)_DESIGNDOC_SINGLEHTML_SUPPORT),yes)
-       $(ECHO) Creating singlehtml design documentation ...
-       make designdoc_singlehtml
-endif
-ifeq ($($(COMP)_DESIGNDOC_LATEXPDF_SUPPORT),yes)
-       $(ECHO) Creating latexpdf design documentation ...
-       make designdoc_latexpdf
-endif
-endif
-
-.PHONY: designdoc_clean
-designdoc_clean:
-#For design documentation
-ifeq ($(OS),linux)
-       rm -rf $(DESIGNDOC_ROOT)/build/*
-endif
-
-doxygen:
-ifeq ($(DOXYGEN_SUPPORT),yesyes)
-       $(ECHO) Creating Doxygen API guide ...
-       @doxygen docs/Doxyfile
-else
-       $(ECHO) No Doxygen Support available ...
-endif
-
-clean_doxygen:
-ifeq ($(DOXYGEN_SUPPORT),yesyes)
-       $(ECHO) cleaned Doxygen API guide ...
-       $(RM) -rf docs/doxygen
-else
-       $(ECHO) No Doxygen Support available ...
-endif
-
-tar: lib firm xdc_meta doxygen
-       $(ECHO) Creating the Release Tar ball for $(COMP)...
-       $(XDC) clean   XDCBUILDCFG=config_mk.bld        
-       $(XDC) release XDCBUILDCFG=config_mk.bld
-       $(ECHO) please check $(COMP)/packages folder for the release tarball
-       
-lib: $(lib_BOARD_SOC_LIST_ALL)
-
-# First build the libraries for base cores, then followed by the rest
-libcores: libcores_base_cores
-       $(MAKE) libcores_rest_cores
-
-libcores_base_cores: $(lib_CORE_LIST_BASE)
-libcores_rest_cores: $(lib_CORE_LIST_REST)
-
-lib_allendians: $(lib_LIB_ENDIAN_LIST)
-
-lib_clean: $(lib_BOARD_SOC_LIST_ALL_CLEAN)
-
-clean_libcores:$(lib_CORE_LIST_ALL_CLEAN)
-
-clean_lib_allendians: $(lib_LIB_ENDIAN_LIST_CLEAN)
-
-app_lib: $(app_lib_BOARD_SOC_LIST_ALL)
-
-firm: $(firm_SOC_LIST_ALL)
-
-app_libcores: $(app_lib_CORE_LIST_ALL)
-firmcores: $(firm_CORE_LIST_ALL)
-
-app_lib_allendians: $(app_lib_LIB_ENDIAN_LIST)
-firm_allhostcores: $(firm_HOST_CORE_LIST)
-firm_allversion: $(firm_VERSION_LIST_ALL)
-app_lib_clean: $(app_lib_BOARD_SOC_LIST_ALL_CLEAN)
-firm_clean: $(firm_SOC_LIST_ALL_CLEAN)
-
-clean_app_libcores:$(app_lib_CORE_LIST_ALL_CLEAN)
-clean_firmcores: $(firm_CORE_LIST_ALL_CLEAN)
-clean_firm_allversion: $(firm_VERSION_LIST_ALL_CLEAN)
-clean_app_lib_allendians: $(app_lib_LIB_ENDIAN_LIST_CLEAN)
-clean_firm_allhostcores: $(firm_HOST_CORE_LIST_CLEAN)
-
-apps: $(app_BOARD_LIST_ALL)
-
-appcores: $(app_CORE_LIST_ALL)
-
-app_clean: $(app_BOARD_LIST_ALL_CLEAN)
-
-clean_appcores: $(app_CORE_LIST_ALL_CLEAN)
-       
-comp_all: lib_allendians app_lib_allendians examples firm_allhostcores
-
-comp_clean: clean_lib_allendians clean_app_lib_allendians examples_clean clean_firm_allhostcores
-
-comp_libs: $($(COMP)_LIB_LIST)
-
-comp_libs_clean: $(comp_LIB_LIST_CLEAN)
-
-comp_app_libs: $($(COMP)_APP_LIB_LIST)
-comp_firm: $($(COMP)_FIRM_LIST)
-
-comp_app_libs_clean: $(comp_APP_LIB_LIST_CLEAN)
-comp_firm_clean: $(comp_FIRM_LIST_CLEAN)
-
-examples: $($(COMP)_EXAMPLE_LIST)
-
-examples_clean: $(comp_EXAMPLE_LIST_CLEAN)
-
-package: $(package_BOARD_LIST_ALL)
-
-release: lib tar firm
-
-#=================================================================
-#COMP libs app_libs and apps
-$(comp_PKG_LIST_ALL):
-       $(if $(filter $(SOC), $(subst emptyreplacement,,$($@_SOCLIST))),\
-           $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
-               $(if $(filter yes, $(subst emptyreplacement,,$($@_XDC_CONFIGURO))),\
-                   $(MAKE) -C $($@_PATH) $($@_MAKEFILE) xdc_configuro,),),\
-       $(if $(filter $(BOARD), $(subst emptyreplacement,,$($@_BOARDLIST))),\
-           $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
-               $(if $(filter yes, $(subst emptyreplacement,,$($@_XDC_CONFIGURO))),\
-                   $(MAKE) -C $($@_PATH) $($@_MAKEFILE) xdc_configuro,),),))
-       $(if $(filter $(SOC), $(subst emptyreplacement,,$($@_SOCLIST))),\
-           $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
-               $(MAKE) -C $($@_PATH) $($@_MAKEFILE),$(ECHO) Nothing to be done for $(SOC) $(CORE) $@),\
-       $(if $(filter $(BOARD), $(subst emptyreplacement,,$($@_BOARDLIST))),\
-           $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
-               $(MAKE) -C $($@_PATH) $($@_MAKEFILE),$(ECHO) Nothing to be done for $(BOARD) $(SOC) $(CORE) $@),$(ECHO) Nothing to be done for $(SOC) $@))
-       $(if $(filter $(SOC), $(subst emptyreplacement,,$($@_SOCLIST))),\
-           $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
-               $(if $(filter yes, $(subst emptyreplacement,,$($@_SBL_IMAGEGEN))),\
-                   $(MAKE) -C $($@_PATH) $($@_MAKEFILE) sbl_imagegen,),),\
-       $(if $(filter $(BOARD), $(subst emptyreplacement,,$($@_BOARDLIST))),\
-           $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
-               $(if $(filter yes, $(subst emptyreplacement,,$($@_SBL_IMAGEGEN))),\
-                   $(MAKE) -C $($@_PATH) $($@_MAKEFILE) sbl_imagegen,),),))
-       $(if $(filter $(SOC), $(subst emptyreplacement,,$($@_SOCLIST))),\
-           $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
-               $(if $(filter yes, $(subst emptyreplacement,,$($@_SBL_APPIMAGEGEN))),\
-                   $(MAKE) -C $($@_PATH) $($@_MAKEFILE) sbl_appimagegen,),),\
-       $(if $(filter $(BOARD), $(subst emptyreplacement,,$($@_BOARDLIST))),\
-           $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
-               $(if $(filter yes, $(subst emptyreplacement,,$($@_SBL_APPIMAGEGEN))),\
-                   $(MAKE) -C $($@_PATH) $($@_MAKEFILE) sbl_appimagegen,),),))
-
-$(comp_PKG_LIST_ALL_CLEAN):
-       $(if $(filter $(SOC), $(subst emptyreplacement,,$($(subst _clean,,$@)_SOCLIST))),\
-               $(MAKE) -C $($(subst _clean,,$@)_PATH) $($(subst _clean,,$@)_MAKEFILE) clean,\
-       $(if $(filter $(BOARD), $(subst emptyreplacement,,$($(subst _clean,,$@)_BOARDLIST))),\
-               $(MAKE) -C $($(subst _clean,,$@)_PATH) $($(subst _clean,,$@)_MAKEFILE) clean,))
-
-$(comp_PKG_LIST_PACKAGE):
-       $(if $(filter $(SOC), $(subst emptyreplacement,,$($(subst _package,,$@)_SOCLIST))),\
-               $(MAKE) -C $($(subst _package,,$@)_PATH) $($(subst _package,,$@)_MAKEFILE) package,\
-       $(if $(filter $(BOARD), $(subst emptyreplacement,,$($(subst _package,,$@)_BOARDLIST))),\
-               $(MAKE) -C $($(subst _package,,$@)_PATH) $($(subst _package,,$@)_MAKEFILE) package,$(ECHO) Nothing to be done for $(SOC) $(subst _package,,$@)))
-
-#Below is used only for checking c++ build errors during development, not to be used for any other purpose
-cplusplus_build:
-       $(MAKE) all_cpp BUILD_PROFILE=debug CPLUSPLUS_BUILD=yes
+# Invoke the ti/build/makefile with COMP name
+$(TARGETS_SOC_BOARD_INDP):
+       $(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile $@ COMP=$(COMP) DOXYGEN_SUPPORT=$($(COMP)_DOXYGEN_SUPPORT)
 
-# Nothing beyond this point
+# nothing beyond this point
index 2eed3a3df645580c9b2436607326c57300ae4a59..bc62354dc6e0e920869c06bf8e738d99a56fb052 100644 (file)
@@ -72,6 +72,7 @@ loc-install-pdk-build-common:
        install -m 0755 Rules.make $(PDK_INSTALL_DIR)/packages/ti/build
        install -m 0755 comp_top.mk $(PDK_INSTALL_DIR)/packages/ti/build
        install -m 0755 comp_paths.mk $(PDK_INSTALL_DIR)/packages/ti/build
+       install -m 0755 pdk_tools_path.mk $(PDK_INSTALL_DIR)/packages/ti/build
        install -m 0644 pdk_build_ver.h $(PDK_INSTALL_DIR)/packages/ti/build
        install -m 0755 makerules/build_config.mk $(PDK_INSTALL_DIR)/packages/ti/build/makerules
        install -m 0755 makerules/common.mk $(PDK_INSTALL_DIR)/packages/ti/build/makerules
@@ -79,6 +80,7 @@ loc-install-pdk-build-common:
        install -m 0755 makerules/env.mk $(PDK_INSTALL_DIR)/packages/ti/build/makerules
        install -m 0755 makerules/platform.mk $(PDK_INSTALL_DIR)/packages/ti/build/makerules
        install -m 0755 makefile $(PDK_INSTALL_DIR)/packages/ti/build/
+       install -m 0755 makefile_non-buildinfra $(PDK_INSTALL_DIR)/packages/ti/build/
        install -m 0755 unit-test/README.txt $(PDK_INSTALL_DIR)/packages/ti/build/unit-test
        install -m 0755 unit-test/config/unity_config.c $(PDK_INSTALL_DIR)/packages/ti/build/unit-test/config
        install -m 0755 unit-test/config/unity_config.h $(PDK_INSTALL_DIR)/packages/ti/build/unit-test/config
index 9b4c2d8d1d0276ad8f9b20b93cdefed7f6619be0..4ffddcb531fae2afe3bcc49fc3f1ca7cdeff33be 100755 (executable)
@@ -1,11 +1,19 @@
 
-include Rules.make
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
 
+XDC = $(XDC_INSTALL_PATH)/xdc
+
+ifeq ($(LIMIT_BOARDS),)
 BOARD_LIST_ALL = evmDRA72x evmDRA75x evmDRA78x evmAM572x idkAM572x idkAM571x idkAM574x
 BOARD_LIST_ALL += $(BOARD_LIST_J6_TDA)
 BOARD_LIST_ALL += am65xx_sim
 BOARD_LIST_ALL += $(BOARD_LIST_J7_TDA)
+else
+  # If LIMIT_BOARDS is defined use it
+  BOARD_LIST_ALL = $(LIMIT_BOARDS)
+endif
 
+ifeq ($(LIMIT_CORES),)
 #Limit core list based on board
 ifeq ($(BOARD),$(filter $(BOARD), $(BOARD_LIST_J7_TDA)))
   CORE_LIST_ALL = mpu1_0
@@ -17,43 +25,129 @@ else
   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
   CORE_LIST_ALL += mcu1_0 mcu1_1 mpu1_0 mpu1_1
 endif
+else
+  # If LIMIT_CORES is defined use it
+  CORE_LIST_ALL = $(LIMIT_CORES)
+endif
 
 BUILD_PROFILE_LIST_ALL ?= release debug
 
-pdk_LIB_LIST_CLEAN = $(addsuffix _clean, $(pdk_LIB_LIST))
-pdk_APP_LIB_LIST_CLEAN = $(addsuffix _clean, $(pdk_APP_LIB_LIST))
-pdk_EXAMPLE_LIST_CLEAN = $(addsuffix _clean, $(pdk_EXAMPLE_LIST))
-pdk_DUP_EXAMPLE_LIST_CLEAN = $(addsuffix _clean, $(pdk_DUP_EXAMPLE_LIST))
-pdk_PKG_LIST_ALL_CLEAN = $(addsuffix _clean, $(pdk_PKG_LIST_ALL))
-pdk_PKG_LIST_PACKAGE = $(addsuffix _package, $(pdk_PKG_LIST_ALL))
 
-.PHONY : all pdk_libs pdk_libs_clean pdk_app_libs pdk_app_libs_clean examples examples_clean clean package $(pdk_PKG_LIST_ALL) $(pdk_DUP_EXAMPLE_LIST)
 
-all: version pdk_libs pdk_app_libs
-       $(MAKE) examples
-       $(foreach dup_app, $(pdk_DUP_EXAMPLE_LIST),\
-       $(MAKE) $(dup_app);\
-       )
+# Variables used
+
+
+#if COMP is not defined, the build comprises of all modules in the ti/build/component.mk
+ifeq ($(COMP),)
+
+FINAL_LIB_LIST = $(pdk_LIB_LIST)
+FINAL_APP_LIB_LIST = $(pdk_APP_LIB_LIST)
+FINAL_EXAMPLE_LIST = $(pdk_EXAMPLE_LIST)
+FINAL_FIRM_LIST = $(pdk_FIRM_LIST)
+FINAL_PKG_LIST_ALL = $(pdk_PKG_LIST_ALL)
+FINAL_DUP_EXAMPLE_LIST = $(pdk_DUP_EXAMPLE_LIST)
+
+else
+#if COMP is defined, this is built from within a component, eg) ti/drv/mmcsd> make all
+# In this case only that module's LIB,APPLIB, EXAMPLES should be built
+
+FINAL_LIB_LIST =$($(COMP)_LIB_LIST)
+FINAL_APP_LIB_LIST = $($(COMP)_APP_LIB_LIST)
+FINAL_EXAMPLE_LIST=$($(COMP)_EXAMPLE_LIST)
+FINAL_FIRM_LIST = $($(COMP)_FIRM_LIST)
+FINAL_DUP_EXAMPLE_LIST = $($(COMP)_DUP_EXAMPLE_LIST)
+FINAL_PKG_LIST_ALL=$($(COMP)_LIB_LIST) $($(COMP)_APP_LIB_LIST) $($(COMP)_EXAMPLE_LIST) $($(COMP)_FIRM_LIST) $($(COMP)_DUP_EXAMPLE_LIST)
+
+endif
+
+# Consolidated list of targets to be built
+FINAL_LIB_LIST_CLEAN = $(addsuffix _clean, $(FINAL_LIB_LIST))
+FINAL_APP_LIB_LIST_CLEAN = $(addsuffix _clean, $(FINAL_APP_LIB_LIST))
+FINAL_EXAMPLE_LIST_CLEAN = $(addsuffix _clean, $(FINAL_EXAMPLE_LIST))
+FINAL_FIRM_LIST_CLEAN = $(addsuffix _clean, $(FINAL_FIRM_LIST))
+FINAL_DUP_EXAMPLE_LIST_CLEAN = $(addsuffix _clean, $(FINAL_DUP_EXAMPLE_LIST))
+FINAL_PKG_LIST_PACKAGE = $(addsuffix _package, $(FINAL_PKG_LIST_ALL))
+FINAL_PKG_LIST_ALL_CLEAN = $(addsuffix _clean, $(FINAL_PKG_LIST_ALL))
+
+# Create the _has_dep target for the <module> if _DEPENDS_ON is defined in the <module>_component.mk
+# For example, CREATE_DEP_TARGETS(nimu_icssg,FINAL_LIB_LIST) does the following:
+# 1) creates nimu_icssg_has_dep: emac_has_dep (as 'nimu_icssg_DEPENDS_ON = emac' is mentioned in nimu_component.mk)
+# 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
+#  However CREATE_DEP_TARGETS(mmcsd,FINAL_LIB_LIST) will create mmcsd_has_dep: (as 'mmcsd_DEPENDS_ON ' is not defined in mmcsd_component.mk)
+# 3) Build the <module> after the dependency is built
+
+define CREATE_DEP_TARGETS
+ifneq ($($(1)_DEPENDS_ON),)
+ifeq ($($(1)_DEPENDS_ON),$(filter $($(1)_DEPENDS_ON), $($(2))))
+$(1)_has_dep: $($(1)_DEPENDS_ON)_has_dep
+       +$(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile $(1)
+
+$(2)_DEP_LIST += $($(1)_DEPENDS_ON)
+else
+$(1)_has_dep:
+       +$(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile $(1)
+endif
+else
+$(1)_has_dep:
+       +$(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile $(1)
+endif
+endef
+
+
+# For all the targets to build, create the Dependency targets.
+$(foreach LIB,$(FINAL_LIB_LIST),$(eval $(call CREATE_DEP_TARGETS,$(LIB),FINAL_LIB_LIST)))
+$(foreach APP_LIB,$(FINAL_APP_LIB_LIST),$(eval $(call CREATE_DEP_TARGETS,$(APP_LIB),FINAL_APP_LIB_LIST)))
+$(foreach EXAMPLE,$(FINAL_EXAMPLE_LIST),$(eval $(call CREATE_DEP_TARGETS,$(EXAMPLE),FINAL_EXAMPLE_LIST)))
+$(foreach DUP_EXAMPLE,$(FINAL_DUP_EXAMPLE_LIST),$(eval $(call CREATE_DEP_TARGETS,$(DUP_EXAMPLE),FINAL_DUP_EXAMPLE_LIST)))
+$(foreach FIRM,$(FINAL_FIRM_LIST),$(eval $(call CREATE_DEP_TARGETS,$(FIRM),FINAL_FIRM_LIST)))
+
+# Create *_has_dep targets , filtering out the duplicate entries (which already appeared as dependent targets to others
+# For example nimu_icssg_has_dep already builds emac (nimu_icssg_DEPENDS_ON = emac)
+FINAL_LIB_HAS_DEP_LIST = $(addsuffix _has_dep, $(filter-out $(FINAL_LIB_LIST_DEP_LIST), $(FINAL_LIB_LIST)))
+FINAL_APP_LIB_HAS_DEP_LIST = $(addsuffix _has_dep,$(filter-out $(FINAL_APP_LIB_LIST_DEP_LIST),$(FINAL_APP_LIB_LIST)))
+FINAL_EXAMPLE_HAS_DEP_LIST = $(addsuffix _has_dep, $(filter-out $(FINAL_EXAMPLE_LIST_DEP_LIST),$(FINAL_EXAMPLE_LIST)))
+FINAL_DUP_EXAMPLE_HAS_DEP_LIST = $(addsuffix _has_dep,$(filter-out $(FINAL_DUP_EXAMPLE_LIST_DEP_LIST),$(FINAL_DUP_EXAMPLE_LIST)))
+FINAL_FIRM_HAS_DEP_LIST = $(addsuffix _has_dep, $(filter-out $(FINAL_FIRM_LIST_DEP_LIST),$(FINAL_FIRM_LIST)))
+
+
+.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
+
+all: version all_apps
+
+all_apps: all_libs
+       +$(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile all_apps_core
+
+all_libs: pdk_libs pdk_app_libs firm
+
+all_apps_core: pdk_examples pdk_dup_apps
 
 version:
        $(ECHO) ------------------------------------------------------
        $(ECHO) \# PDK MM.NN.PP.BB
        $(ECHO) ------------------------------------------------------
 
-pdk_libs: $(pdk_LIB_LIST)
+pdk_libs: $(FINAL_LIB_HAS_DEP_LIST)
+
+pdk_libs_clean: $(FINAL_LIB_LIST_CLEAN)
+
+pdk_app_libs: $(FINAL_APP_LIB_HAS_DEP_LIST)
+
+pdk_examples: examples
+
+pdk_dup_apps: $(FINAL_DUP_EXAMPLE_HAS_DEP_LIST)
 
-pdk_libs_clean: $(pdk_LIB_LIST_CLEAN)
+pdk_app_libs_clean: $(FINAL_APP_LIB_LIST_CLEAN)
 
-pdk_app_libs: $(pdk_APP_LIB_LIST)
+all_firm: $(FINAL_FIRM_HAS_DEP_LIST)
 
-pdk_app_libs_clean: $(pdk_APP_LIB_LIST_CLEAN)
+all_firm_clean: $(FINAL_FIRM_LIST_CLEAN)
 
-examples: $(pdk_EXAMPLE_LIST)
+examples: $(FINAL_EXAMPLE_HAS_DEP_LIST)
 
-examples_clean: $(pdk_EXAMPLE_LIST_CLEAN)
+examples_clean: $(FINAL_EXAMPLE_LIST_CLEAN)
 
-clean: pdk_libs_clean pdk_app_libs_clean examples_clean
-       $(foreach dup_app, $(pdk_DUP_EXAMPLE_LIST_CLEAN),\
+clean: pdk_libs_clean pdk_app_libs_clean examples_clean all_firm_clean
+       $(foreach dup_app, $(FINAL_DUP_EXAMPLE_LIST_CLEAN),\
        $(MAKE) $(dup_app);\
        )
 
@@ -70,7 +164,7 @@ all_libs_clean:
        $(RM) -rf ../*/*/*/lib
        $(RM) -rf ../*/*/*/*/lib
 
-package: $(pdk_PKG_LIST_PACKAGE)
+package: $(FINAL_PKG_LIST_PACKAGE)
 
 help:
        $(ECHO) ------------------------------------------------------
@@ -85,26 +179,32 @@ help:
        $(ECHO) "clean          : Cleans all libraries and examples for the provided CORE and BOARD"
        $(ECHO) "allcores_clean : Cleans all libraries and examples for all applicable CORES for a BOARD"
        $(ECHO) "allclean       : Removes the binary directory using rm -rf"
-       $(ECHO) "examples       : Builds all examples"
+       $(ECHO) "pdk_examples   : Builds all examples"
        $(ECHO) "pdk_libs       : Builds all libraries"
        $(ECHO) "pdk_app_libs   : Builds all application utility libaries"
        $(ECHO) "custom_target  : Builds the target list provided by BUILD_TARGET_LIST_ALL= for all cores and profiles"
        $(ECHO) "<Module>       : Builds a module. Possible values:"
-       $(ECHO) "[$(pdk_LIB_LIST)]"
+       $(ECHO) "[$(FINAL_LIB_LIST)]"
+       $(ECHO) ""
+       $(ECHO) "<Module_App_lib> : Builds application libraries:"
+       $(ECHO) "[$(FINAL_APP_LIB_LIST)]"
        $(ECHO) ""
        $(ECHO) "<Module_App>   : Builds an application. Possible values:"
-       $(ECHO) "[$(pdk_EXAMPLE_LIST) $(pdk_DUP_EXAMPLE_LIST)]"
+       $(ECHO) "[$(FINAL_EXAMPLE_LIST) $(FINAL_DUP_EXAMPLE_LIST)]"
        $(ECHO) ""
        $(ECHO) "Optional make variables:"
        $(ECHO) "------------------------"
        $(ECHO) "BOARD=[$(BOARD_LIST_ALL)]"
        $(ECHO) "    Default: $(BOARD)"
        $(ECHO) "CORE=[$(CORE_LIST_ALL)]"
-       $(ECHO) "    Default: Depends on the platform"
+       $(ECHO) "    Default: $(CORE)"
        $(ECHO) "BUILD_PROFILE=[$(BUILD_PROFILE_LIST_ALL)]"
        $(ECHO) "    Default: $(BUILD_PROFILE)"
        $(ECHO) "OS=[Windows_NT linux]"
        $(ECHO) "    Default: Windows_NT"
+       $(ECHO) "    COMP = $(COMP)"
+       $(ECHO) "    PDK_INSTALL_PATH = $(PDK_INSTALL_PATH)"
+       $(ECHO) "    XDC_INSTALL_PATH = $(XDC_INSTALL_PATH)"
 
 allcores:
        $(foreach current_core, $(CORE_LIST_ALL),\
@@ -161,8 +261,7 @@ custom_target:
                $(foreach current_core, $(CORE_LIST_ALL),\
                        $(foreach current_build_target, $(BUILD_TARGET_LIST_ALL),\
                                $(MAKE) $(current_build_target) CORE=$(current_core) BOARD=$(BOARD) BUILD_PROFILE_$(current_core)=$(current_profile);\
-         )))
-
+       )))
 
 allall:
        $(foreach current_board, $(BOARD_LIST_ALL),\
@@ -174,9 +273,55 @@ allall_clean:
        $(MAKE) profiles_clean BOARD=$(current_board);\
        )
 
+# $(ECHO) "all_firm_versions: HOSTCORE is $(HOSTCORE) CORE is $(CORE) PRUVERSION is $(pru_version)"; \
+
+all_firm_versions:
+       $(foreach pru_version, $(PRU_VERSION_LIST),\
+       $(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile all_firm HOSTCORE=$(HOSTCORE) CORE=$(CORE) PRUVERSION=$(pru_version); \
+       )
+
+# Build firmware targets for PRU cores which are defined in LIMIT_CORES only
+firm:
+       $(foreach pru_core, $(filter $(PRUCORE_LIST), $(LIMIT_CORES)),\
+       $(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile all_firm_versions HOSTCORE=$(CORE) CORE=$(pru_core); \
+       )
+
+lib: pdk_libs
+
+apps: examples
+app_libs: pdk_app_libs
+
+xdc_meta: 
+       $(XDC) XDCBUILDCFG=config_mk.bld
+
+xdc_meta_clean:
+       $(XDC) clean XDCBUILDCFG=config_mk.bld
+
+doxygen:
+ifeq ($(DOXYGEN_SUPPORT),yes)
+       $(ECHO) Creating Doxygen API guide ...
+       @doxygen docs/Doxyfile
+else
+       $(ECHO) No Doxygen Support available ...
+endif
+
+clean_doxygen:
+ifeq ($(DOXYGEN_SUPPORT),yes)
+       $(ECHO) cleaned Doxygen API guide ...
+       $(RM) -rf docs/doxygen
+else
+       $(ECHO) No Doxygen Support available ...
+endif
+
+tar: lib firm xdc_meta doxygen
+       $(ECHO) Creating the Release Tar ball for $(COMP)...
+       $(XDC) clean   XDCBUILDCFG=config_mk.bld        
+       $(XDC) release XDCBUILDCFG=config_mk.bld
+       $(ECHO) please check $(COMP)/packages folder for the release tarball
+
 #=================================================================
-#PDKs libs and tests
-$(pdk_PKG_LIST_ALL) $(pdk_DUP_EXAMPLE_LIST):
+#All PDKs libs and tests
+$(FINAL_PKG_LIST_ALL) $(FINAL_DUP_EXAMPLE_LIST):
        $(if $(filter $(SOC), $(subst emptyreplacement,,$($@_SOCLIST))),\
            $(if $(filter $(CORE), $(subst emptyreplacement,,$($@_$(SOC)_CORELIST))),\
                $(if $(filter yes, $(subst emptyreplacement,,$($@_XDC_CONFIGURO))),\
@@ -208,13 +353,13 @@ $(pdk_PKG_LIST_ALL) $(pdk_DUP_EXAMPLE_LIST):
                $(if $(filter yes, $(subst emptyreplacement,,$($@_SBL_APPIMAGEGEN))),\
                    $(MAKE) -C $($@_PATH) $($@_MAKEFILE) sbl_appimagegen,),),))
 
-$(pdk_PKG_LIST_ALL_CLEAN) $(pdk_DUP_EXAMPLE_LIST_CLEAN):
+$(FINAL_PKG_LIST_ALL_CLEAN) $(FINAL_DUP_EXAMPLE_LIST_CLEAN):
        $(if $(filter $(SOC), $(subst emptyreplacement,,$($(subst _clean,,$@)_SOCLIST))),\
                $(MAKE) -C $($(subst _clean,,$@)_PATH) $($(subst _clean,,$@)_MAKEFILE) clean,\
        $(if $(filter $(BOARD), $(subst emptyreplacement,,$($(subst _clean,,$@)_BOARDLIST))),\
                $(MAKE) -C $($(subst _clean,,$@)_PATH) $($(subst _clean,,$@)_MAKEFILE) clean,))
 
-$(pdk_PKG_LIST_PACKAGE):
+$(FINAL_PKG_LIST_PACKAGE):
        $(if $(filter $(SOC), $(subst emptyreplacement,,$($(subst _package,,$@)_SOCLIST))),\
                $(MAKE) -C $($(subst _package,,$@)_PATH) $($(subst _package,,$@)_MAKEFILE) package,\
        $(if $(filter $(BOARD), $(subst emptyreplacement,,$($(subst _package,,$@)_BOARDLIST))),\
@@ -222,6 +367,6 @@ $(pdk_PKG_LIST_PACKAGE):
 
 #Below is used only for checking c++ build errors during development, not to be used for any other purpose
 cplusplus_build:
-       $(MAKE) all BUILD_PROFILE=debug CPLUSPLUS_BUILD=yes
+       +$(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile all BUILD_PROFILE=debug CPLUSPLUS_BUILD=yes
 
 # Nothing beyond this point
diff --git a/packages/ti/build/makefile_non-buildinfra b/packages/ti/build/makefile_non-buildinfra
new file mode 100644 (file)
index 0000000..0ccf319
--- /dev/null
@@ -0,0 +1,184 @@
+#*******************************************************************************
+#* FILE PURPOSE: makefile for libraries/apps built using RTSC or legacy makefiles 
+#*               which are not supported in ti/build/component.mk
+#*******************************************************************************
+#* FILE NAME: makefile_non-buildinfra
+#*
+#*******************************************************************************
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+
+# Parallel make is not supported for legacy targets
+.NOTPARALLEL:
+
+# The below is a list of drivers which are not supported by build infrastructure (ti/build/makefile)
+NON_BUILDINFRA_RTSC_DRIVERS_LIST_DRV =  aif2 bcp cppi dfe fftc hyplnk iqn2 nwal pa qmss rm sa srio tcp3d tsip
+NON_BUILDINFRA_RTSC_DRIVERS_LIST_INSTR =  traceframework pktlib wdtimer fault_mgmt
+NON_BUILDINFRA_RTSC_DRIVERS_LIST_RUNTIME =  mmap
+NON_BUILDINFRA_RTSC_DRIVERS_LIST_DIAG =  
+NON_BUILDINFRA_CUSTOM_DRIVERS_LIST =   starterware transportqmss transportsrio
+
+# Applications
+NON_BUILDINFRA_RTSC_EXAMPLES_LIST_DIAG = serdes-diag
+NON_BUILDINFRA_CUSTOM_EXAMPLES_LIST = sbl board-diag
+
+# Make clean targets for these
+
+# clean targets for drivers
+NON_BUILDINFRA_RTSC_DRIVERS_LIST_DRV_CLEAN = $(addsuffix _clean, $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_DRV))
+NON_BUILDINFRA_RTSC_DRIVERS_LIST_INSTR_CLEAN =  $(addsuffix _clean, $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_INSTR))
+NON_BUILDINFRA_RTSC_DRIVERS_LIST_RUNTIME_CLEAN =  $(addsuffix _clean, $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_RUNTIME))
+NON_BUILDINFRA_RTSC_DRIVERS_LIST_DIAG_CLEAN  =  $(addsuffix _clean, $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_DIAG))
+NON_BUILDINFRA_CUSTOM_DRIVERS_LIST_CLEAN =  $(addsuffix _clean, $(NON_BUILDINFRA_CUSTOM_DRIVERS_LIST))
+
+# clean targets for applications
+NON_BUILDINFRA_RTSC_EXAMPLES_LIST_DIAG_CLEAN =  $(addsuffix _clean, $(NON_BUILDINFRA_RTSC_EXAMPLES_LIST_DIAG))
+NON_BUILDINFRA_CUSTOM_EXAMPLES_LIST_CLEAN =  $(addsuffix _clean, $(NON_BUILDINFRA_CUSTOM_EXAMPLES_LIST))
+
+
+# Build rules (all, clean) for RTSC drivers in  ti/drv/<driver>
+$(NON_BUILDINFRA_RTSC_DRIVERS_LIST_DRV):
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/drv/$@ all
+
+$(NON_BUILDINFRA_RTSC_DRIVERS_LIST_DRV_CLEAN):
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/drv/$(subst _clean,,$@) clean
+
+# Build rules (all, clean) for for RTSC drivers in ti/instrumentation/<driver>
+$(NON_BUILDINFRA_RTSC_DRIVERS_LIST_INSTR):
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/instrumentation/$@ all
+
+$(NON_BUILDINFRA_RTSC_DRIVERS_LIST_INSTR_CLEAN):
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/instrumentation/$(subst _clean,,$@) clean
+
+# Build rules (all, clean) for RTSC drivers in ti/runtime/<driver>
+$(NON_BUILDINFRA_RTSC_DRIVERS_LIST_RUNTIME):
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/runtime/$@ all
+
+$(NON_BUILDINFRA_RTSC_DRIVERS_LIST_RUNTIME_CLEAN):
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/runtime/$(subst _clean,,$@) clean
+
+# Build rules (all, clean) for RTSC modules in ti/diag/<modules>
+$(NON_BUILDINFRA_RTSC_DRIVERS_LIST_DIAG) $(NON_BUILDINFRA_RTSC_EXAMPLES_LIST_DIAG):
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/diag/$@ all
+
+$(NON_BUILDINFRA_RTSC_DRIVERS_LIST_DIAG_CLEAN) $(NON_BUILDINFRA_RTSC_EXAMPLES_LIST_DIAG_CLEAN):
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/diag/$(subst _clean,,$@) clean
+
+# SOC (PDK_SOC) specific drivers not supported by build infrastructure (ti/build/)
+NON_BUILDINFRA_DRIVERS_LIST_am335x    = starterware  
+NON_BUILDINFRA_DRIVERS_LIST_am437x    = starterware 
+NON_BUILDINFRA_DRIVERS_LIST_am437x-hs = starterware 
+NON_BUILDINFRA_DRIVERS_LIST_am57xx    = 
+NON_BUILDINFRA_DRIVERS_LIST_am65xx    = 
+NON_BUILDINFRA_DRIVERS_LIST_am65xx-hs = 
+NON_BUILDINFRA_DRIVERS_LIST_k2hk      = bcp fault_mgmt fftc hyplnk nwal pa pktlib sa srio tcp3d  transportqmss transportsrio wdtimer 
+NON_BUILDINFRA_DRIVERS_LIST_k2e       = fault_mgmt hyplnk nwal pa sa transportqmss tsip wdtimer 
+NON_BUILDINFRA_DRIVERS_LIST_k2l       = bcp dfe fault_mgmt fftc iqn2 nwal pa sa tcp3d transportqmss 
+NON_BUILDINFRA_DRIVERS_LIST_k2g       = cppi rm qmss sa mmap
+NON_BUILDINFRA_DRIVERS_LIST_k2g-hs    = cppi rm qmss sa mmap
+NON_BUILDINFRA_DRIVERS_LIST_c667x     = bcp cppi hyplnk nwal pa qmss sa srio tsip
+NON_BUILDINFRA_DRIVERS_LIST_c665x     = cppi hyplnk qmss srio tcp3d
+NON_BUILDINFRA_DRIVERS_LIST_omapl137  = 
+NON_BUILDINFRA_DRIVERS_LIST_omapl138  = 
+NON_BUILDINFRA_DRIVERS_LIST_j7  = 
+
+# SOC (PDK_SOC) specific examples/apps not supported by build infrastructure (ti/build/)
+NON_BUILDINFRA_EXAMPLES_LIST_am335x    = board-diag 
+NON_BUILDINFRA_EXAMPLES_LIST_am437x    = board-diag 
+NON_BUILDINFRA_EXAMPLES_LIST_am437x-hs = board-diag 
+NON_BUILDINFRA_EXAMPLES_LIST_am57xx    = sbl board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_am65xx    = board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_am65xx-hs = board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_k2hk      = board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_k2e       = board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_k2l       = board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_k2g       = sbl board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_k2g-hs    = sbl board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_c667x     = board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_c665x     = board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_omapl137  = sbl board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_omapl138  = sbl board-diag
+NON_BUILDINFRA_EXAMPLES_LIST_j7        = 
+
+NON_BUILDINFRA_DRIVERS_LIST_$(PDK_SOC)_CLEAN =  $(addsuffix _clean, $(NON_BUILDINFRA_DRIVERS_LIST_$(PDK_SOC)))
+NON_BUILDINFRA_EXAMPLES_LIST_$(PDK_SOC)_CLEAN = $(addsuffix _clean, $(NON_BUILDINFRA_EXAMPLES_LIST_$(PDK_SOC)))
+
+###################   Targets for this makefile ########################################
+.PHONY: $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_DRV) \
+  $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_RUNTIME)  \
+  $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_DIAG) \
+  $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_INSTR) \
+  $(NON_BUILDINFRA_CUSTOM_DRIVERS_LIST) \
+  $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_DRV_CLEAN) \
+  $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_RUNTIME_CLEAN) \
+  $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_DIAG_CLEAN) \
+  $(NON_BUILDINFRA_RTSC_DRIVERS_LIST_INSTR_CLEAN) \
+  $(NON_BUILDINFRA_CUSTOM_DRIVERS_LIS_CLEAN) \
+  all help clean help pdk_libs pdk_libs_clean pdk_examples pdk_examples_clean pdk_examples_core
+
+
+all: pdk_examples
+clean: pdk_libs_clean pdk_examples_clean
+
+#Examples depend on libs to be built first
+pdk_examples: pdk_libs 
+       $(MAKE) -f $(PDK_INSTALL_PATH)/ti/build/makefile_non-buildinfra pdk_examples_core
+
+#Examples depend on libs to be built first
+
+pdk_libs: $(NON_BUILDINFRA_DRIVERS_LIST_$(PDK_SOC))
+pdk_libs_clean: $(NON_BUILDINFRA_DRIVERS_LIST_$(PDK_SOC)_CLEAN)
+
+pdk_examples_core: $(NON_BUILDINFRA_EXAMPLES_LIST_$(PDK_SOC))
+pdk_examples_clean: $(NON_BUILDINFRA_EXAMPLES_LIST_$(PDK_SOC)_CLEAN)
+
+help:
+       $(ECHO) "Builds drivers/apps which are not supported in  $(PDK_INSTALL_PATH)/ti/build/makerules/component.mk "
+       $(ECHO) "Drivers built for SOC $(PDK_SOC) are $(NON_BUILDINFRA_DRIVERS_LIST_$(PDK_SOC))"
+       $(ECHO) "Examples built for SOC $(PDK_SOC) is $(NON_BUILDINFRA_EXAMPLES_LIST_$(PDK_SOC))"
+
+# Building SBL for a PDK_SOC
+SBL_PLATFORM = 
+SBL_PLATFORM_am57xx = am57xx
+SBL_PLATFORM_k2g = k2g
+SBL_PLATFORM_omapl137 = omapl137
+SBL_PLATFORM_omapl138 = omapl138
+SBL_PLATFORM_am65xx = am65xx
+SBL_PLATFORM_am65xx-hs = am65xx
+SBL_PLATFORM_j721e-evm = j721e
+
+sbl:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all_sbl_images SBL_PLATFORM=$(SBL_PLATFORM_$(PDK_SOC))
+
+sbl_clean:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/boot/sbl all_sbl_images_clean SBL_PLATFORM=$(SBL_PLATFORM_$(PDK_SOC))
+
+# TRANSPORTQMSS/SRIO
+transportqmss:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/transport/ipc/c66/qmss all
+
+transportqmss_clean:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/transport/ipc/c66/qmss clean
+
+
+transportsrio:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/transport/ipc/c66/srio all
+
+transportsrio_clean:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/transport/ipc/c66/srio clean
+
+
+board-diag:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/board/diag all ALL_BOARDS="$(LIMIT_BOARDS)"
+
+board-diag_clean:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/board/diag clean ALL_BOARDS="$(LIMIT_BOARDS)"
+
+# Building starterware 
+STARTERWARE_PLATFORM_am335x = "am335x-evm"
+STARTERWARE_PLATFORM_am437x = "am43xx-evm"
+
+starterware:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/starterware all_profiles -j1 PLATFORM=$(STARTERWARE_PLATFORM_$(PDK_SOC))
+       
+starterware_clean:
+       $(MAKE) -C $(PDK_INSTALL_PATH)/ti/starterware clean KW_BUILD=no
index fa226224d80afbf1cdd8e34f7c810fadd4eb7bab..3e14ba4a23b9a89f75bb7b759a01b01faa2de252 100644 (file)
 #
 ifeq ($(pdk_component_make_include), )
 
-DEFAULT_tda2xx_CORELIST = a15_0 ipu1_0 c66x arp32_1
-DEFAULT_tda2px_CORELIST = a15_0 ipu1_0 c66x arp32_1
-DEFAULT_am572x_CORELIST = a15_0 ipu1_0 c66x
-DEFAULT_am574x_CORELIST = a15_0 ipu1_0 c66x
-DEFAULT_dra72x_CORELIST = a15_0 ipu1_0 c66x
-DEFAULT_dra75x_CORELIST = a15_0 ipu1_0 c66x arp32_1
-DEFAULT_tda2ex_CORELIST = a15_0 ipu1_0 c66x
-DEFAULT_am571x_CORELIST = a15_0 ipu1_0 c66x
-DEFAULT_tda3xx_CORELIST = ipu1_0 c66x arp32_1
-DEFAULT_dra78x_CORELIST = ipu1_0 c66x arp32_1
-DEFAULT_k2h_CORELIST    = a15_0 c66x
-DEFAULT_k2k_CORELIST    = a15_0 c66x
-DEFAULT_k2l_CORELIST    = a15_0 c66x
-DEFAULT_k2e_CORELIST    = a15_0 c66x
-DEFAULT_k2g_CORELIST    = a15_0 c66x
-DEFAULT_c6678_CORELIST  = c66x
-DEFAULT_c6657_CORELIST  = c66x
-DEFAULT_am335x_CORELIST = a8host
-DEFAULT_am437x_CORELIST = a9host
-DEFAULT_omapl137_CORELIST = arm9_0 c674x
-DEFAULT_omapl138_CORELIST = arm9_0 c674x
-DEFAULT_am65xx_CORELIST   = mcu1_0 mpu1_0
-DEFAULT_j721e_CORELIST    = mpu1_0 mcu1_0 mcu1_1 mcu2_0 mcu2_1 mcu3_0 mcu3_1 c66xdsp_1 c66xdsp_2 c7x_1 c7x-hostemu
-DEFAULT_j7200_CORELIST    = mpu1_0 mcu1_0 mcu1_1 mcu2_0 mcu2_1
-DEFAULT_am64x_CORELIST    = mpu1_0 mcu1_0 mcu1_1 mcu2_0 mcu2_1 ipu1_0
-DEFAULT_k3_CORELIST = m3
+# Filter out PRU cores for building components 
+DEFAULT_$(SOC)_CORELIST = $(filter-out $(CORE_LIST_PRU),$(CORE_LIST_$(SOC)))
 
 # Core types (without the core IDs). This will be used to parse and order the establish the order of cores
 # in the case of building libraries for multiple cores
 
-DEFAULT_CORE_TYPES = a15 ipu c66x arp32 a8host a9host c674x arm9 c7x c7x-hostemu mpu mcu
-
 # Component specific CFLAGS
 PDK_CFLAGS =
 PDK_LNKFLAGS =
@@ -495,6 +469,9 @@ ifneq ($(i2c_EXAMPLE_LIST),)
   pdk_EXAMPLE_LIST += $(i2c_EXAMPLE_LIST)
 endif
 
+ifneq ($(i2c_FIRM_LIST),)
+  pdk_FIRM_LIST += $(i2c_FIRM_LIST)
+endif
 # - used to ignore include if component not present
 -include $(PDK_UART_COMP_PATH)/uart_component.mk
 ifneq ($(uart_LIB_LIST),)
@@ -674,6 +651,9 @@ endif
 ifneq ($(icss_emac_EXAMPLE_LIST),)
   pdk_EXAMPLE_LIST += $(icss_emac_EXAMPLE_LIST)
 endif
+ifneq ($(icss_emac_FIRM_LIST),)
+  pdk_FIRM_LIST += $(icss_emac_FIRM_LIST)
+endif
 
 # - used to ignore include if component not present
 -include $(PDK_EMAC_COMP_PATH)/emac_component.mk
@@ -779,8 +759,32 @@ ifneq ($(board_diag_EXAMPLE_LIST),)
   pdk_EXAMPLE_LIST += $(board_diag_EXAMPLE_LIST)
 endif
 
-pdk_PKG_LIST_ALL = $(pdk_EXAMPLE_LIST) $(pdk_LIB_LIST) $(pdk_APP_LIB_LIST) $(pdk_FIRM_LIST)
+# Adding new component to the packages/ti/build which is not part of the PDK.
+# An example would be some demo which is not built from packages/ti/build but 
+# would still like to use the ti/build/ infrastructure 
+
+ifeq ($($(COMP)_USE_PDK_BUILD),yes)
+include $($(COMP)_COMPONENT_MK_PATH)/$(COMP)_component.mk
+
+ifneq ($($(COMP)_LIB_LIST),)
+  pdk_LIB_LIST += $($(COMP)_LIB_LIST)
+endif
+
+ifneq ($($(COMP)_APP_LIB_LIST),)
+  pdk_APP_LIB_LIST += $($(COMP)_APP_LIB_LIST)
+endif
+
+ifneq ($($(COMP)_FIRM_LIST),)
+  pdk_FIRM_LIST += $($(COMP)_FIRM_LIST)
+endif
+
+ifneq ( $($(COMP)_EXAMPLE_LIST),)
+  pdk_EXAMPLE_LIST += $($(COMP)_EXAMPLE_LIST)
+endif
+
+endif
 
+pdk_PKG_LIST_ALL = $(pdk_EXAMPLE_LIST) $(pdk_LIB_LIST) $(pdk_APP_LIB_LIST) $(pdk_FIRM_LIST)
 
 ifneq ($(CORE),$(filter $(CORE), pru_0 pru_1))
 # By default it is little endian for non pru cores
index 658507330d8c04b346fde766265f61e343e56ab4..b70e88401d737453b844abc1c7f151eba4912b53 100644 (file)
 #     1. a new Board/SoC is added, which also might have its own cores/ISAs
 #
 
+# LIST of Boards for each SOC
+BOARD_LIST_k2h = evmK2H
+BOARD_LIST_k2k = evmK2K
+BOARD_LIST_k2l = evmK2L
+BOARD_LIST_k2e = evmK2E
+BOARD_LIST_c6657 = evmC6657
+BOARD_LIST_c6678 = evmC6678
+BOARD_LIST_k2g = evmK2G iceK2G
+BOARD_LIST_am335x = icev2AM335x iceAMIC110 skAM335x bbbAM335x
+BOARD_LIST_am437x = evmAM437x idkAM437x skAM437x
+BOARD_LIST_am571x = evmAM571x idkAM571x
+BOARD_LIST_am572x = evmAM572x idkAM572x
+BOARD_LIST_am574x = idkAM574x
+BOARD_LIST_omapl137 =  evmOMAPL137
+BOARD_LIST_omapl138 =  lcdkOMAPL138
+BOARD_LIST_am65xx = am65xx_evm am65xx_idk
+BOARD_LIST_j721e = j721e_evm
+BOARD_LIST_j7200 = j7200_evm
+
+CORE_LIST_tda2xx = a15_0 ipu1_0 c66x arp32_1
+CORE_LIST_tda2px = a15_0 ipu1_0 c66x arp32_1
+CORE_LIST_am571x = a15_0 ipu1_0 c66x pru_0 pru_1
+CORE_LIST_am572x = a15_0 ipu1_0 c66x pru_0 pru_1
+CORE_LIST_am574x = a15_0 ipu1_0 c66x pru_0 pru_1
+CORE_LIST_dra72x = a15_0 ipu1_0 c66x
+CORE_LIST_dra75x = a15_0 ipu1_0 c66x arp32_1
+CORE_LIST_tda2ex = a15_0 ipu1_0 c66x
+CORE_LIST_tda3xx = ipu1_0 c66x arp32_1
+CORE_LIST_dra78x = ipu1_0 c66x arp32_1
+CORE_LIST_k2h    = a15_0 c66x
+CORE_LIST_k2k    = a15_0 c66x
+CORE_LIST_k2l    = a15_0 c66x
+CORE_LIST_k2e    = a15_0 c66x
+CORE_LIST_k2g    = a15_0 c66x pru_0 pru_1
+CORE_LIST_c6678  = c66x
+CORE_LIST_c6657  = c66x
+CORE_LIST_am335x = a8host pru_0 pru_1
+CORE_LIST_am437x = a9host pru_0 pru_1
+CORE_LIST_omapl137 = arm9_0 c674x
+CORE_LIST_omapl138 = arm9_0 c674x
+CORE_LIST_am65xx   = mcu1_0 mcu1_1 mpu1_0 mpu1_1 mpu2_0 mpu2_1
+CORE_LIST_j721e    = mpu1_0 mcu1_0 mcu1_1 mcu2_0 mcu2_1 mcu3_0 mcu3_1 c66xdsp_1 c66xdsp_2 c7x_1 c7x-hostemu
+CORE_LIST_j7200    = mpu1_0 mcu1_0 mcu1_1 mcu2_0 mcu2_1
+CORE_LIST_am64x    = mpu1_0 mcu1_0 mcu1_1 mcu2_0 mcu2_1 ipu1_0
+CORE_LIST_k3_CORELIST = m3
+CORE_LIST_PRU = pru_0 pru_1
+
 #
 # Derive SOC from BOARD
 #
-
 # TDA2XX
 ifeq ($(BOARD),$(filter $(BOARD), tda2xx-evm tda2xx-mc tda2xx-evm-radar tda2xx-rvp tda2xx-cascade-radar))
  SOC = tda2xx
diff --git a/packages/ti/build/pdk_tools_path.mk b/packages/ti/build/pdk_tools_path.mk
new file mode 100644 (file)
index 0000000..3cff7aa
--- /dev/null
@@ -0,0 +1,123 @@
+################################################################################
+# Configure toolchain paths
+################################################################################
+  # This section applies to all broader set of boards with SOCs beyond TDA class
+  # in Processor SDK RTOS release
+  PDK_VERSION_STR=_$(PDK_SOC)_$(PDK_VERSION)
+ifeq ($(PDK_VERSION),)
+  PDK_VERSION_STR=
+endif
+
+  #Tool versions for non-TDA builds
+  GCC_CROSS_TOOL_PREFIX=arm-none-eabi-
+  GCC_CROSS_TOOL_TAG=7-2018-q2-update
+  GCC_ARCH64_VERSION=7.2.1-2017.11
+  CGT_VERSION=8.3.2
+
+  CGT_C7X_VERSION=1.2.0.STS
+  CGT_ARM_VERSION=18.12.1.LTS
+  GCC_VERSION_HARDLIB=7.3.1
+
+  CGT_ARP32_VERSION=1.0.8
+  CG_XML_VERSION=2.61.00
+
+  #Component versions for non-TDA builds
+  BIOS_VERSION=6_76_03_01
+  XDC_VERSION=3_55_02_22_core
+
+  EDMA_VERSION=2_12_05_30E
+  SECDEV_VERSION=01_06_00_05
+  CGT_PRU_VERSION=2.3.2
+
+  #Hardcode IPC version if it is not set already
+  IPC_VERSION=3_50_04_08
+  NDK_VERSION=3_61_01_01
+  NS_VERSION=2_60_01_06
+
+  UIA_VERSION=2_30_01_02
+  XDAIS_VERSION=7_24_00_04
+  AER_VERSION=17_0_0_0
+
+  # C674x DSP libraries sould be used for OMAPL13x platform
+ifeq ($(SOC),$(filter $(SOC), omapl137 omapl138))
+  DSPLIB_VERSION ?= c674x_3_4_0_4
+  IMGLIB_VERSION ?= c674x_3_1_1_0
+  MATHLIB_VERSION ?= c674x_3_1_2_4
+else
+  DSPLIB_VERSION ?= c66x_3_4_0_4
+  IMGLIB_VERSION ?= c66x_3_1_1_0
+  MATHLIB_VERSION ?= c66x_3_1_2_4
+endif
+
+  export GCC_FLOAT_PATH ?= HARD
+
+################################################################################
+# Dependent toolchain paths variables
+################################################################################
+# Version of GCC
+GCC_VERSION=$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
+GCC_VERSION_ARM_A15=$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
+  export GCC_VERSION_ARM_A8=$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
+  export GCC_VERSION_ARM_A9=$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
+  export CROSS_TOOL_PRFX           ?= $(GCC_CROSS_TOOL_PREFIX)
+  export C6X_GEN_INSTALL_PATH      ?= $(TOOLS_INSTALL_PATH)/ti-cgt-c6000_$(CGT_VERSION)
+  export C7X_GEN_INSTALL_PATH      ?= $(TOOLS_INSTALL_PATH)/ti-cgt-c7000_$(CGT_C7X_VERSION)
+  export CL_PRU_INSTALL_PATH       ?= $(TOOLS_INSTALL_PATH)/ti-cgt-pru_$(CGT_PRU_VERSION)
+  export TOOLCHAIN_PATH_A8         ?= $(TOOLS_INSTALL_PATH)/gcc-$(GCC_VERSION_ARM_A8)
+  export TOOLCHAIN_PATH_A9         ?= $(TOOLS_INSTALL_PATH)/gcc-$(GCC_VERSION_ARM_A9)
+  export TOOLCHAIN_PATH_Arm9       ?= $(TOOLS_INSTALL_PATH)/ti-cgt-arm_$(CGT_ARM_VERSION)
+  export TOOLCHAIN_PATH_A15        ?= $(TOOLS_INSTALL_PATH)/gcc-$(GCC_VERSION_ARM_A15)
+ifeq ($(OS),Windows_NT)
+  #Paths for windows machine
+  export TOOLCHAIN_PATH_GCC_ARCH64 ?= $(TOOLS_INSTALL_PATH)/gcc-linaro-$(GCC_ARCH64_VERSION)-i686-mingw32_aarch64-elf
+else
+  #Paths for linux machine
+  export TOOLCHAIN_PATH_GCC_ARCH64 ?= $(TOOLS_INSTALL_PATH)/gcc-linaro-$(GCC_ARCH64_VERSION)-x86_64_aarch64-elf
+
+  export TOOLCHAIN_PATH_QNX_A72    ?= $(QNX_HOST)/usr/bin
+  export TOOLCHAIN_PATH_A53        ?= $(TOOLCHAIN_PATH_GCC_ARCH64)
+  export TOOLCHAIN_PATH_A72        ?= $(TOOLCHAIN_PATH_GCC_ARCH64)
+  export TOOLCHAIN_PATH_EVE        ?= $(TOOLS_INSTALL_PATH)/arp32_$(CGT_ARP32_VERSION)
+  export TOOLCHAIN_PATH_M4         ?= $(TOOLS_INSTALL_PATH)/ti-cgt-arm_$(CGT_ARM_VERSION)
+  export TOOLCHAIN_PATH_R5         ?= $(TOOLS_INSTALL_PATH)/ti-cgt-arm_$(CGT_ARM_VERSION)
+  export BIOS_INSTALL_PATH         ?= $(SDK_INSTALL_PATH)/bios_$(BIOS_VERSION)
+  export DSPLIB_INSTALL_PATH       ?= $(SDK_INSTALL_PATH)/dsplib_$(DSPLIB_VERSION)
+  export EDMA3LLD_BIOS6_INSTALLDIR ?= $(SDK_INSTALL_PATH)/edma3_lld_$(EDMA_VERSION)
+  export IMGLIB_INSTALL_PATH       ?= $(SDK_INSTALL_PATH)/imglib_$(IMGLIB_VERSION)
+  export IPC_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/ipc_$(IPC_VERSION)
+  export MATHLIB_INSTALL_PATH      ?= $(SDK_INSTALL_PATH)/mathlib_$(MATHLIB_VERSION)
+  export NDK_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/ndk_$(NDK_VERSION)
+  export NS_INSTALL_PATH           ?= $(SDK_INSTALL_PATH)/ns_$(NS_VERSION)
+  export PDK_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/pdk$(PDK_VERSION_STR)/packages
+  export UIA_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/uia_$(UIA_VERSION)
+  export XDC_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/xdctools_$(XDC_VERSION)
+  export UTILS_INSTALL_DIR         ?= $(XDC_INSTALL_PATH)/bin
+  export RADARLINK_INSTALL_PATH    ?= $(SDK_INSTALL_PATH)/$(mmwavelink_version)
+  export CG_XML_BIN_INSTALL_PATH   ?= $(SDK_INSTALL_PATH)/cg_xml_$(CG_XML_VERSION)/bin
+  export TI_SECURE_DEV_PKG         ?= $(SDK_INSTALL_PATH)/proc-sdk-secdev_$(SECDEV_VERSION)
+  export XDAIS_INSTALL_PATH        ?= $(SDK_INSTALL_PATH)/xdais_$(XDAIS_VERSION)
+  export AER_INSTALL_PATH          ?= $(SDK_INSTALL_PATH)/aer_c64Px_obj_$(AER_VERSION)
+  export GCC_ARM_NONE_TOOLCHAIN    ?= $(SDK_INSTALL_PATH)/gcc-$(GCC_CROSS_TOOL_PREFIX)$(GCC_CROSS_TOOL_TAG)
+  export TI_CGT6x_INSTALL_DIR      ?= $(SDK_INSTALL_PATH)/c6000_7.4.16
+  export M4_TOOLCHAIN_INSTALL_DIR  ?= $(TOOLCHAIN_PATH_M4)
+endif
+
+ifeq ($(SOC),$(filter $(SOC), am335x))
+  export HARDLIB_PATH ?= $(TOOLCHAIN_PATH_A8)/lib/gcc/arm-none-eabi/$(GCC_VERSION_HARDLIB)/hard
+  export FPULIB_PATH ?= $(TOOLCHAIN_PATH_A8)/lib/gcc/arm-none-eabi/$(GCC_VERSION_FPULIB)/fpu
+else ifeq  ($(SOC),$(filter $(SOC), am437x))
+  export HARDLIB_PATH ?= $(TOOLCHAIN_PATH_A9)/lib/gcc/arm-none-eabi/$(GCC_VERSION_HARDLIB)/hard
+  export FPULIB_PATH ?= $(TOOLCHAIN_PATH_A9)/lib/gcc/arm-none-eabi/$(GCC_VERSION_FPULIB)/fpu
+else
+  export HARDLIB_PATH ?= $(TOOLCHAIN_PATH_A15)/lib/gcc/arm-none-eabi/$(GCC_VERSION_HARDLIB)/hard
+  export FPULIB_PATH ?= $(TOOLCHAIN_PATH_A15)/lib/gcc/arm-none-eabi/$(GCC_VERSION_FPULIB)/fpu
+endif
+
+# Utilities directory. This is required only if the build machine is Windows.
+#   - specify the installation directory of utility which supports POSIX commands
+#     (eg: Cygwin installation or MSYS installation).
+# This could be in CCS install directory as in c:/ti/ccsv<ver>/utils/cygwin or
+# the XDC install bin folder represented by  $(UTILS_INSTALL_DIR)
+ifeq ($(OS),Windows_NT)
+  export utils_PATH ?= $(UTILS_INSTALL_DIR)
+endif
index 65782db54670673d4cd664eff1e3ee3f373c891f..e22e98ea1a65e4723998441ee603692f7cb74880 100644 (file)
@@ -168,6 +168,10 @@ nimu_icssg_OBJPATH = $(nimu_RELPATH)/nimu_icssg
 export nimu_icssg_OBJPATH
 nimu_icssg_MAKEFILE = -f build/makefile_icssg.mk
 export nimu_icssg_MAKEFILE
+# NIMU ICSSG depends on emac/icssg_dualmac firmware to be built. The below ensures emac as a dependency
+nimu_icssg_DEPENDS_ON=emac
+export nimu_icssg_DEPENDS_ON
+
 nimu_icssg_BOARD_DEPENDENCY = no
 nimu_icssg_CORE_DEPENDENCY = no
 nimu_icssg_SOC_DEPENDENCY = yes
@@ -195,6 +199,9 @@ nimu_icssg_profile_OBJPATH = $(nimu_RELPATH)/nimu_icssg_profile
 export nimu_icssg_profile_OBJPATH
 nimu_icssg_profile_MAKEFILE = -f build/makefile_icssg_profile.mk
 export nimu_icssg_profile_MAKEFILE
+# NIMU ICSSG depends on emac/icssg_dualmac firmware to be built. The below ensures emac as a dependency
+nimu_icssg_profile_DEPENDS_ON=emac
+export nimu_icssg_profile_DEPENDS_ON
 nimu_icssg_profile_BOARD_DEPENDENCY = no
 nimu_icssg_profile_CORE_DEPENDENCY = no
 nimu_icssg_profile_SOC_DEPENDENCY = yes
index 6f5afbfb32b91f89ba21a599b256329105c65d8c..e20d645d2ce3500fb58883cb4f400af8ff11ee7b 100644 (file)
@@ -1,6 +1,7 @@
 SRCDIR += src src/v7
 INCDIR += src src/v7
 
+
 ifeq ($(CORE),$(filter $(CORE), mcu1_0 mcu1_1 mcu2_0 mcu2_1))
 INCDIR += $(bios_PATH)/packages/ti/posix/ccs
 endif