-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
93 lines (71 loc) · 2.34 KB
/
Copy pathMakefile
File metadata and controls
93 lines (71 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
.SILENT:
COMPILER=g++
INCLUDE_DIR:= $(CURDIR)/include
SRC_DIR := $(CURDIR)/src
BUILD_DIR := $(CURDIR)/build
LIB_DIR := $(CURDIR)/lib
OBJ_DIR := $(CURDIR)/obj
CFLAGS := -std=c++11 -g
# LIB_DATA := libdata.o
# LIB_KNN := libknn.o
all: executable
executable: build
$(BUILD_DIR)/exec
build: builddir objdir obj/data.o obj/data_handler.o obj/knn.o obj/main.o
@if [ -f "exec" ]; then \
printf "Removing \"exec\" directory.\n"; \
rm -r exec; \
else \
$(COMPILER) $(CFLAGS) obj/*.o -o $(BUILD_DIR)/exec; \
fi
builddir:
printf "Creating \"$(BUILD_DIR)\"\n"
mkdir -p $(BUILD_DIR)
# libdata: libdir objdir obj/data.o obj/data_handler.o
# printf "Building libdata.so of data_handler module ...\n"
# $(COMPILER) $(CFLAGS) -o $(LIB_DIR)/$(LIB_DATA) obj/*.o
# rm -r $(CURDIR)/obj
# printf "Builded $(LIB_DATA) successfully.\n"
# libknn: libdir objdir obj/data.o obj/data_handler.o obj/knn.o
# printf "Building libknn.so of knn module ...\n"
# $(COMPILER) $(CFLAGS) -o $(LIB_DIR)/$(LIB_KNN) obj/*.o
# rm -r $(CURDIR)/obj
# printf "Builded $(LIB_KNN) successfully.\n"
# libdir:
# printf "Creating \"$(LIB_DIR)\"\n"
# mkdir -p $(LIB_DIR)
objdir:
printf "Creating \"$(OBJ_DIR)\"\n"
mkdir -p $(OBJ_DIR)
obj/data_handler.o:
printf "Compiling data_handler.c into \"$(OBJ_DIR)/data_handler.o\" ...\n"
$(COMPILER) $(CFLAGS) -o obj/data_handler.o -I$(INCLUDE_DIR) -c $(SRC_DIR)/data_handler.cc
obj/data.o:
printf "Compiling data.c into \"$(OBJ_DIR)/data.o\" ...\n"
$(COMPILER) $(CFLAGS) -o obj/data.o -I$(INCLUDE_DIR) -c $(SRC_DIR)/data.cc
obj/knn.o:
printf "Compiling knn.c into \"$(OBJ_DIR)/knn.o\" ...\n"
$(COMPILER) $(CFLAGS) -o obj/knn.o -I$(INCLUDE_DIR) -c $(SRC_DIR)/knn.cc
obj/main.o:
printf "Compiling main.c into \"$(OBJ_DIR)/main.o\" ...\n"
$(COMPILER) $(CFLAGS) -o obj/main.o -I$(INCLUDE_DIR) -c $(SRC_DIR)/main.cc
clean:
# printf "Checking existed ...\n"
# @if [ -d "$(LIB_DIR)" ]; then \
# printf "Removing \"$(LIB_DIR)\" directory.\n"; \
# rm -r $(LIB_DIR); \
# fi
printf "Checking existed ...\n"
@if [ -d "$(BUILD_DIR)" ]; then \
printf "Removing \"$(BUILD_DIR)\" directory.\n"; \
rm -r $(BUILD_DIR); \
fi
@if [ -d "$(OBJ_DIR)" ]; then \
printf "Removing \"$(OBJ_DIR)\" directory.\n"; \
rm -r $(OBJ_DIR); \
fi
@if [ -f "exec" ]; then \
printf "Removing \"exec\" directory.\n"; \
rm -r exec; \
fi
printf "Totally remove!\n"