Hello,
I have a video analytic project which needs to be ported on DSP of DM8148 using Syslink setup. I did the same successfully with only C code. But, finding issues while linking linear assembly files related to the analytic project.
I have a make file which compiles the C code and assembly code and generates tiva.ae674. Here, tiva.ae674 is generated successfully.
Am finding issue while linking this with the main application of the Syslink setup. I modified rules_c674.mk to link my tiva.ae674
Am using the following
1. DVRRDK_03.50.00.05
2. cgt6x_7_3_5
And here by am attaching the two make files for reference.
# 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
#CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)674$(ENDIAN_EXT)
endif
ifeq ($(PROFILE_$(CORE)),release)
CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)674
#CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)674$(ENDIAN_EXT)
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))
XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC).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 = $(CFG_COBJ_XDC)
# 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) --embed_inline_assembly
CFLAGS_DIROPTS = -fr=$(OBJDIR) -fs=$(OBJDIR) -ft=$(OBJDIR)
ifeq ($(TREAT_WARNINGS_AS_ERROR), yes)
CFLAGS_INTERNAL += --emit_warnings_as_errors
endif
ifneq ($(findstring $(ENABLE_FXN_PROFILE), TRUE true),)
CFLAGS_INTERNAL += --entry_hook=FNPROF_entryHook --entry_parm=address --exit_hook=FNPROF_exitHook --exit_parm=address --remove_hooks_when_inlining
CFLAGS_APP_DEFINES += -DENABLE_FXN_PROFILE
endif
XDC_HFILE_NAME = $(basename $(XDC_CFG_FILE_$(CORE)))
# CFLAGS based on profile selected
ifeq ($(PROFILE_$(CORE)), debug)
#CFLAGS_INTERNAL += --symdebug:dwarf
CFLAGS_INTERNAL += --symdebug:dwarf -O3 -ms0 --opt_for_speed=5 --optimize_with_debug
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/$(XDC_HFILE_NAME)_pe674.h'
endif
LNKFLAGS_INTERNAL_PROFILE =
endif
ifeq ($(PROFILE_$(CORE)), release)
CFLAGS_XDCINTERNAL = -Dxdc_target_name__=C674 -Dxdc_bld__profile_release -DGENERIC -ms -oe -O3 -k -op0 -os --symdebug:dwarf --optimize_with_debug --inline_recursion_limit=20 --opt_for_speed=4
# ifndef MODULE_NAME
CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_HFILE_NAME)_pe674.h'
# endif
LNKFLAGS_INTERNAL_PROFILE = -o2
#LNKFLAGS_INTERNAL_PROFILE = --opt='--endian=$(ENDIAN) --abi=$(CSWITCH_FORMAT) -qq -pdsw225 $(CFLAGS_GLOBAL_$(CORE)) -oe --symdebug:dwarf -ms -op2 -O3 -k -os --optimize_with_debug --inline_recursion_limit=20 --diag_suppress=23000' --strict_compatibility=on
# 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_C674_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_C674_LOCAL),-D_LOCAL_$(PKG)_)
CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_C674_LOCAL),-D_BUILD_$(PKG)_)
ifeq ($(CORE),m3vpss)
PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))
PKG_LIST_C674_REMOTE = $(foreach COMP,$(COMP_LIST_c6xdsp),$($(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))
PKG_LIST_C674_REMOTE = $(foreach COMP,$(COMP_LIST_c6xdsp),$($(COMP)_PKG_LIST))
CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3video_
endif
ifeq ($(CORE),c6xdsp)
PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))
PKG_LIST_M3_REMOTE += $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))
CFLAGS_APP_DEFINES += -D_LOCAL_CORE_c6xdsp_
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)_)
CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_C674_REMOTE),-D_REMOTE_$(PKG)_)
CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_C674_REMOTE),-D_BUILD_$(PKG)_)
endif
CFLAGS_APP_DEFINES += -D_LOCAL_CORE_c6xdsp_
# 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 $(PLATFORM):$(CORE):$(PROFILE_$(CORE)):$(APP_NAME)$(MODULE_NAME): $<
$(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 $(PLATFORM):$(CORE):$(PROFILE_$(CORE)):$(MODULE_NAME)
$(ECHO) \# Tonbo....$(LIBDIR)/$(MODULE_NAME).$(LIBEXT)
$(ECHO) \#
$(AR) $(ARFLAGS) $@ $(OBJ_PATHS)
# Linker options and rules
# Treat all warnings as errors except this error => #10063-D: entry-point symbol other than "_c_int00" specified.
# Suppress this error alone with --diag_warning option
LNKFLAGS_INTERNAL_COMMON = --emit_warnings_as_errors --diag_warning=10063-D --display_error_number --warn_sections -q --silicon_version=6740 -c --dynamic
# 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) \
$(fc_INCLUDE)/ti/sdo/fc/ecpy/lib/debug/ecpy.ae674 \
$(dvr_rdk_PATH)/mcfw/src_bios6/alg/scd/lib/scd.ae674\
$(dvr_rdk_PATH)/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674\
$(dvr_rdk_PATH)/mcfw/src_bios6/alg/va/lib/vlib.ae674\
$(dvr_rdk_PATH)/mcfw/src_bios6/alg/va/lib/analytics.ae674\
$(rpe_PATH)/lib/lib/c674/debug/rpe.ae674\
$(aaclcdec_PATH)/packages/ti/sdo/codecs/aaclcdec/lib/aacdec_tii_lc_elf.l64P\
$(aaclcenc_PATH)/packages/ti/sdo/codecs/aaclcenc/lib/mp4aacenc_tij_lc_elf.l67
LNK_LIBS = $(addprefix -l,$(LIB_PATHS))
# Linker - to create executable file
ifeq ($(LOCAL_APP_NAME),)
EXE_NAME = $(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE))_$(DDR_SUFFIX)_$(LINUX_SUFFIX).$(EXEEXT)
ALG_LNKCMD = $(dvr_rdk_PATH)/mcfw/src_bios6/cfg/ti816x/link_algs.cmd
else
ifeq ($(PROFILE_$(CORE)),whole_program_debug)
EXE_NAME = $(BINDIR)/$(LOCAL_APP_NAME).$(EXEEXT)
ALG_LNKCMD = $(dvr_rdk_PATH)/mcfw/src_bios6/cfg/ti816x/link_algs.cmd
else
EXE_NAME = $(BINDIR)/$(LOCAL_APP_NAME)_$(PROFILE_$(CORE)).$(EXEEXT)
ALG_LNKCMD = $(dvr_rdk_PATH)/mcfw/src_bios6/cfg/ti816x/link_algs.cmd
endif
ALG_LNKCMD = $(dvr_rdk_PATH)/mcfw/src_bios6/cfg/ti816x/link_algs.cmd
endif
#$(EXE_NAME) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(ALG_LNKCMD) $(OBJDIR)/$(CFG_COBJ_XDC)
$(EXE_NAME) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(ALG_LNKCMD) $(OBJDIR)/$(CFG_COBJ_XDC)
$(ECHO) \# Linking into $(EXE_NAME) ...
$(ECHO) \# Tonbo....$(PROFILE_$(CORE))
$(CP) $(OBJDIR)/$(CFG_COBJ_XDC) $(CONFIGURO_DIR)/package/cfg
ifeq ($(PROFILE_$(CORE)),whole_program_debug)
$(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) $(LNKCMD_FILE) -o $@ -m $@.map $(LNK_LIBS) $(ALG_LNKCMD)
else
$(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) $(LNKCMD_FILE) -o $@ -m $@.map $(LNK_LIBS) $(ALG_LNKCMD)
endif
$(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 $(PROFILE_$(CORE)) -b $(CONFIG_BLD_XDC_$(ISA)) --cfgArgs $(CFGARGS_XDC) $(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
# $(ECHO) $(EGREP_CMD)
# $(ECHO) $(LNKCMD_FILE)
# $(ECHO) ***$(CFG_LNKFILENAMEPART_XDC)***
# $(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 $(CFG_COBJ_XDC)
$(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
# ---------------------------------------------------------------------------- # @file Makefile # # @path # # @desc Makefile for VideoStab DSP (Debug and Release versions) # # @ver 1.10 # ---------------------------------------------------------------------------- # Copyright (c) Texas Instruments Incorporated 2002-2009 # # Use of this software is controlled by the terms and conditions found in the # license agreement under which this software has been supplied or provided. # ---------------------------------------------------------------------------- SHELL = /bin/sh CSWITCH_FORMAT = --abi=elfabi dvr_rdk_PATH=/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk # ---------------------------------------------------------------------------- # Base for TI toolchain # This may change depending if you are using other versions of the compiler # ---------------------------------------------------------------------------- TI_SW_ROOT=/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools CODEGEN_PATH_DSP=$(TI_SW_ROOT)/cgt_dsp/cgt6x_7_3_5 RTSLIB_PATH = $(TI_SW_ROOT)/cgt_dsp/cgt6x_7_3_5/lib BIOS=$(TI_SW_ROOT)/bios/bios_6_33_05_46 HDVPSS=$(TI_SW_ROOT)/hdvpss/dvr_rdk_hdvpss EDMA=$(TI_SW_ROOT)/edma3lld/edma3_lld_02_11_06_01 IPC=$(TI_SW_ROOT)/ipc/ipc_1_24_03_32 XDIAS=$(TI_SW_ROOT)/xdais/xdais_7_22_00_03 DSKT=$(TI_SW_ROOT)/framework_components/framework_components_3_22_02_08_patched # -I$(BIOS)/packages \ # -I$(HDVPSS)/packages \ # -I$(EDMA)/packages \ # -I$(IPC)/packages \ # -I$(XDIAS)/packages \ # -I$(DSKT)/packages \ # -I$(TI_SW_ROOT)/xdc/xdctools_3_23_03_53/packages \ INCLUDE = -I$(CODEGEN_PATH_DSP)/include \ -I$(dvr_rdk_PATH)/mcfw/src_bios6/utils \ -I$(dvr_rdk_PATH)/mcfw/src_bios6/links_c6xdsp/system \ -I$(dvr_rdk_PATH)/mcfw/interfaces/link_api \ -I$(dvr_rdk_PATH)/mcfw/src_bios6/alg/va \ -I$(dvr_rdk_PATH) ALGO_SRC_PATH := ./ ALGO_ASM_PATH := 64x+_asm # ---------------------------------------------------------------------------- # Name of the TI compiler and DSP/BIOS builder (Tconf) # This usually does not change # ---------------------------------------------------------------------------- CC := $(CODEGEN_PATH_DSP)/bin/cl6x AR := $(CODEGEN_PATH_DSP)/bin/ar6x LNK := $(CODEGEN_PATH_DSP)/bin/lnk6x # ---------------------------------------------------------------------------- # Project name. # This variable can be used to set all source/BIOS/object filenames # For clarity, in this example it sets only the .OUT .CMD and .MAP filenames # ---------------------------------------------------------------------------- PROJNAME := tiva # ---------------------------------------------------------------------------- # Global variables for building VideoStab DSP # Note that common debug, compiler and linker flags are already # set in the lower part of this Makefile # CSRCS are for C-source files, ASRCS for asm and BIOSTCF is the BIOS TCF file # ---------------------------------------------------------------------------- ALG_SRC_FILES := stablib.c libutil.c pyramid_api.c pyramid_hor.c pyramid_hor_c.c pyramid_ver.c pyramid_ver_c.c compute_motion.c warping.c kalman.c matrix.c svd.c profile.c #replicate_row_col.sa warp_cbcr_semiplanar.sa warp_cbcr_semiplanar_fill.sa ALG_SASRC_FILES := decimate_hor4.sa decimate_ver4.sa filter_hor_asm.sa filter_ver_asm.sa generate_iy_asm.sa warp_border.sa warp_border_fill.sa ALG_ASMSRC_FILES := sub2d8_asm.asm sub2d8u_asm.asm generate_ix_asm.asm ALG_CSRCS := $(ALG_SRC_FILES:%.c=$(ALGO_SRC_PATH)/%.c) ALG_SASRC := $(ALG_SASRC_FILES:%.sa=$(ALGO_ASM_PATH)/%.sa) ALG_ASMSRC := $(ALG_ASMSRC_FILES:%.asm=$(ALGO_ASM_PATH)/%.asm) ASRCS := BIOSTCF := OBJS := LIBS := -l$(RTSLIB_PATH)/rts6740_elf.lib CMDS := $(PROJNAME).cmd MAPFILE := $(PROJNAME).map BIN := $(PROJNAME).ae674 # ---------------------------------------------------------------------------- # All common compiler and linker flags # ---------------------------------------------------------------------------- #-ml3 -pdr -pdv -pden ALL_CFLAGS := -q -mv6740 -pdsw225 $(CSWITCH_FORMAT) $(CFLAGS) ALL_LDFLAGS := -z -c -qq -mo -q -x --diag_warning=10063-D $(LDFLAGS) # ---------------------------------------------------------------------------- # Compiler and Linker options for Release # ---------------------------------------------------------------------------- #-k -mw -on2 #--trampolines # -os3 CFLAGS_R := -o3 -pm -op0 -mt -mh -mo -oi $(ALL_CFLAGS) OBJDIR_R := obj BINDIR_R := lib #OBJS_R := $(CSRCS:%.c=$(OBJDIR_R)/%.obj) $(ASRCS:%.s62=$(OBJDIR_R)/%.obj) ALG_OBJS_R := $(ALG_CSRCS:%.c=$(OBJDIR_R)/%.obj) $(ALG_SASRC:%.sa=$(OBJDIR_R)/%.obj) $(ALG_ASMSRC:%.asm=$(OBJDIR_R)/%.obj) ALG_OBJS_NAMES_R := $(ALG_SRC_FILES:%.c=$(OBJDIR_R)/%.obj) $(ALG_SASRC_FILES:%.sa=$(OBJDIR_R)/%.obj) $(ALG_ASMSRC_FILES:%.asm=$(OBJDIR_R)/%.obj) LIBS_R := $(LIBS) MAPFILE_R := $(OBJDIR_R)/$(MAPFILE) DEFS_R := # ---------------------------------------------------------------------------- # Compiler common symbol definitions # ---------------------------------------------------------------------------- # -d"COMPLETE_C" \ DEFS := -d"CORR" \ -DTI_814X_BUILD # ---------------------------------------------------------------------------- # Building Release... # ---------------------------------------------------------------------------- $(BINDIR_R)/$(BIN) : $(ALG_OBJS_NAMES_R) @echo Compiling Release... $(AR) rq $@ $(ALG_OBJS_NAMES_R) #@$(CC) $(ALL_LDFLAGS) $(LDINCLUDES_R) -o$@ $(ALG_OBJS_NAMES_R) -m$(MAPFILE_R) $(LIBS_R) $(OBJDIR_R)/%.obj : %.c @echo \ #Compiling .c @$(CC) $(DEFS) $(CFLAGS_R) $(INCLUDE) -fr$(OBJDIR_R) $< $(OBJDIR_R)/%.obj : %.asm @echo \ #Compiling .asm... @$(CC) $(DEFS) $(ALL_CFLAGS) -fr$(OBJDIR_R) $< $(OBJDIR_R)/%.obj : %.sa @echo \ #Compiling .sa... @$(CC) $(DEFS) $(CFLAGS_R) -fr$(OBJDIR_R) $< clean: @rm -f $(BINDIR_R)/* @rm -f $(OBJDIR_R)/* @rm -f *~
Looking for valuable inputs.