mirror of
https://github.com/joyieldInc/predixy.git
synced 2025-12-24 22:46:41 +08:00
2.add default compile option -g 3.fix command config get BufSize output 4.ignore online status for ClusterServerPool server
114 lines
1.8 KiB
Makefile
114 lines
1.8 KiB
Makefile
CXX ?= g++
|
|
LVL ?= -g -O3
|
|
Opts += $(LVL)
|
|
|
|
ifeq ($(MT), false)
|
|
Opts += -D_PREDIXY_SINGLE_THREAD_
|
|
endif
|
|
|
|
ifeq ($(TS), true)
|
|
Opts += -D_PREDIXY_TIMER_STATS_
|
|
endif
|
|
|
|
EV ?= auto
|
|
|
|
LDLIBCPP = -static-libstdc++
|
|
|
|
ifeq ($(EV), auto)
|
|
plt = $(shell uname)
|
|
ifeq ($(plt), Linux)
|
|
EV = epoll
|
|
Opts += -D_PREDIXY_BACKTRACE_
|
|
else ifeq ($(plt), Darwin)
|
|
EV = kqueue
|
|
Opts += -D_PREDIXY_BACKTRACE_
|
|
LDLIBCPP = -static-libstdc++
|
|
else ifeq ($(plt), FreeBSD)
|
|
EV = kqueue
|
|
Opts += -D_PREDIXY_BACKTRACE_
|
|
LDFLAGS += $(shell pkg info -Dx gcc|grep 'rpath') -lexecinfo
|
|
else ifeq ($(plt), OpenBSD)
|
|
EV = kqueue
|
|
else
|
|
EV = poll
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(EV), epoll)
|
|
multiplexor = EpollMultiplexor
|
|
Opts += -D_EPOLL_
|
|
else ifeq ($(EV), poll)
|
|
multiplexor = PollMultiplexor
|
|
Opts += -D_POLL_
|
|
else ifeq ($(EV), kqueue)
|
|
multiplexor = KqueueMultiplexor
|
|
Opts += -D_KQUEUE_
|
|
else
|
|
$(error Unknown event:$(EV))
|
|
endif
|
|
|
|
CFLAGS = -std=c++11 -Wall -w $(Opts)
|
|
INCFLAGS =
|
|
LDFLAGS += $(LDLIBCPP) -rdynamic -lpthread
|
|
|
|
|
|
target = predixy
|
|
objs = \
|
|
Crc16.o \
|
|
HashFunc.o \
|
|
Timer.o \
|
|
Logger.o \
|
|
LogFileSink.o \
|
|
Alloc.o \
|
|
Socket.o \
|
|
ListenSocket.o \
|
|
AcceptSocket.o \
|
|
ConnectSocket.o \
|
|
$(multiplexor).o \
|
|
Subscribe.o \
|
|
Connection.o \
|
|
AcceptConnection.o \
|
|
ConnectConnection.o \
|
|
Buffer.o \
|
|
Command.o \
|
|
Distribution.o \
|
|
Reply.o \
|
|
ConfParser.o \
|
|
Conf.o \
|
|
Auth.o \
|
|
DC.o \
|
|
LatencyMonitor.o \
|
|
RequestParser.o \
|
|
Request.o \
|
|
ResponseParser.o \
|
|
Response.o \
|
|
Server.o \
|
|
ServerGroup.o \
|
|
ServerPool.o \
|
|
ClusterNodesParser.o \
|
|
ClusterServerPool.o \
|
|
SentinelServerPool.o \
|
|
ConnectConnectionPool.o \
|
|
Handler.o \
|
|
Proxy.o \
|
|
main.o
|
|
|
|
.PHONY : default debug clean
|
|
|
|
default: $(target)
|
|
|
|
|
|
$(target): $(objs)
|
|
$(CXX) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
|
|
|
debug:
|
|
@make LVL=-g
|
|
|
|
clean:
|
|
@rm -rf $(objs) $(target)
|
|
@echo Done.
|
|
|
|
%.o : %.cpp
|
|
$(CXX) $(CFLAGS) -c $^ $(INCFLAGS)
|
|
|