# # NS game library Makefile for x86 Linux # # 11.2015 Makefile # HLDLL_SRC_DIR=$(SOURCE_DIR)/dlls HLWPN_SRC_DIR=$(HLDLL_SRC_DIR)/wpn_shared NS_MOD_SRC_DIR=$(SOURCE_DIR)/mod UTIL_SRC_DIR=$(SOURCE_DIR)/util TEXTREP_SRC_DIR=$(SOURCE_DIR)/textrep PM_SHARED_SRC_DIR=$(SOURCE_DIR)/pm_shared DETOUR_SRC_DIR=$(SOURCE_DIR)/detour HLDLL_OBJ_DIR=$(BUILD_OBJ_DIR)/hldll HLWPN_OBJ_DIR=$(HLDLL_OBJ_DIR)/wpn_shared PM_OBJ_DIR=$(HLDLL_OBJ_DIR)/pm_shared GAME_SHARED_OBJ_DIR=$(HLDLL_OBJ_DIR)/game_shared NS_MOD_OBJ_DIR=$(HLDLL_OBJ_DIR)/mod UTIL_OBJ_DIR=$(HLDLL_OBJ_DIR)/util TEXTREP_OBJ_DIR=$(HLDLL_OBJ_DIR)/textrep DETOUR_OBJ_DIR=$(HLDLL_OBJ_DIR)/detour #CFLAGS=$(BASE_CFLAGS) $(ARCH_CFLAGS) $(SHLIBCFLAGS) -DCLIENT_WEAPONS CFLAGS=$(BASE_CFLAGS) $(ARCH_CFLAGS) -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -DAVH_SERVER -DLINUX -DVALVE_DLL -DQUIVER -DVOXEL -DQUAKE2 -DDEDICATED -DSWDS -D_STLP_USE_GLIBC -DUSE_OLDAUTH -Dsprintf_s=snprintf -D_stricmp=strcasecmp -DDISABLE_VEC_FUNCS -D_FORTIFY_SOURCE=0 #-O3 -ffast-math -fno-strength-reduce -DCURL_STATICLIB DETOUR_CFLAGS=$(filter-out -O3,$(ARCH_CFLAGS)) -O1 HLDLL_INCLUDEDIRS=-I$(HLDLL_SRC_DIR) -I../ -I$(ENGINE_SRC_DIR) -I$(COMMON_SRC_DIR) -I$(PM_SRC_DIR) -I$(GAME_SHARED_SRC_DIR) -I$(PUBLIC_SRC_DIR) -I$(UTIL_SRC_DIR) -I$(NS_MOD_SRC_DIR) -I$(PM_OBJ_DIR) -I$(DETOUR_SRC_DIR) -I$(DETOUR_SRC_DIR)/Include PM_INCLUDEDIRS=-I$(COMMON_SRC_DIR) -I$(PUBLIC_SRC_DIR) -I$(PM_SHARED_SRC_DIR) GAME_SHARED_INCLUDEDIRS=-I$(HLDLL_SRC_DIR) -I$(ENGINE_SRC_DIR) -I$(COMMON_SRC_DIR) -I$(PM_SRC_DIR) -I$(PUBLIC_SRC_DIR) -I$(COMMON_SRC_DIR) MOD_INCLUDEDIRS=-I$(UTIL_SRC_DIR) -I$(GAME_SHARED_SRC_DIR) -I$(HLDLL_SRC_DIR) -I$(PUBLIC_SRC_DIR) -I$(COMMON_SRC_DIR) -I$(ENGINE_SRC_DIR) -I$(DETOUR_SRC_DIR) -I$(DETOUR_SRC_DIR)/Include -I../particles -I../cdll/ UTIL_INCLUDEDIRS = -I../ -I../util TEXTREP_INCLUDEDIRS=.. DETOUR_INCLUDEDIRS=-I$(DETOUR_SRC_DIR) -I$(DETOUR_SRC_DIR)/Include ifeq ($(OS),Darwin) LDFLAGS=-lm -lstdc++ -L. libparticleMP.a #-lcurl else LDFLAGS=-lm -lstdc++ -L. libparticleMP.a #-lcurl endif DO_HLDLL_CC=$(CC) $(HLDLL_INCLUDEDIRS) $(CFLAGS) -o $@ -c $< DO_PM_CC=$(CC) $(PM_INCLUDEDIRS) $(CFLAGS) -o $@ -c $< DO_GAME_SHARED_CC=$(CC) $(GAME_SHARED_INCLUDEDIRS) $(CFLAGS) -o $@ -c $< DO_MOD_CC=$(CC) $(MOD_INCLUDEDIRS) $(CFLAGS) -o $@ -c $< DO_UTIL_CC=$(CC) $(UTIL_INCLUDEDIRS) $(CFLAGS) -o $@ -c $< DO_TEXTREP_CC=$(CC) $(TEXTREP_INCLUDEDIRS) $(CFLAGS) -o $@ -c $< DO_DETOUR_CC=$(CC) $(DETOUR_INCLUDEDIRS) $(DETOUR_CFLAGS) -o $@ -c $< ##################################################################### HLDLL_OBJS = \ $(HLDLL_OBJ_DIR)/animating.o \ $(HLDLL_OBJ_DIR)/animation.o \ $(HLDLL_OBJ_DIR)/bmodels.o \ $(HLDLL_OBJ_DIR)/buttons.o \ $(HLDLL_OBJ_DIR)/cbase.o \ $(HLDLL_OBJ_DIR)/client.o \ $(HLDLL_OBJ_DIR)/combat.o \ $(HLDLL_OBJ_DIR)/doors.o \ $(HLDLL_OBJ_DIR)/effects.o \ $(HLDLL_OBJ_DIR)/egon.o \ $(HLDLL_OBJ_DIR)/explode.o \ $(HLDLL_OBJ_DIR)/func_break.o \ $(HLDLL_OBJ_DIR)/func_tank.o \ $(HLDLL_OBJ_DIR)/game.o \ $(HLDLL_OBJ_DIR)/gamerules.o \ $(HLDLL_OBJ_DIR)/gauss.o \ $(HLDLL_OBJ_DIR)/globals.o \ $(HLDLL_OBJ_DIR)/ggrenade.o \ $(HLDLL_OBJ_DIR)/h_ai.o \ $(HLDLL_OBJ_DIR)/h_battery.o \ $(HLDLL_OBJ_DIR)/h_cycler.o \ $(HLDLL_OBJ_DIR)/h_export.o \ $(HLDLL_OBJ_DIR)/items.o \ $(HLDLL_OBJ_DIR)/lights.o \ $(HLDLL_OBJ_DIR)/maprules.o \ $(HLDLL_OBJ_DIR)/mpstubb.o \ $(HLDLL_OBJ_DIR)/multiplay_gamerules.o \ $(HLDLL_OBJ_DIR)/observer.o \ $(HLDLL_OBJ_DIR)/pathcorner.o \ $(HLDLL_OBJ_DIR)/plane.o \ $(HLDLL_OBJ_DIR)/plats.o \ $(HLDLL_OBJ_DIR)/rpg.o \ $(HLDLL_OBJ_DIR)/player.o \ $(HLDLL_OBJ_DIR)/satchel.o \ $(HLDLL_OBJ_DIR)/shotgun.o \ $(HLDLL_OBJ_DIR)/singleplay_gamerules.o \ $(HLDLL_OBJ_DIR)/skill.o \ $(HLDLL_OBJ_DIR)/sound.o \ $(HLDLL_OBJ_DIR)/soundent.o \ $(HLDLL_OBJ_DIR)/spectator.o \ $(HLDLL_OBJ_DIR)/squeakgrenade.o \ $(HLDLL_OBJ_DIR)/subs.o \ $(HLDLL_OBJ_DIR)/teamplay_gamerules.o \ $(HLDLL_OBJ_DIR)/triggers.o \ $(HLDLL_OBJ_DIR)/turret.o \ $(HLDLL_OBJ_DIR)/util.o \ $(HLDLL_OBJ_DIR)/weapons.o \ $(HLDLL_OBJ_DIR)/world.o \ $(HLDLL_OBJ_DIR)/xen.o \ MOD_OBJS = \ $(NS_MOD_OBJ_DIR)/AnimationUtil.o \ $(NS_MOD_OBJ_DIR)/AvHAcidRocketGun.o \ $(NS_MOD_OBJ_DIR)/AvHAICommander.o \ $(NS_MOD_OBJ_DIR)/AvHAIConfig.o \ $(NS_MOD_OBJ_DIR)/AvHAIHelper.o \ $(NS_MOD_OBJ_DIR)/AvHAIMath.o \ $(NS_MOD_OBJ_DIR)/AvHAINavigation.o \ $(NS_MOD_OBJ_DIR)/AvHAIPlayer.o \ $(NS_MOD_OBJ_DIR)/AvHAIPlayerManager.o \ $(NS_MOD_OBJ_DIR)/AvHAIPlayerUtil.o \ $(NS_MOD_OBJ_DIR)/AvHAITactical.o \ $(NS_MOD_OBJ_DIR)/AvHAITask.o \ $(NS_MOD_OBJ_DIR)/AvHAIWeaponHelper.o \ $(NS_MOD_OBJ_DIR)/AvHAlienAbilities.o \ $(NS_MOD_OBJ_DIR)/AvHAlienEquipment.o \ $(NS_MOD_OBJ_DIR)/AvHAlienTurret.o \ $(NS_MOD_OBJ_DIR)/AvHAlienWeapon.o \ $(NS_MOD_OBJ_DIR)/AvHAssert.o \ $(NS_MOD_OBJ_DIR)/AvHBaseBuildable.o \ $(NS_MOD_OBJ_DIR)/AvHBaseInfoLocation.o \ $(NS_MOD_OBJ_DIR)/AvHBasePlayerWeapon.o \ $(NS_MOD_OBJ_DIR)/AvHBileBombGun.o \ $(NS_MOD_OBJ_DIR)/AvHBite.o \ $(NS_MOD_OBJ_DIR)/AvHBite2.o \ $(NS_MOD_OBJ_DIR)/AvHBlink.o \ $(NS_MOD_OBJ_DIR)/AvHBuildable.o \ $(NS_MOD_OBJ_DIR)/AvHBuildingGun.o \ $(NS_MOD_OBJ_DIR)/AvHCurl.o \ $(NS_MOD_OBJ_DIR)/AvHClaws.o \ $(NS_MOD_OBJ_DIR)/AvHCloakable.o \ $(NS_MOD_OBJ_DIR)/AvHConsoleCommands.o \ $(NS_MOD_OBJ_DIR)/AvHConstants.o \ $(NS_MOD_OBJ_DIR)/AvHCombat.o \ $(NS_MOD_OBJ_DIR)/AvHDevour.o \ $(NS_MOD_OBJ_DIR)/AvHDivineWind.o \ $(NS_MOD_OBJ_DIR)/AvHEntities.o \ $(NS_MOD_OBJ_DIR)/AvHEntityHierarchy.o \ $(NS_MOD_OBJ_DIR)/AvHGamerules.o \ $(NS_MOD_OBJ_DIR)/AvHGrenade.o \ $(NS_MOD_OBJ_DIR)/AvHGrenadeGun.o \ $(NS_MOD_OBJ_DIR)/AvHHealingSpray.o \ $(NS_MOD_OBJ_DIR)/AvHHeavyMachineGun.o \ $(NS_MOD_OBJ_DIR)/AvHHive.o \ $(NS_MOD_OBJ_DIR)/AvHItemInfo.o \ $(NS_MOD_OBJ_DIR)/AvHKnife.o \ $(NS_MOD_OBJ_DIR)/AvHMachineGun.o \ $(NS_MOD_OBJ_DIR)/AvHMapExtents.o \ $(NS_MOD_OBJ_DIR)/AvHMarineEquipment.o \ $(NS_MOD_OBJ_DIR)/AvHMarineTurret.o \ $(NS_MOD_OBJ_DIR)/AvHMarineWeapon.o \ $(NS_MOD_OBJ_DIR)/AvHMetabolize.o \ $(NS_MOD_OBJ_DIR)/AvHMine.o \ $(NS_MOD_OBJ_DIR)/AvHMiniMap.o \ $(NS_MOD_OBJ_DIR)/AvHMovementUtil.o \ $(NS_MOD_OBJ_DIR)/AvHNetworkMessages.o \ $(NS_MOD_OBJ_DIR)/AvHOrder.o \ $(NS_MOD_OBJ_DIR)/AvHParasiteGun.o \ $(NS_MOD_OBJ_DIR)/AvHParticleSystem.o \ $(NS_MOD_OBJ_DIR)/AvHParticleSystemEntity.o \ $(NS_MOD_OBJ_DIR)/AvHParticleSystemManager.o \ $(NS_MOD_OBJ_DIR)/AvHParticleTemplate.o \ $(NS_MOD_OBJ_DIR)/AvHParticleTemplateServer.o \ $(NS_MOD_OBJ_DIR)/AvHPistol.o \ $(NS_MOD_OBJ_DIR)/AvHPlayer.o \ $(NS_MOD_OBJ_DIR)/AvHPlayerUpgrade.o \ $(NS_MOD_OBJ_DIR)/AvHPrimalScream.o \ $(NS_MOD_OBJ_DIR)/AvHPushableBuildable.o \ $(NS_MOD_OBJ_DIR)/AvHReinforceable.o \ $(NS_MOD_OBJ_DIR)/AvHResearchManager.o \ $(NS_MOD_OBJ_DIR)/AvHScriptManager.o \ $(NS_MOD_OBJ_DIR)/AvHScriptServer.o \ $(NS_MOD_OBJ_DIR)/AvHScriptShared.o \ $(NS_MOD_OBJ_DIR)/AvHSelectionHelper.o \ $(NS_MOD_OBJ_DIR)/AvHServerPlayerData.o \ $(NS_MOD_OBJ_DIR)/AvHServerUtil.o \ $(NS_MOD_OBJ_DIR)/AvHSharedMovementInfo.o \ $(NS_MOD_OBJ_DIR)/AvHSharedUtil.o \ $(NS_MOD_OBJ_DIR)/AvHSiegeTurret.o \ $(NS_MOD_OBJ_DIR)/AvHSonicGun.o \ $(NS_MOD_OBJ_DIR)/AvHSoundListManager.o \ $(NS_MOD_OBJ_DIR)/AvHSpecials.o \ $(NS_MOD_OBJ_DIR)/AvHSpikeGun.o \ $(NS_MOD_OBJ_DIR)/AvHSpitGun.o \ $(NS_MOD_OBJ_DIR)/AvHSpores.o \ $(NS_MOD_OBJ_DIR)/AvHStomp.o \ $(NS_MOD_OBJ_DIR)/AvHSwipe.o \ $(NS_MOD_OBJ_DIR)/AvHTeam.o \ $(NS_MOD_OBJ_DIR)/AvHTechNode.o \ $(NS_MOD_OBJ_DIR)/AvHTurret.o \ $(NS_MOD_OBJ_DIR)/AvHTechTree.o \ $(NS_MOD_OBJ_DIR)/AvHUmbraGun.o \ $(NS_MOD_OBJ_DIR)/AvHVisibleBlipList.o \ $(NS_MOD_OBJ_DIR)/AvHVoiceHelper.o \ $(NS_MOD_OBJ_DIR)/AvHWebSpinner.o \ $(NS_MOD_OBJ_DIR)/AvHWeldable.o \ $(NS_MOD_OBJ_DIR)/AvHWelder.o \ $(NS_MOD_OBJ_DIR)/AvHWorldUpdate.o \ $(NS_MOD_OBJ_DIR)/AvHTechSlotManager.o \ $(NS_MOD_OBJ_DIR)/AvHSpawn.o \ $(NS_MOD_OBJ_DIR)/CollisionUtil.o \ $(NS_MOD_OBJ_DIR)/CollisionChecker.o \ $(NS_MOD_OBJ_DIR)/CollisionChecker_ServerOnly.o \ $(NS_MOD_OBJ_DIR)/NetworkMeter.o \ PM_OBJS = \ $(PM_OBJ_DIR)/pm_shared.o \ $(PM_OBJ_DIR)/pm_math.o \ $(PM_OBJ_DIR)/pm_debug.o GAME_SHARED_OBJS = \ $(GAME_SHARED_OBJ_DIR)/voice_banmgr.o \ $(GAME_SHARED_OBJ_DIR)/voice_gamemgr.o \ UTIL_OBJS = \ $(UTIL_OBJ_DIR)/Balance.o \ $(UTIL_OBJ_DIR)/Checksum.o \ $(UTIL_OBJ_DIR)/LinuxSupport.o \ $(UTIL_OBJ_DIR)/Mat3.o \ $(UTIL_OBJ_DIR)/MathUtil.o \ $(UTIL_OBJ_DIR)/Quat.o \ $(UTIL_OBJ_DIR)/Stacktrace.o \ $(UTIL_OBJ_DIR)/STLUtil.o \ $(UTIL_OBJ_DIR)/Tokenizer.o \ TEXTREP_OBJS = \ $(TEXTREP_OBJ_DIR)/TRDescription.o \ $(TEXTREP_OBJ_DIR)/TRFactory.o \ DETOUR_OBJS = \ $(DETOUR_OBJ_DIR)/DetourAlloc.o \ $(DETOUR_OBJ_DIR)/DetourAssert.o \ $(DETOUR_OBJ_DIR)/DetourCommon.o \ $(DETOUR_OBJ_DIR)/DetourNavMesh.o \ $(DETOUR_OBJ_DIR)/DetourNavMeshBuilder.o \ $(DETOUR_OBJ_DIR)/DetourNavMeshQuery.o \ $(DETOUR_OBJ_DIR)/DetourNode.o \ $(DETOUR_OBJ_DIR)/DetourTileCache.o \ $(DETOUR_OBJ_DIR)/DetourTileCacheBuilder.o \ all: dirs ns.$(SHLIBEXT) dirs: -mkdir $(BUILD_OBJ_DIR) -mkdir $(HLDLL_OBJ_DIR) -mkdir $(NS_MOD_OBJ_DIR) -mkdir $(HLWPN_OBJ_DIR) -mkdir $(PM_OBJ_DIR) -mkdir $(UTIL_OBJ_DIR) -mkdir $(TEXTREP_OBJ_DIR) -mkdir $(GAME_SHARED_OBJ_DIR) -mkdir $(DETOUR_OBJ_DIR) ns.$(SHLIBEXT): $(HLDLL_OBJS) $(MOD_OBJS) $(PM_OBJS) $(GAME_SHARED_OBJS) $(UTIL_OBJS) $(TEXTREP_OBJS) $(DETOUR_OBJS) $(CC) $(SHLIBLDFLAGS) -o $(BUILD_DIR)/$@ $(HLDLL_OBJS) $(MOD_OBJS) $(PM_OBJS) $(GAME_SHARED_OBJS) $(UTIL_OBJS) $(TEXTREP_OBJS) $(DETOUR_OBJS) $(LDFLAGS) @echo "Done..." $(NS_MOD_OBJ_DIR)/%.o: $(NS_MOD_SRC_DIR)/%.cpp $(DO_MOD_CC) $(HLDLL_OBJ_DIR)/%.o : $(HLDLL_SRC_DIR)/%.cpp $(DO_HLDLL_CC) $(PM_OBJ_DIR)/%.o : $(PM_SRC_DIR)/%.cpp $(DO_PM_CC) $(GAME_SHARED_OBJ_DIR)/%.o : $(GAME_SHARED_SRC_DIR)/%.cpp $(DO_GAME_SHARED_CC) $(UTIL_OBJ_DIR)/%.o : $(UTIL_SRC_DIR)/%.cpp $(DO_UTIL_CC) $(TEXTREP_OBJ_DIR)/%.o : $(TEXTREP_SRC_DIR)/%.cpp $(DO_TEXTREP_CC) $(DETOUR_OBJ_DIR)/%.o : $(DETOUR_SRC_DIR)/%.cpp $(DO_DETOUR_CC) clean: -rm -rf $(GAME_SHARED_OBJ_DIR) -rm -rf $(PM_OBJ_DIR) -rm -rf $(HLWPN_OBJ_DIR) -rm -rf $(HLDLL_OBJ_DIR) -rm -f ns.$(SHLIBEXT)