Updated Makerules
authorSundaram Raju <sundaram@ti.com>
Wed, 2 Feb 2011 09:31:07 +0000 (15:01 +0530)
committerSundaram 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]
makerules/common.mk [changed mode: 0644->0755]
makerules/env.mk [changed mode: 0644->0755]
makerules/platform.mk [changed mode: 0644->0755]
makerules/rules_64p.mk [moved from makerules/rules_c64p.mk with 94% similarity, mode: 0755]
makerules/rules_674.mk [moved from makerules/rules_c674.mk with 95% similarity, mode: 0755]
makerules/rules_CS_a8.mk [moved from makerules/rules_a8.mk with 97% similarity, mode: 0755]
makerules/rules_TI_a8.mk [new file with mode: 0755]
makerules/rules_arm9.mk [new file with mode: 0755]
makerules/rules_m3.mk [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 573659f..eb576b3
@@ -64,13 +64,22 @@ LNKFLAGS_GLOBAL_m3vpss = -x --zero_init=off --retain=_Ipc_ResetVector
 # 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
old mode 100644 (file)
new mode 100755 (executable)
index ff68a86..33641c0
@@ -17,7 +17,7 @@ include $(ROOTDIR)/makerules/platform.mk
 
 #.DEFAULT_GOAL := all
 
-.PHONY : all clean gendirs m3video m3vpss c6xdsp a8host
+.PHONY : all clean gendirs m3video m3vpss c6xdsp a8host arm9
 
 all : $(CORE)
 
@@ -169,6 +169,7 @@ ifneq ($(XDC_CFG_FILE_$(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 := 
@@ -180,7 +181,10 @@ endif
 
 # 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
old mode 100644 (file)
new mode 100755 (executable)
index fccbab9..4374690
@@ -7,12 +7,12 @@
 # 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,
@@ -23,7 +23,7 @@ EXTERNAL_SW_ROOT = E:/EDMA/MAKEFI~1/WITHMA~1/testinghis/edma/tools
 # 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)
@@ -35,11 +35,11 @@ else
 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
@@ -50,16 +50,18 @@ include $(edma3_lld_PATH)/packages/component.mk
 # 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
@@ -84,8 +86,10 @@ endif
 #
 
 # 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
old mode 100644 (file)
new mode 100755 (executable)
index b907138..0412d74
@@ -32,6 +32,9 @@ ifeq ($(PLATFORM),ti814x-evm)
  ifeq ($(CORE),c6xdsp)
   PLATFORM_XDC = "ti.platforms.evmDM8148"
  endif
+ ifeq ($(CORE),a8host)
+  PLATFORM_XDC = "ti.platforms.evmDM8148"
+ endif
 endif
 
 # c6472 (Tomahawk) EVM
@@ -70,6 +73,12 @@ ifeq ($(PLATFORM),da830-evm)
  PLATFORM_XDC = "ti.platforms.evmDA830"
 endif
 
+# Generic platform
+ifeq ($(PLATFORM),generic)
+ SOC = generic
+ PLATFORM_XDC = 
+endif
+
 # Derive Target/ISA from CORE
 
 # m3vpss
@@ -87,29 +96,38 @@ ifeq ($(CORE),a8host)
  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 
@@ -141,7 +159,7 @@ ifeq ($(ISA),m3)
   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
@@ -162,7 +180,7 @@ ifeq ($(ISA),c674)
   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
@@ -177,7 +195,6 @@ ifeq ($(ISA),c64p)
     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
@@ -193,14 +210,40 @@ ifeq ($(ISA),c64p)
 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
-# 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
-# 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
-# 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
new file mode 100755 (executable)
index 0000000..3c46dba
--- /dev/null
@@ -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
new file mode 100755 (executable)
index 0000000..ed24be4
--- /dev/null
@@ -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
old mode 100644 (file)
new mode 100755 (executable)
index bc57713..16649b3
@@ -40,18 +40,25 @@ CFLAGS_DIROPTS = -fr=$(OBJDIR) -fs=$(OBJDIR)
 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, 
@@ -141,13 +156,13 @@ EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)
 #$(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!