update the changelog
[ti-machine-learning/ti-machine-learning.git] / build / makefile
1 ################################################################################\r
2 #\r
3 # makefile\r
4 #\r
5 # Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/\r
6 #\r
7 # Redistribution and use in source and binary forms, with or without\r
8 # modification, are permitted provided that the following conditions\r
9 # are met:\r
10 #\r
11 #    Redistributions of source code must retain the above copyright\r
12 #    notice, this list of conditions and the following disclaimer.\r
13 #\r
14 #    Redistributions in binary form must reproduce the above copyright\r
15 #    notice, this list of conditions and the following disclaimer in the\r
16 #    documentation and/or other materials provided with the\r
17 #    distribution.\r
18 #\r
19 #    Neither the name of Texas Instruments Incorporated nor the names of\r
20 #    its contributors may be used to endorse or promote products derived\r
21 #    from this software without specific prior written permission.\r
22 #\r
23 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r
24 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r
25 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
26 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r
27 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
28 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
29 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
30 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
31 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
32 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
33 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
34 #\r
35 ################################################################################\r
36 \r
37 #check os\r
38 UNAME_M :=$(shell uname -m)\r
39 \r
40 BIN_DIR := ../bin\r
41 BUILD_DIR := build\r
42 SRC_DIR := ../src\r
43 \r
44 ACCLERERATOR := NONE\r
45 \r
46 # COMMON\r
47 COMMON_LIB_SRC_DIR = $(SRC_DIR)/common\r
48 COMMON_LIB_DIR = $(BIN_DIR)\r
49 COMMON_LIB_NAME = timl\r
50 COMMON_LIB_FULL_NAME = $(COMMON_LIB_DIR)/lib$(COMMON_LIB_NAME).a\r
51 COMMON_LIB_CFILES = $(shell find $(COMMON_LIB_SRC_DIR) -name "*.c")\r
52 COMMON_LIB_HFILES = $(shell find $(COMMON_LIB_SRC_DIR) -name "*.h")\r
53 COMMON_LIB_OBJS = $(patsubst %.c, %.o, $(COMMON_LIB_CFILES))\r
54 \r
55 \r
56 \r
57 ifneq (,$(findstring 86, $(UNAME_M)))\r
58 CC = arm-linux-gnueabihf-gcc\r
59 AR =  arm-linux-gnueabihf-ar\r
60 else\r
61 CC = gcc\r
62 AR=ar\r
63 endif\r
64 \r
65 \r
66 \r
67 C_INCLUDE_PATH = $(SRC_DIR)/common/api $(SRC_DIR)/common/cnn $(SRC_DIR)/common/util $(SRC_DIR)/dsp\\r
68 $(TARGET_ROOT)/usr/include\r
69 C_INCLUDE_FLAG = $(foreach d, $(C_INCLUDE_PATH), -I$d)\r
70 CFLAGS += -g -O3 -fopenmp\r
71 AR = @ar\r
72 ARFLAGS = -rcs\r
73 RM = @rm\r
74 RMFLAGS += -fr\r
75 \r
76 all: $(COMMON_LIB_FULL_NAME)\r
77 \r
78 # common lib\r
79 $(COMMON_LIB_FULL_NAME):$(COMMON_LIB_OBJS)\r
80         @echo Generate static library $(COMMON_LIB_NAME) from $^\r
81         $(AR) $(ARFLAGS) $(COMMON_LIB_FULL_NAME) $^\r
82 \r
83 # common lib objs \r
84 $(COMMON_LIB_OBJS):%.o: %.c $(COMMON_LIB_HFILES)\r
85         @echo Compile $<\r
86         $(CC) -c $(CFLAGS) -o $@ $< $(C_INCLUDE_FLAG)\r
87 \r
88 clean:\r
89         $(RM) $(RMFLAGS) \\r
90         $(COMMON_LIB_OBJS) \\r
91         $(COMMON_LIB_FULL_NAME)\r
92 \r
93 install:\r
94         cp $(CURDIR)/../src/common/api/timl.h $(DESTDIR)/usr/include/timl.h\r
95         cp $(CURDIR)/../src/common/cnn/timlCNN.h $(DESTDIR)/usr/include/timlCNN.h\r
96         cp $(CURDIR)/../src/common/util/timlUtil.h $(DESTDIR)/usr/include/timlUtil.h\r
97         cp $(CURDIR)/../bin/libtiml.a $(DESTDIR)/usr/lib/libtiml.a\r