-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
43 lines (31 loc) · 1.61 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
SOURCE_COMMON = lib_logger.o k_memory.o lib_containers.o lib_shdmgr.o lib_resmgr.o k_geometry.o k_terrain.hmap.o k_terrain.poly.o k_camera.o k_mesh.o k_entity.o k_world.o lib_math.o k_ui.o soil.a
SOURCE_SERVER = server.o k_net.server.o $(SOURCE_COMMON)
SOURCE_CLIENT = client.o k_net.client.o $(SOURCE_COMMON)
NEW_WARNINGS = -Wc++11-compat -Wmaybe-uninitialized
NOWARNINGS = -Waddress -Warray-bounds -Wchar-subscripts -Wenum-compare -Wcomment -Wformat -Wnonnull -Wparentheses -Wreturn-type -Wsequence-point -Wstrict-aliasing -Wstrict-overflow=1 -Wswitch -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunused-label -Wvolatile-register-var
LIBS = -L/usr/local/lib/ -L/usr/local/lib64/ -lGLEW -lGLU -lGL -lglut -lcurses -pthread `freetype-config --libs`
INCLUDES = -Isrc/ -Isrc/extern -I/usr/include/ -I/usr/include/freetype2/
OPTIONS = -g -O0 -std=c++0x $(INCLUDES) $(NOWARNINGS)
COMPILE = ~/.vim/bin/cc_args.py g++
COMPILEOBJ = g++ -shared -c
all: server client
server: $(SOURCE_SERVER)
$(COMPILE) $(SOURCE_SERVER) -DSERVER -o build/server $(LIBS) $(OPTIONS)
client: $(SOURCE_CLIENT)
$(COMPILE) $(SOURCE_CLIENT) -DCLIENT -o build/client $(LIBS) $(OPTIONS)
server.o: src/server.cpp
$(COMPILEOBJ) $? $(LIBS) $(OPTIONS)
client.o: src/client.cpp
$(COMPILEOBJ) $? $(LIBS) $(OPTIONS)
k_%.o : src/kernel/k_%.cpp
$(COMPILEOBJ) $? $(LIBS) $(OPTIONS)
k_memory.o : src/kernel/memory/k_memory.cpp
$(COMPILEOBJ) $? $(LIBS) $(OPTIONS)
lib_%.o : src/libutils/lib_%.cpp
$(COMPILEOBJ) $? $(LIBS) $(OPTIONS)
soil.a: src/extern/soil/*.c
gcc -shared -c src/extern/soil/*.c
ar rvs soil.a *.o
clean:
rm -rf *.o
rm -rf *.a