forked from kaimallea/demoinfogo-linux
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
70 lines (51 loc) · 2.57 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
CC=g++
CC_OSX=clang
PROTOBUF_DIR=protobuf-2.5.0
PROTOBUF_SRC=$(PROTOBUF_DIR)/src
PROTOBUF_LIB=$(PROTOBUF_DIR)/src/.libs/libprotobuf.a
INC=-I$(PROTOBUF_SRC)
CFLAGS=-m32 -O3 -Wall -fpermissive --std=c++0x
LDFLAGS=-m32 -pthread
OS=$(shell uname -s)
ifneq "$(OS)" "Darwin"
LDFLAGS += -static
else
CC=$(CC_OSX)
LDFLAGS += -lc++
endif
default: demoinfogo
demoinfogo: src/demofile.o src/demofiledump.o src/demoinfogo.o src/demofilebitbuf.o src/demofilepropdecode.o src/generated_proto/steammessages.pb.cc src/generated_proto/cstrike15_gcmessages.pb.cc src/generated_proto/netmessages_public.pb.cc src/generated_proto/cstrike15_usermessages_public.pb.cc
$(CC) $(INC) $^ $(PROTOBUF_LIB) $(LDFLAGS) -o $@
src/demofile.o: src/demofile.cpp
$(CC) $(CFLAGS) $(INC) -c $< -o $@
src/demofiledump.o: src/demofiledump.cpp src/generated_proto/steammessages.pb.cc src/generated_proto/cstrike15_gcmessages.pb.cc src/generated_proto/netmessages_public.pb.cc src/generated_proto/cstrike15_usermessages_public.pb.cc
$(CC) $(CFLAGS) $(INC) -c $< -o $@
src/demoinfogo.o: src/demoinfogo.cpp
$(CC) $(CFLAGS) $(INC) -c $< -o $@
src/demofilebitbuf.o: src/demofilebitbuf.cpp
$(CC) $(CFLAGS) $(INC) -c $< -o $@
src/demofilepropdecode.o: src/demofilepropdecode.cpp
$(CC) $(CFLAGS) $(INC) -c $< -o $@
src/generated_proto/steammessages.pb.cc: src/steammessages.proto
mkdir -p src/generated_proto
$(PROTOBUF_SRC)/protoc --proto_path=./src --proto_path=$(PROTOBUF_SRC) --cpp_out=./src/generated_proto $<
src/generated_proto/cstrike15_gcmessages.pb.cc: src/cstrike15_gcmessages.proto
mkdir -p src/generated_proto
$(PROTOBUF_SRC)/protoc --proto_path=./src --proto_path=$(PROTOBUF_SRC) --cpp_out=./src/generated_proto $<
src/generated_proto/netmessages_public.pb.cc: src/netmessages_public.proto
mkdir -p src/generated_proto
$(PROTOBUF_SRC)/protoc --proto_path=./src --proto_path=$(PROTOBUF_SRC) --cpp_out=./src/generated_proto $<
src/generated_proto/cstrike15_usermessages_public.pb.cc: src/cstrike15_usermessages_public.proto
mkdir -p src/generated_proto
$(PROTOBUF_SRC)/protoc --proto_path=./src --proto_path=$(PROTOBUF_SRC) --cpp_out=./src/generated_proto $<
.PHONY: clean get_protobuf protobuf image container
clean:
rm -rf src/*.o src/generated_proto/*.pb.* demoinfogo
get_protobuf:
curl -L https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz | tar xvz
protobuf:
cd protobuf-2.5.0 ; ./configure CFLAGS="-O3 -m32 -DNDEBUG" CXXFLAGS="-m32 -DNDEBUG" LDFLAGS=-m32 ; make
image:
docker build -t demoinfogo:latest .
container:
docker run -it --rm --name demoinfogo -v $(PWD):/demoinfogo demoinfogo:latest