#Detect what kind of system we're on ifeq ($(OS), Windows_NT) UNAME:=Windows else UNAME:=$(shell uname -s) endif 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)/%) #Run with mingw32-make #CLIENT_NAME=brokengine #CLIENT_EXE=$(CLIENT_NAME)$(EXE_EXT) #CLIENT_DIR=$(BIN_DIR)/client/bin #CLIENT_PATH=$(CLIENT_DIR)/$(CLIENT_EXE) #CLIENT_SRC=$(SRC_DIR)/client #CLIENT_BUILD_DIR=$(BUILD_DIR)/client #SERVER_NAME=brokeserver #SERVER_EXE=$(SERVER_NAME)$(EXE_EXT) #SERVER_DIR=bin/server/bin #SERVER_PATH=$(SERVER_DIR)/$(SERVER_EXE) #SERVER_SRC=src/server/ #SERVER_BUILD=build/server/ #SHARED_SRC=src/shared/ #TEST_PATH=bin/test/ #TEST_SRC=src/test/ #MASTER_EXE=borkmaster.exe CXX?=g++ MKDIR?=mkdir RM?=rm -f ECHO?=echo LLUADIR=$(LIB_DIR)/luajit LIRRDIR=$(LIB_DIR)/irrlicht LBULDIR=$(LIB_DIR)/bullet LNANDIR=$(LIB_DIR)/nanomsg #Include directories ILUADIR=$(LLUADIR)/src IIRRDIR=$(LIRRDIR)/include IBULDIR=$(LBULDIR)/src INANDIR=$(LNANDIR)/src ISHADIR=src INCLUDE_PATHS=-I$(ILUADIR) -I$(IIRRDIR) -I$(IBULDIR) -I$(INANDIR) -I$(ISHADIR) #library directories CXXFLAGS+=$(INCLUDE_PATHS) LDFLAGS+=-Llib #Libraries #static libs LIB_S_LUA=lib/libluajit.a LIB_S_IRR=lib/Irrlicht.a LIB_S_BCO=lib/libBulletCollision.a LIB_S_BDY=lib/libBulletDynamics.a LIB_S_BLM=lib/libLinearMath.a LIB_S_NAN=lib/libnanomsg.a #dynamic libraries LIB_D_LUA=lib/lua51$(DYN_LIB_EXT) LIB_D_IRR=lib/Irrlicht$(DYN_LIB_EXT) # 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_NAN=lib/nanomsg/libnanomsg$(DYN_LIB_EXT) CLIENT_DLLS=Irrlicht libnanomsg lua51 SERVER_DLLS=libnanomsg lua51 ifeq ($(DEBUG),true) LIB_OBJS = $(LIB_D_LUA) $(LIB_D_IRR) $(LIB_D_BCO) $(LIB_D_BDY) $(LIB_D_BLM) $(LIB_D_NAN) 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_NAN) endif #LIBLUA=lib/libluajit.a #LIBIRR=lib/libIrrlicht.a #LIBBCO=lib/libBulletCollision.a #LIBBDY=lib/libBulletDynamics.a #LIBBLM=lib/libLinearMath.a #LIBNAN=lib/libnanomsg.a #DLLIRR=$(LIRRDIR)/Irrlicht.dll # Libraries #order matters! LIBS=-lBulletDynamics -lBulletCollision -lLinearMath -lIrrlicht -lnanomsg ifeq ($(UNAME),Windows) LIBS+=-lOpenGL32 else LIBS+=-lGL endif ifeq ($(DEBUG),true) LIBS+=-llua51 else LIBS+=-lluajit endif #can't compile with -std=c++11 because irrlicht will complain CXXFLAGS+=-Wall LDFLAGS+=$(LIBS) ifeq ($(DEBUG), true) else CXXFLAGS += -static $(INCLUDE_PATHS) -D_IRR_STATIC_LIB_ -DNN_STATIC_LIB endif ifeq ($(UNAME),Windows) LDFLAGS+=-mwindows -lwinmm #-Wl,-subsystem,windows STATIC_LIBS+=-lws2_32 -lmswsock -ladvapi32 endif ifeq ($(DEBUG),true) ifeq ($(UNAME),Windows) LDFLAGS+=-Wl,-subsystem,console endif endif ifeq ($(DEBUG),true) CXXFLAGS+=-O0 -g -Wall -Werror else CXXFLAGS+=-O3 -Wnone LDFLAGS+=--strip-all 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 built $(BINS) SHARED_CLIENT_FILES = lua_api/common phys/physcommon lua_api/phys/bphysbox util/hashmap lua_api/stream lua_api/load_net SHARED_CLIENT_OBJS = $(SHARED_CLIENT_FILES:%=$(BUILD_DIR)/$(CLIENTNAME)/%.o) # The client-side only stuff LAPI_GUI = iguibutton iguicheckbox iguielement iguiimage iguilabel iguiskin iguiutil iguiwindow LAPI_PHYS = bphysmodel cbphysbox LAPI_SCENE = icamera igeneric ilight imesh LAPI_VIDEO = iimage itexture smaterial LAPI_LOAD = load_gui load_game load_scene load_phys load_video LAPI_OBJS_T = $(LAPI_GUI:%=gui/%.o) $(LAPI_PHYS:%=phys/%.o) $(LAPI_SCENE:%=scene/%.o) $(LAPI_VIDEO:%=video/%.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) $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) # does not have .hpp associated $(BUILD_DIR)/$(CLIENTNAME)/main.o : $(SRC_DIR)/client/main.cpp $(CXX) $(CXXFLAGS) -c -o $@ $^ $(CLIENT_SRCS) : $(BUILD_DIR)/$(CLIENTNAME)/%.o : src/client/%.cpp $(SRC_DIR)/client/%.hpp @echo "Building client $^" $(CXX) $(CXXFLAGS) -c -o $@ $< $(SHARED_CLIENT_OBJS) : $(BUILD_DIR)/$(CLIENTNAME)/%.o : src/shared/%.cpp $(SRC_DIR)/shared/%.hpp @echo "Building shared $<" $(CXX) $(CXXFLAGS) -c -o $@ $< #$(BUILD_DIR)/$(CLIENTNAME)/lua_api/common.o : $(SRC_DIR)/shared/lua_api/common.c $(SRC_DIR)/shared/lua_api/common.h #$(CXX) $(CXXFLAGS) -c -o $@ $^ #$(CLIENT_OBJS) : build/%.o : src/%.cpp #$(CXX) $(CXXFLAGS) -c -o $@ $^ #$(CLIENT_BUILD)main.o : $(CLIENT_SRC)main.cpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)main.o $(CLIENT_SRC)main.cpp #$(CLIENT_BUILD)physcommon.o : $(SHARED_SRC)phys/physcommon.cpp $(SHARED_SRC)phys/physcommon.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)physcommon.o $(SHARED_SRC)phys/physcommon.cpp #$(CLIENT_BUILD)load_net.o : $(SHARED_SRC)lua_api/load_net.cpp $(SHARED_SRC)lua_api/load_net.hpp $(CLIENT_BUILD)stream.o #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)load_net.o $(SHARED_SRC)lua_api/load_net.cpp #$(CLIENT_BUILD)stream.o : $(SHARED_SRC)lua_api/stream.cpp $(SHARED_SRC)lua_api/stream.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)stream.o $(SHARED_SRC)lua_api/stream.cpp #$(CLIENT_BUILD)common.o : $(SHARED_SRC)lua_api/common.c $(SHARED_SRC)lua_api/common.h #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)common.o $(SHARED_SRC)lua_api/common.c #$(CLIENT_BUILD)initdevice.o : $(CLIENT_SRC)initdevice.cpp $(CLIENT_SRC)initdevice.hpp #$(CC) $(CFLAGS) -c -static -o $(CLIENT_BUILD)initdevice.o $(CLIENT_SRC)initdevice.cpp #$(CLIENT_BUILD)menuhandeler.o : $(CLIENT_SRC)menuhandeler.cpp $(CLIENT_SRC)menuhandeler.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)menuhandeler.o $(CLIENT_SRC)menuhandeler.cpp #$(CLIENT_BUILD)load_game.o : $(CLIENT_SRC)lua_api/load_game.cpp $(CLIENT_SRC)lua_api/load_game.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)load_game.o $(CLIENT_SRC)lua_api/load_game.cpp #$(CLIENT_BUILD)load_gui.o : $(CLIENT_BUILD)iguibutton.o $(CLIENT_BUILD)iguilabel.o $(CLIENT_BUILD)iguielement.o $(CLIENT_BUILD)iguiwindow.o $(CLIENT_BUILD)iguiskin.o $(CLIENT_BUILD)iguicheckbox.o $(CLIENT_BUILD)common.o $(CLIENT_BUILD)iguiimage.o $(CLIENT_SRC)lua_api/load_gui.cpp $(CLIENT_SRC)lua_api/load_gui.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)load_gui.o $(CLIENT_SRC)lua_api/load_gui.cpp #$(CLIENT_BUILD)iguiimage.o : $(CLIENT_SRC)lua_api/gui/iguiimage.cpp $(CLIENT_SRC)lua_api/gui/iguiimage.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)iguiimage.o $(CLIENT_SRC)lua_api/gui/iguiimage.cpp #$(CLIENT_BUILD)iguiwindow.o : $(CLIENT_BUILD)iguiutil.o $(CLIENT_SRC)lua_api/gui/iguiwindow.cpp $(CLIENT_SRC)lua_api/gui/iguiwindow.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)iguiwindow.o $(CLIENT_SRC)lua_api/gui/iguiwindow.cpp #$(CLIENT_BUILD)iguiutil.o : $(CLIENT_SRC)lua_api/gui/iguiutil.cpp $(CLIENT_SRC)lua_api/gui/iguiutil.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)iguiutil.o $(CLIENT_SRC)lua_api/gui/iguiutil.cpp #$(CLIENT_BUILD)load_video.o : $(CLIENT_SRC)lua_api/load_video.cpp $(CLIENT_SRC)lua_api/load_video.hpp $(CLIENT_BUILD)smaterial.o $(CLIENT_BUILD)itexture.o $(CLIENT_BUILD)iimage.o #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)load_video.o $(CLIENT_SRC)lua_api/load_video.cpp #$(CLIENT_BUILD)smaterial.o : $(CLIENT_SRC)lua_api/video/smaterial.cpp $(CLIENT_SRC)lua_api/video/smaterial.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)smaterial.o $(CLIENT_SRC)lua_api/video/smaterial.cpp #$(CLIENT_BUILD)itexture.o : $(CLIENT_SRC)lua_api/video/itexture.cpp $(CLIENT_SRC)lua_api/video/itexture.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)itexture.o $(CLIENT_SRC)lua_api/video/itexture.cpp #$(CLIENT_BUILD)iimage.o : $(CLIENT_SRC)lua_api/video/iimage.cpp $(CLIENT_SRC)lua_api/video/iimage.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)iimage.o $(CLIENT_SRC)lua_api/video/iimage.cpp #$(CLIENT_BUILD)load_phys.o : $(CLIENT_BUILD)cbphysbox.o $(CLIENT_BUILD)bphysmodel.o $(CLIENT_SRC)lua_api/load_phys.cpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)load_phys.o $(CLIENT_SRC)lua_api/load_phys.cpp #$(CLIENT_BUILD)load_scene.o : $(CLIENT_BUILD)icamera.o $(CLIENT_BUILD)ilight.o $(CLIENT_BUILD)imesh.o $(CLIENT_BUILD)cbphysbox.o $(CLIENT_SRC)/lua_api/load_scene.cpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)load_scene.o $(CLIENT_SRC)lua_api/load_scene.cpp #$(CLIENT_BUILD)ilight.o : $(CLIENT_SRC)lua_api/scene/ilight.cpp $(CLIENT_SRC)lua_api/scene/ilight.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)ilight.o $(CLIENT_SRC)lua_api/scene/ilight.cpp #$(CLIENT_BUILD)iguibutton.o : $(CLIENT_SRC)lua_api/gui/iguibutton.cpp $(CLIENT_SRC)lua_api/gui/iguibutton.hpp $(CLIENT_SRC)lua_api/guiparts.hpp $(CLIENT_SRC)callbackhandeler.hpp $(CLIENT_SRC)util/hashmap.h $(SHARED_SRC)lua_api/common.c $(SHARED_SRC)lua_api/common.h #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)iguibutton.o $(CLIENT_SRC)lua_api/gui/iguibutton.cpp #$(CLIENT_BUILD)iguilabel.o : $(CLIENT_SRC)lua_api/gui/iguilabel.cpp $(CLIENT_SRC)lua_api/gui/iguilabel.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)iguilabel.o $(CLIENT_SRC)lua_api/gui/iguilabel.cpp #$(CLIENT_BUILD)iguicheckbox.o : $(CLIENT_SRC)lua_api/gui/iguicheckbox.cpp $(CLIENT_SRC)lua_api/gui/iguicheckbox.hpp $(SHARED_SRC)lua_api/common.h #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)iguicheckbox.o $(CLIENT_SRC)lua_api/gui/iguicheckbox.cpp #$(CLIENT_BUILD)iguielement.o : $(CLIENT_BUILD)hashmap.o $(CLIENT_SRC)lua_api/gui/iguielement.cpp $(CLIENT_SRC)lua_api/gui/iguielement.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)iguielement.o $(CLIENT_SRC)lua_api/gui/iguielement.cpp #$(CLIENT_BUILD)iguiskin.o : $(CLIENT_SRC)lua_api/gui/iguiskin.cpp $(CLIENT_SRC)lua_api/gui/iguiskin.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)iguiskin.o $(CLIENT_SRC)lua_api/gui/iguiskin.cpp #$(CLIENT_BUILD)icamera.o : $(CLIENT_BUILD)igeneric.o $(CLIENT_SRC)lua_api/scene/icamera.cpp $(CLIENT_SRC)lua_api/scene/icamera.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)icamera.o $(CLIENT_SRC)lua_api/scene/icamera.cpp #$(CLIENT_BUILD)imesh.o : $(CLIENT_SRC)lua_api/scene/imesh.cpp $(CLIENT_SRC)lua_api/scene/imesh.hpp $(CLIENT_SRC)lua_api/scene/igeneric.cpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)imesh.o $(CLIENT_SRC)lua_api/scene/imesh.cpp #$(CLIENT_BUILD)igeneric.o: $(CLIENT_SRC)lua_api/scene/igeneric.cpp $(CLIENT_SRC)lua_api/scene/igeneric.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)igeneric.o $(CLIENT_SRC)lua_api/scene/igeneric.cpp #$(CLIENT_BUILD)cbphysbox.o: $(CLIENT_SRC)lua_api/phys/cbphysbox.cpp $(CLIENT_SRC)lua_api/phys/cbphysbox.hpp $(CLIENT_SRC)lua_api/scene/igeneric.cpp $(CLIENT_BUILD)bphysbox.o #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)cbphysbox.o $(CLIENT_SRC)lua_api/phys/cbphysbox.cpp #$(CLIENT_BUILD)bphysbox.o: $(SHARED_SRC)lua_api/phys/bphysbox.cpp $(SHARED_SRC)lua_api/phys/bphysbox.hpp $(CLIENT_BUILD)common.o #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)bphysbox.o $(SHARED_SRC)lua_api/phys/bphysbox.cpp #$(CLIENT_BUILD)bphysmodel.o: $(CLIENT_SRC)lua_api/phys/bphysmodel.cpp $(CLIENT_SRC)lua_api/phys/bphysmodel.hpp $(CLIENT_SRC)lua_api/scene/igeneric.cpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)bphysmodel.o $(CLIENT_SRC)lua_api/phys/bphysmodel.cpp #$(CLIENT_BUILD)callbackhandeler.o : $(CLIENT_SRC)callbackhandeler.cpp $(CLIENT_SRC)callbackhandeler.hpp #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)callbackhandeler.o $(CLIENT_SRC)callbackhandeler.cpp #$(CLIENT_BUILD)hashmap.o : $(CLIENT_SRC)util/hashmap.c $(CLIENT_SRC)util/hashmap.h #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)hashmap.o $(CLIENT_SRC)util/hashmap.c #end compile client #compile server SERVER_FILES = SHARED_SERVER_FILES= util/hashmap lua_api/common phys/physcommon lua_api/load_net lua_api/load_phys lua_api/phys/bphysbox lua_api/stream SHARED_SERVER_OBJS=$(SHARED_SERVER_FILES:%=$(BUILD_DIR)/$(SERVERNAME)/%.o) SERVER_OBJS = $(SERVER_FILES:%=$(SERVER_BUILD_DIR)/%.o) $(SHARED_SERVER_OBJS) $(BUILD_DIR)/$(SERVERNAME)/main.o $(BIN_DIR)/$(SERVERNAME)/bin/$(EX_PRE)$(SERVERNAME)$(EXE_EXT) : $(SERVER_OBJS) $(LIB_OBJS) $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) # Special, main does not have a .hpp associated with it $(BUILD_DIR)/$(SERVERNAME)/main.o : $(SRC_DIR)/server/main.cpp $(CXX) $(CXXFLAGS) -c -o $@ $^ #$(SERVER_PATH) : $(SERVER_BUILD)main.o $(SERVER_BUILD)hashmap.o $(SERVER_BUILD)common.o $(SERVER_BUILD)physcommon.o $(SERVER_BUILD)load_net.o $(SERVER_BUILD)load_phys.o #$(CC) $(CFLAGS) -o $(SERVER_PATH) $(SERVER_BUILD)*.o $(STATIC_LIBS) $(SLIBS) $(LDFLAGS) $(SHARED_SERVER_OBJS) : $(BUILD_DIR)/$(SERVERNAME)/%.o : $(SRC_DIR)/shared/%.cpp $(SRC_DIR)/shared/%.hpp $(CXX) $(CXXFLAGS) -c -o $@ $< #$(SERVER_BUILD)main.o : $(SERVER_SRC)main.cpp $(SERVER_SRC)testclient.cpp #$(CC) $(CFLAGS) -c -o $(SERVER_BUILD)main.o $(SERVER_SRC)main.cpp #$(SERVER_BUILD)physcommon.o : $(SHARED_SRC)phys/physcommon.cpp $(SHARED_SRC)phys/physcommon.hpp #$(CC) $(CFLAGS) -c -o $(SERVER_BUILD)physcommon.o $(SHARED_SRC)phys/physcommon.cpp #$(SERVER_BUILD)hashmap.o : $(SHARED_SRC)util/hashmap.c $(SHARED_SRC)util/hashmap.h #$(CC) $(CFLAGS) -c -o $(SERVER_BUILD)hashmap.o $(SHARED_SRC)util/hashmap.c #$(SERVER_BUILD)common.o : $(SHARED_SRC)lua_api/common.c $(SHARED_SRC)lua_api/common.h #$(CC) $(CFLAGS) -c -o $(SERVER_BUILD)common.o $(SHARED_SRC)lua_api/common.c ## Net #$(SERVER_BUILD)load_net.o : $(SHARED_SRC)lua_api/load_net.cpp $(SHARED_SRC)lua_api/load_net.hpp $(SERVER_BUILD)stream.o #$(CC) $(CFLAGS) -c -o $(SERVER_BUILD)load_net.o $(SHARED_SRC)lua_api/load_net.cpp #$(SERVER_BUILD)stream.o : $(SHARED_SRC)lua_api/stream.cpp $(SHARED_SRC)lua_api/stream.hpp #$(CC) $(CFLAGS) -c -o $(SERVER_BUILD)stream.o $(SHARED_SRC)lua_api/stream.cpp ## Phys #$(SERVER_BUILD)load_phys.o: $(SHARED_SRC)lua_api/load_phys.cpp $(SHARED_SRC)lua_api/load_phys.hpp $(SERVER_BUILD)bphysbox.o #$(CC) $(CFLAGS) -c -o $(SERVER_BUILD)load_phys.o $(SHARED_SRC)lua_api/load_phys.cpp #$(SERVER_BUILD)bphysbox.o : $(SHARED_SRC)lua_api/phys/bphysbox.cpp $(SHARED_SRC)lua_api/phys/bphysbox.hpp #$(CC) $(CFLAGS) -c -o $(SERVER_BUILD)bphysbox.o $(SHARED_SRC)lua_api/phys/bphysbox.cpp #end compile server #compile libraries $(LIBLUA) : $(ILUADIR)/Makefile @echo "Could not find $(LIBLUA), rebuilding" cd $(ILUADIR) && $(MAKE) "BUILDMODE= static" cp $(ILUADIR)/libluajit.a lib IRRMAKEFLAGS= IRRMADELIB= ifeq ($(DEBUG),true) IRRMAKEFLAGS+=NDEBUG=1 endif ifeq ($(UNAME), Windows) ifeq ($(DEBUG),true) IRRMAKEFLAGS+=dynamiclib_win32 IRRMADELIB=$(LIRRDIR)/bin/Win32-gcc else IRRMAKEFLAGS=staticlib_win32 IRRMADELIB=$(LIRRDIR)/lib/Win32-gcc endif else IRRMADELIB=$(LIRRDIR)/lib/Linux endif # Library - Irrlicht $(LIB_S_IRR) : $(IRRMADELIB)/libIrrlicht.a cp $^ $@ $(IRRMADELIB)/libIrrlicht.a : $(LIRRDIR)/source/Irrlicht/Makefile cd $(LIRRDIR)/source/Irrlicht && $(MAKE) $(IRRMAKEFLAGS) $(BIN_DIR)/$(CLIENTNAME)/bin/Irrlicht$(DYN_LIB_EXT) : $(IRRMADELIB)/Irrlicht$(DYN_LIB_EXT) cp $^ $@ $(IRRMADELIB)/lib/Irrlicht$(DYN_LIB_EXT) : $(LIRRDIR)/source/Irrlicht/Makefile cd $(LIRRDIR)/source/Irrlicht && $(MAKE) $(IRRMAKEFLAGS) # Library - Lua $(BIN_DIR)/$(CLIENTNAME)/bin/lua51$(DYN_LIB_EXT) : $(LLUADIR)/src/lua51$(DYN_LIB_EXT) cp $^ $@ $(BIN_DIR)/$(SERVERNAME)/bin/lua51$(DYN_LIB_EXT) : $(LLUADIR)/src/lua51$(DYN_LIB_EXT) cp $^ $@ $(LIB_D_LUA) : $(LLUADIR)/src/Makefile @echo "Could not find $(LLUADIR)/src/lua51$(DYN_LIB_EXT), rebuilding" cd $(LLUADIR)/src && make "BUILDMODE= dynamic" # Library - Bullet #$(LIB_D_BCO) : $(LBULDIR)/src/BulletCollision/libBulletCollision.a #cp $^ $@ $(LIB_D_BCO) : $(LBULDIR)/Makefile cd $(LBULDIR) && make BulletCollision #$(LIB_D_BDY) : $(LBULDIR)/src/BulletDynamics/libBulletDynamics.a #cp $^ $@ $(LIB_D_DY) : $(LBULDIR)/Makefile cd $(LBULDIR) && make BulletDynamics #$(LIB_D_BLM) : $(LBULDIR)/src/LinearMath/libLinearMath.a #cp $^ $@ $(LIB_D_BLM) : $(LBULDIR)/Makefile cd $(LBULDIR) && make LinearMath $(LBULDIR)/Makefile : $(LBULDIR)/CMakeLists.txt cd $(LBULDIR) && cmake $(CMAKE_FLAGS) -DBUILD_EXTRAS=off -DBUILD_DEMOS=off # Library - Nanomsg $(BIN_DIR)/$(CLIENTNAME)/bin/libnanomsg$(DYN_LIB_EXT) : $(LNANDIR)/dyn_lib/libnanomsg$(DYN_LIB_EXT) cp $^ $@ $(LIB_D_NAN) : $(LNANDIR)/dyn_lib/Makefile cd $(LNANDIR)/dyn_lib/ && $(MAKE) nanomsg $(LNANDIR)/dyn_lib/Makefile : $(LNANDIR)/CMakeLists.txt $(LNANDIR)/dyn_lib cd $(LNANDIR)/dyn_lib && cmake $(CMAKE_FLAGS) ../ $(LNANDIR)/dyn_lib : mkdir $(LNANDIR)/dyn_lib #compile & run tests test: $(TEST_PATH)test_stream $(TEST_PATH)test_phys @$(ECHO) "Testing stream : " @./$(TEST_PATH)test_stream @$(ECHO) "Testing physics: " @./$(TEST_PATH)test_phys $(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) $(BINS)