-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathMakefile
More file actions
91 lines (67 loc) · 2.16 KB
/
Makefile
File metadata and controls
91 lines (67 loc) · 2.16 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
##############################################################################
# #
# 默认为release模式编译,debug模式请使用参数'MODE=DEBUG' #
# #
##############################################################################
###在这里添加源文件目录###
SRCDIR= ./\
###这里定义目标文件目录###
OBJDIR =./.obj/
TARGET_NAME=node_server
BIN=./
INCLUDE=-I/usr/local/include/nodelib/base\
-I/usr/local/include/nodelib/network\
-I/usr/local/include/nodelib/node\
-I/usr/local/include/nodelib/v8\
-I/usr/local/include/nodelib/xml\
$(addprefix -I, $(SRCDIR))
LIBDIR=-L./
LIB=-lnodelib\
CC=g++
DEPENDS=-MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)"
ifeq ($(MODE), DEBUG)
BUILD_FLAG = -O0 -g3
else
BUILD_FLAG = -O3
endif
CONDITION=
COM_FLAG=-Wall -c -fmessage-length=0 -std=c++11
LDFLAG=
BIN_TARGET=$(OBJDIR)bin/$(TARGET_NAME)
SRCS=$(wildcard $(addsuffix *.cpp, $(SRCDIR)))
OBJECTS:=$(addprefix $(OBJDIR), $(subst ./,,$(SRCS:.cpp=.o)))
.PHONY:all mkobjdir clean dep
all:mkobjdir $(BIN_TARGET)
-include $(OBJECTS:.o=.d)
$(BIN_TARGET):$(OBJECTS)
@echo "Linking target $@"
$(CC) $(LDFLAG) -o $@ $^ $(LIBDIR) $(LIB)
@echo " "
@echo "Finished building target: $(TARGET_NAME)"
@echo " "
@-cp -f $(BIN_TARGET) $(BIN)
@-sh make_plugin.sh
$(OBJDIR)%.o:%.cpp
ifeq ($(MODE), DEBUG)
@echo "Building DEBUG MODE target $@"
else
@echo "Building RELEASE MODE target $@"
endif
$(CC) $(INCLUDE) $(BUILD_FLAG) $(COM_FLAG) $(DEPENDS) $(CONDITION) -o "$(@)" "$(<)"
@echo " "
mkobjdir:
@test -d $(OBJDIR) || (mkdir $(OBJDIR) && mkdir $(OBJDIR)bin $(addprefix $(OBJDIR), $(subst ./,,$(SRCDIR))))
dep:
@tar -zvx -f doc/nodelib.tar.gz -C doc
@mv doc/nodelib/libnodelib.so /usr/local/lib64/
@cp -rf doc/nodelib/* /usr/local/include/nodelib
@rm -rf doc/nodelib/
@echo "install nodelib file success"
@tar -zvx -f doc/v8.tar.gz -C doc
@cp -rf doc/v8/include/* /usr/local/include/include
@cp -rf doc/v8/*.so /usr/local/lib64
@cp -rf doc/v8/*.bin ./
@rm -rf doc/v8/
@ldconfig
clean:
-rm -rf $(OBJDIR)