aboutsummaryrefslogtreecommitdiff
path: root/Makefile.nix
blob: cc3a35fe302921434d87aab6ef86e9d99356c98a (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
MDOC=mdoc

include Makefile.shared


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
server_bins=bin/server/bin/brokengine_server
bins=$(client_bins) $(server_bins)

all: $(bins)
	echo "Done"

clean:
	$(RM) $(client_objs)
	$(RM) $(server_objs)
	$(RM) $(shared_objs)
	$(RM) $(bins)

CLIENT_LIB_DIRS=\
	-Llib/luajit/src\
	-Llib/irrlicht/lib/Linux\
	-Llib/bulletminus/src/BulletCollision\
	-Llib/bulletminus/src/BulletDynamics\
	-Llib/bulletminus/src/LinearMath\
	-Llib/nng/static

CLIENT_LIBS=\
	-lluajit\
	-lIrrlicht\
	-lGL\
	-lX11\
	-lXxf86vm\
	-lBulletDynamics\
	-lBulletCollision\
	-lLinearMath\
	-lnng\

CFLAGS += -Ilib/luajit/src -Ilib/irrlicht/include -Isrc -Ilib/bulletminus/src -Ilib/tinyobjloader-c -Ilib/nng/include

doc: documentation

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

bin/client/bin/brokengine_client : $(client_objs) $(shared_objs)
	$(CXX) $(LDFLAGS) -o $@ $^ $(CLIENT_LIB_DIRS) $(CLIENT_LIBS)

bin/server/bin/brokengine_server : $(server_objs) $(shared_objs)
	$(CXX) $(LDFLAGS) -o $@ $^ $(CLIENT_LIB_DIRS) $(CLIENT_LIBS)

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

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

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