summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a7c7960)
raw | patch | inline | side by side (parent: a7c7960)
author | Sundaram Raju <sundaram@ti.com> | |
Wed, 2 Feb 2011 09:31:07 +0000 (15:01 +0530) | ||
committer | Sundaram Raju <sundaram@ti.com> | |
Wed, 2 Feb 2011 10:09:35 +0000 (15:39 +0530) |
Signed-off-by: Sundaram Raju <sundaram@ti.com>
makerules/build_config.mk | [changed mode: 0644->0755] | patch | blob | history |
makerules/common.mk | [changed mode: 0644->0755] | patch | blob | history |
makerules/env.mk | [changed mode: 0644->0755] | patch | blob | history |
makerules/platform.mk | [changed mode: 0644->0755] | patch | blob | history |
makerules/rules_64p.mk | [moved from makerules/rules_c64p.mk with 94% similarity, mode: 0755] | patch | blob | history |
makerules/rules_674.mk | [moved from makerules/rules_c674.mk with 95% similarity, mode: 0755] | patch | blob | history |
makerules/rules_CS_a8.mk | [moved from makerules/rules_a8.mk with 97% similarity, mode: 0755] | patch | blob | history |
makerules/rules_TI_a8.mk | [new file with mode: 0755] | patch | blob |
makerules/rules_arm9.mk | [new file with mode: 0755] | patch | blob |
makerules/rules_m3.mk | [changed mode: 0644->0755] | patch | blob | history |
# a8host - Cortex-A8
# Profile: Allowed values = debug
-PROFILE_a8host = debug
-CFLAGS_GLOBAL_a8host = -c -x c -Wunused -Wall -g
+PROFILE_a8host = debug | whole_program_debug | release
+CFLAGS_GLOBAL_a8host =
LNKFLAGS_GLOBAL_a8host =
+# Toolchain for Cortex-A8 ISA: Allowed values = TI | CS
+# TI - TI ARM toolchain: TMS470
+# CS - CodeSourcery
+TOOLCHAIN_a8 = TI
# c6xdsp - DSP core
# Profile: Allowed values = debug | whole_program_debug | release
PROFILE_c6xdsp = debug
-CFLAGS_GLOBAL_c6xdsp = -g
+CFLAGS_GLOBAL_c6xdsp =
+
+# arm9 - ARM-9
+# Profile: Allowed values = debug | whole_program_debug | release
+PROFILE_arm9 = debug
+CFLAGS_GLOBAL_arm9 =
# Nothing beyond this point
diff --git a/makerules/common.mk b/makerules/common.mk
--- a/makerules/common.mk
+++ b/makerules/common.mk
#.DEFAULT_GOAL := all
-.PHONY : all clean gendirs m3video m3vpss c6xdsp a8host
+.PHONY : all clean gendirs m3video m3vpss c6xdsp a8host arm9
all : $(CORE)
CFG_C_XDC = $(addprefix $(CONFIGURO_DIR)/package/cfg/,$(CFG_CFILE_XDC))
XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC).xdl, $(CFG_C_XDC))
CFG_COBJ_XDC = $(patsubst %.c,%.$(OBJEXT),$(CFG_CFILE_XDC))
+ XDC_CFG_BASE_FILE_NAME = $(basename $(notdir $(XDC_CFG_FILE_$(CORE))))
# OBJ_PATHS += $(CFG_COBJ_XDC)
LNKCMD_FILE = $(CONFIGURO_DIR)/linker_mod.cmd
SPACE :=
# Include make rules for ISA that is built in this iteration
# eg: rules_m3.mk
-include $(ROOTDIR)/makerules/rules_$(ISA).mk
+ifneq ($(TOOLCHAIN_$(ISA)),)
+ TOOLCHAIN_SELECTION = $(TOOLCHAIN_$(ISA))_
+endif
+include $(ROOTDIR)/makerules/rules_$(TOOLCHAIN_SELECTION)$(ISA).mk
ifdef MODULE_NAME
# Rules for module; this iteration is for a module
diff --git a/makerules/env.mk b/makerules/env.mk
--- a/makerules/env.mk
+++ b/makerules/env.mk
# Directory where all internal software packages are located; typically
# those that are checked into version controlled repository. In this case all
# the OMX components and SDK/OMX demo.
-INTERNAL_SW_ROOT = E:/EDMA/MAKEFI~1/WITHMA~1/testinghis/edma/edma3_lld_02_10_04_01
+INTERNAL_SW_ROOT = E:/EDMA/edma3_lld_02_11_00_01
# Directory where all external (imported) software packages are located; typically
# those that are NOT checked into version controlled repository. In this case,
# compiler tool chains, BIOS, XDC, Syslink, IPC, FC, CE, drivers, codecs, etc.
-EXTERNAL_SW_ROOT = E:/EDMA/MAKEFI~1/WITHMA~1/testinghis/edma/tools
+EXTERNAL_SW_ROOT = C:/PROGRA~1/TEXASI~1
# Destination root directory.
# - specify the directory where you want to place the object, archive/library,
# 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).
-UTILS_INSTALL_DIR = E:/EDMA/MAKEFI~1/WITHMA~1/testinghis/edma/tools/xdctools_3_20_02_59
+UTILS_INSTALL_DIR = C:/PROGRA~1/TEXASI~1/xdctools_3_20_07_86
# Set path separator, etc based on the OS
ifeq ($(OS),Windows_NT)
endif
# BIOS
-bios_PATH = $(EXTERNAL_SW_ROOT)/bios_6_30_02_42
+bios_PATH = $(EXTERNAL_SW_ROOT)/bios_6_31_03_25
bios_INCLUDE = $(bios_PATH)/packages
# XDC
-xdc_PATH = $(EXTERNAL_SW_ROOT)/xdctools_3_20_02_59
+xdc_PATH = $(EXTERNAL_SW_ROOT)/xdctools_3_20_07_86
xdc_INCLUDE = $(xdc_PATH)/packages
# EDMA3 LLD
# Tools paths
#
# Cortex-M3
-
CODEGEN_PATH_M3 = $(EXTERNAL_SW_ROOT)/TMS470~1.3
# Cortex-A8
-CODEGEN_PATH_A8 = $(EXTERNAL_SW_ROOT)/CodeSourcery/2009q1-203
+CODEGEN_PATH_A8 = $(EXTERNAL_SW_ROOT)/TMS470~1.3
+
+# ARM-9
+CODEGEN_PATH_ARM9 = $(EXTERNAL_SW_ROOT)/TMS470~1.3
# DSP - Since same toolchain does not support COFF and ELF, there are two entries
# This would go away when one version supports both formats
-CODEGEN_PATH_DSP = $(EXTERNAL_SW_ROOT)/C6000C~1.0
-CODEGEN_PATH_DSPELF = $(EXTERNAL_SW_ROOT)/C6000C~1.0A1
+CODEGEN_PATH_DSP = $(EXTERNAL_SW_ROOT)/C6000C~1.4
+CODEGEN_PATH_DSPELF = $(EXTERNAL_SW_ROOT)/C6000C~1.0B2
# Commands commonly used within the make files
#
# XDC Config.bld file (required for configuro) ; Derives from top-level omx_PATH
-CONFIG_BLD_XDC_c674 = $(edma3_lld_PATH)/packages/_config.bld
-CONFIG_BLD_XDC_c64p = $(edma3_lld_PATH)/packages/_config.bld
+CONFIG_BLD_XDC_674 = $(edma3_lld_PATH)/packages/_config.bld
+CONFIG_BLD_XDC_64p = $(edma3_lld_PATH)/packages/_config.bld
+CONFIG_BLD_XDC_a8 = $(edma3_lld_PATH)/packages/_config.bld
+CONFIG_BLD_XDC_arm9 = $(edma3_lld_PATH)/packages/_config.bld
XDCPATH = $(bios_PATH)/packages;$(xdc_PATH)/packages;$(edma3_lld_PATH)/packages;
export XDCPATH
diff --git a/makerules/platform.mk b/makerules/platform.mk
--- a/makerules/platform.mk
+++ b/makerules/platform.mk
ifeq ($(CORE),c6xdsp)
PLATFORM_XDC = "ti.platforms.evmDM8148"
endif
+ ifeq ($(CORE),a8host)
+ PLATFORM_XDC = "ti.platforms.evmDM8148"
+ endif
endif
# c6472 (Tomahawk) EVM
PLATFORM_XDC = "ti.platforms.evmDA830"
endif
+# Generic platform
+ifeq ($(PLATFORM),generic)
+ SOC = generic
+ PLATFORM_XDC =
+endif
+
# Derive Target/ISA from CORE
# m3vpss
ISA = a8
endif
+# arm9
+ifeq ($(CORE),arm9)
+ ISA = arm9
+endif
+
# c6xdsp
ifeq ($(CORE),c6xdsp)
ifeq ($(SOC),ti816x)
- ISA = c674
+ ISA = 674
endif
ifeq ($(SOC),ti814x)
- ISA = c674
+ ISA = 674
endif
ifeq ($(SOC),omapl137)
- ISA = c674
+ ISA = 674
endif
ifeq ($(SOC),omapl138)
- ISA = c674
+ ISA = 674
endif
ifeq ($(SOC),c6472)
- ISA = c64p
+ ISA = 64p
endif
# Note: The below is for Nyqyist Simulator - might change
ifeq ($(SOC),c6498)
- ISA = c64p
+ ISA = 64p
endif
endif
+# Platform and SOC is generic; use the core name same as ISA (eg: 674)
+ifeq ($(SOC),generic)
+ ISA = $(CORE)
+endif
#
# Derive XDC/ISA specific settings
ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
endif
-ifeq ($(ISA),c674)
+ifeq ($(ISA),674)
ifeq ($(FORMAT),ELF)
TARGET_XDC = ti.targets.elf.C674
FORMAT_EXT = e
ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
endif
-ifeq ($(ISA),c64p)
+ifeq ($(ISA),64p)
ifeq ($(FORMAT),ELF)
ifeq ($(ENDIAN),big)
TARGET_XDC = ti.targets.elf.C64P_big_endian
TARGET_XDC = ti.targets.C64P
endif
endif
-# PLATFORM_XDC = "ti.platforms.generic:DucatiPlatform_Core0"
# If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
# in the filename extension of object/library/executable files
endif
ifeq ($(ISA),a8)
+ ifeq ($(TOOLCHAIN_a8),TI)
+ TARGET_XDC = ti.targets.arm.elf.A8F
+ else
TARGET_XDC = gnu.targets.arm.GCArmv5T
PLATFORM_XDC = "host.platforms.arm"
-
+ endif
+ ifeq ($(FORMAT),ELF)
+ FORMAT_EXT = e
+ endif
+ ifeq ($(ENDIAN),big)
+ ENDIAN_EXT = e
+ endif
+
+ # Define the file extensions
+ OBJEXT = o$(FORMAT_EXT)a8f$(ENDIAN_EXT)
+ LIBEXT = a$(FORMAT_EXT)a8f$(ENDIAN_EXT)
+ EXEEXT = x$(FORMAT_EXT)a8f$(ENDIAN_EXT)
+ ASMEXT = s$(FORMAT_EXT)a8f$(ENDIAN_EXT)
+endif
+
+ifeq ($(ISA),arm9)
+ TARGET_XDC = ti.targets.arm.elf.Arm9
+ ifeq ($(FORMAT),ELF)
+ FORMAT_EXT = e
+ endif
+ ifeq ($(ENDIAN),big)
+ ENDIAN_EXT = e
+ endif
+
# Define the file extensions
- OBJEXT = ov5T
- LIBEXT = av5T
- EXEEXT = xv5T
- ASMEXT = sv5T
+ OBJEXT = o$(FORMAT_EXT)9$(ENDIAN_EXT)
+ LIBEXT = a$(FORMAT_EXT)9$(ENDIAN_EXT)
+ EXEEXT = x$(FORMAT_EXT)9$(ENDIAN_EXT)
+ ASMEXT = s$(FORMAT_EXT)9$(ENDIAN_EXT)
endif
ifeq (sim,$(findstring sim,$(PLATFORM)))
old mode 100644 (file)
new mode 100755 (executable)
similarity index 94%
rename from makerules/rules_c64p.mk
rename to makerules/rules_64p.mk
index 62576b3..f55889c
new mode 100755 (executable)
similarity index 94%
rename from makerules/rules_c64p.mk
rename to makerules/rules_64p.mk
index 62576b3..f55889c
--- a/makerules/rules_c64p.mk
+++ b/makerules/rules_64p.mk
-# Filename: rules_c64p.mk
-#
-# Make rules for c64p - This file has all the common rules and defines required
-# for DSP c64+ ISA
-#
-# This file needs to change when:
-# 1. Code generation tool chain changes (currently it uses TI CGT)
-# 2. Internal switches (which are normally not touched) has to change
-# 3. XDC specific switches change
-# 4. a rule common for c64p ISA has to be added or modified
-
-# Set compiler/archiver/linker commands and include paths - Currently different
-# for ELF and COFF. In a future release of the toolchain, it would merge.
-ifeq ($(FORMAT),COFF)
- CODEGEN_PATH = $(CODEGEN_PATH_DSP)
- CODEGEN_INCLUDE = $(CODEGEN_PATH_DSP)/include
- CC = $(CODEGEN_PATH_DSP)/bin/cl6x
- AR = $(CODEGEN_PATH_DSP)/bin/ar6x
- LNK = $(CODEGEN_PATH_DSP)/bin/lnk6x
-endif
-ifeq ($(FORMAT),ELF)
- CODEGEN_PATH = $(CODEGEN_PATH_DSPELF)
- CODEGEN_INCLUDE = $(CODEGEN_PATH_DSPELF)/include
- CC = $(CODEGEN_PATH_DSPELF)/bin/cl6x
- AR = $(CODEGEN_PATH_DSPELF)/bin/ar6x
- LNK = $(CODEGEN_PATH_DSPELF)/bin/lnk6x
-endif
-
-# Derive a part of RTS Library name based on ENDIAN: little/big
-ifeq ($(ENDIAN),little)
- #RTSLIB_ENDIAN =
- XDCINTERNAL_DEFINES += -Dxdc_target_name__=C64P
-else
- CSWITCH_ENDIAN = -me
- RTSLIB_ENDIAN = e
- XDCINTERNAL_DEFINES += -DBIG_ENDIAN_MODE -Dxdc_target_name__=C64P_big_endian
-endif
-
-# Derive compiler switch and part of RTS Library name based on FORMAT: COFF/ELF
-ifeq ($(FORMAT),COFF)
- CSWITCH_FORMAT =
- #RTSLIB_FORMAT =
- XDCINTERNAL_DEFINES += -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__vers_1_0_7_0_0
-endif
-ifeq ($(FORMAT),ELF)
- CSWITCH_FORMAT = --abi=elfabi
- RTSLIB_FORMAT = _elf
- XDCINTERNAL_DEFINES += -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_bld__vers_1_0_7_2_0_10271
-endif
-
-# XDC Specific defines
-ifneq ($(XDC_CFG_FILE_$(CORE)),)
- ifeq ($(PROFILE_$(CORE)),debug)
- CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)64p$(RTSLIB_ENDIAN)
- endif
- ifeq ($(PROFILE_$(CORE)),release)
- CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)64p$(RTSLIB_ENDIAN)
- endif
- ifeq ($(PROFILE_$(CORE)),whole_program_debug)
- CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
- CFG_LNKFILENAMEPART_XDC=_x
- endif
- CFG_CFILE_XDC =$(patsubst %.cfg,%_$(CFG_CFILENAMEPART_XDC).c,$(notdir $(XDC_CFG_FILE_$(CORE))))
- CFG_C_XDC = $(addprefix $(CONFIGURO_DIR)/package/cfg/,$(CFG_CFILE_XDC))
- XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC)_x.xdl, $(CFG_C_XDC))
- CFG_COBJ_XDC = $(patsubst %.c,%.$(OBJEXT),$(CFG_CFILE_XDC))
-# OBJ_PATHS += $(CFG_COBJ_XDC)
- LNKCMD_FILE = $(CONFIGURO_DIR)/linker_mod.cmd
- SPACE :=
- SPACE +=
- XDC_GREP_STRING = $(CONFIGURO_DIRNAME)
-# XDC_GREP_STRING = $(subst $(SPACE),\|,$(COMP_LIST_$(CORE)))
-# XDC_GREP_STRING += \|$(CONFIGURO_DIRNAME)
-endif
-
-# Internal CFLAGS - normally doesn't change
-CFLAGS_INTERNAL = -c -qq -pdsw225 -mv64p $(CSWITCH_FORMAT) $(CSWITCH_ENDIAN) -mo -eo.$(OBJEXT) -ea.$(ASMEXT)
-CFLAGS_DIROPTS = -fr=$(OBJDIR) -fs=$(OBJDIR)
-
-# CFLAGS based on profile selected
-ifeq ($(PROFILE_$(CORE)), debug)
- CFLAGS_INTERNAL += --symdebug:dwarf
- CFLAGS_XDCINTERNAL = -Dxdc_bld__profile_debug -D_DEBUG_=1
- ifndef MODULE_NAME
- CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/VpsAppMain_xem3.h'
- endif
- LNKFLAGS_INTERNAL_PROFILE =
-endif
-ifeq ($(PROFILE_$(CORE)), release)
- CFLAGS_INTERNAL += -O2
- CFLAGS_XDCINTERNAL = -Dxdc_bld__profile_release -DGENERIC
- ifndef MODULE_NAME
- CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/VpsAppMain_pem3.h'
- endif
- LNKFLAGS_INTERNAL_PROFILE = -o2
-# LNKFLAGS_INTERNAL_PROFILE =
-endif
-CFLAGS_XDCINTERNAL += $(XDCINTERNAL_DEFINES)
-
-# Following 'if...' block is for an application; to add a #define for each
-# component in the build. This is required to know - at compile time - which
-# components are on which core.
-ifndef MODULE_NAME
- # Derive list of all packages from each of the components needed by the app
- PKG_LIST_M3_LOCAL = $(foreach COMP,$(COMP_LIST_$(CORE)),$($(COMP)_PKG_LIST))
-
- # Defines for the app and cfg source code to know which components/packages
- # are included in the build for the local CORE...
- CFLAGS_APP_DEFINES = $(foreach PKG,$(PKG_LIST_M3_LOCAL),-D_LOCAL_$(PKG)_)
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_LOCAL),-D_BUILD_$(PKG)_)
-
- ifeq ($(CORE),m3vpss)
- PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))
- CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3vpss_
- endif
- ifeq ($(CORE),m3video)
- PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))
- CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3video_
- endif
- PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_a8host),$($(COMP)_PKG_LIST))
-
- # Defines for the app and cfg source code to know which components/packages
- # are included in the build for the remote CORE...
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_REMOTE),-D_REMOTE_$(PKG)_)
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_REMOTE),-D_BUILD_$(PKG)_)
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_REMOTE_$(PKG)_)
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_BUILD_$(PKG)_)
-endif
-
-# Assemble CFLAGS from all other CFLAGS definitions
-_CFLAGS = $(CFLAGS_INTERNAL) $(CFLAGS_GLOBAL_$(CORE)) $(CFLAGS_XDCINTERNAL) $(CFLAGS_LOCAL_COMMON) $(CFLAGS_LOCAL_$(CORE)) $(CFLAGS_LOCAL_$(PLATFORM)) $(CFLAGS_LOCAL_$(SOC)) $(CFLAGS_APP_DEFINES) $(CFLAGS_COMP_COMMON) $(CFLAGS_GLOBAL_$(PLATFORM))
-
-# Object file creation
-# The first $(CC) generates the dependency make files for each of the objects
-# The second $(CC) compiles the source to generate object
-$(OBJ_PATHS): $(OBJDIR)/%.$(OBJEXT): %.c
- $(ECHO) \# Compiling $< to $@ ...
- $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<
- $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<
-
-# Archive flags - normally doesn't change
-ARFLAGS = rq
-
-# Archive/library file creation
-$(LIBDIR)/$(MODULE_NAME).$(LIBEXT) : $(OBJ_PATHS)
- $(ECHO) \#
- $(ECHO) \# Archiving $(OBJ_PATHS) into $@...
- $(ECHO) \#
- $(AR) $(ARFLAGS) $@ $(OBJ_PATHS)
-
-# Linker options and rules
-LNKFLAGS_INTERNAL_COMMON = --warn_sections -q -e=_c_int00 --silicon_version=64+ -c
-
-# Assemble Linker flags from all other LNKFLAGS definitions
-_LNKFLAGS = $(LNKFLAGS_INTERNAL_COMMON) $(LNKFLAGS_INTERNAL_PROFILE) $(LNKFLAGS_GLOBAL_$(CORE)) $(LNKFLAGS_LOCAL_COMMON) $(LNKFLAGS_LOCAL_$(CORE))
-
-# Path of the RTS library - normally doesn't change for a given tool-chain
-RTSLIB_PATH = $(CODEGEN_PATH)/lib/rts64plus$(RTSLIB_ENDIAN)$(RTSLIB_FORMAT).lib
-LIB_PATHS += $(RTSLIB_PATH)
-
-LNK_LIBS = $(addprefix -l,$(LIB_PATHS))
-ifeq ($(DEST_ROOT),)
- TMPOBJDIR = .
-else
- TMPOBJDIR = $(OBJDIR)
-endif
-# Linker - to create executable file
-$(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE)).$(EXEEXT) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(OBJDIR)/$(CFG_COBJ_XDC)
- $(ECHO) \# Linking into $@
- $(ECHO) \#
- cd $(TMPOBJDIR) && $(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) -l$(LNKCMD_FILE) sample_app/linker.cmd -o $@ -m $@.map $(LNK_LIBS)
- $(ECHO) \#
- $(ECHO) \# $@ created.
- $(ECHO) \#
-
-# XDC specific - assemble XDC-Configuro command
-CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \
- -r whole_program -c $(CODEGEN_PATH) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)
-_XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"
-EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)
-
-ifneq ($(DEST_ROOT),)
- DEST_ROOT += /
-endif
-# Invoke configuro for the rest of the components
-# NOTE: 1. String handling is having issues with various make versions when the
-# cammand is directly tried to be given below. Hence, as a work-around,
-# the command is re-directed to a file (shell or batch file) and then
-# executed
-# 2. The linker.cmd file generated, includes the libraries generated by
-# XDC. An egrep to search for these and omit in the .cmd file is added
-# after configuro is done
-#$(CFG_CFILE_XDC) : $(XDC_CFG_FILE)
-xdc_configuro : $(XDC_CFG_FILE)
- $(ECHO) \# Invoking configuro...
- $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat
- $(CHMOD) a+x $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat
- $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat
- $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)
-# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat
-# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)
-# $(EGREP_CMD) > $(LNKCMD_FILE)
-# $(EGREP) -iv "$(XDC_GREP_STRING)" $(XDCLNKCMD_FILE) > $(LNKCMD_FILE)
- $(ECHO) \# Configuro done!
-
-$(LNKCMD_FILE) :
-# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)
-# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat
-# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)
-# $(EGREP_CMD) > $(LNKCMD_FILE)
-
-ifndef MODULE_NAME
-$(OBJDIR)/$(CFG_COBJ_XDC) : $(CFG_C_XDC)
- $(ECHO) \# Compiling generated $< to $@ ...
- $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)
- $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)
-endif
-
-# Include dependency make files that were generated by $(CC)
--include $(SRCS:%.c=$(DEPDIR)/%.P)
-
-# Nothing beyond this point
+# Filename: rules_64p.mk\r
+#\r
+# Make rules for 64p - This file has all the common rules and defines required\r
+# for DSP c64+ ISA\r
+#\r
+# This file needs to change when:\r
+# 1. Code generation tool chain changes (currently it uses TI CGT)\r
+# 2. Internal switches (which are normally not touched) has to change\r
+# 3. XDC specific switches change\r
+# 4. a rule common for c64p ISA has to be added or modified\r
+\r
+# Set compiler/archiver/linker commands and include paths - Currently different\r
+# for ELF and COFF. In a future release of the toolchain, it would merge.\r
+ifeq ($(FORMAT),COFF)\r
+ CODEGEN_PATH = $(CODEGEN_PATH_DSP)\r
+ CODEGEN_INCLUDE = $(CODEGEN_PATH_DSP)/include\r
+ CC = $(CODEGEN_PATH_DSP)/bin/cl6x\r
+ AR = $(CODEGEN_PATH_DSP)/bin/ar6x\r
+ LNK = $(CODEGEN_PATH_DSP)/bin/lnk6x\r
+endif\r
+ifeq ($(FORMAT),ELF)\r
+ CODEGEN_PATH = $(CODEGEN_PATH_DSPELF)\r
+ CODEGEN_INCLUDE = $(CODEGEN_PATH_DSPELF)/include\r
+ CC = $(CODEGEN_PATH_DSPELF)/bin/cl6x\r
+ AR = $(CODEGEN_PATH_DSPELF)/bin/ar6x\r
+ LNK = $(CODEGEN_PATH_DSPELF)/bin/lnk6x\r
+endif\r
+\r
+# Derive a part of RTS Library name based on ENDIAN: little/big\r
+ifeq ($(ENDIAN),little)\r
+ #RTSLIB_ENDIAN = \r
+ XDCINTERNAL_DEFINES += -Dxdc_target_name__=C64P\r
+else\r
+ CSWITCH_ENDIAN = -me\r
+ RTSLIB_ENDIAN = e\r
+ XDCINTERNAL_DEFINES += -DBIG_ENDIAN_MODE -Dxdc_target_name__=C64P_big_endian\r
+endif\r
+\r
+# Derive compiler switch and part of RTS Library name based on FORMAT: COFF/ELF\r
+ifeq ($(FORMAT),COFF)\r
+ CSWITCH_FORMAT = \r
+ #RTSLIB_FORMAT = \r
+ XDCINTERNAL_DEFINES += -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__vers_1_0_7_0_0\r
+endif\r
+ifeq ($(FORMAT),ELF)\r
+ CSWITCH_FORMAT = --abi=elfabi \r
+ RTSLIB_FORMAT = _elf\r
+ XDCINTERNAL_DEFINES += -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_bld__vers_1_0_7_2_0_10271\r
+endif\r
+\r
+# XDC Specific defines\r
+ifneq ($(XDC_CFG_FILE_$(CORE)),)\r
+ ifeq ($(PROFILE_$(CORE)),debug)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)$(ISA)$(RTSLIB_ENDIAN)\r
+ endif\r
+ ifeq ($(PROFILE_$(CORE)),release)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)$(ISA)$(RTSLIB_ENDIAN)\r
+ endif\r
+ ifeq ($(PROFILE_$(CORE)),whole_program_debug)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)\r
+ CFG_LNKFILENAMEPART_XDC=_x\r
+ endif\r
+ CFG_CFILE_XDC =$(patsubst %.cfg,%_$(CFG_CFILENAMEPART_XDC).c,$(notdir $(XDC_CFG_FILE_$(CORE))))\r
+ CFG_C_XDC = $(addprefix $(CONFIGURO_DIR)/package/cfg/,$(CFG_CFILE_XDC))\r
+ XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC)_x.xdl, $(CFG_C_XDC))\r
+ CFG_COBJ_XDC = $(patsubst %.c,%.$(OBJEXT),$(CFG_CFILE_XDC))\r
+# OBJ_PATHS += $(CFG_COBJ_XDC)\r
+ LNKCMD_FILE = $(CONFIGURO_DIR)/linker_mod.cmd\r
+ SPACE := \r
+ SPACE += \r
+ XDC_GREP_STRING = $(CONFIGURO_DIRNAME)\r
+# XDC_GREP_STRING = $(subst $(SPACE),\|,$(COMP_LIST_$(CORE)))\r
+# XDC_GREP_STRING += \|$(CONFIGURO_DIRNAME)\r
+endif\r
+\r
+# Internal CFLAGS - normally doesn't change\r
+CFLAGS_INTERNAL = -c -qq -pdsw225 -mv64p $(CSWITCH_FORMAT) $(CSWITCH_ENDIAN) -mo -eo.$(OBJEXT) -ea.$(ASMEXT)\r
+CFLAGS_DIROPTS = -fr=$(OBJDIR) -fs=$(OBJDIR)\r
+\r
+# CFLAGS based on profile selected\r
+ifeq ($(PROFILE_$(CORE)), debug)\r
+ CFLAGS_INTERNAL += --symdebug:dwarf\r
+ CFLAGS_XDCINTERNAL = -Dxdc_bld__profile_debug -D_DEBUG_=1 \r
+ ifndef MODULE_NAME\r
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_xem3.h' \r
+ endif\r
+ LNKFLAGS_INTERNAL_PROFILE = \r
+endif\r
+ifeq ($(PROFILE_$(CORE)), release)\r
+ CFLAGS_INTERNAL += -O2\r
+ CFLAGS_XDCINTERNAL = -Dxdc_bld__profile_release -DGENERIC\r
+ ifndef MODULE_NAME\r
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_pem3.h' \r
+ endif\r
+ LNKFLAGS_INTERNAL_PROFILE = -o2\r
+# LNKFLAGS_INTERNAL_PROFILE = \r
+endif\r
+CFLAGS_XDCINTERNAL += $(XDCINTERNAL_DEFINES)\r
+\r
+# Following 'if...' block is for an application; to add a #define for each\r
+# component in the build. This is required to know - at compile time - which\r
+# components are on which core.\r
+ifndef MODULE_NAME\r
+ # Derive list of all packages from each of the components needed by the app\r
+ PKG_LIST_M3_LOCAL = $(foreach COMP,$(COMP_LIST_$(CORE)),$($(COMP)_PKG_LIST))\r
+ \r
+ # Defines for the app and cfg source code to know which components/packages\r
+ # are included in the build for the local CORE...\r
+ CFLAGS_APP_DEFINES = $(foreach PKG,$(PKG_LIST_M3_LOCAL),-D_LOCAL_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_LOCAL),-D_BUILD_$(PKG)_)\r
+ \r
+ ifeq ($(CORE),m3vpss)\r
+ PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3vpss_\r
+ endif\r
+ ifeq ($(CORE),m3video)\r
+ PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3video_\r
+ endif\r
+ PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_a8host),$($(COMP)_PKG_LIST))\r
+\r
+ # Defines for the app and cfg source code to know which components/packages\r
+ # are included in the build for the remote CORE...\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_REMOTE),-D_REMOTE_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_REMOTE),-D_BUILD_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_REMOTE_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_BUILD_$(PKG)_)\r
+endif\r
+\r
+# Assemble CFLAGS from all other CFLAGS definitions\r
+_CFLAGS = $(CFLAGS_INTERNAL) $(CFLAGS_GLOBAL_$(CORE)) $(CFLAGS_XDCINTERNAL) $(CFLAGS_LOCAL_COMMON) $(CFLAGS_LOCAL_$(CORE)) $(CFLAGS_LOCAL_$(PLATFORM)) $(CFLAGS_LOCAL_$(SOC)) $(CFLAGS_APP_DEFINES) $(CFLAGS_COMP_COMMON) $(CFLAGS_GLOBAL_$(PLATFORM))\r
+\r
+# Object file creation\r
+# The first $(CC) generates the dependency make files for each of the objects\r
+# The second $(CC) compiles the source to generate object\r
+$(OBJ_PATHS): $(OBJDIR)/%.$(OBJEXT): %.c\r
+ $(ECHO) \# Compiling $< to $@ ...\r
+ $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<\r
+ $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<\r
+\r
+# Archive flags - normally doesn't change\r
+ARFLAGS = rq\r
+\r
+# Archive/library file creation\r
+$(LIBDIR)/$(MODULE_NAME).$(LIBEXT) : $(OBJ_PATHS)\r
+ $(ECHO) \#\r
+ $(ECHO) \# Archiving $(OBJ_PATHS) into $@...\r
+ $(ECHO) \#\r
+ $(AR) $(ARFLAGS) $@ $(OBJ_PATHS)\r
+\r
+# Linker options and rules\r
+LNKFLAGS_INTERNAL_COMMON = --warn_sections -q -e=_c_int00 --silicon_version=64+ -c \r
+\r
+# Assemble Linker flags from all other LNKFLAGS definitions\r
+_LNKFLAGS = $(LNKFLAGS_INTERNAL_COMMON) $(LNKFLAGS_INTERNAL_PROFILE) $(LNKFLAGS_GLOBAL_$(CORE)) $(LNKFLAGS_LOCAL_COMMON) $(LNKFLAGS_LOCAL_$(CORE)) \r
+\r
+# Path of the RTS library - normally doesn't change for a given tool-chain\r
+RTSLIB_PATH = $(CODEGEN_PATH)/lib/rts64plus$(RTSLIB_ENDIAN)$(RTSLIB_FORMAT).lib\r
+LIB_PATHS += $(RTSLIB_PATH)\r
+\r
+LNK_LIBS = $(addprefix -l,$(LIB_PATHS))\r
+ifeq ($(DEST_ROOT),)\r
+ TMPOBJDIR = .\r
+else\r
+ TMPOBJDIR = $(OBJDIR)\r
+endif\r
+# Linker - to create executable file\r
+$(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE)).$(EXEEXT) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(OBJDIR)/$(CFG_COBJ_XDC)\r
+ $(ECHO) \# Linking into $@\r
+ $(ECHO) \#\r
+ cd $(TMPOBJDIR) && $(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) -l$(LNKCMD_FILE) sample_app/linker.cmd -o $@ -m $@.map $(LNK_LIBS)\r
+ $(ECHO) \#\r
+ $(ECHO) \# $@ created.\r
+ $(ECHO) \#\r
+\r
+# XDC specific - assemble XDC-Configuro command\r
+CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \\r
+ -r whole_program -c $(CODEGEN_PATH) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)\r
+_XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"\r
+EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)\r
+\r
+ifneq ($(DEST_ROOT),)\r
+ DEST_ROOT += /\r
+endif\r
+# Invoke configuro for the rest of the components\r
+# NOTE: 1. String handling is having issues with various make versions when the \r
+# cammand is directly tried to be given below. Hence, as a work-around, \r
+# the command is re-directed to a file (shell or batch file) and then \r
+# executed\r
+# 2. The linker.cmd file generated, includes the libraries generated by\r
+# XDC. An egrep to search for these and omit in the .cmd file is added\r
+# after configuro is done\r
+#$(CFG_CFILE_XDC) : $(XDC_CFG_FILE)\r
+xdc_configuro : $(XDC_CFG_FILE)\r
+ $(ECHO) \# Invoking configuro...\r
+ $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(CHMOD) a+x $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
+# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
+# $(EGREP_CMD) > $(LNKCMD_FILE)\r
+# $(EGREP) -iv "$(XDC_GREP_STRING)" $(XDCLNKCMD_FILE) > $(LNKCMD_FILE)\r
+ $(ECHO) \# Configuro done!\r
+\r
+$(LNKCMD_FILE) :\r
+# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
+# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
+# $(EGREP_CMD) > $(LNKCMD_FILE)\r
+ \r
+ifndef MODULE_NAME\r
+$(OBJDIR)/$(CFG_COBJ_XDC) : $(CFG_C_XDC)\r
+ $(ECHO) \# Compiling generated $< to $@ ...\r
+ $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)\r
+ $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)\r
+endif\r
+\r
+# Include dependency make files that were generated by $(CC)\r
+-include $(SRCS:%.c=$(DEPDIR)/%.P)\r
+\r
+# Nothing beyond this point\r
old mode 100644 (file)
new mode 100755 (executable)
similarity index 95%
rename from makerules/rules_c674.mk
rename to makerules/rules_674.mk
index eb99948..aafddab
new mode 100755 (executable)
similarity index 95%
rename from makerules/rules_c674.mk
rename to makerules/rules_674.mk
index eb99948..aafddab
--- a/makerules/rules_c674.mk
+++ b/makerules/rules_674.mk
-# Filename: rules_c674.mk
-#
-# Make rules for c674 - This file has all the common rules and defines required
-# for DSP - c674 ISA
-#
-# This file needs to change when:
-# 1. Code generation tool chain changes (currently it uses TI CGT)
-# 2. Internal switches (which are normally not touched) has to change
-# 3. XDC specific switches change
-# 4. a rule common for c674 ISA has to be added or modified
-
-# Set compiler/archiver/linker commands and include paths - Currently different
-# for ELF and COFF. In a future release of the toolchain, it would merge.
-ifeq ($(FORMAT),COFF)
- CODEGEN_PATH = $(CODEGEN_PATH_DSP)
- CODEGEN_INCLUDE = $(CODEGEN_PATH_DSP)/include
- CC = $(CODEGEN_PATH_DSP)/bin/cl6x
- AR = $(CODEGEN_PATH_DSP)/bin/ar6x
- LNK = $(CODEGEN_PATH_DSP)/bin/lnk6x
-endif
-ifeq ($(FORMAT),ELF)
- CODEGEN_PATH = $(CODEGEN_PATH_DSPELF)
- CODEGEN_INCLUDE = $(CODEGEN_PATH_DSPELF)/include
- CC = $(CODEGEN_PATH_DSPELF)/bin/cl6x
- AR = $(CODEGEN_PATH_DSPELF)/bin/ar6x
- LNK = $(CODEGEN_PATH_DSPELF)/bin/lnk6x
-endif
-
-
-# Derive a part of RTS Library name based on ENDIAN: little/big
-ifeq ($(ENDIAN),little)
- #RTSLIB_ENDIAN =
-else
- RTSLIB_ENDIAN = e
-endif
-
-# Derive compiler switch and part of RTS Library name based on FORMAT: COFF/ELF
-ifeq ($(FORMAT),COFF)
- CSWITCH_FORMAT =
- #RTSLIB_FORMAT =
- XDCINTERNAL_DEFINES = -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__vers_1_0_7_0_0
-endif
-ifeq ($(FORMAT),ELF)
- CSWITCH_FORMAT = --abi=elfabi
- RTSLIB_FORMAT = _elf
- XDCINTERNAL_DEFINES = -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_bld__vers_1_0_7_2_0_10271
-endif
-
-# XDC Specific defines
-ifneq ($(XDC_CFG_FILE_$(CORE)),)
- ifeq ($(PROFILE_$(CORE)),debug)
- CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)674
- endif
- ifeq ($(PROFILE_$(CORE)),release)
- CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)674
- endif
- ifeq ($(PROFILE_$(CORE)),whole_program_debug)
- CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
- CFG_LNKFILENAMEPART_XDC=_x
- endif
- CFG_CFILE_XDC =$(patsubst %.cfg,%_$(CFG_CFILENAMEPART_XDC).c,$(notdir $(XDC_CFG_FILE_$(CORE))))
- CFG_C_XDC = $(addprefix $(CONFIGURO_DIR)/package/cfg/,$(CFG_CFILE_XDC))
- XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC)_x.xdl, $(CFG_C_XDC))
- CFG_COBJ_XDC = $(patsubst %.c,%.$(OBJEXT),$(CFG_CFILE_XDC))
-# OBJ_PATHS += $(CFG_COBJ_XDC)
- LNKCMD_FILE = $(CONFIGURO_DIR)/linker_mod.cmd
- SPACE :=
- SPACE +=
- XDC_GREP_STRING = $(CONFIGURO_DIRNAME)
-# XDC_GREP_STRING = $(subst $(SPACE),\|,$(COMP_LIST_$(CORE)))
-# XDC_GREP_STRING += \|$(CONFIGURO_DIRNAME)
-endif
-
-# Internal CFLAGS - normally doesn't change
-CFLAGS_INTERNAL = -c -qq -pdsw225 -mv6740 $(CSWITCH_FORMAT) -mo -eo.$(OBJEXT) -ea.$(ASMEXT)
-CFLAGS_DIROPTS = -fr=$(OBJDIR) -fs=$(OBJDIR)
-
-# CFLAGS based on profile selected
-ifeq ($(PROFILE_$(CORE)), debug)
- CFLAGS_INTERNAL += --symdebug:dwarf
- CFLAGS_XDCINTERNAL = -Dxdc_target_name__=C674 -Dxdc_bld__profile_debug -D_DEBUG_=1
- ifndef MODULE_NAME
- CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/VpsAppMain_xem3.h'
- endif
- LNKFLAGS_INTERNAL_PROFILE =
-endif
-ifeq ($(PROFILE_$(CORE)), release)
- CFLAGS_INTERNAL += -O2
- CFLAGS_XDCINTERNAL = -Dxdc_target_name__=C674 -Dxdc_bld__profile_release -DGENERIC
- ifndef MODULE_NAME
- CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/VpsAppMain_pem3.h'
- endif
- LNKFLAGS_INTERNAL_PROFILE = -o2
-# LNKFLAGS_INTERNAL_PROFILE =
-endif
-CFLAGS_XDCINTERNAL += $(XDCINTERNAL_DEFINES)
-
-# Following 'if...' block is for an application; to add a #define for each
-# component in the build. This is required to know - at compile time - which
-# components are on which core.
-ifndef MODULE_NAME
- # Derive list of all packages from each of the components needed by the app
- PKG_LIST_M3_LOCAL = $(foreach COMP,$(COMP_LIST_$(CORE)),$($(COMP)_PKG_LIST))
-
- # Defines for the app and cfg source code to know which components/packages
- # are included in the build for the local CORE...
- CFLAGS_APP_DEFINES = $(foreach PKG,$(PKG_LIST_M3_LOCAL),-D_LOCAL_$(PKG)_)
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_LOCAL),-D_BUILD_$(PKG)_)
-
- ifeq ($(CORE),m3vpss)
- PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))
- CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3vpss_
- endif
- ifeq ($(CORE),m3video)
- PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))
- CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3video_
- endif
- PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_a8host),$($(COMP)_PKG_LIST))
-
- # Defines for the app and cfg source code to know which components/packages
- # are included in the build for the remote CORE...
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_REMOTE),-D_REMOTE_$(PKG)_)
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_REMOTE),-D_BUILD_$(PKG)_)
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_REMOTE_$(PKG)_)
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_BUILD_$(PKG)_)
-endif
-
-# Assemble CFLAGS from all other CFLAGS definitions
-_CFLAGS = $(CFLAGS_INTERNAL) $(CFLAGS_GLOBAL_$(CORE)) $(CFLAGS_XDCINTERNAL) $(CFLAGS_LOCAL_COMMON) $(CFLAGS_LOCAL_$(CORE)) $(CFLAGS_LOCAL_$(PLATFORM)) $(CFLAGS_LOCAL_$(SOC)) $(CFLAGS_APP_DEFINES) $(CFLAGS_COMP_COMMON) $(CFLAGS_GLOBAL_$(PLATFORM))
-
-# Object file creation
-# The first $(CC) generates the dependency make files for each of the objects
-# The second $(CC) compiles the source to generate object
-$(OBJ_PATHS): $(OBJDIR)/%.$(OBJEXT): %.c
- $(ECHO) \# Compiling $< to $@ ...
- $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<
- $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<
-
-# Archive flags - normally doesn't change
-ARFLAGS = rq
-
-# Archive/library file creation
-$(LIBDIR)/$(MODULE_NAME).$(LIBEXT) : $(OBJ_PATHS)
- $(ECHO) \#
- $(ECHO) \# Archiving $(OBJ_PATHS) into $@...
- $(ECHO) \#
- $(AR) $(ARFLAGS) $@ $(OBJ_PATHS)
-
-# Linker options and rules
-LNKFLAGS_INTERNAL_COMMON = --warn_sections -q -e=_c_int00 --silicon_version=6740 -c
-
-# Assemble Linker flags from all other LNKFLAGS definitions
-_LNKFLAGS = $(LNKFLAGS_INTERNAL_COMMON) $(LNKFLAGS_INTERNAL_PROFILE) $(LNKFLAGS_GLOBAL_$(CORE)) $(LNKFLAGS_LOCAL_COMMON) $(LNKFLAGS_LOCAL_$(CORE))
-
-# Path of the RTS library - normally doesn't change for a given tool-chain
-RTSLIB_PATH = $(CODEGEN_PATH)/lib/rts6740$(RTSLIB_ENDIAN)$(RTSLIB_FORMAT).lib
-LIB_PATHS += $(RTSLIB_PATH)
-
-LNK_LIBS = $(addprefix -l,$(LIB_PATHS))
-ifeq ($(DEST_ROOT),)
- TMPOBJDIR = .
-else
- TMPOBJDIR = $(OBJDIR)
-endif
-# Linker - to create executable file
-$(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE)).$(EXEEXT) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(OBJDIR)/$(CFG_COBJ_XDC)
- $(ECHO) \# Linking into $@
- $(ECHO) \#
- cd $(TMPOBJDIR) && $(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) -l$(LNKCMD_FILE) sample_app/linker.cmd -o $@ -m $@.map $(LNK_LIBS)
- $(ECHO) \#
- $(ECHO) \# $@ created.
- $(ECHO) \#
-
-# XDC specific - assemble XDC-Configuro command
-CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \
- -r whole_program -c $(CODEGEN_PATH) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)
-#CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \
-# -r whole_program $(XDC_CFG_FILE_NAME)
-_XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"
-EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)
-
-ifneq ($(DEST_ROOT),)
- DEST_ROOT += /
-endif
-# Invoke configuro for the rest of the components
-# NOTE: 1. String handling is having issues with various make versions when the
-# cammand is directly tried to be given below. Hence, as a work-around,
-# the command is re-directed to a file (shell or batch file) and then
-# executed
-# 2. The linker.cmd file generated, includes the libraries generated by
-# XDC. An egrep to search for these and omit in the .cmd file is added
-# after configuro is done
-#$(CFG_CFILE_XDC) : $(XDC_CFG_FILE)
-xdc_configuro : $(XDC_CFG_FILE)
- $(ECHO) \# Invoking configuro...
- $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat
- $(CHMOD) a+x $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat
- $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat
- $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)
-# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat
-# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)
-# $(EGREP_CMD) > $(LNKCMD_FILE)
-# $(EGREP) -iv "$(XDC_GREP_STRING)" $(XDCLNKCMD_FILE) > $(LNKCMD_FILE)
- $(ECHO) \# Configuro done!
-
-$(LNKCMD_FILE) :
-# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)
-# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat
-# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)
-# $(EGREP_CMD) > $(LNKCMD_FILE)
-
-ifndef MODULE_NAME
-$(OBJDIR)/$(CFG_COBJ_XDC) : $(CFG_C_XDC)
- $(ECHO) \# Compiling generated $< to $@ ...
- $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)
- $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)
-endif
-
-# Include dependency make files that were generated by $(CC)
--include $(SRCS:%.c=$(DEPDIR)/%.P)
-
-# Nothing beyond this point
+# Filename: rules_674.mk\r
+#\r
+# Make rules for c674 - This file has all the common rules and defines required\r
+# for DSP - c674 ISA\r
+#\r
+# This file needs to change when:\r
+# 1. Code generation tool chain changes (currently it uses TI CGT)\r
+# 2. Internal switches (which are normally not touched) has to change\r
+# 3. XDC specific switches change\r
+# 4. a rule common for c674 ISA has to be added or modified\r
+\r
+# Set compiler/archiver/linker commands and include paths - Currently different\r
+# for ELF and COFF. In a future release of the toolchain, it would merge.\r
+ifeq ($(FORMAT),COFF)\r
+ CODEGEN_PATH = $(CODEGEN_PATH_DSP)\r
+ CODEGEN_INCLUDE = $(CODEGEN_PATH_DSP)/include\r
+ CC = $(CODEGEN_PATH_DSP)/bin/cl6x \r
+ AR = $(CODEGEN_PATH_DSP)/bin/ar6x\r
+ LNK = $(CODEGEN_PATH_DSP)/bin/lnk6x\r
+endif\r
+ifeq ($(FORMAT),ELF)\r
+ CODEGEN_PATH = $(CODEGEN_PATH_DSPELF)\r
+ CODEGEN_INCLUDE = $(CODEGEN_PATH_DSPELF)/include\r
+ CC = $(CODEGEN_PATH_DSPELF)/bin/cl6x \r
+ AR = $(CODEGEN_PATH_DSPELF)/bin/ar6x\r
+ LNK = $(CODEGEN_PATH_DSPELF)/bin/lnk6x\r
+endif\r
+\r
+\r
+# Derive a part of RTS Library name based on ENDIAN: little/big\r
+ifeq ($(ENDIAN),little)\r
+ #RTSLIB_ENDIAN =\r
+else\r
+ RTSLIB_ENDIAN = e\r
+endif\r
+\r
+# Derive compiler switch and part of RTS Library name based on FORMAT: COFF/ELF\r
+ifeq ($(FORMAT),COFF)\r
+ CSWITCH_FORMAT = \r
+ #RTSLIB_FORMAT = \r
+ XDCINTERNAL_DEFINES = -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__vers_1_0_7_0_0\r
+endif\r
+ifeq ($(FORMAT),ELF)\r
+ CSWITCH_FORMAT = --abi=elfabi \r
+ RTSLIB_FORMAT = _elf\r
+ XDCINTERNAL_DEFINES = -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_bld__vers_1_0_7_2_0_10271\r
+endif\r
+\r
+# XDC Specific defines\r
+ifneq ($(XDC_CFG_FILE_$(CORE)),)\r
+ ifeq ($(PROFILE_$(CORE)),debug)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)$(ISA)\r
+ endif\r
+ ifeq ($(PROFILE_$(CORE)),release)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)$(ISA)\r
+ endif\r
+ ifeq ($(PROFILE_$(CORE)),whole_program_debug)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)\r
+ CFG_LNKFILENAMEPART_XDC=_x\r
+ endif\r
+ CFG_CFILE_XDC =$(patsubst %.cfg,%_$(CFG_CFILENAMEPART_XDC).c,$(notdir $(XDC_CFG_FILE_$(CORE))))\r
+ CFG_C_XDC = $(addprefix $(CONFIGURO_DIR)/package/cfg/,$(CFG_CFILE_XDC))\r
+ XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC)_x.xdl, $(CFG_C_XDC))\r
+ CFG_COBJ_XDC = $(patsubst %.c,%.$(OBJEXT),$(CFG_CFILE_XDC))\r
+# OBJ_PATHS += $(CFG_COBJ_XDC)\r
+ LNKCMD_FILE = $(CONFIGURO_DIR)/linker_mod.cmd\r
+ SPACE := \r
+ SPACE += \r
+ XDC_GREP_STRING = $(CONFIGURO_DIRNAME)\r
+# XDC_GREP_STRING = $(subst $(SPACE),\|,$(COMP_LIST_$(CORE)))\r
+# XDC_GREP_STRING += \|$(CONFIGURO_DIRNAME)\r
+endif\r
+\r
+# Internal CFLAGS - normally doesn't change\r
+CFLAGS_INTERNAL = -c -qq -pdsw225 -mv6740 $(CSWITCH_FORMAT) -mo -eo.$(OBJEXT) -ea.$(ASMEXT)\r
+CFLAGS_DIROPTS = -fr=$(OBJDIR) -fs=$(OBJDIR)\r
+\r
+# CFLAGS based on profile selected\r
+ifeq ($(PROFILE_$(CORE)), debug)\r
+ CFLAGS_INTERNAL += --symdebug:dwarf\r
+ CFLAGS_XDCINTERNAL = -Dxdc_target_name__=C674 -Dxdc_bld__profile_debug -D_DEBUG_=1 \r
+ ifndef MODULE_NAME\r
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_xem3.h' \r
+ endif\r
+ LNKFLAGS_INTERNAL_PROFILE = \r
+endif\r
+ifeq ($(PROFILE_$(CORE)), release)\r
+ CFLAGS_INTERNAL += -O2\r
+ CFLAGS_XDCINTERNAL = -Dxdc_target_name__=C674 -Dxdc_bld__profile_release -DGENERIC\r
+ ifndef MODULE_NAME\r
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_pem3.h' \r
+ endif\r
+ LNKFLAGS_INTERNAL_PROFILE = -o2\r
+# LNKFLAGS_INTERNAL_PROFILE = \r
+endif\r
+CFLAGS_XDCINTERNAL += $(XDCINTERNAL_DEFINES)\r
+\r
+# Following 'if...' block is for an application; to add a #define for each\r
+# component in the build. This is required to know - at compile time - which\r
+# components are on which core.\r
+ifndef MODULE_NAME\r
+ # Derive list of all packages from each of the components needed by the app\r
+ PKG_LIST_M3_LOCAL = $(foreach COMP,$(COMP_LIST_$(CORE)),$($(COMP)_PKG_LIST))\r
+ \r
+ # Defines for the app and cfg source code to know which components/packages\r
+ # are included in the build for the local CORE...\r
+ CFLAGS_APP_DEFINES = $(foreach PKG,$(PKG_LIST_M3_LOCAL),-D_LOCAL_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_LOCAL),-D_BUILD_$(PKG)_)\r
+ \r
+ ifeq ($(CORE),m3vpss)\r
+ PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3vpss_\r
+ endif\r
+ ifeq ($(CORE),m3video)\r
+ PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3video_\r
+ endif\r
+ PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_a8host),$($(COMP)_PKG_LIST))\r
+\r
+ # Defines for the app and cfg source code to know which components/packages\r
+ # are included in the build for the remote CORE...\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_REMOTE),-D_REMOTE_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_REMOTE),-D_BUILD_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_REMOTE_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_BUILD_$(PKG)_)\r
+endif\r
+\r
+# Assemble CFLAGS from all other CFLAGS definitions\r
+_CFLAGS = $(CFLAGS_INTERNAL) $(CFLAGS_GLOBAL_$(CORE)) $(CFLAGS_XDCINTERNAL) $(CFLAGS_LOCAL_COMMON) $(CFLAGS_LOCAL_$(CORE)) $(CFLAGS_LOCAL_$(PLATFORM)) $(CFLAGS_LOCAL_$(SOC)) $(CFLAGS_APP_DEFINES) $(CFLAGS_COMP_COMMON) $(CFLAGS_GLOBAL_$(PLATFORM))\r
+\r
+# Object file creation\r
+# The first $(CC) generates the dependency make files for each of the objects\r
+# The second $(CC) compiles the source to generate object\r
+$(OBJ_PATHS): $(OBJDIR)/%.$(OBJEXT): %.c\r
+ $(ECHO) \# Compiling $< to $@ ...\r
+ $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<\r
+ $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<\r
+\r
+# Archive flags - normally doesn't change\r
+ARFLAGS = rq\r
+\r
+# Archive/library file creation\r
+$(LIBDIR)/$(MODULE_NAME).$(LIBEXT) : $(OBJ_PATHS)\r
+ $(ECHO) \#\r
+ $(ECHO) \# Archiving $(OBJ_PATHS) into $@...\r
+ $(ECHO) \#\r
+ $(AR) $(ARFLAGS) $@ $(OBJ_PATHS)\r
+\r
+# Linker options and rules\r
+LNKFLAGS_INTERNAL_COMMON = --warn_sections -q -e=_c_int00 --silicon_version=6740 -c \r
+\r
+# Assemble Linker flags from all other LNKFLAGS definitions\r
+_LNKFLAGS = $(LNKFLAGS_INTERNAL_COMMON) $(LNKFLAGS_INTERNAL_PROFILE) $(LNKFLAGS_GLOBAL_$(CORE)) $(LNKFLAGS_LOCAL_COMMON) $(LNKFLAGS_LOCAL_$(CORE)) \r
+\r
+# Path of the RTS library - normally doesn't change for a given tool-chain\r
+RTSLIB_PATH = $(CODEGEN_PATH)/lib/rts6740$(RTSLIB_ENDIAN)$(RTSLIB_FORMAT).lib\r
+LIB_PATHS += $(RTSLIB_PATH)\r
+\r
+LNK_LIBS = $(addprefix -l,$(LIB_PATHS))\r
+ifeq ($(DEST_ROOT),)\r
+ TMPOBJDIR = .\r
+else\r
+ TMPOBJDIR = $(OBJDIR)\r
+endif\r
+# Linker - to create executable file \r
+$(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE)).$(EXEEXT) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(OBJDIR)/$(CFG_COBJ_XDC)\r
+ $(ECHO) \# Linking into $@\r
+ $(ECHO) \#\r
+ cd $(TMPOBJDIR) && $(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) -l$(LNKCMD_FILE) sample_app/linker.cmd -o $@ -m $@.map $(LNK_LIBS)\r
+ $(ECHO) \#\r
+ $(ECHO) \# $@ created.\r
+ $(ECHO) \#\r
+\r
+# XDC specific - assemble XDC-Configuro command\r
+CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \\r
+ -r whole_program -c $(CODEGEN_PATH) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)\r
+#CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \\r
+# -r whole_program $(XDC_CFG_FILE_NAME)\r
+_XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"\r
+EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)\r
+\r
+ifneq ($(DEST_ROOT),)\r
+ DEST_ROOT += /\r
+endif\r
+# Invoke configuro for the rest of the components\r
+# NOTE: 1. String handling is having issues with various make versions when the \r
+# cammand is directly tried to be given below. Hence, as a work-around, \r
+# the command is re-directed to a file (shell or batch file) and then \r
+# executed\r
+# 2. The linker.cmd file generated, includes the libraries generated by\r
+# XDC. An egrep to search for these and omit in the .cmd file is added\r
+# after configuro is done\r
+#$(CFG_CFILE_XDC) : $(XDC_CFG_FILE)\r
+xdc_configuro : $(XDC_CFG_FILE)\r
+ $(ECHO) \# Invoking configuro...\r
+ $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(CHMOD) a+x $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
+# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
+# $(EGREP_CMD) > $(LNKCMD_FILE)\r
+# $(EGREP) -iv "$(XDC_GREP_STRING)" $(XDCLNKCMD_FILE) > $(LNKCMD_FILE)\r
+ $(ECHO) \# Configuro done!\r
+\r
+$(LNKCMD_FILE) :\r
+# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
+# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
+# $(EGREP_CMD) > $(LNKCMD_FILE)\r
+ \r
+ifndef MODULE_NAME\r
+$(OBJDIR)/$(CFG_COBJ_XDC) : $(CFG_C_XDC)\r
+ $(ECHO) \# Compiling generated $< to $@ ...\r
+ $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)\r
+ $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)\r
+endif\r
+\r
+# Include dependency make files that were generated by $(CC)\r
+-include $(SRCS:%.c=$(DEPDIR)/%.P)\r
+\r
+# Nothing beyond this point\r
old mode 100644 (file)
new mode 100755 (executable)
similarity index 97%
rename from makerules/rules_a8.mk
rename to makerules/rules_CS_a8.mk
index 2c9eca0..900dfc5
new mode 100755 (executable)
similarity index 97%
rename from makerules/rules_a8.mk
rename to makerules/rules_CS_a8.mk
index 2c9eca0..900dfc5
--- a/makerules/rules_a8.mk
+++ b/makerules/rules_CS_a8.mk
-# Filename: rules_a8.mk
-#
-# Make rules for A8 - This file has all the common rules and defines required
-# for Cortex-A8 ISA
-#
-# This file needs to change when:
-# 1. Code generation tool chain changes (currently it uses CodeSourcery)
-# 2. Internal switches (which are normally not touched) has to change
-# 3. XDC specific switches change
-# 4. a rule common for A8 ISA has to be added or modified
-
-# Set compiler/archiver/linker commands and include paths
-CODEGEN_INCLUDE = $(CODEGEN_PATH_A8)
-CC = $(CODEGEN_PATH_A8)/bin/arm-none-linux-gnueabi-gcc
-AR = $(CODEGEN_PATH_A8)/bin/arm-none-linux-gnueabi-ar
-LNK = $(CODEGEN_PATH_A8)/bin/arm-none-linux-gnueabi-ld
-
-# Internal CFLAGS - normally doesn't change
-CFLAGS_INTERNAL = -fPIC -fno-strict-aliasing -MD -MF $(DEPFILE).P -march=armv5t -Dfar= -D_DEBUG_=1 -DMULTICHANNEL_OPT=1
-CFLAGS_DIROPTS =
-
-# XDC specific CFLAGS
-CFLAGS_XDCINTERNAL = -Dxdc_target_name__=GCArmv5T -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_bld__profile_$(PROFILE_$(CORE)) -Dxdc_bld__vers_1_0_4_3_3
-LNKFLAGS_INTERNAL_PROFILE =
-
-# Following 'if...' block is for an application; to add a #define for each
-# component in the build. This is required to know - at compile time - which
-# components are on which core.
-ifndef MODULE_NAME
- # Derive list of all packages from each of the components needed by the app
- PKG_LIST_LOCAL = $(foreach COMP,$(COMP_LIST_$(CORE)),$($(COMP)_PKG_LIST))
-
- # Defines for the app and cfg source code to know which components/packages
- # are included in the build for the local CORE...
- CFLAGS_APP_DEFINES = $(foreach PKG,$(PKG_LIST_LOCAL),-D_LOCAL_$(PKG)_)
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_LOCAL),-D_BUILD_$(PKG)_)
-
- ifeq ($(CORE),m3vpss)
- PKG_LIST_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))
- CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3vpss_
- endif
- ifeq ($(CORE),m3video)
- PKG_LIST_REMOTE = $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))
- CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3video_
- endif
- ifeq ($(CORE),a8host)
- PKG_LIST_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))
- PKG_LIST_REMOTE += $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))
- CFLAGS_APP_DEFINES += -D_LOCAL_CORE_a8host_
- endif
-
- # Defines for the app and cfg source code to know which components/packages
- # are included in the build for the remote CORE...
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_REMOTE),-D_REMOTE_$(PKG)_)
- CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_REMOTE),-D_BUILD_$(PKG)_)
-endif
-
-# Assemble CFLAGS from all other CFLAGS definitions
-_CFLAGS = $(CFLAGS_GLOBAL_$(CORE)) $(CFLAGS_INTERNAL) $(CFLAGS_XDCINTERNAL) $(CFLAGS_LOCAL_COMMON) $(CFLAGS_LOCAL_$(CORE)) $(CFLAGS_LOCAL_$(PLATFORM)) $(CFLAGS_LOCAL_$(SOC)) $(CFLAGS_APP_DEFINES) $(CFLAGS_COMP_COMMON) $(CFLAGS_GLOBAL_$(PLATFORM))
-
-# Object file creation
-# The first $(CC) generates the dependency make files for each of the objects
-# The second $(CC) compiles the source to generate object
-$(OBJ_PATHS): $(OBJDIR)/%.$(OBJEXT): %.c
- $(ECHO) \# Compiling $< to $@ ...
- $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -o $(OBJDIR)/$(basename $(notdir $<)).$(OBJEXT) $<
-
-# Archive flags - normally doesn't change
-ARFLAGS = cr
-
-# Archive/library file creation
-$(LIBDIR)/$(MODULE_NAME).$(LIBEXT) : $(OBJ_PATHS)
- $(ECHO) \#
- $(ECHO) \# Archiving $(OBJ_PATHS) into $@...
- $(ECHO) \#
- $(AR) $(ARFLAGS) $@ $(OBJ_PATHS)
-
-# Linker options and rules
-LNKFLAGS_INTERNAL_COMMON = -lpthread -lrt -L$(CODEGEN_PATH_A8)/arm-none-linux-gnueabi/lib
-
-# Assemble Linker flags from all other LNKFLAGS definitions
-_LNKFLAGS = $(LNKFLAGS_INTERNAL_COMMON) $(LNKFLAGS_INTERNAL_PROFILE) $(LNKFLAGS_GLOBAL_$(CORE)) $(LNKFLAGS_LOCAL_COMMON) $(LNKFLAGS_LOCAL_$(CORE))
-
-# Path of the RTS library - normally doesn't change for a given tool-chain
-RTSLIB_PATH =
-LIB_PATHS +=
-
-LNK_LIBS = $(addprefix -l,$(LIB_PATHS))
-# Linker - to create executable file
-$(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE)).$(EXEEXT) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(OBJDIR)/$(CFG_COBJ_XDC)
- $(ECHO) \# Linking into $@
- $(ECHO) \#
-# $(LNK) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) $(LNKCMD_FILE) $(_LNKFLAGS) -o $@ -Map $@.map $(LNK_LIBS)
- $(CC) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) $(LIB_PATHS) $(LNKCMD_FILE) $(_LNKFLAGS) -o $@
- $(ECHO) \#
- $(ECHO) \# $@ created.
- $(ECHO) \#
-
-# XDC specific - assemble XDC-Configuro command
-CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \
- --cfgArgs $(CFGARGS_XDC) -r $(PROFILE_$(CORE)) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)
-_XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"
-EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)
-
-# Invoke configuro for the rest of the components
-# NOTE: 1. String handling is having issues with various make versions when the
-# cammand is directly tried to be given below. Hence, as a work-around,
-# the command is re-directed to a file (shell or batch file) and then
-# executed
-# 2. The linker.cmd file generated, includes the libraries generated by
-# XDC. An egrep to search for these and omit in the .cmd file is added
-# after configuro is done
-#$(CFG_CFILE_XDC) : $(XDC_CFG_FILE)
-xdc_configuro : $(XDC_CFG_FILE)
- $(ECHO) \# Invoking configuro...
- $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat
- $(CHMOD) a+x $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat
- $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat
-# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)
-# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat
-# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)
- $(EGREP_CMD) > $(LNKCMD_FILE)
-# $(EGREP) -iv "$(XDC_GREP_STRING)" $(XDCLNKCMD_FILE) > $(LNKCMD_FILE)
- $(ECHO) \# Configuro done!
-
-$(LNKCMD_FILE) :
-# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)
-# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat
-# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)
-# $(EGREP_CMD) > $(LNKCMD_FILE)
-
-ifndef MODULE_NAME
-$(OBJDIR)/$(CFG_COBJ_XDC) : $(CFG_C_XDC)
- $(ECHO) \# Compiling generated $< to $@ ...
- $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -o $(OBJDIR)/$(CFG_COBJ_XDC) $(CFG_C_XDC)
-endif
-
-# Include dependency make files that were generated by $(CC)
--include $(SRCS:%.c=$(DEPDIR)/%.P)
-
-# Nothing beyond this point
+# Filename: rules_a8.mk\r
+#\r
+# Make rules for A8 - This file has all the common rules and defines required\r
+# for Cortex-A8 ISA\r
+#\r
+# This file needs to change when:\r
+# 1. Code generation tool chain changes (currently it uses CodeSourcery)\r
+# 2. Internal switches (which are normally not touched) has to change\r
+# 3. XDC specific switches change\r
+# 4. a rule common for A8 ISA has to be added or modified\r
+\r
+# Set compiler/archiver/linker commands and include paths\r
+CODEGEN_INCLUDE = $(CODEGEN_PATH_A8)\r
+CC = $(CODEGEN_PATH_A8)/bin/arm-none-linux-gnueabi-gcc\r
+AR = $(CODEGEN_PATH_A8)/bin/arm-none-linux-gnueabi-ar\r
+LNK = $(CODEGEN_PATH_A8)/bin/arm-none-linux-gnueabi-ld\r
+\r
+# Internal CFLAGS - normally doesn't change\r
+CFLAGS_INTERNAL = -fPIC -fno-strict-aliasing -MD -MF $(DEPFILE).P -march=armv5t -Dfar= -D_DEBUG_=1 -DMULTICHANNEL_OPT=1\r
+CFLAGS_DIROPTS = \r
+\r
+# XDC specific CFLAGS \r
+CFLAGS_XDCINTERNAL = -Dxdc_target_name__=GCArmv5T -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_bld__profile_$(PROFILE_$(CORE)) -Dxdc_bld__vers_1_0_4_3_3 \r
+LNKFLAGS_INTERNAL_PROFILE = \r
+\r
+# Following 'if...' block is for an application; to add a #define for each\r
+# component in the build. This is required to know - at compile time - which\r
+# components are on which core.\r
+ifndef MODULE_NAME\r
+ # Derive list of all packages from each of the components needed by the app\r
+ PKG_LIST_LOCAL = $(foreach COMP,$(COMP_LIST_$(CORE)),$($(COMP)_PKG_LIST))\r
+ \r
+ # Defines for the app and cfg source code to know which components/packages\r
+ # are included in the build for the local CORE...\r
+ CFLAGS_APP_DEFINES = $(foreach PKG,$(PKG_LIST_LOCAL),-D_LOCAL_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_LOCAL),-D_BUILD_$(PKG)_)\r
+ \r
+ ifeq ($(CORE),m3vpss)\r
+ PKG_LIST_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3vpss_\r
+ endif\r
+ ifeq ($(CORE),m3video)\r
+ PKG_LIST_REMOTE = $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3video_\r
+ endif\r
+ ifeq ($(CORE),a8host)\r
+ PKG_LIST_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))\r
+ PKG_LIST_REMOTE += $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_a8host_\r
+ endif\r
+\r
+ # Defines for the app and cfg source code to know which components/packages\r
+ # are included in the build for the remote CORE...\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_REMOTE),-D_REMOTE_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_REMOTE),-D_BUILD_$(PKG)_)\r
+endif\r
+\r
+# Assemble CFLAGS from all other CFLAGS definitions\r
+_CFLAGS = $(CFLAGS_GLOBAL_$(CORE)) $(CFLAGS_INTERNAL) $(CFLAGS_XDCINTERNAL) $(CFLAGS_LOCAL_COMMON) $(CFLAGS_LOCAL_$(CORE)) $(CFLAGS_LOCAL_$(PLATFORM)) $(CFLAGS_LOCAL_$(SOC)) $(CFLAGS_APP_DEFINES) $(CFLAGS_COMP_COMMON) $(CFLAGS_GLOBAL_$(PLATFORM))\r
+\r
+# Object file creation\r
+# The first $(CC) generates the dependency make files for each of the objects\r
+# The second $(CC) compiles the source to generate object\r
+$(OBJ_PATHS): $(OBJDIR)/%.$(OBJEXT): %.c\r
+ $(ECHO) \# Compiling $< to $@ ...\r
+ $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -o $(OBJDIR)/$(basename $(notdir $<)).$(OBJEXT) $<\r
+\r
+# Archive flags - normally doesn't change\r
+ARFLAGS = cr\r
+\r
+# Archive/library file creation\r
+$(LIBDIR)/$(MODULE_NAME).$(LIBEXT) : $(OBJ_PATHS)\r
+ $(ECHO) \#\r
+ $(ECHO) \# Archiving $(OBJ_PATHS) into $@...\r
+ $(ECHO) \#\r
+ $(AR) $(ARFLAGS) $@ $(OBJ_PATHS)\r
+\r
+# Linker options and rules\r
+LNKFLAGS_INTERNAL_COMMON = -lpthread -lrt -L$(CODEGEN_PATH_A8)/arm-none-linux-gnueabi/lib\r
+\r
+# Assemble Linker flags from all other LNKFLAGS definitions\r
+_LNKFLAGS = $(LNKFLAGS_INTERNAL_COMMON) $(LNKFLAGS_INTERNAL_PROFILE) $(LNKFLAGS_GLOBAL_$(CORE)) $(LNKFLAGS_LOCAL_COMMON) $(LNKFLAGS_LOCAL_$(CORE)) \r
+\r
+# Path of the RTS library - normally doesn't change for a given tool-chain\r
+RTSLIB_PATH = \r
+LIB_PATHS += \r
+\r
+LNK_LIBS = $(addprefix -l,$(LIB_PATHS))\r
+# Linker - to create executable file \r
+$(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE)).$(EXEEXT) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(OBJDIR)/$(CFG_COBJ_XDC)\r
+ $(ECHO) \# Linking into $@\r
+ $(ECHO) \#\r
+# $(LNK) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) $(LNKCMD_FILE) $(_LNKFLAGS) -o $@ -Map $@.map $(LNK_LIBS)\r
+ $(CC) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) $(LIB_PATHS) $(LNKCMD_FILE) $(_LNKFLAGS) -o $@\r
+ $(ECHO) \#\r
+ $(ECHO) \# $@ created.\r
+ $(ECHO) \#\r
+\r
+# XDC specific - assemble XDC-Configuro command\r
+CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \\r
+ --cfgArgs $(CFGARGS_XDC) -r $(PROFILE_$(CORE)) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)\r
+_XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"\r
+EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)\r
+\r
+# Invoke configuro for the rest of the components\r
+# NOTE: 1. String handling is having issues with various make versions when the \r
+# cammand is directly tried to be given below. Hence, as a work-around, \r
+# the command is re-directed to a file (shell or batch file) and then \r
+# executed\r
+# 2. The linker.cmd file generated, includes the libraries generated by\r
+# XDC. An egrep to search for these and omit in the .cmd file is added\r
+# after configuro is done\r
+#$(CFG_CFILE_XDC) : $(XDC_CFG_FILE)\r
+xdc_configuro : $(XDC_CFG_FILE)\r
+ $(ECHO) \# Invoking configuro...\r
+ $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat\r
+ $(CHMOD) a+x $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat\r
+ $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat\r
+# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
+# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
+ $(EGREP_CMD) > $(LNKCMD_FILE)\r
+# $(EGREP) -iv "$(XDC_GREP_STRING)" $(XDCLNKCMD_FILE) > $(LNKCMD_FILE)\r
+ $(ECHO) \# Configuro done!\r
+\r
+$(LNKCMD_FILE) :\r
+# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
+# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
+# $(EGREP_CMD) > $(LNKCMD_FILE)\r
+ \r
+ifndef MODULE_NAME\r
+$(OBJDIR)/$(CFG_COBJ_XDC) : $(CFG_C_XDC)\r
+ $(ECHO) \# Compiling generated $< to $@ ...\r
+ $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -o $(OBJDIR)/$(CFG_COBJ_XDC) $(CFG_C_XDC)\r
+endif\r
+\r
+# Include dependency make files that were generated by $(CC)\r
+-include $(SRCS:%.c=$(DEPDIR)/%.P)\r
+\r
+# Nothing beyond this point\r
diff --git a/makerules/rules_TI_a8.mk b/makerules/rules_TI_a8.mk
--- /dev/null
+++ b/makerules/rules_TI_a8.mk
@@ -0,0 +1,210 @@
+# Filename: rules_TI_a8.mk\r
+#\r
+# Make rules for A8 - This file has all the common rules and defines required\r
+# for Cortex-A8 ISA\r
+#\r
+# This file needs to change when:\r
+# 1. Code generation tool chain changes (This file uses TMS470)\r
+# 2. Internal switches (which are normally not touched) has to change\r
+# 3. XDC specific switches change\r
+# 4. a rule common for A8 ISA has to be added or modified\r
+\r
+# Set compiler/archiver/linker commands and include paths\r
+CODEGEN_INCLUDE = $(CODEGEN_PATH_A8)/include\r
+CC = $(CODEGEN_PATH_A8)/bin/cl470 \r
+AR = $(CODEGEN_PATH_A8)/bin/ar470\r
+LNK = $(CODEGEN_PATH_A8)/bin/lnk470\r
+\r
+# Derive a part of RTS Library name based on ENDIAN: little/big\r
+ifeq ($(ENDIAN),little)\r
+ RTSLIB_ENDIAN = le\r
+else\r
+ RTSLIB_ENDIAN = be\r
+endif\r
+\r
+# Derive compiler switch and part of RTS Library name based on FORMAT: COFF/ELF\r
+ifeq ($(FORMAT),COFF)\r
+ CSWITCH_FORMAT = ti_arm9_abi\r
+ RTSLIB_FORMAT = tiarm9\r
+endif\r
+ifeq ($(FORMAT),ELF)\r
+ CSWITCH_FORMAT = eabi\r
+ RTSLIB_FORMAT = eabi\r
+endif\r
+\r
+# XDC Specific defines\r
+ifneq ($(XDC_CFG_FILE_$(CORE)),)\r
+ ifeq ($(PROFILE_$(CORE)),debug)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)a8f\r
+ endif\r
+ ifeq ($(PROFILE_$(CORE)),release)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)a8f\r
+ endif\r
+ ifeq ($(PROFILE_$(CORE)),whole_program_debug)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)a8f$(ENDIAN_EXT)\r
+ CFG_LNKFILENAMEPART_XDC=_x\r
+ endif\r
+ CFG_CFILE_XDC =$(patsubst %.cfg,%_$(CFG_CFILENAMEPART_XDC).c,$(notdir $(XDC_CFG_FILE_$(CORE))))\r
+ CFG_C_XDC = $(addprefix $(CONFIGURO_DIR)/package/cfg/,$(CFG_CFILE_XDC))\r
+ XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC)_x.xdl, $(CFG_C_XDC))\r
+ CFG_COBJ_XDC = $(patsubst %.c,%.$(OBJEXT),$(CFG_CFILE_XDC))\r
+# OBJ_PATHS += $(CFG_COBJ_XDC)\r
+ LNKCMD_FILE = $(CONFIGURO_DIR)/linker_mod.cmd\r
+ SPACE := \r
+ SPACE += \r
+ XDC_GREP_STRING = $(CONFIGURO_DIRNAME)\r
+# XDC_GREP_STRING = $(subst $(SPACE),\|,$(COMP_LIST_$(CORE)))\r
+# XDC_GREP_STRING += \|$(CONFIGURO_DIRNAME)\r
+endif\r
+\r
+# Internal CFLAGS - normally doesn't change\r
+CFLAGS_INTERNAL = -c -qq -pdsw225 --neon --endian=$(ENDIAN) -mv7A8 --abi=$(CSWITCH_FORMAT) -eo.$(OBJEXT) -ea.$(ASMEXT) \r
+CFLAGS_DIROPTS = -fr=$(OBJDIR) -fs=$(OBJDIR)\r
+\r
+# CFLAGS based on profile selected\r
+ifeq ($(PROFILE_$(CORE)), debug)\r
+ CFLAGS_XDCINTERNAL = -g --symdebug:dwarf -Dxdc_target_name__=A8F -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_4_6_1 -D_DEBUG_=1 \r
+ ifndef MODULE_NAME\r
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_xem3.h' \r
+ endif\r
+ LNKFLAGS_INTERNAL_PROFILE = \r
+endif\r
+ifeq ($(PROFILE_$(CORE)), whole_program_debug)\r
+ CFLAGS_XDCINTERNAL = -g --symdebug:dwarf -Dxdc_target_name__=A8F -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_bld__profile_whole_program_debug -Dxdc_bld__vers_1_0_4_6_1 -ms -oe \r
+ ifndef MODULE_NAME\r
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/VpsAppMain_pem3.h' \r
+ endif\r
+ LNKFLAGS_INTERNAL_PROFILE = --opt='--endian=$(ENDIAN) -mv7A8 --abi=$(CSWITCH_FORMAT) -qq -pdsw225 $(CFLAGS_GLOBAL_$(CORE)) -oe --symdebug:dwarf -ms -op2 -O3 -k -os --optimize_with_debug --inline_recursion_limit=20' --strict_compatibility=on \r
+# LNKFLAGS_INTERNAL_PROFILE = \r
+endif\r
+ifeq ($(PROFILE_$(CORE)), release)\r
+ CFLAGS_XDCINTERNAL = -Dxdc_target_name__=A8F -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_4_6_1 -O2\r
+ ifndef MODULE_NAME\r
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_xem3.h' \r
+ endif\r
+ LNKFLAGS_INTERNAL_PROFILE = -o2\r
+endif\r
+\r
+# Following 'if...' block is for an application; to add a #define for each\r
+# component in the build. This is required to know - at compile time - which\r
+# components are on which core.\r
+ifndef MODULE_NAME\r
+ # Derive list of all packages from each of the components needed by the app\r
+ PKG_LIST_A8 = $(foreach COMP,$(COMP_LIST_$(CORE)),$($(COMP)_PKG_LIST))\r
+ \r
+ # Defines for the app and cfg source code to know which components/packages\r
+ # are included in the build for the local CORE...\r
+ CFLAGS_APP_DEFINES = $(foreach PKG,$(PKG_LIST_A8_LOCAL),-D_LOCAL_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_LOCAL),-D_BUILD_$(PKG)_)\r
+ \r
+ ifeq ($(CORE),m3vpss)\r
+ PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3vpss_\r
+ endif\r
+ ifeq ($(CORE),m3video)\r
+ PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3video_\r
+ endif\r
+ PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_a8host),$($(COMP)_PKG_LIST))\r
+\r
+ # Defines for the app and cfg source code to know which components/packages\r
+ # are included in the build for the remote CORE...\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_REMOTE_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_BUILD_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_REMOTE_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_BUILD_$(PKG)_)\r
+endif\r
+\r
+# Assemble CFLAGS from all other CFLAGS definitions\r
+_CFLAGS = $(CFLAGS_INTERNAL) $(CFLAGS_GLOBAL_$(CORE)) $(CFLAGS_XDCINTERNAL) $(CFLAGS_LOCAL_COMMON) $(CFLAGS_LOCAL_$(CORE)) $(CFLAGS_LOCAL_$(PLATFORM)) $(CFLAGS_LOCAL_$(SOC)) $(CFLAGS_APP_DEFINES) $(CFLAGS_COMP_COMMON) $(CFLAGS_GLOBAL_$(PLATFORM))\r
+\r
+# Object file creation\r
+# The first $(CC) generates the dependency make files for each of the objects\r
+# The second $(CC) compiles the source to generate object\r
+$(OBJ_PATHS): $(OBJDIR)/%.$(OBJEXT): %.c\r
+ $(ECHO) \# Compiling $< to $@ ...\r
+ $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<\r
+ $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<\r
+\r
+# Archive flags - normally doesn't change\r
+ARFLAGS = rq\r
+\r
+# Archive/library file creation\r
+$(LIBDIR)/$(MODULE_NAME).$(LIBEXT) : $(OBJ_PATHS)\r
+ $(ECHO) \#\r
+ $(ECHO) \# Archiving $(OBJ_PATHS) into $@...\r
+ $(ECHO) \#\r
+ $(AR) $(ARFLAGS) $@ $(OBJ_PATHS)\r
+\r
+# Linker options and rules\r
+LNKFLAGS_INTERNAL_COMMON = -w -q -u _c_int00 --silicon_version=7A8 -c --dynamic \r
+\r
+# Assemble Linker flags from all other LNKFLAGS definitions\r
+_LNKFLAGS = $(LNKFLAGS_INTERNAL_COMMON) $(LNKFLAGS_INTERNAL_PROFILE) $(LNKFLAGS_GLOBAL_$(CORE)) $(LNKFLAGS_LOCAL_COMMON) $(LNKFLAGS_LOCAL_$(CORE)) \r
+\r
+# Path of the RTS library - normally doesn't change for a given tool-chain\r
+#RTSLIB_PATH = $(CODEGEN_PATH_A8)/lib/rtsv7M3_T_$(RTSLIB_ENDIAN)_$(RTSLIB_FORMAT).lib\r
+LIB_PATHS += $(RTSLIB_PATH)\r
+\r
+LNK_LIBS = $(addprefix -l,$(LIB_PATHS))\r
+ifeq ($(DEST_ROOT),)\r
+ TMPOBJDIR = .\r
+else\r
+ TMPOBJDIR = $(OBJDIR)\r
+endif\r
+# Linker - to create executable file \r
+$(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE)).$(EXEEXT) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(OBJDIR)/$(CFG_COBJ_XDC)\r
+ $(ECHO) \# Linking into $@\r
+ $(ECHO) \#\r
+ cd $(TMPOBJDIR) && $(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) -l$(LNKCMD_FILE) sample_app/linker.cmd -o $@ -m $@.map $(LNK_LIBS)\r
+ $(ECHO) \#\r
+ $(ECHO) \# $@ created.\r
+ $(ECHO) \#\r
+\r
+# XDC specific - assemble XDC-Configuro command\r
+CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \\r
+ -r whole_program -c $(CODEGEN_PATH_A8) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)\r
+_XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"\r
+EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)\r
+\r
+ifneq ($(DEST_ROOT),)\r
+ DEST_ROOT += /\r
+endif\r
+# Invoke configuro for the rest of the components\r
+# NOTE: 1. String handling is having issues with various make versions when the \r
+# cammand is directly tried to be given below. Hence, as a work-around, \r
+# the command is re-directed to a file (shell or batch file) and then \r
+# executed\r
+# 2. The linker.cmd file generated, includes the libraries generated by\r
+# XDC. An egrep to search for these and omit in the .cmd file is added\r
+# after configuro is done\r
+#$(CFG_CFILE_XDC) : $(XDC_CFG_FILE)\r
+xdc_configuro : $(XDC_CFG_FILE)\r
+ $(ECHO) \# Invoking configuro...\r
+ $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(CHMOD) a+x $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
+# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
+# $(EGREP_CMD) > $(LNKCMD_FILE)\r
+# $(EGREP) -iv "$(XDC_GREP_STRING)" $(XDCLNKCMD_FILE) > $(LNKCMD_FILE)\r
+ $(ECHO) \# Configuro done!\r
+\r
+$(LNKCMD_FILE) :\r
+# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
+# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
+# $(EGREP_CMD) > $(LNKCMD_FILE)\r
+ \r
+ifndef MODULE_NAME\r
+$(OBJDIR)/$(CFG_COBJ_XDC) : $(CFG_C_XDC)\r
+ $(ECHO) \# Compiling generated $< to $@ ...\r
+ $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)\r
+ $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)\r
+endif\r
+\r
+# Include dependency make files that were generated by $(CC)\r
+-include $(SRCS:%.c=$(DEPDIR)/%.P)\r
+\r
+# Nothing beyond this point\r
diff --git a/makerules/rules_arm9.mk b/makerules/rules_arm9.mk
--- /dev/null
+++ b/makerules/rules_arm9.mk
@@ -0,0 +1,210 @@
+# Filename: rules_TI_arm9.mk\r
+#\r
+# Make rules for ARM9 - This file has all the common rules and defines required\r
+# for ARM9 ISA\r
+#\r
+# This file needs to change when:\r
+# 1. Code generation tool chain changes (This file uses TMS470)\r
+# 2. Internal switches (which are normally not touched) has to change\r
+# 3. XDC specific switches change\r
+# 4. a rule common for ARM9 ISA has to be added or modified\r
+\r
+# Set compiler/archiver/linker commands and include paths\r
+CODEGEN_INCLUDE = $(CODEGEN_PATH_ARM9)/include\r
+CC = $(CODEGEN_PATH_ARM9)/bin/cl470 \r
+AR = $(CODEGEN_PATH_ARM9)/bin/ar470\r
+LNK = $(CODEGEN_PATH_ARM9)/bin/lnk470\r
+\r
+# Derive a part of RTS Library name based on ENDIAN: little/big\r
+ifeq ($(ENDIAN),little)\r
+ RTSLIB_ENDIAN = le\r
+else\r
+ RTSLIB_ENDIAN = be\r
+endif\r
+\r
+# Derive compiler switch and part of RTS Library name based on FORMAT: COFF/ELF\r
+ifeq ($(FORMAT),COFF)\r
+ CSWITCH_FORMAT = ti_arm9_abi\r
+ RTSLIB_FORMAT = tiarm9\r
+endif\r
+ifeq ($(FORMAT),ELF)\r
+ CSWITCH_FORMAT = eabi\r
+ RTSLIB_FORMAT = eabi\r
+endif\r
+\r
+# XDC Specific defines\r
+ifneq ($(XDC_CFG_FILE_$(CORE)),)\r
+ ifeq ($(PROFILE_$(CORE)),debug)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)9\r
+ endif\r
+ ifeq ($(PROFILE_$(CORE)),release)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)9\r
+ endif\r
+ ifeq ($(PROFILE_$(CORE)),whole_program_debug)\r
+ CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)9$(ENDIAN_EXT)\r
+ CFG_LNKFILENAMEPART_XDC=_x\r
+ endif\r
+ CFG_CFILE_XDC =$(patsubst %.cfg,%_$(CFG_CFILENAMEPART_XDC).c,$(notdir $(XDC_CFG_FILE_$(CORE))))\r
+ CFG_C_XDC = $(addprefix $(CONFIGURO_DIR)/package/cfg/,$(CFG_CFILE_XDC))\r
+ XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC)_x.xdl, $(CFG_C_XDC))\r
+ CFG_COBJ_XDC = $(patsubst %.c,%.$(OBJEXT),$(CFG_CFILE_XDC))\r
+# OBJ_PATHS += $(CFG_COBJ_XDC)\r
+ LNKCMD_FILE = $(CONFIGURO_DIR)/linker_mod.cmd\r
+ SPACE := \r
+ SPACE += \r
+ XDC_GREP_STRING = $(CONFIGURO_DIRNAME)\r
+# XDC_GREP_STRING = $(subst $(SPACE),\|,$(COMP_LIST_$(CORE)))\r
+# XDC_GREP_STRING += \|$(CONFIGURO_DIRNAME)\r
+endif\r
+\r
+# Internal CFLAGS - normally doesn't change\r
+CFLAGS_INTERNAL = -c -qq -pdsw225 -me -mv5e --abi=$(CSWITCH_FORMAT) -eo.$(OBJEXT) -ea.$(ASMEXT) \r
+CFLAGS_DIROPTS = -fr=$(OBJDIR) -fs=$(OBJDIR)\r
+\r
+# CFLAGS based on profile selected\r
+ifeq ($(PROFILE_$(CORE)), debug)\r
+ CFLAGS_XDCINTERNAL = -g --symdebug:dwarf -Dxdc_target_name__=Arm9 -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_4_6_1 -D_DEBUG_=1 \r
+ ifndef MODULE_NAME\r
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_xem3.h' \r
+ endif\r
+ LNKFLAGS_INTERNAL_PROFILE = \r
+endif\r
+ifeq ($(PROFILE_$(CORE)), whole_program_debug)\r
+ CFLAGS_XDCINTERNAL = -g --symdebug:dwarf -Dxdc_target_name__=Arm9 -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_bld__profile_whole_program_debug -Dxdc_bld__vers_1_0_4_6_1 -ms -oe \r
+ ifndef MODULE_NAME\r
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/VpsAppMain_pem3.h' \r
+ endif\r
+ LNKFLAGS_INTERNAL_PROFILE = --opt='--endian=$(ENDIAN) -mv5e --abi=$(CSWITCH_FORMAT) -qq -pdsw225 $(CFLAGS_GLOBAL_$(CORE)) -oe --symdebug:dwarf -ms -op2 -O3 -k -os --optimize_with_debug --inline_recursion_limit=20' --strict_compatibility=on \r
+# LNKFLAGS_INTERNAL_PROFILE = \r
+endif\r
+ifeq ($(PROFILE_$(CORE)), release)\r
+ CFLAGS_XDCINTERNAL = -Dxdc_target_name__=Arm9 -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_4_6_1 -O2\r
+ ifndef MODULE_NAME\r
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_xem3.h' \r
+ endif\r
+ LNKFLAGS_INTERNAL_PROFILE = -o2\r
+endif\r
+\r
+# Following 'if...' block is for an application; to add a #define for each\r
+# component in the build. This is required to know - at compile time - which\r
+# components are on which core.\r
+ifndef MODULE_NAME\r
+ # Derive list of all packages from each of the components needed by the app\r
+ PKG_LIST_A8 = $(foreach COMP,$(COMP_LIST_$(CORE)),$($(COMP)_PKG_LIST))\r
+ \r
+ # Defines for the app and cfg source code to know which components/packages\r
+ # are included in the build for the local CORE...\r
+ CFLAGS_APP_DEFINES = $(foreach PKG,$(PKG_LIST_A8_LOCAL),-D_LOCAL_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_LOCAL),-D_BUILD_$(PKG)_)\r
+ \r
+ ifeq ($(CORE),m3vpss)\r
+ PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3vpss_\r
+ endif\r
+ ifeq ($(CORE),m3video)\r
+ PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))\r
+ CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3video_\r
+ endif\r
+ PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_a8host),$($(COMP)_PKG_LIST))\r
+\r
+ # Defines for the app and cfg source code to know which components/packages\r
+ # are included in the build for the remote CORE...\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_REMOTE_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_BUILD_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_REMOTE_$(PKG)_)\r
+ CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_BUILD_$(PKG)_)\r
+endif\r
+\r
+# Assemble CFLAGS from all other CFLAGS definitions\r
+_CFLAGS = $(CFLAGS_INTERNAL) $(CFLAGS_GLOBAL_$(CORE)) $(CFLAGS_XDCINTERNAL) $(CFLAGS_LOCAL_COMMON) $(CFLAGS_LOCAL_$(CORE)) $(CFLAGS_LOCAL_$(PLATFORM)) $(CFLAGS_LOCAL_$(SOC)) $(CFLAGS_APP_DEFINES) $(CFLAGS_COMP_COMMON) $(CFLAGS_GLOBAL_$(PLATFORM))\r
+\r
+# Object file creation\r
+# The first $(CC) generates the dependency make files for each of the objects\r
+# The second $(CC) compiles the source to generate object\r
+$(OBJ_PATHS): $(OBJDIR)/%.$(OBJEXT): %.c\r
+ $(ECHO) \# Compiling $< to $@ ...\r
+ $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<\r
+ $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<\r
+\r
+# Archive flags - normally doesn't change\r
+ARFLAGS = rq\r
+\r
+# Archive/library file creation\r
+$(LIBDIR)/$(MODULE_NAME).$(LIBEXT) : $(OBJ_PATHS)\r
+ $(ECHO) \#\r
+ $(ECHO) \# Archiving $(OBJ_PATHS) into $@...\r
+ $(ECHO) \#\r
+ $(AR) $(ARFLAGS) $@ $(OBJ_PATHS)\r
+\r
+# Linker options and rules\r
+LNKFLAGS_INTERNAL_COMMON = -w -q -u _c_int00 --silicon_version=5e -c --dynamic \r
+\r
+# Assemble Linker flags from all other LNKFLAGS definitions\r
+_LNKFLAGS = $(LNKFLAGS_INTERNAL_COMMON) $(LNKFLAGS_INTERNAL_PROFILE) $(LNKFLAGS_GLOBAL_$(CORE)) $(LNKFLAGS_LOCAL_COMMON) $(LNKFLAGS_LOCAL_$(CORE)) \r
+\r
+# Path of the RTS library - normally doesn't change for a given tool-chain\r
+#RTSLIB_PATH = $(CODEGEN_PATH_A8)/lib/rtsv7M3_T_$(RTSLIB_ENDIAN)_$(RTSLIB_FORMAT).lib\r
+LIB_PATHS += $(RTSLIB_PATH)\r
+\r
+LNK_LIBS = $(addprefix -l,$(LIB_PATHS))\r
+ifeq ($(DEST_ROOT),)\r
+ TMPOBJDIR = .\r
+else\r
+ TMPOBJDIR = $(OBJDIR)\r
+endif\r
+# Linker - to create executable file \r
+$(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE)).$(EXEEXT) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(OBJDIR)/$(CFG_COBJ_XDC)\r
+ $(ECHO) \# Linking into $@\r
+ $(ECHO) \#\r
+ cd $(TMPOBJDIR) && $(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) -l$(LNKCMD_FILE) sample_app/linker.cmd -o $@ -m $@.map $(LNK_LIBS)\r
+ $(ECHO) \#\r
+ $(ECHO) \# $@ created.\r
+ $(ECHO) \#\r
+\r
+# XDC specific - assemble XDC-Configuro command\r
+CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \\r
+ -r whole_program -c $(CODEGEN_PATH_ARM9) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)\r
+_XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"\r
+EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)\r
+\r
+ifneq ($(DEST_ROOT),)\r
+ DEST_ROOT += /\r
+endif\r
+# Invoke configuro for the rest of the components\r
+# NOTE: 1. String handling is having issues with various make versions when the \r
+# cammand is directly tried to be given below. Hence, as a work-around, \r
+# the command is re-directed to a file (shell or batch file) and then \r
+# executed\r
+# 2. The linker.cmd file generated, includes the libraries generated by\r
+# XDC. An egrep to search for these and omit in the .cmd file is added\r
+# after configuro is done\r
+#$(CFG_CFILE_XDC) : $(XDC_CFG_FILE)\r
+xdc_configuro : $(XDC_CFG_FILE)\r
+ $(ECHO) \# Invoking configuro...\r
+ $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(CHMOD) a+x $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat\r
+ $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
+# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
+# $(EGREP_CMD) > $(LNKCMD_FILE)\r
+# $(EGREP) -iv "$(XDC_GREP_STRING)" $(XDCLNKCMD_FILE) > $(LNKCMD_FILE)\r
+ $(ECHO) \# Configuro done!\r
+\r
+$(LNKCMD_FILE) :\r
+# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)\r
+# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat\r
+# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)\r
+# $(EGREP_CMD) > $(LNKCMD_FILE)\r
+ \r
+ifndef MODULE_NAME\r
+$(OBJDIR)/$(CFG_COBJ_XDC) : $(CFG_C_XDC)\r
+ $(ECHO) \# Compiling generated $< to $@ ...\r
+ $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)\r
+ $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)\r
+endif\r
+\r
+# Include dependency make files that were generated by $(CC)\r
+-include $(SRCS:%.c=$(DEPDIR)/%.P)\r
+\r
+# Nothing beyond this point\r
diff --git a/makerules/rules_m3.mk b/makerules/rules_m3.mk
--- a/makerules/rules_m3.mk
+++ b/makerules/rules_m3.mk
ifeq ($(PROFILE_$(CORE)), debug)
CFLAGS_XDCINTERNAL = -Dxdc_target_name__=M3 -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_4_6_1 -D_DEBUG_=1
ifndef MODULE_NAME
- CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/VpsAppMain_xem3.h'
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_xem3.h'
endif
LNKFLAGS_INTERNAL_PROFILE =
endif
ifeq ($(PROFILE_$(CORE)), whole_program_debug)
CFLAGS_XDCINTERNAL = -Dxdc_target_name__=M3 -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_bld__profile_whole_program_debug -Dxdc_bld__vers_1_0_4_6_1 -ms -oe
ifndef MODULE_NAME
- CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/VpsAppMain_pem3.h'
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_pem3.h'
endif
LNKFLAGS_INTERNAL_PROFILE = --opt='--endian=$(ENDIAN) -mv7M3 --abi=$(CSWITCH_FORMAT) -qq -pdsw225 $(CFLAGS_GLOBAL_$(CORE)) -oe --symdebug:dwarf -ms -op2 -O3 -k -os --optimize_with_debug --inline_recursion_limit=20' --strict_compatibility=on
# LNKFLAGS_INTERNAL_PROFILE =
endif
+ifeq ($(PROFILE_$(CORE)), release)
+ CFLAGS_XDCINTERNAL = -Dxdc_target_name__=M3 -Dxdc_target_types__=ti/targets/arm/elf/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_4_6_1 -O2
+ ifndef MODULE_NAME
+ CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_CFG_BASE_FILE_NAME)_xem3.h'
+ endif
+ LNKFLAGS_INTERNAL_PROFILE = -o2
+endif
# Following 'if...' block is for an application; to add a #define for each
# component in the build. This is required to know - at compile time - which
@@ -115,21 +122,29 @@ RTSLIB_PATH = $(CODEGEN_PATH_M3)/lib/rtsv7M3_T_$(RTSLIB_ENDIAN)_$(RTSLIB_FORMAT)
LIB_PATHS += $(RTSLIB_PATH)
LNK_LIBS = $(addprefix -l,$(LIB_PATHS))
+ifeq ($(DEST_ROOT),)
+ TMPOBJDIR = .
+else
+ TMPOBJDIR = $(OBJDIR)
+endif
# Linker - to create executable file
$(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE)).$(EXEEXT) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(OBJDIR)/$(CFG_COBJ_XDC)
$(ECHO) \# Linking into $@
$(ECHO) \#
- cd $(OBJDIR) && $(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) $(LNKCMD_FILE) -o $@ -m $@.map $(LNK_LIBS)
+ cd $(TMPOBJDIR) && $(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) $(LNKCMD_FILE) -o $@ -m $@.map $(LNK_LIBS)
$(ECHO) \#
$(ECHO) \# $@ created.
$(ECHO) \#
# XDC specific - assemble XDC-Configuro command
CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \
- --cfgArgs $(CFGARGS_XDC) -r $(PROFILE_$(CORE)) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)
+ $(CFGARGS_XDC) -r $(PROFILE_$(CORE)) -b $(CONFIG_BLD_XDC_$(ISA)) $(XDC_CFG_FILE_NAME)
_XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"
EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)
+ifneq ($(DEST_ROOT),)
+ DEST_ROOT += /
+endif
# Invoke configuro for the rest of the components
# NOTE: 1. String handling is having issues with various make versions when the
# cammand is directly tried to be given below. Hence, as a work-around,
#$(CFG_CFILE_XDC) : $(XDC_CFG_FILE)
xdc_configuro : $(XDC_CFG_FILE)
$(ECHO) \# Invoking configuro...
- $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat
- $(CHMOD) a+x $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat
- $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat
-# $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)
+ $(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat
+ $(CHMOD) a+x $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat
+ $(DEST_ROOT)maketemp_configuro_cmd_$(CORE).bat
+ $(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)
# $(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat
# ./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)
- $(EGREP_CMD) > $(LNKCMD_FILE)
+# $(EGREP_CMD) > $(LNKCMD_FILE)
# $(EGREP) -iv "$(XDC_GREP_STRING)" $(XDCLNKCMD_FILE) > $(LNKCMD_FILE)
$(ECHO) \# Configuro done!