include Makefile.shared CP=cp CXX?=g++ MKDIR?=mkdir RM?=rm -f ECHO?=echo LD=g++ MDOC=mdoc 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_dlls=Irrlicht client_bins=bin/client/bin/brokengine_client.exe $(client_dlls:%=bin/client/bin/%.dll) server_bins=bin/server/bin/brokengine_server.exe bins=$(client_bins) $(server_bins) CLIENT_LIB_DIRS=\ -Llib/bullet/lib\ -Llib/irrlicht/lib/Win32-gcc\ -Llib/luajit/src\ -Llib/nng/static\ lib_objs=\ lib/nng/static/libnng.a\ lib/irrlicht/lib/Win32-gcc/libIrrlicht.a\ lib/luajit/src/libluajit-5.1.dll.a CLIENT_LIBS=\ -lBulletDynamics\ -lBulletCollision\ -lLinearMath\ -lIrrlicht\ -lnng\ -lluajit-5.1.dll\ -lOpenGL32\ -lws2_32\ -lmswsock\ -ladvapi32\ -lwinmm\ -lm #-lstdc++-6 CFLAGS+=-DNNG_STATIC_LIB -g ifeq ($(DEBUG), true) else LDFLAGS += -mwindows endif all : $(bins) echo "Done" clean: $(RM) $(client_objs) $(RM) $(server_objs) $(RM) $(shared_objs) $(RM) $(bins) $(RM) -r doc/* nuke: clean doc: documentation documentation: $(MDOC) -p src -o doc -t "Brok[en]gine" -i README.md -d reference -m "markdown" test: busted bin/client/bin/brokengine_client.exe : $(client_objs) $(shared_objs) $(lib_objs) $(Q)echo "Linking $@" $(Q)$(LD) $(LDFLAGS) -o $@ $^ $(CLIENT_LIB_DIRS) $(CLIENT_LIBS) # -Wl,--verbose bin/server/bin/brokengine_server.exe : $(server_objs) $(shared_objs) $(Q)echo "Linking $@" $(Q)$(LD) $(LDFLAGS) -o $@ $^ $(CLIENT_LIB_DIRS) $(CLIENT_LIBS) # -Wl,--verbose $(shared_objs) : build/shared/%.o : src/shared/%.cpp src/shared/%.hpp $(Q)echo "CXX $@" $(Q)$(CXX) $(CFLAGS) -c -o $@ $< $(client_objs) : build/client/%.o : src/client/%.cpp src/client/%.hpp $(Q)echo "CXX $@" $(Q)$(CXX) $(CFLAGS) -c -o $@ $< $(server_objs) : build/server/%.o : src/server/%.cpp src/server/%.hpp $(Q)echo "CXX $@" $(Q)$(CXX) $(CFLAGS) -c -o $@ $< bin/client/bin/Irrlicht.dll : lib/irrlicht/bin/Win32-gcc/Irrlicht.dll cp $^ $@ lib/irrlicht/bin/Win32-gcc/Irrlicht.dll : lib/irrlicht/source/Irrlicht/Makefile cd lib/irrlicht/source/Irrlicht && $(MAKE) win32 lib/nng/static/libnng.a: $(Q)echo "Make $@" $(Q)mkdir lib/nng/static $(Q)cd lib/nng/static && cmake -G "MinGW Makefiles" -DNNG_STATIC_LIB .. && $(MAKE) lib/irrlicht/lib/Win32-gcc/libIrrlicht.a: $(Q) echo "Make $@" $(Q)cd lib/irrlicht/source/Irrlicht && $(MAKE) sharedlib_win32 lib/luajit/src/libluajit-5.1.dll.a: $(Q) echo "Make $@" $(Q)cd lib/luajit/src && $(MAKE)