# # Copyright (c) {2015 - 2017} Texas Instruments Incorporated # # All rights reserved not granted herein. # # Limited License. # # Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive # license under copyrights and patents it now or hereafter owns or controls to make, # have made, use, import, offer to sell and sell ("Utilize") this software subject to the # terms herein. With respect to the foregoing patent license, such license is granted # solely to the extent that any such patent is necessary to Utilize the software alone. # The patent license shall not apply to any combinations which include this software, # other than combinations with devices manufactured by or for TI ("TI Devices"). # No hardware patent is licensed hereunder. # # Redistributions must preserve existing copyright notices and reproduce this license # (including the above copyright notice and the disclaimer and (if applicable) source # code license limitations below) in the documentation and/or other materials provided # with the distribution # # Redistribution and use in binary form, without modification, are permitted provided # that the following conditions are met: # # * No reverse engineering, decompilation, or disassembly of this software is # permitted with respect to any software provided in binary form. # # * any redistribution and use are licensed by TI for use only with TI Devices. # # * Nothing shall obligate TI to provide you with source code for the software # licensed and provided to you in object code. # # If software source code is provided to you, modification and redistribution of the # source code are permitted provided that the following conditions are met: # # * any redistribution and use of the source code, including any resulting derivative # works, are licensed by TI for use only with TI Devices. # # * any redistribution and use of any object code compiled from the source code # and any resulting derivative works, are licensed by TI for use only with TI Devices. # # Neither the name of Texas Instruments Incorporated nor the names of its suppliers # # may be used to endorse or promote products derived from this software without # specific prior written permission. # # DISCLAIMER. # # THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE. # # ############################################################## ALGBASE_PATH ?= $(abspath ../../) include $(ALGBASE_PATH)/makerules/config.mk DSP_COMMON_DIR= ../../common DSP_MODULES = ".." ifdef SystemRoot OPENCV_INSTALL_DIR = $(TIDL_OPENCV_PATH) else #OPENCV_INSTALL_DIR = /data/datalocal1_videoapps01/user/kumar/tidl/lsf/opencv-3.1.0 OPENCV_INSTALL_DIR = $(TIDL_OPENCV_PATH) endif LIB_DIR=algo #MMALIB_BINS_PATH = $(MMALIB_PATH)/vxlib/out/C71/release ifneq ($(TARGET_PLATFORM), PC) MMALIB_BINS_PATH = $(MMALIB_PATH)/out/C71/$(TARGET_BUILD) else ifdef SystemRoot MMALIB_BINS_PATH = $(MMALIB_PATH)/out/x86_64/$(TARGET_BUILD) else MMALIB_BINS_PATH = $(MMALIB_PATH)/out/x86_64/$(TARGET_BUILD) endif endif UDMA_LIB_DIR := j721e ifeq ($(FINAL_RELEASE_BUILD), 1) MMALIB_BINS_PATH := $(MMALIB_PATH)/lib/$(TARGET_BUILD) UDMA_LIB_DIR := j721e endif ############################################################## ############################################################## SUBDIRS= ./inc SUBDIRS+= ./src CFILES= $(foreach dir,$(SUBDIRS),$(wildcard $(dir)/*.c)) CFILES += $(DSP_COMMON_DIR)/configparser.c CFILES += $(DSP_COMMON_DIR)/ti_draw_utils.c CFILES += $(foreach dir,$(SUBDIRS),$(wildcard $(DSP_COMMON_DIR)/ti_file_io.c)) CFILES += $(DSP_COMMON_DIR)/ti_mem_manager.c ifneq ($(TARGET_PLATFORM), PC) #CFILES += $(DSP_COMMON_DIR)/c7x_mmu/csl_c7x_interrupt_handler.asm CFILES += $(DSP_COMMON_DIR)/c7x_mmu/csl_c7xecr.asm CFILES += $(DSP_COMMON_DIR)/c7x_mmu/enable_cache_mmu.c CFILES += $(DSP_COMMON_DIR)/c7x_mmu/c7x_simple_msmc_pte.c CFILES += $(DSP_COMMON_DIR)/c7x_mmu/csl_dspcachec7.c CFILES += $(DSP_COMMON_DIR)/c7x_mmu/csl_c7xl2cc.asm CFILES += $(DSP_COMMON_DIR)/tidl_log.c CFILES += $(DSP_COMMON_DIR)/app_log_writer.c endif ifeq ($(BUILD_WITH_STATIC_ARRAYS), 1) CFILES += tidl_tb_net.c CFILES += tidl_tb_input_tensor.c CFILES += tidl_tb_output_tensor.c endif ifeq ($(COMPARE_SINGLE_LAYER), 1) CFILES += tidl_tb_compare_layer_tensor.c endif ifeq ($(TARGET_PLATFORM), PC) CFILES:= $(filter-out %eve_sctm.c, $(CFILES)) endif HFILES = $(foreach dir,$(SUBDIRS),$(wildcard $(dir)/*.h)) ifeq ($(TIDL_BUILD_FOR_LOKI) ,1) OUTFILE=$(TARGET_PLATFORM)_$(CORE)_test_dl_algo_loki.out else OUTFILE=$(TARGET_PLATFORM)_$(CORE)_test_dl_algo.out endif ############################################################## ############################################################## include $(ALGBASE_PATH)/makerules/rules.mk #used inside makerules, but okay to define it afterwards CFLAGS+= -I inc CFLAGS+= -I . CFLAGS+= -I ../inc CFLAGS+= -I ../custom CFLAGS+= -I ../utils/perfsim CFLAGS+= -I $(IVISION_PATH) CFLAGS+= -I $(IVISION_PATH)/ti/xdais CFLAGS+= -I $(DSP_COMMON_DIR) CFLAGS+= -I $(DSP_COMMON_DIR)/c7x_mmu CFLAGS+= -I $(DSP_COMMON_DIR)/baseaddress/$(TARGET_SOC)/$(CORE) CFLAGS+= -I $(EDMA3_LLD_ROOT)/packages/ti/sdo/edma3/rm CFLAGS+= -I $(EDMA3_LLD_ROOT)/packages CFLAGS+= -I $(DSP_MODULES)/algo/inc CFLAGS+= -I $(MATHLIB_INSTALL_DIR)/packages CFLAGS+= -I $(MATHLIB_INSTALL_DIR)/packages/ti/mathlib CFLAGS+= -I $(OPENCV_INSTALL_DIR)/build CFLAGS+= -I $(OPENCV_INSTALL_DIR)/modules/core/include CFLAGS+= -I $(OPENCV_INSTALL_DIR)/modules/highgui/include CFLAGS+= -I $(OPENCV_INSTALL_DIR)/modules/imgcodecs/include CFLAGS+= -I $(OPENCV_INSTALL_DIR)/modules/videoio/include CFLAGS+= -I $(OPENCV_INSTALL_DIR)/modules/imgproc/include CFLAGS+= -I $(PDK_INSTALL_PATH) ifeq ($(TARGET_PLATFORM) , PC) CFLAGS+= -I $(DSP_TOOLS)/host_emulation/include endif ifeq ($(BUILD_WITH_CUDNN), 1) CFLAGS+= -I "$(CUDA_PATH)/include" endif ifeq ($(TIDL_BUILD_WITH_AVX) ,1) ifdef SystemRoot CFLAGS += /arch:AVX2 else CFLAGS += -mavx -mavx2 endif endif CFLAGS += -DSOC_J721E ifeq ($(BUILD_WITH_STATIC_ARRAYS), 1) CFLAGS += -DBUILD_WITH_STATIC_ARRAYS endif ifeq ($(COMPARE_SINGLE_LAYER), 1) CFLAGS += -DBCOMPARE_SINGLE_LAYER endif ifeq ($(USE_HOST_FILE_IO), 1) CFLAGS += -DUSE_HOST_FILE_IO endif ifeq ($(USE_HOST_PRINTF), 1) CFLAGS += -DUSE_HOST_PRINTF endif ############################################################## ############## SETUP DMA AND PDK LIBRARIES ################################################ ifeq ($(TIDL_BUILD_WITH_DMA) ,1) ifeq ($(TARGET_PLATFORM) , PC) # HOST BUILD LIBRARIES ifdef SystemRoot # MSVC LIBRARIES # DMAUTILS_LIB := $(PDK_INSTALL_PATH)/ti/drv/udma/lib/j721e_hostemu/c7x-hostemu/$(TARGET_BUILD)/dmautils.lib UDMA_LIB := $(PDK_INSTALL_PATH)/ti/drv/udma/lib/j721e_hostemu/c7x-hostemu/$(TARGET_BUILD)/udma.lib CSL_LIB := $(PDK_INSTALL_PATH)/ti/csl/lib/j721e/c7x-hostemu/$(TARGET_BUILD)/ti.csl.lib SCICLIENT_LIB := $(PDK_INSTALL_PATH)/ti/drv/sciclient/lib/j721e_hostemu/c7x-hostemu/$(TARGET_BUILD)/sciclient.lib OSAL_LIB := $(PDK_INSTALL_PATH)/ti/osal/lib/nonos/j721e/c7x-hostemu/$(TARGET_BUILD)/ti.osal.lib else # g++ LIBRARIES DMAUTILS_LIB := $(PDK_INSTALL_PATH)/ti/drv/udma/lib/j721e_hostemu/c7x-hostemu/$(TARGET_BUILD)/dmautils.lib UDMA_LIB := $(PDK_INSTALL_PATH)/ti/drv/udma/lib/j721e_hostemu/c7x-hostemu/$(TARGET_BUILD)/udma.lib CSL_LIB := $(PDK_INSTALL_PATH)/ti/csl/lib/j721e/c7x-hostemu/$(TARGET_BUILD)/ti.csl.lib SCICLIENT_LIB := $(PDK_INSTALL_PATH)/ti/drv/sciclient/lib/j721e_hostemu/c7x-hostemu/$(TARGET_BUILD)/sciclient.lib OSAL_LIB := $(PDK_INSTALL_PATH)/ti/osal/lib/nonos/j721e/c7x-hostemu/$(TARGET_BUILD)/ti.osal.lib endif else # TARGET BUILD LIBRARIES CSL_LIB := $(PDK_INSTALL_PATH)/ti/csl/lib/j721e/c7x/$(TARGET_BUILD)/ti.csl.ae71 SCICLIENT_LIB := $(PDK_INSTALL_PATH)/ti/drv/sciclient/lib/j721e/c7x_1/$(TARGET_BUILD)/sciclient.ae71 OSAL_LIB := $(PDK_INSTALL_PATH)/ti/osal/lib/nonos/j721e/c7x/$(TARGET_BUILD)/ti.osal.ae71 ifeq ($(TIDL_BUILD_FOR_LOKI) ,1) DMAUTILS_LIB := $(PDK_INSTALL_PATH)/ti/drv/udma/lib/j721e_loki/c7x_1/$(TARGET_BUILD)/dmautils.ae71 UDMA_LIB := $(PDK_INSTALL_PATH)/ti/drv/udma/lib/j721e_loki/c7x_1/$(TARGET_BUILD)/udma.ae71 else DMAUTILS_LIB := $(PDK_INSTALL_PATH)/ti/drv/udma/lib/$(UDMA_LIB_DIR)/c7x_1/$(TARGET_BUILD)/dmautils.ae71 UDMA_LIB := $(PDK_INSTALL_PATH)/ti/drv/udma/lib/$(UDMA_LIB_DIR)/c7x_1/$(TARGET_BUILD)/udma.ae71 endif endif endif ############################################################## ifeq ($(TIDL_TEST_CUSTOM_LAYER) ,1) CFLAGS+= -DTIDL_TEST_CUSTOM_LAYER endif ifneq ($(TARGET_PLATFORM) , PC) ifeq ($(TIDL_BUILD_FOR_LOKI) ,1) CFLAGS+= -DLOKI_BUILD endif ifeq ($(CORE) , eve) LDFLAGS+= -l $(ARP32_TOOLS)/lib/rtsarp32_v200.lib LDFLAGS+= -l "./linker_$(CORE)_$(TARGET_BUILD).cmd" else ifeq ($(CORE) , dsp) LDFLAGS+= -cr -x LDFLAGS+= -l $(DSP_TOOLS)/lib/rts7100_le.lib LDFLAGS+= -l "./linker_$(CORE).cmd" endif else ifeq ($(BUILD_WITH_CUDNN),0) ifdef SystemRoot ifeq ($(TARGET_BUILD), debug) LDFLAGS+= /NODEFAULTLIB:msvcrtd.lib else LDFLAGS+= /NODEFAULTLIB:msvcrt.lib endif endif endif endif ifeq ($(TARGET_PLATFORM) , PC) #HOST BUILD SETUP ifdef SystemRoot #MSMC options LDFLAGS+= "$(DSP_MODULES)/lib/PC/$(CORE)/$(LIB_DIR)/$(TARGET_BUILD)/tidl_algo.lib" ifeq ($(TIDL_TEST_CUSTOM_LAYER) ,1) LDFLAGS+= "$(DSP_MODULES)/lib/PC/$(CORE)/$(LIB_DIR)/$(TARGET_BUILD)/tidl_custom.lib" endif LDFLAGS+= "$(MMALIB_BINS_PATH)/mmalib_cn_x86_64.lib" LDFLAGS+= "$(MMALIB_BINS_PATH)/mmalib_x86_64.lib" LDFLAGS+= "$(MMALIB_BINS_PATH)/common_x86_64.lib" else # g++ options LDFLAGS+= -L "$(DSP_MODULES)/lib/PC/$(CORE)/$(LIB_DIR)/$(TARGET_BUILD)/" LDFLAGS+= -L "$(UDMA_LIB)" LDFLAGS+= -L "$(SCICLIENT_LIB)" LDFLAGS+= -L "$(CSL_LIB)" LDFLAGS+= -L "$(OSAL_LIB)" LDFLAGS+= -L "$(MMALIB_BINS_PATH)" LDFLAGS+= -L $(DSP_TOOLS)/host_emulation LDFLAGS+= -ltidl_algo ifeq ($(TIDL_TEST_CUSTOM_LAYER) ,1) LDFLAGS+= -ltidl_custom endif #LDFLAGS+= -ldmautils LDFLAGS+= -L "$(DMAUTILS_LIB)" LDFLAGS+= -L "$(UDMA_LIB)" LDFLAGS+= -L "$(SCICLIENT_LIB)" LDFLAGS+= -L "$(CSL_LIB)" LDFLAGS+= -L "$(OSAL_LIB)" LDFLAGS+= -lmmalib_cn_x86_64 LDFLAGS+= -lmmalib_x86_64 LDFLAGS+= -lcommon_x86_64 LDFLAGS+= -lc70-host-emulation endif ifdef SystemRoot ifeq ($(BUILD_WITH_CUDNN), 0) LDFLAGS+= -l $(DSP_TOOLS)/host_emulation/c70-host-emulation.lib endif endif ifeq ($(BUILD_WITH_OPENCV), 1) ifdef SystemRoot CFLAGS+= /DBUILD_WITH_OPENCV LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\lib\Release\opencv_core310.lib" LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\lib\Release\opencv_highgui310.lib" LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\lib\Release\opencv_imgcodecs310.lib" LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\lib\Release\opencv_imgproc310.lib" LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\3rdparty\lib\Release\zlib.lib" LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\3rdparty\lib\Release\libjasper.lib" LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\3rdparty\lib\Release\libjpeg.lib" LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\3rdparty\lib\Release\libpng.lib" LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\3rdparty\lib\Release\libtiff.lib" LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\3rdparty\lib\Release\libwebp.lib" LDFLAGS+= -l "$(OPENCV_INSTALL_DIR)\..\build\3rdparty\lib\Release\IlmImf.lib" ifeq ($(BUILD_WITH_CUDNN),0) LDFLAGS+= /NODEFAULTLIB:msvcrt.lib LDFLAGS+= -l "User32.lib" endif else CFLAGS+= -DBUILD_WITH_OPENCV LDFLAGS+= -L "$(OPENCV_INSTALL_DIR)/cmake/lib" LDFLAGS+= -L "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/opencv-3.1.0)/cmake/3rdparty/lib" LDFLAGS+= -lopencv_imgproc -lopencv_imgcodecs -lopencv_core -lopencv_calib3d -lopencv_stitching LDFLAGS+=-lIlmImf -lzlib -ldl -lpthread -llibjasper -llibjpeg -llibpng -llibtiff -llibwebp -lrt ifeq ($(BUILD_WITH_CUDNN), 1) LDFLAGS+= -lcudart -lcublas -lcudnn -lstdc++ -lm endif endif endif else #TARGET BUILD SETUP LDFLAGS+= -l "$(DSP_MODULES)/lib/$(CORE)/$(LIB_DIR)/$(TARGET_BUILD)/tidl_algo.lib" ifeq ($(TIDL_TEST_CUSTOM_LAYER) ,1) LDFLAGS+= -l "$(DSP_MODULES)/lib/$(CORE)/$(LIB_DIR)/$(TARGET_BUILD)/tidl_custom.lib" endif LDFLAGS+= "$(MMALIB_BINS_PATH)/mmalib_cn_C71.lib" LDFLAGS+= "$(MMALIB_BINS_PATH)/mmalib_C71.lib" LDFLAGS+= "$(MMALIB_BINS_PATH)/common_C71.lib" endif ifdef SystemRoot LDFLAGS += $(DMAUTILS_LIB) LDFLAGS += $(SCICLIENT_LIB) LDFLAGS += $(UDMA_LIB) LDFLAGS += $(CSL_LIB) LDFLAGS += $(OSAL_LIB) else ifneq ($(TARGET_PLATFORM) , PC) LDFLAGS += $(DMAUTILS_LIB) LDFLAGS += $(SCICLIENT_LIB) LDFLAGS += $(UDMA_LIB) LDFLAGS += $(CSL_LIB) LDFLAGS += $(OSAL_LIB) endif endif ############################################################## ############################################################## OUTDIR = "./out" $(OUTFILE) : outfile ##############################################################