CXXFLAGS= -O3 -fomit-frame-pointer override CXXFLAGS+= -Wall -fsigned-char PLATFORM= $(shell uname -s) PLATFORM_PREFIX=native INCLUDES= -I. -Ibot -I../enet/include STRIP= ifeq (,$(findstring -g,$(CXXFLAGS))) ifeq (,$(findstring -pg,$(CXXFLAGS))) STRIP=strip endif endif ifneq (,$(findstring MINGW,$(PLATFORM))) WINDRES= windres CLIENT_INCLUDES= $(INCLUDES) -I../include CLIENT_LIBS= -mwindows -L../lib -lSDL -lSDL_image -lzdll -lopengl32 -lenet -lOpenAL32 -llibvorbisfile -ljpeg -llibintl -lws2_32 -lwinmm else override CXXFLAGS+= -rdynamic CLIENT_INCLUDES= $(INCLUDES) -I/usr/X11R6/include `sdl-config --cflags` CLIENT_LIBS= -L../enet -lenet -L/usr/X11R6/lib `sdl-config --libs` -lSDL_image -lz -lGL -lopenal -lvorbisfile -ljpeg endif CLIENT_OBJS= \ audiomanager.o \ client.o \ clientgame.o \ clients2c.o \ command.o \ console.o \ docs.o \ editing.o \ entities.o \ i18n.o \ log.o \ main.o \ menus.o \ oggstream.o \ openal.o \ packetqueue.o \ physics.o \ protocol.o \ rendercubes.o \ rendergl.o \ renderhud.o \ rendermodel.o \ renderparticles.o \ rendertext.o \ rndmap.o \ scoreboard.o \ server.o \ serverbrowser.o \ serverms.o \ shadow.o \ sound.o \ soundlocation.o \ soundscheduler.o \ stream.o \ texture.o \ tools.o \ water.o \ weapon.o \ wizard.o \ world.o \ worldio.o \ worldlight.o \ worldocull.o \ worldrender.o \ zip.o \ bot/bot.o \ bot/botmanager.o \ bot/bot_ai.o \ bot/bot_util.o \ bot/bot_waypoint.o \ bot/ac_bot.o \ bot/ac_bot_ai.o ifneq (,$(findstring MINGW,$(PLATFORM))) CLIENT_OBJS+= ../vcpp/SDL_win32_main.o endif CLIENT_PCH= cube.h.gch ifneq (,$(findstring MINGW,$(PLATFORM))) SERVER_INCLUDES= -DSTANDALONE $(INCLUDES) -I../include SERVER_LIBS= -L../lib -lzdll -lenet -llibintl -lws2_32 -lwinmm else SERVER_INCLUDES= -DSTANDALONE $(INCLUDES) SERVER_LIBS= -L../enet -lenet -lz endif SERVER_OBJS= \ log-standalone.o \ protocol-standalone.o \ server-standalone.o \ serverms-standalone.o \ stream-standalone.o \ tools-standalone.o \ wizard-standalone.o ifeq ($(PLATFORM),SunOS) CLIENT_LIBS+= -lsocket -lnsl -lX11 SERVER_LIBS+= -lsocket -lnsl endif default: all all: client server ../enet/Makefile: cd ../enet; ./configure libenet: ../enet/Makefile -$(MAKE) -C ../enet all clean-enet: ../enet/Makefile $(MAKE) -C ../enet/ clean clean: -$(RM) -f $(CLIENT_PCH) $(CLIENT_OBJS) $(SERVER_OBJS) ac_client ac_server # -$(MAKE) -C ../enet/ clean %.h.gch: %.h $(CXX) $(CXXFLAGS) -o $@.tmp $(subst .h.gch,.h,$@) mv $@.tmp $@ %-standalone.o: %.cpp $(CXX) $(CXXFLAGS) -c -o $@ $(subst -standalone.o,.cpp,$@) $(CLIENT_OBJS): CXXFLAGS += $(CLIENT_INCLUDES) $(CLIENT_OBJS): $(CLIENT_PCH) $(SERVER_OBJS): CXXFLAGS += $(SERVER_INCLUDES) ifneq (,$(findstring MINGW,$(PLATFORM))) ../vcpp/%.o: $(CXX) $(CXXFLAGS) -c -o $@ $(subst .o,.c,$@) client: $(CLIENT_OBJS) $(WINDRES) -I ../vcpp -i ../vcpp/cube.rc -J rc -o ../vcpp/cube.res -O coff $(CXX) $(CXXFLAGS) -o ../../bin_win32/ac_client.exe ../vcpp/cube.res $(CLIENT_OBJS) $(CLIENT_LIBS) server: $(SERVER_OBJS) $(CXX) $(CXXFLAGS) -o ../../bin_win32/ac_server.exe $(SERVER_OBJS) $(SERVER_LIBS) client_install: client server_install: server else client: libenet $(CLIENT_OBJS) $(CXX) $(CXXFLAGS) -o ac_client $(CLIENT_OBJS) $(CLIENT_LIBS) server: libenet $(SERVER_OBJS) $(CXX) $(CXXFLAGS) -o ac_server $(SERVER_OBJS) $(SERVER_LIBS) client_install: client cp ac_client ../../bin_unix/$(PLATFORM_PREFIX)_client #ifneq (,$(STRIP)) # $(STRIP) ../../bin_unix/$(PLATFORM_PREFIX)_client #endif server_install: server cp ac_server ../../bin_unix/$(PLATFORM_PREFIX)_server #ifneq (,$(STRIP)) # $(STRIP) ../../bin_unix/$(PLATFORM_PREFIX)_server #endif endif install: client_install server_install depend: makedepend -Y -I. -Ibot $(subst .o,.cpp,$(CLIENT_OBJS)) makedepend -a -o.h.gch -Y -I. -Ibot $(subst .h.gch,.h,$(CLIENT_PCH)) makedepend -a -o-standalone.o -Y -I. -Ibot $(subst -standalone.o,.cpp,$(SERVER_OBJS)) # DO NOT DELETE audiomanager.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h audiomanager.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h audiomanager.o: protos.h client.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h client.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h client.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h bot/ac_bot.h clientgame.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h clientgame.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h clientgame.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h clientgame.o: bot/ac_bot.h clients2c.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h clients2c.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h clients2c.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h clients2c.o: bot/ac_bot.h command.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h command.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h command.o: protos.h console.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h console.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h console.o: protos.h docs.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h weapon.h docs.o: entity.h world.h i18n.h command.h vote.h console.h protos.h editing.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h editing.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h editing.o: protos.h entities.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h entities.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h entities.o: protos.h i18n.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h weapon.h i18n.o: entity.h world.h i18n.h command.h vote.h console.h protos.h log.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h weapon.h log.o: entity.h world.h i18n.h command.h vote.h console.h protos.h main.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h weapon.h main.o: entity.h world.h i18n.h command.h vote.h console.h protos.h menus.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h weapon.h menus.o: entity.h world.h i18n.h command.h vote.h console.h protos.h oggstream.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h oggstream.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h oggstream.o: protos.h openal.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h openal.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h openal.o: protos.h packetqueue.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h packetqueue.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h packetqueue.o: protos.h physics.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h physics.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h physics.o: protos.h protocol.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h protocol.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h protocol.o: protos.h hash.h rendercubes.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h rendercubes.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h rendercubes.o: protos.h rendergl.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h rendergl.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h rendergl.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h bot/ac_bot.h renderhud.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h renderhud.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h renderhud.o: protos.h rendermodel.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h rendermodel.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h rendermodel.o: protos.h tristrip.h modelcache.h vertmodel.h md2.h md3.h renderparticles.o: cube.h platform.h tools.h geom.h model.h protocol.h renderparticles.o: sound.h weapon.h entity.h world.h i18n.h command.h vote.h renderparticles.o: console.h protos.h rendertext.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h rendertext.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h rendertext.o: protos.h rndmap.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h rndmap.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h rndmap.o: protos.h scoreboard.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h scoreboard.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h scoreboard.o: protos.h server.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h server.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h server.o: protos.h server.h servercontroller.h serverfiles.h serverevents.h server.o: serveractions.h serverbrowser.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h serverbrowser.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h serverbrowser.o: protos.h serverms.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h serverms.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h serverms.o: protos.h shadow.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h shadow.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h shadow.o: protos.h sound.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h weapon.h sound.o: entity.h world.h i18n.h command.h vote.h console.h protos.h soundlocation.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h soundlocation.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h soundlocation.o: protos.h soundscheduler.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h soundscheduler.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h soundscheduler.o: protos.h texture.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h texture.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h texture.o: protos.h scale.h tools.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h weapon.h tools.o: entity.h world.h i18n.h command.h vote.h console.h protos.h water.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h weapon.h water.o: entity.h world.h i18n.h command.h vote.h console.h protos.h weapon.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h weapon.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h weapon.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h bot/ac_bot.h weapon.o: hudgun.h wizard.o: platform.h world.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h weapon.h world.o: entity.h world.h i18n.h command.h vote.h console.h protos.h world.o: bot/bot.h bot/bot_util.h bot/bot_waypoint.h bot/ac_bot.h worldio.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h worldio.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h worldio.o: protos.h worldlight.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h worldlight.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h worldlight.o: protos.h worldocull.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h worldocull.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h worldocull.o: protos.h worldrender.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h worldrender.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h worldrender.o: protos.h bot/bot.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h bot/bot.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h bot/bot.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h bot/ac_bot.h bot/botmanager.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h bot/botmanager.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h bot/botmanager.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h bot/botmanager.o: bot/ac_bot.h bot/bot_ai.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h bot/bot_ai.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h bot/bot_ai.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h bot/bot_ai.o: bot/ac_bot.h bot/bot_util.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h bot/bot_util.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h bot/bot_util.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h bot/bot_util.o: bot/ac_bot.h bot/bot_waypoint.o: cube.h platform.h tools.h geom.h model.h protocol.h bot/bot_waypoint.o: sound.h weapon.h entity.h world.h i18n.h command.h vote.h bot/bot_waypoint.o: console.h protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.o: bot/bot_waypoint.h bot/ac_bot.h bot/ac_bot.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h bot/ac_bot.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h bot/ac_bot.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h bot/ac_bot.o: bot/ac_bot.h bot/ac_bot_ai.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h bot/ac_bot_ai.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h bot/ac_bot_ai.o: protos.h bot/bot.h bot/bot_util.h bot/bot_waypoint.h bot/ac_bot_ai.o: bot/ac_bot.h cube.h.gch: platform.h tools.h geom.h model.h protocol.h sound.h weapon.h cube.h.gch: entity.h world.h i18n.h command.h vote.h console.h protos.h log-standalone.o: cube.h platform.h tools.h geom.h model.h protocol.h sound.h log-standalone.o: weapon.h entity.h world.h i18n.h command.h vote.h console.h log-standalone.o: protos.h serverms-standalone.o: cube.h platform.h tools.h geom.h model.h protocol.h serverms-standalone.o: sound.h weapon.h entity.h world.h i18n.h command.h serverms-standalone.o: vote.h console.h protos.h server-standalone.o: cube.h platform.h tools.h geom.h model.h protocol.h server-standalone.o: sound.h weapon.h entity.h world.h i18n.h command.h server-standalone.o: vote.h console.h protos.h server.h servercontroller.h server-standalone.o: serverfiles.h serverevents.h serveractions.h protocol-standalone.o: cube.h platform.h tools.h geom.h model.h protocol.h protocol-standalone.o: sound.h weapon.h entity.h world.h i18n.h command.h protocol-standalone.o: vote.h console.h protos.h hash.h tools-standalone.o: cube.h platform.h tools.h geom.h model.h protocol.h tools-standalone.o: sound.h weapon.h entity.h world.h i18n.h command.h vote.h tools-standalone.o: console.h protos.h wizard-standalone.o: platform.h