aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Pickering <alex@cogarr.net>2019-07-08 20:19:52 -0400
committerAlexander Pickering <alex@cogarr.net>2019-07-08 20:19:52 -0400
commit6539fbff3d4ecd686676f7c0de6672de38023764 (patch)
treee62c8fd147e21cdd50b2793484bc5a4b874e40c8
parentf5f0ff5635c52775665fd99b994521f90fe12d95 (diff)
downloadbrokengine-6539fbff3d4ecd686676f7c0de6672de38023764.tar.gz
brokengine-6539fbff3d4ecd686676f7c0de6672de38023764.tar.bz2
brokengine-6539fbff3d4ecd686676f7c0de6672de38023764.zip
Updating make system
Splitting up makefiles into several to make things more manageable
-rw-r--r--Makefile.nix53
-rw-r--r--Makefile.shared70
-rw-r--r--Makefile.win394
3 files changed, 517 insertions, 0 deletions
diff --git a/Makefile.nix b/Makefile.nix
new file mode 100644
index 0000000..e70286d
--- /dev/null
+++ b/Makefile.nix
@@ -0,0 +1,53 @@
+
+
+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/bullet/src/BulletCollision\
+ -Llib/bullet/src/BulletDynamics\
+ -Llib/bullet/src/LinearMath\
+ -Llib/nng/static
+
+CLIENT_LIBS=\
+ -lluajit\
+ -lIrrlicht\
+ -lGL\
+ -lX11\
+ -lXxf86vm\
+ -lBulletDynamics\
+ -lBulletCollision\
+ -lLinearMath\
+ -lnng\
+
+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 $@ $<
diff --git a/Makefile.shared b/Makefile.shared
new file mode 100644
index 0000000..f2192b9
--- /dev/null
+++ b/Makefile.shared
@@ -0,0 +1,70 @@
+
+SHARED_SRC=\
+ src/shared/lua_api/common\
+ src/shared/lua_api/load_common\
+ src/shared/lua_api/load_net\
+ src/shared/lua_api/load_phys\
+ src/shared/lua_api/load_scene\
+ src/shared/lua_api/stream\
+ src/shared/lua_api/phys/bcharactercontroller\
+ src/shared/lua_api/phys/bcollider\
+ src/shared/lua_api/phys/bghostobject\
+ src/shared/lua_api/phys/bhingeconstraint\
+ src/shared/lua_api/phys/bphysbox\
+ src/shared/lua_api/phys/bphysbuffer\
+ src/shared/lua_api/phys/bphysgeneric\
+ src/shared/lua_api/phys/bphysmodel\
+ src/shared/phys/physcommon\
+ src/shared/util/hashmap\
+ src/shared/util/tinyobj
+
+CLIENT_SRC=\
+ src/client/main\
+ src/client/callbackhandeler\
+ src/client/initdevice\
+ src/client/menuhandeler\
+ src/client/lua_api/load_cphys\
+ src/client/lua_api/load_game\
+ src/client/lua_api/load_gui\
+ src/client/lua_api/load_io\
+ src/client/lua_api/load_scene\
+ src/client/lua_api/load_video\
+ src/client/lua_api/gui/iguibutton\
+ src/client/lua_api/gui/iguicheckbox\
+ src/client/lua_api/gui/iguicolorselector\
+ src/client/lua_api/gui/iguicombobox\
+ src/client/lua_api/gui/iguieditbox\
+ src/client/lua_api/gui/iguielement\
+ src/client/lua_api/gui/iguifiledialog\
+ src/client/lua_api/gui/iguiimage\
+ src/client/lua_api/gui/iguilabel\
+ src/client/lua_api/gui/iguispinbox\
+ src/client/lua_api/gui/iguitreeview\
+ src/client/lua_api/gui/iguiwindow\
+ src/client/lua_api/io/ifilesystem\
+ src/client/lua_api/phys/cbcharactercontroller\
+ src/client/lua_api/phys/cbphysbox\
+ src/client/lua_api/phys/cbphysmodel\
+ src/client/lua_api/scene/icamera\
+ src/client/lua_api/scene/igeneric\
+ src/client/lua_api/scene/ilight\
+ src/client/lua_api/scene/imesh\
+ src/client/lua_api/video/iimage\
+ src/client/lua_api/video/itexture\
+ src/client/lua_api/video/smaterial
+
+SERVER_SRC=\
+ src/server/main\
+ src/server/lua_api/load_game\
+ src/server/lua_api/load_io\
+
+# Include paths
+CFLAGS += -Ilib/luajit/src -Ilib/irrlicht/include -Isrc -Ilib/bullet/src -Ilib/tinyobjloader-c -Ilib/nng/include
+
+ifeq ($(DEBUG), true)
+ CFLAGS += -g -shared -Wall -Werror -fPIC
+ LDFLAGS += -shared
+else
+ CFLAGS += -static
+ #LDFLAGS += -static
+endif
diff --git a/Makefile.win b/Makefile.win
new file mode 100644
index 0000000..b4e8162
--- /dev/null
+++ b/Makefile.win
@@ -0,0 +1,394 @@
+
+#Detect what kind of system we're on
+ifeq ($(OS), Windows_NT)
+ UNAME:=Windows
+else
+ UNAME:=$(shell uname -s)
+endif
+
+CP=cp
+CXX?=g++
+MKDIR?=mkdir
+RM?=rm -f
+ECHO?=echo
+
+ifeq ($(UNAME), Windows)
+ EXE_EXT=.exe
+ STA_LIB_EXT=.a
+ DYN_LIB_EXT=.dll
+ CMAKE_TYPE="MinGW Makefiles"
+ CMAKE_FLAGS=-G $(CMAKE_TYPE) -DCMAKE_SH="CMAKE_SH-NOTFOUND"
+endif
+
+ifeq ($(UNAME), Linux)
+ EXE_EXT=
+ STA_LIB_EXT=.a
+ DYN_LIB_EXT=.so
+ CMAKE_TYPE="Unix Makefiles"
+ CMAKE_FLAGS= -G $(CMAKE_TYPE)
+endif
+
+BIN_DIR=bin
+BUILD_DIR=build
+SRC_DIR=src
+LIB_DIR=lib
+DOC_DIR=doc
+
+CLIENTNAME=client
+SERVERNAME=server
+MASTERNAME=#masterserver
+BINS=
+
+EX_PRE = brokengine_
+EX_PARTS = $(CLIENTNAME) $(SERVERNAME) $(MASTERNAME)
+
+NAMES = $(EX_PARTS:%=$(EX_PRE)%)
+BINS+= $(foreach part,$(EX_PARTS),$(BIN_DIR)/$(part)/bin/$(EX_PRE)$(part)$(EXE_EXT))
+BUILDS = $(EX_PARTS:%=$(BUILD_DIR)/%)
+SRC_DIRS = $(EX_PARTS:%=$(SRC_DIR)/%)
+
+
+LLUADIR=$(LIB_DIR)/luajit
+LIRRDIR=$(LIB_DIR)/irrlicht
+LBULDIR=$(LIB_DIR)/bullet
+LNNGDIR=$(LIB_DIR)/nng
+LOBJDIR=$(LIB_DIR)/tinyobjloader-c
+
+#Include directories
+ILUADIR=$(LLUADIR)/src
+IIRRDIR=$(LIRRDIR)/include
+IBULDIR=$(LBULDIR)/src
+INNGDIR=$(LNNGDIR)/include
+IOBJDIR=$(LOBJDIR)/
+ISHADIR=src
+INCLUDE_PATHS=-I$(ILUADIR) -I$(IIRRDIR) -I$(IBULDIR) -I$(INNGDIR) -I$(ISHADIR) -I$(IOBJDIR)
+#library directories
+
+CXXFLAGS+=$(INCLUDE_PATHS)
+
+CXXFLAGS+=-Llib
+
+#Library binary names
+ifeq ($(UNAME),Windows)
+ LIB_N_LUA=lua51
+ LIB_N_IRR=Irrlicht$(DYN_LIB_EXT)
+endif
+ifeq ($(UNAME),Linux)
+ LIB_N_LUA=libluajit
+ LIB_N_IRR=libIrrlicht$(DYN_LIB_EXT).1.8.4 #TODO: Automatically detect version
+endif
+
+#Libraries
+#static libs
+LIB_S_LUA=$(LIB_DIR)/libluajit.a
+LIB_S_IRR=$(LIB_DIR)/libIrrlicht.a
+LIB_S_BCO=$(LIB_DIR)/libBulletCollision.a
+LIB_S_BDY=$(LIB_DIR)/libBulletDynamics.a
+LIB_S_BLM=$(LIB_DIR)/libLinearMath.a
+LIB_S_NNG=$(LIB_DIR)/libnng.a
+
+#dynamic libraries
+LIB_D_LUA=$(LIB_DIR)/$(LIB_N_LUA)$(DYN_LIB_EXT)
+LIB_D_IRR=lib/$(LIB_N_IRR)
+# Bullet cannot be built dynamically
+LIB_D_BCO=$(LIB_S_BCO)
+LIB_D_BDY=$(LIB_S_BDY)
+LIB_D_BLM=$(LIB_S_BLM)
+LIB_D_NNG=lib/libnng$(DYN_LIB_EXT)
+
+ifeq ($(UNAME),Windows)
+ CLIENT_DLLS=Irrlicht libnng lua51
+ SERVER_DLLS=libnng lua51
+endif
+ifeq ($(UNAME),Linux)
+ CLIENT_DLLS=Irrlicht libnng luajit
+ SERVER_DLLS=libnng luajit
+endif
+ifeq ($(DEBUG),true)
+ LIB_OBJS = $(LIB_D_LUA) $(LIB_D_IRR) $(LIB_D_BCO) $(LIB_D_BDY) $(LIB_D_BLM) $(LIB_D_NNG)
+ BINS+=$(CLIENT_DLLS:%=$(BIN_DIR)/$(CLIENTNAME)/bin/%$(DYN_LIB_EXT)) $(SERVER_DLLS:%=$(BIN_DIR)/$(SERVERNAME)/bin/%$(DYN_LIB_EXT))
+else
+ LIB_OBJS = $(LIB_S_LUA) $(LIB_S_IRR) $(LIB_S_BCO) $(LIB_S_BDY) $(LIB_S_BLM) $(LIB_S_NNG)
+endif
+
+# Libraries
+#order matters!
+CLIENT_LIBS=-lBulletDynamics -lBulletCollision -lLinearMath -lIrrlicht -lnng
+SERVER_LIBS=-lBulletDynamics -lBulletCollision -lLinearMath -lnng
+#LIBS=-lBulletDynamics -lBulletCollision -lLinearMath -lIrrlicht -lnng
+ifeq ($(UNAME),Windows)
+ CLIENT_LIBS+=-lOpenGL32
+else
+ CLIENT_LIBS+=-lGL
+endif
+ifeq ($(DEBUG),true)
+ifeq ($(UNAME),Windows)
+ CLIENT_LIBS+=-llua51
+ SERVER_LIBS+=-llua51
+endif
+ifeq ($(UNAME),Linux)
+ CLIENT_LIBS+=-lluajit
+ SERVER_LIBS+=-lluajit
+endif
+else
+ CLIENT_LIBS+=-lluajit
+ SERVER_LIBS+=-lluajit
+endif
+
+#can't compile with -std=c++11 because irrlicht will complain
+#LDFLAGS+=$(LIBS)
+ifeq ($(DEBUG), true)
+
+else
+ CXXFLAGS += -static $(INCLUDE_PATHS) -D_IRR_STATIC_LIB_ -DNNG_STATIC_LIB
+endif
+S_LDFLAGS= $(SERVER_LIBS)
+C_LDFLAGS= $(CLIENT_LIBS)
+ifeq ($(UNAME),Windows)
+ C_LDFLAGS += -mwindows -lwinmm -lstdc++
+ ifeq ($(DEBUG),true)
+
+ else
+ C_LDFLAGS += -lws2_32 -lmswsock -ladvapi32
+ S_LDFLAGS += -lws2_32 -lmswsock -ladvapi32
+ endif
+endif
+
+ifeq ($(DEBUG),true)
+ ifeq ($(UNAME),Windows)
+ C_LDFLAGS+=-Wl,-subsystem,console
+ endif
+endif
+
+ifeq ($(DEBUG),true)
+ CXXFLAGS+=-O0 -g -Wall -Werror
+else
+ CXXFLAGS+=-O3
+endif
+
+FSYSTEM_FOLDERS = lua_api phys util lua_api/irr lua_api/phys lua_api/gui lua_api/scene lua_api/video
+CLIENT_BUILD_FOLDERS = $(FSYSTEM_FOLDERS:%=$(BUILD_DIR)/$(CLIENTNAME)/%)
+
+all : $(BINS)
+ @echo "Done"
+
+# The shared stuff
+LAPI_S_PHYS = bhingeconstraint bphysbox bphysmodel bphysgeneric bcharactercontroller bghostobject bcollider
+LAPI_S_LOAD = load_phys load_net common stream load_common
+LAPI_PATHS_T = $(LAPI_S_PHYS:%=lua_api/phys/%) $(LAPI_S_LOAD:%=lua_api/%)
+SHARED_CLIENT_FILES = $(LAPI_PATHS_T) phys/physcommon util/hashmap util/tinyobj
+SHARED_CLIENT_OBJS = $(SHARED_CLIENT_FILES:%=$(BUILD_DIR)/$(CLIENTNAME)/%.o)
+
+# The client-side only stuff
+LAPI_C_GUI = iguibutton iguicheckbox iguielement iguiimage iguilabel iguiwindow iguieditbox iguicolorselector iguifiledialog iguispinbox iguitreeview iguicombobox
+LAPI_C_PHYS = cbphysbox cbphysmodel cbcharactercontroller
+LAPI_C_SCENE = icamera igeneric ilight imesh
+LAPI_C_VIDEO = iimage itexture smaterial
+LAPI_C_IO = ifilesystem
+LAPI_LOAD = load_gui load_scene load_game load_cphys load_video load_io
+LAPI_OBJS_T = $(LAPI_C_GUI:%=gui/%.o) $(LAPI_C_PHYS:%=phys/%.o) $(LAPI_C_SCENE:%=scene/%.o) $(LAPI_C_VIDEO:%=video/%.o) $(LAPI_C_IO:%=io/%.o)
+LAPI_OBJS = $(LAPI_OBJS_T:%=$(BUILD_DIR)/$(CLIENTNAME)/lua_api/%) $(LAPI_LOAD:%=$(BUILD_DIR)/$(CLIENTNAME)/lua_api/%.o)
+CLIENT_FILES = initdevice menuhandeler callbackhandeler
+CLIENT_SRCS = $(CLIENT_FILES:%=$(BUILD_DIR)/$(CLIENTNAME)/%.o) $(LAPI_OBJS)
+CLIENT_OBJS = $(BUILD_DIR)/$(CLIENTNAME)/main.o $(CLIENT_SRCS) $(SHARED_CLIENT_OBJS)
+
+#Compile the client
+$(BIN_DIR)/$(CLIENTNAME)/bin/$(EX_PRE)$(CLIENTNAME)$(EXE_EXT) : $(CLIENT_OBJS) $(LIB_OBJS)
+ @echo "[CLIENT] Building binary $@"
+ $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) $(C_LDFLAGS) $(LIB_OBJS) # -Wl,--verbose
+
+# does not have .hpp associated
+$(BUILD_DIR)/$(CLIENTNAME)/main.o : $(SRC_DIR)/client/main.cpp
+ @$(CXX) $(CXXFLAGS) -c -o $@ $^
+
+# does have the .hpp associated in src/client
+$(CLIENT_SRCS) : $(BUILD_DIR)/$(CLIENTNAME)/%.o : src/client/%.cpp $(SRC_DIR)/client/%.hpp $(LIB_OBJS)
+ @echo "[CLIENT] CXX $<"
+ @$(CXX) $(CXXFLAGS) -c -o $@ $<
+
+# does have the .hpp associated in src/shared
+$(SHARED_CLIENT_OBJS) : $(BUILD_DIR)/$(CLIENTNAME)/%.o : src/shared/%.cpp $(SRC_DIR)/shared/%.hpp
+ @echo "[CLIENT] CXX $<"
+ @$(CXX) $(CXXFLAGS) -c -o $@ $<
+
+#compile server
+SERVER_FILES = lua_api/load_game lua_api/load_io
+SERVER_OBJ=$(SERVER_FILES:%=$(BUILD_DIR)/$(SERVERNAME)/%.o)
+SHARED_SERVER_FILES= $(LAPI_PATHS_T) util/hashmap phys/physcommon util/tinyobj
+SHARED_SERVER_OBJS=$(SHARED_SERVER_FILES:%=$(BUILD_DIR)/$(SERVERNAME)/%.o)
+SERVER_OBJS = $(SERVER_OBJ) $(SHARED_SERVER_OBJS) $(BUILD_DIR)/$(SERVERNAME)/main.o
+
+$(BIN_DIR)/$(SERVERNAME)/bin/$(EX_PRE)$(SERVERNAME)$(EXE_EXT) : $(SERVER_OBJS) $(LIB_OBJS)
+ @echo "[SERVER] Building binary $@"
+ @$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) $(S_LDFLAGS)
+
+# Special, main does not have a .hpp associated with it
+$(BUILD_DIR)/$(SERVERNAME)/main.o : $(SRC_DIR)/server/main.cpp
+ @echo "[SERVER] CXX $<"
+ @$(CXX) $(CXXFLAGS) -c -o $@ $^
+
+$(SHARED_SERVER_OBJS) : $(BUILD_DIR)/$(SERVERNAME)/%.o : $(SRC_DIR)/shared/%.cpp $(SRC_DIR)/shared/%.hpp
+ @echo "[SERVER] CXX $<"
+ @$(CXX) $(CXXFLAGS) -c -o $@ $<
+
+$(SERVER_OBJ) : $(BUILD_DIR)/$(SERVERNAME)/%.o : $(SRC_DIR)/server/%.cpp $(SRC_DIR)/server/%.hpp
+ @echo "[SERVER] CXX $<"
+ @$(CXX) $(CXXFLAGS) -c -o $@ $<
+
+#compile libraries
+$(LIBLUA) : $(ILUADIR)/Makefile
+ @echo "Could not find $(LIBLUA), rebuilding"
+ cd $(ILUADIR) && $(MAKE) "BUILDMODE= static"
+ $(CP) $(ILUADIR)/libluajit.a lib
+
+IRRMAKEFLAGS=
+IRRMADELIB=
+ifeq ($(UNAME), Windows)
+ ifeq ($(DEBUG),true)
+ IRRMAKEFLAGS=sharedlib_win32
+ IRRMADELIB=$(LIRRDIR)/bin/Win32-gcc
+ else
+ IRRMAKEFLAGS=staticlib_win32
+ IRRMADELIB=$(LIRRDIR)/lib/Win32-gcc
+ endif
+else
+ IRRMADELIB=$(LIRRDIR)/lib/Linux
+endif
+
+ifeq ($(DEBUG),true)
+else
+ IRRMAKEFLAGS+=NDEBUG=1
+endif
+
+# Library - Irrlicht
+$(LIB_S_IRR) : $(IRRMADELIB)/libIrrlicht.a
+ $(CP) $^ $@
+
+$(IRRMADELIB)/libIrrlicht.a : $(LIRRDIR)/source/Irrlicht/Makefile
+ sed --in-place=OLD 's/ -ld3dx9d//' lib/irrlicht/source/Irrlicht/Makefile
+ cd $(LIRRDIR)/source/Irrlicht && $(MAKE) $(IRRMAKEFLAGS)
+
+$(LIB_D_IRR) : $(IRRMADELIB)/$(LIB_N_IRR)
+ @echo "Could not find $@, remaking..."
+ $(CP) $^ $@
+
+$(BIN_DIR)/$(CLIENTNAME)/bin/Irrlicht$(DYN_LIB_EXT) : $(IRRMADELIB)/$(LIB_N_IRR)
+ $(CP) $^ $@*
+
+$(IRRMADELIB)/$(LIB_N_IRR) : $(LIRRDIR)/source/Irrlicht/Makefile
+ sed --in-place=OLD 's/ -ld3dx9d//' lib/irrlicht/source/Irrlicht/Makefile
+ cd $(LIRRDIR)/source/Irrlicht && $(MAKE) $(IRRMAKEFLAGS)
+
+ifeq ($(UNAME),Windows)
+ LUAJIT_ARGS:= TARGET_SYS=Windows
+else
+ #LUAJIT_ARGS=
+endif
+
+# Library - Lua
+$(BIN_DIR)/$(CLIENTNAME)/bin/$(LIB_N_LUA)$(DYN_LIB_EXT) : $(LIB_D_LUA)
+ $(CP) $^ $@
+
+$(BIN_DIR)/$(SERVERNAME)/bin/$(LIB_N_LUA)$(DYN_LIB_EXT) : $(LIB_D_LUA)
+ $(CP) $^ $@
+
+$(LLUADIR)/src/libluajit$(STA_LIB_EXT) : $(LLUADIR)/src/Makefile
+ cd $(LLUADIR)/src && $(MAKE) $(LUAJIT_ARGS) "BUILDMODE= static"
+
+$(LIB_S_LUA) : $(LLUADIR)/src/libluajit$(STA_LIB_EXT)
+ $(CP) $^ $@
+
+$(LLUADIR)/src/lua51$(DYN_LIB_EXT) : $(LLUADIR)/src/Makefile
+ cd $(LLUADIR)/src && $(MAKE) $(LUAJIT_ARGS) "BUILDMODE= dynamic"
+
+$(LIB_D_LUA) : $(LLUADIR)/src/$(LIB_N_LUA)$(DYN_LIB_EXT)
+ $(CP) $^ $@
+
+# Library - Bullet
+$(LBULDIR)/lib/libBulletCollision.a : $(LBULDIR)/Makefile
+ cd $(LBULDIR) && $(MAKE) BulletCollision
+
+$(LBULDIR)/lib/libBulletDynamics.a : $(LBULDIR)/Makefile
+ cd $(LBULDIR) && $(MAKE) BulletDynamics
+
+$(LBULDIR)/lib/libLinearMath.a : $(LBULDIR)/Makefile
+ cd $(LBULDIR) && $(MAKE) LinearMath
+
+ifeq ($(UNAME),Windows)
+$(LIB_D_BCO) : $(LBULDIR)/lib/libBulletCollision.a
+ $(CP) $^ $@
+
+$(LIB_D_BDY) : $(LBULDIR)/lib/libBulletDynamics.a
+ $(CP) $^ $@
+
+$(LIB_D_BLM) : $(LBULDIR)/lib/libLinearMath.a
+ $(CP) $^ $@
+endif
+ifeq ($(UNAME),Linux)
+$(LIB_D_BCO) : $(LBULDIR)/src/BulletCollision/libBulletCollision.a
+ $(CP) $^ $@
+
+$(LIB_D_BDY) : $(LBULDIR)/src/BulletDynamics/libBulletDynamics.a
+ $(CP) $^ $@
+
+$(LIB_D_BLM) : $(LBULDIR)/src/LinearMath/libLinearMath.a
+ $(CP) $^ $@
+endif
+
+$(LBULDIR)/Makefile : $(LBULDIR)/CMakeLists.txt
+ cd $(LBULDIR) && cmake $(CMAKE_FLAGS) -DBUILD_EXTRAS=off -DBUILD_DEMOS=off
+
+# Library - NNG
+NNGFLAGS=
+$(BIN_DIR)/$(CLIENTNAME)/bin/libnng$(DYN_LIB_EXT) : $(LIB_D_NNG)
+ $(CP) $^ $@
+
+$(BIN_DIR)/$(SERVERNAME)/bin/libnng$(DYN_LIB_EXT) : $(LIB_D_NNG)
+ $(CP) $^ $@
+
+$(LNNGDIR)/dynamic/Makefile : $(LNNGDIR)/CMakeLists.txt
+ cd $(LNNGDIR)/dynamic && cmake $(CMAKE_FLAGS) -DBUILD_SHARED_LIBS="TRUE" ../
+
+$(LIB_S_NNG) : $(LNNGDIR)/static/libnng$(STA_LIB_EXT)
+ $(CP) $< $@
+
+$(LIB_D_NNG) : $(LNNGDIR)/dynamic/libnng$(DYN_LIB_EXT)
+ $(CP) $< $@
+
+$(LNNGDIR)/static/libnng$(STA_LIB_EXT) : $(LNNGDIR)/static/Makefile
+ cd $(LNNGDIR)/static && $(MAKE) nng
+ ln -s $(LNNGDIR)/src $(LNNGDIR)/include/nng
+
+$(LNNGDIR)/dynamic/libnng$(DYN_LIB_EXT) : $(LNNGDIR)/dynamic/Makefile
+ cd $(LNNGDIR)/dynamic && $(MAKE) nng
+ ln -s $(LNNGDIR)/src $(LNNGDIR)/include/nng
+
+$(LNNGDIR)/Makefile : $(LNNGDIR)/CMakeLists.txt
+ @echo "LIB_OBJS were $(LIB_OBJS)"
+ cd $(LNNGDIR) && cmake $(CMAKE_FLAGS) $(NNGCMAKEFLAGS)
+
+TEST_BIN_NAMES=brokengine_client.exe Irrlicht.dll libnanomsg.dll libnng.dll lua51.dll
+TEST_BINS=$(TEST_BIN_NAMES:%=test/bin/%)
+
+#compile & run tests
+test: $(TEST_BINS)
+ @$(ECHO) "Running busted tests"
+ @./busted busted.spec
+
+$(TEST_BINS) : test/bin/% : bin/client/bin/%
+ $(CP) $^ $@
+
+$(TEST_PATH)test_stream : $(TEST_SRC)test_streams.cpp $(SHARED_SRC)/lua_api/stream.cpp $(SHARED_SRC)/lua_api/stream.hpp
+ @$(CC) $(CFLAGS) -o $(TEST_PATH)test_stream $(TEST_SRC)test_streams.cpp $(SHARED_SRC)/lua_api/stream.cpp $(SHARED_SRC)/lua_api/stream.hpp
+
+$(TEST_PATH)test_phys : $(TEST_SRC)test_phys.cpp
+ $(CC) $(CFLAGS) -o $(TEST_PATH)test_phys $(TEST_SRC)test_phys.cpp $(SLIBS)
+#end tests
+
+cleantest :
+ echo $(BUILDS:%=%/*.o)
+
+clean :
+ $(RM) $(CLIENT_OBJS)
+ $(RM) $(SERVER_OBJS)
+ $(RM) $(BINS)