-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathMakefile
79 lines (54 loc) · 1.74 KB
/
Makefile
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
#set the final compile target
TARGET = gameserver
PREFIX_BIN =
#set the c compile
CC=gcc
ifeq ($(OUTPUT), debug)
CFLAGS= -g -O2 -Wall
else
CFLAGS= -O2 -Wall
endif
#set the cpp compile
CXX=g++
COREFLAG= -D HEADER_SIZE=9 -D TCP_BUFFER_SIZE=16384 -D BeginHandlerNums=100
ifeq ($(OUTPUT), debug)
CPPFLAGS = -g -O2 -Wall $(COREFLAG)
else
CPPFLAGS = -O2 -Wall $(COREFLAG)
endif
#print:
# echo $(OUTPUT)
# echo $(CFLAGS)
# echo $(CPPFLAGS)
LIBS = -ldl -lm -lpthread -lmysqlclient -lm `mysql_config --cflags --libs` -lrt -luuid -lmemcached #-ltolua++5.1
LINKFLAGS = -Wl,-E -g
#set the include dirs
INCLUDEDIRS = ./ /usr/local/mysql/include/ ../../lib/include/hiredis ../../lib/include/
INCLUDES = $(foreach tmp, $(INCLUDEDIRS), -I $(tmp))
#set my source dirs
MYSOURCEDIRS = ./
#LIBFILES = ./hiredis/dict.c ./hiredis/net.c ./hiredis/async.c ./hiredis/hiredis.c ./hiredis/sds.c
SOURCEDIRS = $(MYSOURCEDIRS)
C_SOURCES = $(foreach tmp, $(SOURCEDIRS), $(wildcard $(tmp)*.c))
C_OBJS = $(patsubst %.c, %.o, $(C_SOURCES))
CPP_SOURCES = $(foreach tmp, $(SOURCEDIRS), $(wildcard $(tmp)*.cpp))
CPP_OBJS = $(patsubst %.cpp, %.o, $(CPP_SOURCES))
CC_SOURCES = $(foreach tmp, $(SOURCEDIRS), $(wildcard $(tmp)*.cc))
CC_OBJS = $(patsubst %.cc, %.o, $(CC_SOURCES))
OTHERS_C_OBJS = ../../lib/libtolua++.a ../../lib/libhiredis.a ../../lib/libluajit-5.1.a
.c.o:
$(CC) -c -o $*.o $(CFLAGS) $(INCLUDES) $*.c
.cpp.o:
$(CXX) -c -o $*.o $(CPPFLAGS) $(INCLUDES) $*.cpp
.cc.o:
$(CXX) -c -o $*.o $(CPPFLAGS) $(INCLUDES) $*.cc
compile: $(CPP_OBJS) $(C_OBJS) $(CC_OBJS) $(OTHERS_C_OBJS)
$(CXX) $(LINKFLAGS) -o $(TARGET) $^ $(LIBS)
clean:
rm -f $(CPP_OBJS) $(C_OBJS)
rm -f $(TARGET)
install: $(TARGET)
cp $(TARGET) $(PREFIX_BIN)
uninstall:
rm -f $(PREFIX)/$(PREFIX_BIN)
rebuild: clean