From 101d9b7ac8b3ae03a87364dc464fa7de36fbccf1 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Sat, 23 Jun 2018 15:40:09 -0600 Subject: Automated setup with makefile --- Makefile | 81 ++++++++++++++++++++++++++++++++++++++++++++++------------ lib/.gitignore | 1 + 2 files changed, 65 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 : " diff --git a/lib/.gitignore b/lib/.gitignore index 63ea916..f8d4df4 100644 --- a/lib/.gitignore +++ b/lib/.gitignore @@ -1 +1,2 @@ /*/ +*.a -- cgit v1.2.3-70-g09d2