Add imagenet example to tinn
[tidl/tidl-api.git] / tinn_api / Makefile
1 # Copyright (c) 2018 Texas Instruments Incorporated - http://www.ti.com/
2 # All rights reserved.
3
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are met:
6 # * Redistributions of source code must retain the above copyright
7 # notice, this list of conditions and the following disclaimer.
8 # * Redistributions in binary form must reproduce the above copyright
9 # notice, this list of conditions and the following disclaimer in the
10 # documentation and/or other materials provided with the distribution.
11 # * Neither the name of Texas Instruments Incorporated nor the
12 # names of its contributors may be used to endorse or promote products
13 # derived from this software without specific prior written permission.
14
15 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
25 # THE POSSIBILITY OF SUCH DAMAGE.
27 MAJOR_VER=0
28 MINOR_VER=1
29 PATCH_VER=0
31 ifeq ($(shell git rev-parse --short HEAD 2>&1 1>/dev/null; echo $$?),0)
32 BUILD_SHA?=$(shell git rev-parse --short HEAD)
33 endif
35 LIB_NAME = tinn_api.a
36 DSP_SRCFILE = dsp/ocl_wrapper.cl
37 DSP_OUTFILE = dsp/ocl_wrapper.dsp_h
38 LIB_IMGUTIL_NAME = tinn_imgutil.a
40 all: $(LIB_NAME) $(DSP_OUTFILE) $(LIB_IMGUTIL_NAME)
42 include make.inc
43 RM = rm
44 AR = ar
47 SRCS = ocl_device.cpp configuration_parser.cpp configuration.cpp\
48            executor.cpp execution_object.cpp trace.cpp util.cpp
49 SRCS_IMGUTIL = imgutil.cpp
51 OBJS = $(SRCS:.cpp=.o)
52 OBJS_IMGUTIL = $(SRCS_IMGUTIL:.cpp=.o)
54 HOST_SRC_FILES = $(addprefix src/,$(SRCS))
55 HOST_OBJ_FILES = $(addprefix obj/,$(OBJS))
56 HOST_SRC_IMGUTIL_FILES = $(addprefix src/,$(SRCS_IMGUTIL))
57 HOST_OBJ_IMGUTIL_FILES = $(addprefix obj/,$(OBJS_IMGUTIL))
59 HEADERS = src/ocl_device.h src/trace.h src/common_defines.h src/util.h
60 HEADERS += src/executor_impl.h inc/executor.h inc/configuration.h
61 HEADERS += ${DSP_OUTFILE}
63 .PHONY: $(BUILD_ID)
64 BUILD_ID := -D_BUILD_VER=$(shell echo "" | \
65                 awk '{ printf ("%02d.%02d.%02d", $(MAJOR_VER), \
66                 $(MINOR_VER), $(PATCH_VER)); }') \
67                         -D_BUILD_SHA=$(BUILD_SHA)
70 ifeq ($(BUILD), debug)
71         CXXFLAGS += -Og -g -ggdb
72 else
73         CXXFLAGS += -O3
74 endif
76 CXXFLAGS += -std=c++11 -Wall -Werror -Wno-error=ignored-attributes
77 CXXFLAGS += -I$(TI_OCL_INSTALL)/usr/share/ti/opencl
78 CXXFLAGS += -I$(TARGET_ROOTDIR)/usr/share/ti/opencl
79 CXXFLAGS += -Isrc -Iinc
80 CXXFLAGS += $(BUILD_ID)
82 $(DSP_OUTFILE): $(DSP_SRCFILE)
83         $(MAKE) -C dsp
85 obj/%.o: src/%.cpp $(HEADERS)
86         @mkdir -p obj
87         @echo Compiling $< ...
88         $(CXX) -c $(CXXFLAGS) $< -o $@
90 $(LIB_NAME): $(HOST_OBJ_FILES)
91         $(AR) cr $@ $(HOST_OBJ_FILES)
94 $(LIB_IMGUTIL_NAME): HEADERS = inc/imgutil.h
95 $(LIB_IMGUTIL_NAME): CXXFLAGS += $(shell pkg-config --cflags opencv)
97 $(LIB_IMGUTIL_NAME): $(HOST_OBJ_IMGUTIL_FILES)
98         $(AR) cr $@ $(HOST_OBJ_IMGUTIL_FILES)
100 clean::
101         $(MAKE) -C dsp clean
102         $(RM) -f $(LIB_NAME) $(HOST_OBJ_FILES)
103         $(RM) -f $(LIB_IMGUTIL_NAME) $(HOST_OBJ_IMGUTIL_FILES)
104         $(RM) -rf obj