initial release
[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 = $(shell uname -s)\r
39 ifeq ($(UNMAE), Linux)\r
40         LINUX := 1\r
41 else\r
42         OSX := 1\r
43 endif\r
44 \r
45 BIN_DIR := ../bin\r
46 BUILD_DIR := build\r
47 SRC_DIR := ../src\r
48 \r
49 ACCLERERATOR := NONE\r
50 \r
51 # COMMON\r
52 COMMON_LIB_SRC_DIR = $(SRC_DIR)/common\r
53 COMMON_LIB_DIR = $(BIN_DIR)\r
54 COMMON_LIB_NAME = timl\r
55 COMMON_LIB_FULL_NAME = $(COMMON_LIB_DIR)/lib$(COMMON_LIB_NAME).a\r
56 COMMON_LIB_CFILES = $(shell find $(COMMON_LIB_SRC_DIR) -name "*.c")\r
57 COMMON_LIB_HFILES = $(shell find $(COMMON_LIB_SRC_DIR) -name "*.h")\r
58 COMMON_LIB_OBJS = $(patsubst %.c, %.o, $(COMMON_LIB_CFILES))\r
59 \r
60 C_INCLUDE_PATH = $(SRC_DIR)/common/api $(SRC_DIR)/common/cnn $(SRC_DIR)/common/util \\r
61 /usr/include\r
62 C_INCLUDE_FLAG = $(foreach d, $(C_INCLUDE_PATH), -I$d)\r
63 CC = gcc\r
64 CFLAGS += -g -O3 -fopenmp\r
65 AR = @ar\r
66 ARFLAGS = -rcs\r
67 RM = @rm\r
68 RMFLAGS += -fr\r
69 \r
70 all: $(COMMON_LIB_FULL_NAME)\r
71 \r
72 # common lib\r
73 $(COMMON_LIB_FULL_NAME):$(COMMON_LIB_OBJS)\r
74         @echo Generate static library $(COMMON_LIB_NAME) from $^\r
75         $(AR) $(ARFLAGS) $(COMMON_LIB_FULL_NAME) $^\r
76 \r
77 # common lib objs \r
78 $(COMMON_LIB_OBJS):%.o: %.c $(COMMON_LIB_HFILES)\r
79         @echo Compile $<\r
80         $(CC) -c $(CFLAGS) -o $@ $< $(C_INCLUDE_FLAG)\r
81 \r
82 clean:\r
83         $(RM) $(RMFLAGS) \\r
84         $(COMMON_LIB_OBJS) \\r
85         $(COMMON_LIB_FULL_NAME)\r
86 \r
87 install:\r
88         cp ../src/common/api/timl.h $(DESTDIR)/usr/include/timl.h\r
89         cp ../src/common/cnn/timlCNN.h $(DESTDIR)/usr/include/timlCNN.h\r
90         cp ../src/common/util/timlUtil.h $(DESTDIR)/usr/include/timlUtil.h\r
91         cp ../bin/libtiml.a $(DESTDIR)/usr/lib/libtiml.a\r