aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile81
1 files changed, 64 insertions, 17 deletions
diff --git a/Makefile b/Makefile
index b9ed2ad..ea26842 100644
--- a/Makefile
+++ b/Makefile
@@ -10,19 +10,24 @@ ifeq ($(UNAME), Windows)
EXE_EXT=.exe
STA_LIB_EXT=.lib
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
#Run with mingw32-make
CLIENT_NAME=brokengine
CLIENT_EXE=$(CLIENT_NAME)$(EXE_EXT)
-CLIENT_PATH=bin/client/bin/$(CLIENT_EXE)
+CLIENT_DIR=bin/client/bin
+CLIENT_PATH=$(CLIENT_DIR)/$(CLIENT_EXE)
CLIENT_SRC=src/client/
CLIENT_BUILD=build/client/
@@ -39,6 +44,7 @@ TEST_SRC=src/test/
MASTER_EXE=borkmaster.exe
+
#Change these on linux
CC=g++
MKDIR=mkdir
@@ -46,10 +52,10 @@ RM=rm -f
ECHO=printf
#Include directories
-ILUADIR=./lib/luajit/lua-5.1.5/src
-IIRRDIR=./lib/irrlicht/irrlicht-1.8.4/include
-IBULDIR=./lib/bullet/bullet3-2.86.1/bullet3-2.86.1/src
-INANDIR=./lib/nanomsg/nanomsg-1.0.0/src
+ILUADIR=./lib/luajit/src
+IIRRDIR=./lib/irrlicht/include
+IBULDIR=./lib/bullet/src
+INANDIR=./lib/nanomsg/src
ISHADIR=./src
INCLUDES=-I$(ILUADIR) -I$(IIRRDIR) -I$(IBULDIR) -I$(INANDIR) -I$(ISHADIR)
#library directories
@@ -58,22 +64,21 @@ LLUADIR=lib/luajit
LIRRDIR=lib/irrlicht
LBULDIR=lib/bullet
LNANDIR=lib/nanomsg
-LIBRARIES=-L$(LLUADIR) -L$(LIRRDIR) -L$(LBULDIR) -L$(LNANDIR)
+LIBRARIES=-Llib
#Libraries
-LIBLUA=$(LLUADIR)/liblua.a
-LIBIRR=$(LIRRDIR)/libIrrlicht.a
-LIBBCO=$(LBULDIR)/libBulletCollision.a
-LIBBDY=$(LBULDIR)/libBulletDynamics.a
-LIBBLM=$(LBULDIR)/libLinearMath.a
-LIBNAN=$(LNANDIR)/libnanomsg.dll.a
-LIBIRR=$(LIRRDIR)/libIrrlicht.a
+LIBLUA=lib/libluajit.a
+LIBIRR=lib/libIrrlicht.a
+LIBBCO=lib/libBulletCollision.a
+LIBBDY=lib/libBulletDynamics.a
+LIBBLM=lib/libLinearMath.a
+LIBNAN=lib/libnanomsg.dll.a
DLLIRR=$(LIRRDIR)/Irrlicht.dll
DYNAMIC_LIBS = -lnanomsg.dll #-lIrrlicht
#order matters!
-STATIC_LIBS = -lBulletDynamics -lBulletCollision -lLinearMath -lIrrlicht -llua
+STATIC_LIBS = -lBulletDynamics -lBulletCollision -lLinearMath -lIrrlicht -lluajit -lOpenGL32
LIBS=-Bstatic $(STATIC_LIBS) -Bdynamic $(DYNAMIC_LIBS)
SLIBS=$(LIBLUA) $(LIBIRR) $(LIBBDY) $(LIBBCO) $(LIBBLM) $(LIBNAN)
@@ -81,10 +86,10 @@ SLIBS=$(LIBLUA) $(LIBIRR) $(LIBBDY) $(LIBBCO) $(LIBBLM) $(LIBNAN)
#can't compile with -std=c++11 because irrlicht will complain
-CFLAGS=-Wall -static $(INCLUDES)
+CFLAGS=-Wall -static $(INCLUDES) -D_IRR_STATIC_LIB_
LDFLAGS=
ifeq ($(UNAME),Windows)
- LDFLAGS+=-mwindows -Wl,-subsystem,windows
+ LDFLAGS+=-mwindows -Wl,-subsystem,windows -lwinmm
endif
ifeq ($(DEBUG),true)
@@ -99,7 +104,7 @@ server : $(SERVER_PATH)
#Compile the client
$(CLIENT_PATH) : $(CLIENT_BUILD)main.o $(CLIENT_BUILD)initdevice.o $(CLIENT_BUILD)menuhandeler.o $(CLIENT_BUILD)load_gui.o $(CLIENT_BUILD)callbackhandeler.o $(CLIENT_BUILD)load_game.o $(CLIENT_BUILD)load_scene.o $(CLIENT_BUILD)load_phys.o $(CLIENT_BUILD)common.o $(CLIENT_BUILD)load_net.o $(CLIENT_BUILD)physcommon.o $(SLIBS) $(CLIENT_BUILD)load_video.o
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(CLIENT_PATH) $(CLIENT_BUILD)*.o $(LIBRARIES) $(DYNAMIC_LIBS) $(STATIC_LIBS) $(SLIBS)
+ $(CC) $(CFLAGS) -o $(CLIENT_PATH) $(CLIENT_BUILD)*.o $(LIBRARIES) $(DYNAMIC_LIBS) $(STATIC_LIBS) $(SLIBS) $(LDFLAGS)
$(CLIENT_BUILD)main.o : $(CLIENT_SRC)main.cpp
$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)main.o $(CLIENT_SRC)main.cpp
@@ -231,6 +236,48 @@ $(SERVER_BUILD)bphysbox.o : $(SHARED_SRC)lua_api/phys/bphysbox.cpp $(SHARED_SRC)
#end compile server
+#compile libraries
+$(LIBLUA) : $(ILUADIR)/Makefile
+ sed -i "s/BUILDMODE= mixed/BUILDMODE= static/" $(ILUADIR)/Makefile
+ cd $(ILUADIR) && $(MAKE)
+ cp $(ILUADIR)/libluajit.a lib
+
+IRRMAKEFLAGS=
+IRRMADELIB=
+ifeq ($(UNAME), Windows)
+ IRRMAKEFLAGS=NDEBUG=1 staticlib_win32
+ IRRMADELIB=$(LIRRDIR)/lib/Win32-gcc
+else
+ IRRMAKEFLAGS=-NDEBUG=1
+ IRRMADELIB=$(LIRRDIR)/lib/Linux
+endif
+
+$(LIBIRR) : $(LIRRDIR)/source/Irrlicht/Makefile
+ cd $(LIRRDIR)/source/Irrlicht && $(MAKE) $(IRRMAKEFLAGS)
+ cp $(IRRMADELIB)/libIrrlicht.a lib
+
+$(LIBBCO) : $(LBULDIR)/Makefile
+ cd $(LBULDIR) && make BulletCollision
+ cp $(LBULDIR)/src/BulletCollision/libBulletCollision.a lib
+
+$(LIBBDY) : $(LBULDIR)/Makefile
+ cd $(LBULDIR) && make BulletDynamics
+ cp $(LBULDIR)/src/BulletDynamics/libBulletDynamics.a lib
+
+$(LIBBLM) : $(LBULDIR)/Makefile
+ cd $(LBULDIR) && make LinearMath
+ cp $(LBULDIR)/src/LinearMath/libLinearMath.a lib
+
+$(LBULDIR)/Makefile : $(LBULDIR)/CMakeLists.txt
+ cd $(LBULDIR) && cmake $(CMAKE_FLAGS) -DBUILD_EXTRAS=off -DBUILD_DEMOS=off
+
+$(LIBNAN) : $(LNANDIR)/Makefile
+ cd $(LNANDIR) && make
+ cp $(LNANDIR)/libnanomsg.dll.a lib
+
+$(LNANDIR)/Makefile : $(LNANDIR)/CMakeLists.txt
+ cd $(LNANDIR) && cmake $(CMAKE_FLAGS)
+
#compile & run tests
test: $(TEST_PATH)test_stream $(TEST_PATH)test_phys
@$(ECHO) "Testing stream : "