Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
62 lines (43 loc) · 1.73 KB
/
Copy pathMakefile
File metadata and controls
62 lines (43 loc) · 1.73 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
# cpp-websocket(https://github.com/thomascrmbz/cpp-websocket) library path
WEBSOCKET_LIB=../../../thomascrmbz/cpp-websocket
# cpp-http-server(https://github.com/thomascrmbz/cpp-http-server) library path
HTTP_LIB=../../../thomascrmbz/cpp-http-server
DOCKER_CLIENT_NAME=thomascrmbz/cpp-chatapp-client
DOCKER_SERVER_NAME=thomascrmbz/cpp-chatapp-server
CLIENT_SOURCES := $(wildcard src/client/*.cpp)
CLIENT_NAMES := $(CLIENT_SOURCES:src/%.cpp=%)
SERVER_SOURCES := $(wildcard src/server/*.cpp)
SERVER_NAMES := $(SERVER_SOURCES:src/%.cpp=%)
all: mkdir dep server client
server: mkdir dep $(SERVER_NAMES)
g++ --std=c++11 $(SERVER_NAMES:%=bin/%.o) -L$(WEBSOCKET_LIB)/bin -lWebSocketServer -L$(HTTP_LIB)/bin -lHTTP -o server.out
client: mkdir dep $(CLIENT_NAMES)
g++ --std=c++11 $(CLIENT_NAMES:%=bin/%.o) -L$(WEBSOCKET_LIB)/bin -lWebSocketClient -L$(HTTP_LIB)/bin -lHTTP -o client.out
client/%:
g++ -c --std=c++11 -I$(WEBSOCKET_LIB)/src -I$(HTTP_LIB)/src src/$@.cpp$< -o bin/$@.o
server/%:
g++ -c --std=c++11 -I$(WEBSOCKET_LIB)/src -I$(HTTP_LIB)/src src/$@.cpp$< -o bin/$@.o
dep:
(cd $(WEBSOCKET_LIB); make)
(cd $(HTTP_LIB); make)
docker:
rm -rf .lib/
mkdir -p .lib .lib/cpp-http-server .lib/cpp-websocket
cp -r $(HTTP_LIB)/src .lib/cpp-http-server/src
cp $(HTTP_LIB)/Makefile .lib/cpp-http-server
cp -r $(WEBSOCKET_LIB)/src .lib/cpp-websocket/src
cp $(WEBSOCKET_LIB)/Makefile .lib/cpp-websocket
docker build --target client -t $(DOCKER_CLIENT_NAME) .
docker build --target server -t $(DOCKER_SERVER_NAME) .
rm -rf .lib/
docker_push:
docker push $(DOCKER_CLIENT_NAME)
docker push $(DOCKER_SERVER_NAME)
mkdir:
mkdir -p bin bin/server bin/client
clean:
rm -rf bin/
dev_client:
make client && ./client.out
dev_server:
make server && ./client.out