From ef25a513437196a3ea9ee45e6e03565eb86067d2 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Thu, 28 Jun 2018 16:05:26 -0600 Subject: Simplified makefile Made makefile much simpiler, added option to build dynamically with DEBUG=true --- Makefile | 412 +++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 268 insertions(+), 144 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index d308319..2936037 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ endif ifeq ($(UNAME), Windows) EXE_EXT=.exe - STA_LIB_EXT=.lib + STA_LIB_EXT=.a DYN_LIB_EXT=.dll CMAKE_TYPE="MinGW Makefiles" CMAKE_FLAGS=-G $(CMAKE_TYPE) -DCMAKE_SH="CMAKE_SH-NOTFOUND" @@ -22,78 +22,128 @@ ifeq ($(UNAME), Linux) 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 + +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/client/bin -CLIENT_PATH=$(CLIENT_DIR)/$(CLIENT_EXE) -CLIENT_SRC=src/client/ -CLIENT_BUILD=build/client/ +#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/ +#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/ +#SHARED_SRC=src/shared/ -TEST_PATH=bin/test/ -TEST_SRC=src/test/ +#TEST_PATH=bin/test/ +#TEST_SRC=src/test/ -MASTER_EXE=borkmaster.exe +#MASTER_EXE=borkmaster.exe +CXX?=g++ +MKDIR?=mkdir +RM?=rm -f +ECHO?=echo -#Change these on linux -CC=g++ -MKDIR=mkdir -RM=rm -f -ECHO=printf +LLUADIR=$(LIB_DIR)/luajit +LIRRDIR=$(LIB_DIR)/irrlicht +LBULDIR=$(LIB_DIR)/bullet +LNANDIR=$(LIB_DIR)/nanomsg #Include directories -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) +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 -LLUADIR=lib/luajit -LIRRDIR=lib/irrlicht -LBULDIR=lib/bullet -LNANDIR=lib/nanomsg -LIBRARIES=-Llib +CXXFLAGS+=$(INCLUDE_PATHS) + +LDFLAGS+=-Llib #Libraries -LIBLUA=lib/libluajit.a -LIBIRR=lib/libIrrlicht.a -LIBBCO=lib/libBulletCollision.a -LIBBDY=lib/libBulletDynamics.a -LIBBLM=lib/libLinearMath.a -LIBNAN=lib/libnanomsg.a +#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) + +DLLS=Irrlicht libnanomsg lua51 +BINS= +ifeq ($(DEBUG),true) + LIB_OBJS = $(LIB_D_LUA) $(LIB_D_IRR) $(LIB_D_BCO) $(LIB_D_BDY) $(LIB_D_BLM) $(LIB_D_NAN) + BINS+=$(DLLS:%=$(BIN_DIR)/$(CLIENTNAME)/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 -DLLIRR=$(LIRRDIR)/Irrlicht.dll +#LIBLUA=lib/libluajit.a +#LIBIRR=lib/libIrrlicht.a +#LIBBCO=lib/libBulletCollision.a +#LIBBDY=lib/libBulletDynamics.a +#LIBBLM=lib/libLinearMath.a +#LIBNAN=lib/libnanomsg.a -DYNAMIC_LIBS = #-lnanomsg.dll #-lIrrlicht +#DLLIRR=$(LIRRDIR)/Irrlicht.dll + +# Libraries #order matters! -STATIC_LIBS = -lBulletDynamics -lBulletCollision -lLinearMath -lIrrlicht -lluajit -lnanomsg +LIBS=-lBulletDynamics -lBulletCollision -lLinearMath -lIrrlicht -lnanomsg ifeq ($(UNAME),Windows) - STATIC_LIBS+=-lOpenGL32 + LIBS+=-lOpenGL32 else - DYNAMIC_LIBS+=-lGL + LIBS+=-lGL +endif +ifeq ($(DEBUG),true) + LIBS+=-llua51 +else + LIBS+=-lluajit endif -LIBS=-Bstatic $(STATIC_LIBS) -Bdynamic $(DYNAMIC_LIBS) - -SLIBS=$(LIBLUA) $(LIBIRR) $(LIBBDY) $(LIBBCO) $(LIBBLM) $(LIBNAN) +#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 -#can't compile with -std=c++11 because irrlicht will complain -CFLAGS=-Wall -static $(INCLUDES) -D_IRR_STATIC_LIB_ -DNN_STATIC_LIB -LDFLAGS= ifeq ($(UNAME),Windows) LDFLAGS+=-mwindows -lwinmm #-Wl,-subsystem,windows STATIC_LIBS+=-lws2_32 -lmswsock -ladvapi32 @@ -106,120 +156,161 @@ ifeq ($(UNAME),true) endif ifeq ($(DEBUG),true) - CFLAGS+=-g + CXXFLAGS+=-O0 -g else - CFLAGS+=-O3 + CXXFLAGS+=-O3 #LDFLAGS+=--strip-all endif -all : $(CLIENT_PATH) $(SERVER_PATH) + +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) client : $(CLIENT_PATH) server : $(SERVER_PATH) +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 -$(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) -o $(CLIENT_PATH) $(CLIENT_BUILD)*.o $(LIBRARIES) $(DYNAMIC_LIBS) $(STATIC_LIBS) $(SLIBS) $(LDFLAGS) +$(BIN_DIR)/$(CLIENTNAME)/bin/$(EX_PRE)$(CLIENTNAME)$(EXE_EXT) : $(CLIENT_OBJS) $(LIB_OBJS) + $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -$(CLIENT_BUILD)main.o : $(CLIENT_SRC)main.cpp - $(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)main.o $(CLIENT_SRC)main.cpp +# does not have .hpp associated +$(BUILD_DIR)/$(CLIENTNAME)/main.o : $(SRC_DIR)/client/main.cpp + $(CXX) $(CXXFLAGS) -c -o $@ $^ -$(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_SRCS) : $(BUILD_DIR)/$(CLIENTNAME)/%.o : src/client/%.cpp $(SRC_DIR)/client/%.hpp + @echo "Building client $^" + $(CXX) $(CXXFLAGS) -c -o $@ $< -$(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 +$(SHARED_CLIENT_OBJS) : $(BUILD_DIR)/$(CLIENTNAME)/%.o : src/shared/%.cpp $(SRC_DIR)/shared/%.hpp + @echo "Building shared $<" + $(CXX) $(CXXFLAGS) -c -o $@ $< -$(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 +#$(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)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)main.o : $(CLIENT_SRC)main.cpp + #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)main.o $(CLIENT_SRC)main.cpp -$(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)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)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_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)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)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)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)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)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)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)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)menuhandeler.o : $(CLIENT_SRC)menuhandeler.cpp $(CLIENT_SRC)menuhandeler.hpp + #$(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)menuhandeler.o $(CLIENT_SRC)menuhandeler.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_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_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)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)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)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)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)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)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)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_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_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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)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)callbackhandeler.o : $(CLIENT_SRC)callbackhandeler.cpp $(CLIENT_SRC)callbackhandeler.hpp - $(CC) $(CFLAGS) -c -o $(CLIENT_BUILD)callbackhandeler.o $(CLIENT_SRC)callbackhandeler.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)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 +#$(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 = main hashmap common physcommon load_net load_phys +SERVER_OBJS = $(SERVER_FILES:%=$(CLIENT_BUILD_DIR)/%.o) +$(BIN_DIR)/$(SERVERNAME)/bin/$(EX_PRE)$(SERVERNAME)$(EXE_EXT) : $(SERVER_OBJS) $(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 $(LIBRARIES) $(STATIC_LIBS) $(SLIBS) $(LDFLAGS) + $(CC) $(CFLAGS) -o $(SERVER_PATH) $(SERVER_BUILD)*.o $(STATIC_LIBS) $(SLIBS) $(LDFLAGS) $(SERVER_BUILD)main.o : $(SERVER_SRC)main.cpp $(SERVER_SRC)testclient.cpp $(CC) $(CFLAGS) -c -o $(SERVER_BUILD)main.o $(SERVER_SRC)main.cpp @@ -251,8 +342,8 @@ $(SERVER_BUILD)bphysbox.o : $(SHARED_SRC)lua_api/phys/bphysbox.cpp $(SHARED_SRC) #compile libraries $(LIBLUA) : $(ILUADIR)/Makefile - sed -i "s/BUILDMODE= mixed/BUILDMODE= static/" $(ILUADIR)/Makefile - cd $(ILUADIR) && $(MAKE) + @echo "Could not find $(LIBLUA), rebuilding" + cd $(ILUADIR) && $(MAKE) "BUILDMODE= static" cp $(ILUADIR)/libluajit.a lib IRRMAKEFLAGS= @@ -261,40 +352,72 @@ ifeq ($(DEBUG),true) IRRMAKEFLAGS+=NDEBUG=1 endif ifeq ($(UNAME), Windows) - IRRMAKEFLAGS=staticlib_win32 - IRRMADELIB=$(LIRRDIR)/lib/Win32-gcc + ifeq ($(DEBUG),true) + IRRMAKEFLAGS+=dynamiclib_win32 + IRRMADELIB=$(LIRRDIR)/bin/Win32-gcc + else + IRRMAKEFLAGS=staticlib_win32 + IRRMADELIB=$(LIRRDIR)/lib/Win32-gcc + endif else - IRRMAKEFLAGS=NDEBUG=1 IRRMADELIB=$(LIRRDIR)/lib/Linux endif -$(LIBIRR) : $(LIRRDIR)/source/Irrlicht/Makefile +# Library - Irrlicht +$(LIB_S_IRR) : $(IRRMADELIB)/libIrrlicht.a + cp $^ $@ + +$(IRRMADELIB)/libIrrlicht.a : $(LIRRDIR)/source/Irrlicht/Makefile cd $(LIRRDIR)/source/Irrlicht && $(MAKE) $(IRRMAKEFLAGS) - cp $(IRRMADELIB)/libIrrlicht.a lib -$(LIBBCO) : $(LBULDIR)/Makefile +$(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 $^ $@ + +$(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 - cp $(LBULDIR)/src/BulletCollision/libBulletCollision.a lib -$(LIBBDY) : $(LBULDIR)/Makefile +#$(LIB_D_BDY) : $(LBULDIR)/src/BulletDynamics/libBulletDynamics.a + #cp $^ $@ + +$(LIB_D_DY) : $(LBULDIR)/Makefile cd $(LBULDIR) && make BulletDynamics - cp $(LBULDIR)/src/BulletDynamics/libBulletDynamics.a lib -$(LIBBLM) : $(LBULDIR)/Makefile +#$(LIB_D_BLM) : $(LBULDIR)/src/LinearMath/libLinearMath.a + #cp $^ $@ + +$(LIB_D_BLM) : $(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.a lib - # cp $(LNANDIR)/libnanomsg.dll $(CLIENT_DIR) - # cp $(LNANDIR)/libnanomsg.dll $(SERVER_DIR) +# 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)/Makefile : $(LNANDIR)/CMakeLists.txt - cd $(LNANDIR) && cmake -DNN_STATIC_LIB=ON $(CMAKE_FLAGS) +$(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 @@ -310,8 +433,9 @@ $(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) $(SERVER_PATH) - $(RM) $(CLIENT_PATH) - $(RM) $(CLIENT_BUILD)*.o - $(RM) $(SERVER_BUILD)*.o + $(RM) $(CLIENT_OBJS) + $(RM) $(BINS) -- cgit v1.2.3-70-g09d2