-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMakefile
More file actions
138 lines (121 loc) · 4.88 KB
/
Makefile
File metadata and controls
138 lines (121 loc) · 4.88 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#
# This is a rough makefile used in development and debug.
#
# Todo:
# Simplify with wildcard file searching.
# Real depedency rules.
#
OBJDIR := build
LIBDIR := lib
BINDIR := bin
INCDIR := netb
SRCDIR := netb
OUT := libnetb.a
CXX := g++
CXXFLAGS := -g -Wall -std=c++11 -pthread
CPPFLAGS := -I./$(INCDIR)
AR := ar
ARFLAGS := rcs
INC := $(INCDIR)/Config.hpp \
$(INCDIR)/Uncopyable.hpp \
$(INCDIR)/Exception.hpp \
$(INCDIR)/ErrorClass.hpp \
$(INCDIR)/Error.hpp \
$(INCDIR)/ErrorCode.hpp \
$(INCDIR)/SocketError.hpp \
$(INCDIR)/SocketConfig.hpp \
$(INCDIR)/SocketAddress.hpp \
$(INCDIR)/SocketSelector.hpp \
$(INCDIR)/Socket.hpp \
$(INCDIR)/StreamBuffer.hpp \
$(INCDIR)/TcpAcceptor.hpp \
$(INCDIR)/TcpSocket.hpp \
$(INCDIR)/UdpSocket.hpp \
$(INCDIR)/SocketPipe.hpp \
$(INCDIR)/EventHandler.hpp \
$(INCDIR)/EventLoop.hpp \
$(INCDIR)/EventLoopThread.hpp \
$(INCDIR)/AsyncTcpAcceptor.hpp \
$(INCDIR)/AsyncTcpSocket.hpp \
$(INCDIR)/AsyncUdpSocket.hpp \
$(INCDIR)/StreamReader.hpp \
$(INCDIR)/StreamWriter.hpp \
$(INCDIR)/RandomReader.hpp \
$(INCDIR)/RandomWriter.hpp \
$(INCDIR)/HttpMessage.hpp \
$(INCDIR)/DnsRecord.hpp \
$(INCDIR)/DnsMessage.hpp
OBJ := $(OBJDIR)/Exception.o \
$(OBJDIR)/ErrorClass.o \
$(OBJDIR)/Error.o \
$(OBJDIR)/ErrorCode.o \
$(OBJDIR)/SocketError.o \
$(OBJDIR)/SocketConfig.o \
$(OBJDIR)/SocketAddress.o \
$(OBJDIR)/SocketSelector.o \
$(OBJDIR)/Socket.o \
$(OBJDIR)/StreamBuffer.o \
$(OBJDIR)/TcpAcceptor.o \
$(OBJDIR)/TcpSocket.o \
$(OBJDIR)/UdpSocket.o \
$(OBJDIR)/SocketPipe.o \
$(OBJDIR)/EventHandler.o \
$(OBJDIR)/EventLoop.o \
$(OBJDIR)/EventLoopThread.o \
$(OBJDIR)/AsyncTcpAcceptor.o \
$(OBJDIR)/AsyncTcpSocket.o \
$(OBJDIR)/AsyncUdpSocket.o \
$(OBJDIR)/StreamReader.o \
$(OBJDIR)/StreamWriter.o \
$(OBJDIR)/RandomReader.o \
$(OBJDIR)/RandomWriter.o \
$(OBJDIR)/HttpMessage.o \
$(OBJDIR)/DnsRecord.o \
$(OBJDIR)/DnsMessage.o
all: $(LIBDIR)/$(OUT)
$(LIBDIR)/$(OUT): $(OBJ)
$(AR) $(ARFLAGS) $@ $(OBJ)
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp $(INC)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
.PHONY: examples tcp udp echo http dns clean cleanall
examples: tcp udp echo http dns
tcp:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/tcps1 examples/tcp/TcpServer1.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/tcpc1 examples/tcp/TcpClient1.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/tcps2 examples/tcp/TcpServer2.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/tcpc2 examples/tcp/TcpClient2.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/tcps3 examples/tcp/TcpServer3.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/tcpc3 examples/tcp/TcpClient3.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/tcps4 examples/tcp/TcpServer4.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/tcpc4 examples/tcp/TcpClient4.cpp $(LIBDIR)/$(OUT)
udp:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/udps1 examples/udp/UdpServer1.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/udpc1 examples/udp/UdpClient1.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/udps2 examples/udp/UdpServer2.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/udpc2 examples/udp/UdpClient2.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/udps3 examples/udp/UdpServer3.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/udpc3 examples/udp/UdpClient3.cpp $(LIBDIR)/$(OUT)
echo:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/echos1 examples/echo/EchoServer1.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/echoc1 examples/echo/EchoClient1.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/echos2 examples/echo/EchoServer2.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/echoc2 examples/echo/EchoClient2.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/echos3 examples/echo/EchoServer3.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/echoc3 examples/echo/EchoClient3.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/echos4 examples/echo/EchoServer4.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/echoc4 examples/echo/EchoClient4.cpp $(LIBDIR)/$(OUT)
http:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/https examples/http/HttpServer.cpp $(LIBDIR)/$(OUT)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/httpc examples/http/HttpClient.cpp $(LIBDIR)/$(OUT)
dns:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(BINDIR)/dnsr examples/dns/DnsResolver.cpp $(LIBDIR)/$(OUT)
clean:
rm -f $(OBJDIR)/*.o
cleanall: clean
rm -f $(LIBDIR)/$(OUT)
rm -fr $(BINDIR)/*.dSYM
rm -f $(BINDIR)/tcp*
rm -f $(BINDIR)/udp*
rm -f $(BINDIR)/echo*
rm -f $(BINDIR)/http*
rm -f $(BINDIR)/dns*