aboutsummaryrefslogtreecommitdiff
path: root/Makefile.win
blob: b27842433d2617849d4644d91be0411ed70dbb4c (plain)
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
include Makefile.shared

CP=cp
CXX?=g++
MKDIR?=mkdir
RM?=rm -f
ECHO?=echo
LD=g++
MDOC=mdoc

shared_objs=$(SHARED_SRC:src/shared/%=build/shared/%.o)
client_objs=$(CLIENT_SRC:src/client/%=build/client/%.o)
server_objs=$(SERVER_SRC:src/server/%=build/server/%.o)
client_bins=bin/client/bin/brokengine_client.exe $(client_dlls:%=bin/client/bin/%.dll)
server_bins=bin/server/bin/brokengine_server.exe
bins=$(client_bins) $(server_bins)

CLIENT_LIB_DIRS=\
	-Llib/bulletminus/dist\
	-Llib/irrlicht/lib/Win32-gcc\
	-Llib/irrlicht/bin/Win32-gcc\
	-Llib/luajit/src\
	-Llib/nng/static

lib_objs=\
	lib/nng/static/libnng.a\
	lib/irrlicht/lib/Win32-gcc/libIrrlicht.a\
	lib/luajit/src/libluajit-5.1.dll.a\
	lib/bulletminus/dist/libbulletdynamics.a\
	lib/bulletminus/dist/libbulletcollision.a\
	lib/bulletminus/dist/liblinearmath.a

CLIENT_LIBS=\
	-lbulletdynamics\
	-lbulletcollision\
	-llinearmath\
	-lIrrlicht\
	-lopengl32\
	-lnng\
	-lluajit-5.1.dll\
	-lws2_32\
	-lmswsock\
	-ladvapi32\
	-lwinmm\
	-lm
	#-lstdc++-6

CFLAGS+= -g
ifeq ($(DEBUG), true)
else
	LDFLAGS += -mwindows
endif

all : $(bins)
	echo "Done"

clean:
	$(RM) $(client_objs)
	$(RM) $(server_objs)
	$(RM) $(shared_objs)
	$(RM) $(bins)
	$(RM) -r doc/*

nuke: clean

doc: documentation

documentation:
	$(MDOC) -p src -o doc -t "Brok[en]gine" -i README.md -d reference -m "markdown"

test:
	busted

bin/client/bin/brokengine_client.exe : $(client_objs) $(shared_objs) #$(lib_objs)
	$(Q)echo "Linking $@"
	$(Q)$(LD) $(LDFLAGS) -o $@ $^ $(CLIENT_LIB_DIRS) $(CLIENT_LIBS) # -Wl,--verbose

bin/server/bin/brokengine_server.exe : $(server_objs) $(shared_objs)
	$(Q)echo "Linking $@"
	$(Q)$(LD) $(LDFLAGS) -o $@ $^ $(CLIENT_LIB_DIRS) $(CLIENT_LIBS) # -Wl,--verbose

$(shared_objs) : build/shared/%.o : src/shared/%.cpp src/shared/%.hpp
	$(Q)echo "CXX $@"
	$(Q)$(CXX) $(CFLAGS) -c -o $@ $<

$(client_objs) : build/client/%.o : src/client/%.cpp src/client/%.hpp
	$(Q)echo "CXX $@"
	$(Q)$(CXX) $(CFLAGS) -c -o $@ $<

$(server_objs) : build/server/%.o : src/server/%.cpp src/server/%.hpp
	$(Q)echo "CXX $@"
	$(Q)$(CXX) $(CFLAGS) -c -o $@ $<