331 lines
11 KiB
Makefile
331 lines
11 KiB
Makefile
#
|
|
# ======== tirtos.mak ========
|
|
#
|
|
|
|
#
|
|
# Set location of various cgtools
|
|
#
|
|
# These variables can be set here or on the command line. Paths must not
|
|
# have spaces. If using a Windows PC, the following can be used to determine
|
|
# a directory's DOS path (path without spaces):
|
|
#
|
|
# 1. Open a command prompt.
|
|
# 2. Navigate (cd) into the directory.
|
|
# 2. Enter the following command:
|
|
# > for %I in (".") do echo %~sI
|
|
#
|
|
# The steps above should provide you with a path similar to the following:
|
|
# Original Path: c:\Program Files (x86)\IAR Systems\Embedded Workbench 7.2
|
|
# DOS Path: c:\PROGRA~2\IARSYS~1\EMBEDD~1.2
|
|
#
|
|
# The final step is to replace all backslashes '\' in the path with forward
|
|
# slashes '/'.
|
|
# Correct Path: c:/PROGRA~2/IARSYS~1/EMBEDD~1.2
|
|
#
|
|
DEFAULT_INSTALL_DIR ?= c:/ti
|
|
CCS_COMPILERS_DIR ?= $(DEFAULT_INSTALL_DIR)/ccsv6/tools/compiler
|
|
|
|
#
|
|
# Enable TI-RTOS to build for CCS.
|
|
# Set CCS_BUILD to true and modify path to toolchain
|
|
#
|
|
CCS_BUILD ?= true
|
|
TI_INSTALL_DIR ?= $(CCS_COMPILERS_DIR)
|
|
ti.targets.arm.elf.M4F ?= $(TI_INSTALL_DIR)/ti-cgt-arm_5.2.5
|
|
|
|
#
|
|
# Enable TI-RTOS to build for IAR.
|
|
# Set IAR_BUILD to true and modify path to toolchain.
|
|
#
|
|
# The IAR_INSTALL_DIR must be set to point to the "Embedded Workbench x.y"
|
|
# directory in IAR Workbench. This path MUST NOT contain spaces. If using a
|
|
# Windows PC, see the comments above for steps to get the DOS path for a
|
|
# directory.
|
|
#
|
|
IAR_BUILD ?= false
|
|
IAR_INSTALL_DIR ?= c:/iar
|
|
iar.targets.arm.M4F ?= $(IAR_INSTALL_DIR)/arm
|
|
|
|
#
|
|
# Enable TI-RTOS to build for GCC.
|
|
# Set GCC_BUILD to true and modify path to toolchain
|
|
#
|
|
GCC_BUILD ?= false
|
|
GCC_INSTALL_DIR ?= $(CCS_COMPILERS_DIR)
|
|
gnu.targets.arm.M4F ?= $(GCC_INSTALL_DIR)/ti-cgt-arm_5.2.5
|
|
|
|
#
|
|
# TI-RTOS and XDCTools settings
|
|
#
|
|
XDCTOOLS_INSTALL_DIR ?= $(DEFAULT_INSTALL_DIR)/xdctools_3_31_01_33_core
|
|
export XDCTOOLS_JAVA_HOME ?= $(DEFAULT_INSTALL_DIR)/ccsv6/eclipse/jre
|
|
|
|
TIRTOS_INSTALL_VER ?= tirtos_tivac_2_16_00_08
|
|
TIRTOS_INSTALL_DIR ?= $(DEFAULT_INSTALL_DIR)/$(TIRTOS_INSTALL_VER)
|
|
TIDRIVERS_INSTALL_DIR ?= $(TIRTOS_INSTALL_DIR)/products/tidrivers_tivac_2_16_00_08
|
|
BIOS_INSTALL_DIR ?= $(TIRTOS_INSTALL_DIR)/products/bios_6_45_01_29
|
|
NDK_INSTALL_DIR ?= $(TIRTOS_INSTALL_DIR)/products/ndk_2_25_00_09
|
|
UIA_INSTALL_DIR ?= $(TIRTOS_INSTALL_DIR)/products/uia_2_00_05_50
|
|
NS_INSTALL_DIR ?= $(TIRTOS_INSTALL_DIR)/products/ns_1_11_00_10
|
|
TIVAWARE_INSTALL_DIR ?= $(TIRTOS_INSTALL_DIR)/products/TivaWare_C_Series-2.1.1.71b
|
|
|
|
TIRTOS_PACKAGES_DIR ?= $(TIRTOS_INSTALL_DIR)/packages
|
|
TIDRIVERS_PACKAGES_DIR ?= $(TIDRIVERS_INSTALL_DIR)/packages
|
|
BIOS_PACKAGES_DIR ?= $(BIOS_INSTALL_DIR)/packages
|
|
NDK_PAKCAGES_DIR ?= $(NDK_INSTALL_DIR)/packages
|
|
UIA_PACKAGES_DIR ?= $(UIA_INSTALL_DIR)/packages
|
|
NS_PACKAGES_DIR ?= $(NS_INSTALL_DIR)/packages
|
|
|
|
# Setting this variable to 1 causes only NDK base stack libraries to be built
|
|
BUILDMINSTACK_CONFIG := BUILDMINSTACK=1
|
|
|
|
# WolfSSL settings
|
|
WOLFSSL_INSTALL_DIR ?= C:/ti/wolfssl
|
|
WOLFSSL_TIRTOS_DIR = $(WOLFSSL_INSTALL_DIR)/tirtos
|
|
|
|
#
|
|
# Set XDCARGS to some of the variables above. XDCARGS are passed
|
|
# to the XDC build engine... which will load tirtos.bld... which will
|
|
# extract these variables and use them to determine what to build and which
|
|
# toolchains to use.
|
|
#
|
|
# Note that not all of these variables need to be set to something valid.
|
|
# Unfortunately, since these vars are unconditionally assigned, your build line
|
|
# will be longer and more noisy than necessary (e.g., it will include CC_V5T
|
|
# assignment even if you're just building for C64P).
|
|
#
|
|
# Some background is here:
|
|
# http://rtsc.eclipse.org/docs-tip/Command_-_xdc#Environment_Variables
|
|
#
|
|
XDCARGS= \
|
|
profile=release \
|
|
XDCTOOLS=$(XDCTOOLS_INSTALL_DIR) \
|
|
TIRTOS=$(TIRTOS_INSTALL_DIR) \
|
|
TIDRIVERS=$(TIDRIVERS_INSTALL_DIR) \
|
|
BIOS=$(BIOS_INSTALL_DIR) \
|
|
NDK=$(NDK_INSTALL_DIR) \
|
|
UIA=$(UIA_INSTALL_DIR) \
|
|
NS=$(NS_INSTALL_DIR) \
|
|
TIVAWARE=$(TIVAWARE_INSTALL_DIR) \
|
|
WOLFSSL=$(WOLFSSL_INSTALL_DIR)
|
|
|
|
ifeq ("$(CCS_BUILD)", "true")
|
|
XDCARGS += \
|
|
ti.targets.arm.elf.M4F=$(ti.targets.arm.elf.M4F)
|
|
endif
|
|
ifeq ("$(IAR_BUILD)", "true")
|
|
XDCARGS += \
|
|
iar.targets.arm.M4F=$(iar.targets.arm.M4F)
|
|
endif
|
|
ifeq ("$(GCC_BUILD)", "true")
|
|
XDCARGS += \
|
|
gnu.targets.arm.M4F=$(gnu.targets.arm.M4F)
|
|
endif
|
|
export XDCARGS
|
|
|
|
#
|
|
# Set XDCPATH to contain necessary repositories.
|
|
#
|
|
XDCPATH = $(TIRTOS_PACKAGES_DIR);$(TIDRIVERS_PACKAGES_DIR);$(BIOS_PACKAGES_DIR);$(NDK_PAKCAGES_DIR);$(UIA_PACKAGES_DIR);$(NS_PACKAGES_DIR);
|
|
export XDCPATH
|
|
|
|
#
|
|
# Set XDCOPTIONS. Use -v for a verbose build.
|
|
#
|
|
#XDCOPTIONS=v
|
|
export XDCOPTIONS
|
|
|
|
#
|
|
# Set XDC executable command
|
|
# Note that XDCBUILDCFG points to the tirtos.bld file which uses
|
|
# the arguments specified by XDCARGS
|
|
#
|
|
XDC = $(XDCTOOLS_INSTALL_DIR)/xdc XDCARGS="$(XDCARGS)" XDCBUILDCFG=./tirtos.bld
|
|
XS = $(XDCTOOLS_INSTALL_DIR)/xs
|
|
|
|
#######################################################
|
|
## Shouldn't have to modify anything below this line ##
|
|
#######################################################
|
|
|
|
help:
|
|
@ echo Makefile to build components within TI-RTOS
|
|
@ echo goal description
|
|
@ echo -----------------------------------------------------------------------------
|
|
@ echo all Builds SYS/BIOS, NDK, UIA, NS, and TI-RTOS drivers
|
|
@ echo drivers Builds TI-RTOS drivers and other components in /packages
|
|
@ echo bios Builds SYS/BIOS
|
|
@ echo ndk Builds NDK
|
|
@ echo uia Builds UIA
|
|
@ echo ns Builds NS
|
|
@ echo clean Cleans SYS/BIOS, NDK, UIA, NS, and TI-RTOS drivers
|
|
@ echo clean-drivers Cleans TI-RTOS drivers and other components in /packages
|
|
@ echo clean-bios Cleans SYS/BIOS
|
|
@ echo clean-ndk Cleans NDK
|
|
@ echo clean-uia Cleans UIA
|
|
@ echo clean-ns Cleans NS
|
|
@ echo examplesgen Generates TI-RTOS examples and makefiles
|
|
@ echo help Displays this description
|
|
|
|
all: bios ndk uia drivers ns product
|
|
|
|
clean: clean-ndk clean-uia clean-ns clean-product clean-drivers clean-bios
|
|
|
|
product:
|
|
@ echo building tirtos packages ...
|
|
@ $(XDC) -Pr ./packages
|
|
|
|
clean-product:
|
|
@ echo cleaning tirtos packages ...
|
|
@ $(XDC) clean -Pr ./packages
|
|
|
|
drivers:
|
|
@ echo building tirtos drivers...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(TIDRIVERS_INSTALL_DIR)/drivers.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) \
|
|
NDK_INSTALL_DIR=$(NDK_INSTALL_DIR) \
|
|
$(XDCARGS) -C $(TIDRIVERS_INSTALL_DIR)
|
|
|
|
clean-drivers:
|
|
@ echo cleaning tirtos drivers...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(TIDRIVERS_INSTALL_DIR)/drivers.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) \
|
|
NDK_INSTALL_DIR=$(NDK_INSTALL_DIR) \
|
|
$(XDCARGS) -C $(TIDRIVERS_INSTALL_DIR) clean
|
|
|
|
bios:
|
|
@ echo building bios ...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(BIOS_INSTALL_DIR)/bios.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
BIOS_SMPENABLED=0 \
|
|
$(XDCARGS) -C $(BIOS_INSTALL_DIR)
|
|
|
|
clean-bios:
|
|
@ echo cleaning bios ...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(BIOS_INSTALL_DIR)/bios.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
BIOS_SMPENABLED=0 \
|
|
-C $(BIOS_INSTALL_DIR) clean
|
|
|
|
ndk:
|
|
@ echo building ndk ...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(NDK_INSTALL_DIR)/ndk.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
SYSBIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) \
|
|
$(BUILDMINSTACK_CONFIG) \
|
|
$(XDCARGS) -C $(NDK_INSTALL_DIR)
|
|
|
|
clean-ndk:
|
|
@ echo cleaning ndk ...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(NDK_INSTALL_DIR)/ndk.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
SYSBIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) \
|
|
$(BUILDMINSTACK_CONFIG) \
|
|
-C $(NDK_INSTALL_DIR) clean
|
|
|
|
uia:
|
|
@ echo building uia ...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(UIA_INSTALL_DIR)/uia.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) \
|
|
NDK_INSTALL_DIR=$(NDK_INSTALL_DIR) \
|
|
$(XDCARGS) -C $(UIA_INSTALL_DIR)
|
|
|
|
clean-uia:
|
|
@ echo cleaning uia ...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(UIA_INSTALL_DIR)/uia.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) \
|
|
NDK_INSTALL_DIR=$(NDK_INSTALL_DIR) \
|
|
-C $(UIA_INSTALL_DIR) clean
|
|
|
|
|
|
wolfssl:
|
|
@ echo building wolfssl ...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(WOLFSSL_TIRTOS_DIR)/wolfssl.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
SYSBIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) \
|
|
NDK_INSTALL_DIR=$(NDK_INSTALL_DIR) \
|
|
WOLFSSL_INSTALL_DIR=$(WOLFSSL_INSTALL_DIR) \
|
|
TIRTOS_INSTALLATION_DIR=$(TIRTOS_INSTALL_DIR) \
|
|
$(XDCARGS) -C $(WOLFSSL_TIRTOS_DIR)
|
|
|
|
clean-wolfssl:
|
|
@ echo cleaning wolfssl ...
|
|
@ $(XDCTOOLS_INSTALLATION_DIR)/gmake -f $(WOLFSSL_TIRTOS_DIR)/wolfssl.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALLATION_DIR) \
|
|
SYSBIOS_INSTALL_DIR=$(BIOS_INSTALLATION_DIR) \
|
|
NDK_INSTALL_DIR=$(NDK_INSTALLATION_DIR) \
|
|
WOLFSSL_INSTALL_DIR=$(WOLFSSL_INSTALLATION_DIR) \
|
|
TIRTOS_INSTALLATION_DIR=$(TIRTOS_INSTALLATION_DIR) \
|
|
-C $(WOLFSSL_TIRTOS_DIR) clean
|
|
|
|
ns:
|
|
@ echo building ns ...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(NS_INSTALL_DIR)/ns.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) \
|
|
NDK_INSTALL_DIR=$(NDK_INSTALL_DIR) \
|
|
TIDRIVERS_INSTALL_DIR=$(TIDRIVERS_INSTALL_DIR) \
|
|
WOLFSSL_INSTALL_DIR=$(WOLFSSL_INSTALL_DIR) \
|
|
$(XDCARGS) -C $(NS_INSTALL_DIR)
|
|
|
|
clean-ns:
|
|
@ echo cleaning ns ...
|
|
@ $(XDCTOOLS_INSTALL_DIR)/gmake -f $(NS_INSTALL_DIR)/ns.mak \
|
|
XDC_INSTALL_DIR=$(XDCTOOLS_INSTALL_DIR) \
|
|
BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) \
|
|
NDK_INSTALL_DIR=$(NDK_INSTALL_DIR) \
|
|
TIDRIVERS_INSTALL_DIR=$(TIDRIVERS_INSTALL_DIR) \
|
|
WOLFSSL_INSTALL_DIR=$(WOLFSSL_INSTALL_DIR) \
|
|
-C $(NS_INSTALL_DIR) clean
|
|
|
|
validate-paths:
|
|
ifneq (1, $(words $(ti.targets.arm.elf.M4F)))
|
|
$(error Toolchain path must not have spaces, please update the TI_INSTALL_DIR variable.)
|
|
endif
|
|
|
|
ifneq (1, $(words $(iar.targets.arm.M4F)))
|
|
$(error Toolchain path must not have spaces, please update the IAR_INSTALL_DIR variable.)
|
|
endif
|
|
|
|
ifneq (1, $(words $(gnu.targets.arm.M4F)))
|
|
$(error Toolchain path must not have spaces, please update the GCC_INSTALL_DIR variable.)
|
|
endif
|
|
|
|
examplesgen: validate-paths
|
|
ifneq ("$(DEST)","")
|
|
@ echo generating examples in $(DEST) ...
|
|
ifeq ("$(CCS_BUILD)", "true")
|
|
@ $(XS) examples.examplesgen \
|
|
--productGroup="TivaC" \
|
|
--toolchain="TI" \
|
|
--toolchainDir="$(ti.targets.arm.elf.M4F)" \
|
|
--output="$(DEST)/$(TIRTOS_INSTALL_VER)_examples"
|
|
endif
|
|
|
|
ifeq ("$(IAR_BUILD)", "true")
|
|
@ $(XS) examples.examplesgen \
|
|
--productGroup="TivaC" \
|
|
--toolchain="IAR" \
|
|
--toolchainDir="$(iar.targets.arm.M4F)" \
|
|
--output="$(DEST)/$(TIRTOS_INSTALL_VER)_examples"
|
|
endif
|
|
|
|
ifeq ("$(GCC_BUILD)", "true")
|
|
@ $(XS) examples.examplesgen \
|
|
--productGroup="TivaC" \
|
|
--toolchain="GNU" \
|
|
--toolchainDir="$(gnu.targets.arm.M4F)" \
|
|
--output="$(DEST)/$(TIRTOS_INSTALL_VER)_examples"
|
|
endif
|
|
|
|
@ echo ***********************************************************
|
|
@ echo Please refer to "Examples for TI-RTOS" section in the TI-RTOS
|
|
@ echo "Getting Started Guide" for details on how to build and load the examples
|
|
@ echo into IAR WorkBench and CCS.
|
|
else
|
|
@ echo Specify destination path like this: DEST="YOURPATH". Use UNIX style path "C:/examples"
|
|
endif
|