wiating for other civs turn hang on

hi there ,
so your saying , i need to compile a profile dll, run the game with it and see what happens?


**
ok, im trying to apply your nmake on to my vs, but it sais the project file is from an older version and theres an error in the convert.

how to i implement your nmake on my already existing project file?

can you help?

heres my project file:
Spoiler :
Code:
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
	ProjectType="Visual C++"
	Version="9.00"
	Name="CvGameCoreDLL"
	ProjectGUID="{29299FB8-F6C4-4054-A054-470F4E36D57B}"
	Keyword="MakeFileProj"
	TargetFrameworkVersion="196613"
	>
	<Platforms>
		<Platform
			Name="Win32"
		/>
	</Platforms>
	<ToolFiles>
	</ToolFiles>
	<Configurations>
		<Configuration
			Name="Debug|Win32"
			OutputDirectory="$(ConfigurationName)"
			IntermediateDirectory="$(ConfigurationName)"
			ConfigurationType="0"
			>
			<Tool
				Name="VCNMakeTool"
				BuildCommandLine="nmake Debug"
				ReBuildCommandLine="nmake Debug_clean&#x0D;&#x0A;nmake Debug"
				CleanCommandLine="nmake Debug_clean"
				Output=""
				PreprocessorDefinitions="WIN32;_DEBUG;_USRDLL;KMOD_PATH_FINDER;FASSERT_ENABLE"
				IncludeSearchPath=""
				ForcedIncludes=""
				AssemblySearchPath=""
				ForcedUsingAssemblies=""
				CompileAsManaged=""
			/>
		</Configuration>
		<Configuration
			Name="Release|Win32"
			OutputDirectory="$(ConfigurationName)"
			IntermediateDirectory="$(ConfigurationName)"
			ConfigurationType="0"
			>
			<Tool
				Name="VCNMakeTool"
				BuildCommandLine="nmake Release"
				ReBuildCommandLine="nmake Release_clean&#x0D;&#x0A;nmake Release"
				CleanCommandLine="nmake Release_clean"
				Output=""
				PreprocessorDefinitions="WIN32;NDEBUG;_USRDLL;KMOD_PATH_FINDER"
				IncludeSearchPath=""
				ForcedIncludes=""
				AssemblySearchPath=""
				ForcedUsingAssemblies=""
				CompileAsManaged=""
			/>
		</Configuration>
		<Configuration
			Name="Profile|Win32"
			OutputDirectory="$(ConfigurationName)"
			IntermediateDirectory="$(ConfigurationName)"
			ConfigurationType="0"
			>
			<Tool
				Name="VCNMakeTool"
				BuildCommandLine="nmake Profile"
				ReBuildCommandLine="nmake Profile_clean&#x0D;&#x0A;nmake Profile"
				CleanCommandLine="nmake Profile_clean"
				Output=""
				PreprocessorDefinitions="WIN32;NDEBUG;_USRDLL;FP_PROFILE_ENABLE;USE_INTERNAL_PROFILER;KMOD_PATH_FINDER"
				IncludeSearchPath=""
				ForcedIncludes=""
				AssemblySearchPath=""
				ForcedUsingAssemblies=""
				CompileAsManaged=""
			/>
		</Configuration>
	</Configurations>
	<References>
	</References>
	<Files>
		<Filter
			Name="Source Files"
			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
			>
			<File
				RelativePath=".\_precompile.cpp"
				>
			</File>
			<File
				RelativePath=".\BetterBTSAI.cpp"
				>
			</File>
			<File
				RelativePath=".\CvArea.cpp"
				>
			</File>
			<File
				RelativePath=".\CvArtFileMgr.cpp"
				>
			</File>
			<File
				RelativePath=".\CvBugOptions.cpp"
				>
			</File>
			<File
				RelativePath=".\CvCity.cpp"
				>
			</File>
			<File
				RelativePath=".\CvCityAI.cpp"
				>
			</File>
			<File
				RelativePath=".\CvDeal.cpp"
				>
			</File>
			<File
				RelativePath=".\CvDiploParameters.cpp"
				>
			</File>
			<File
				RelativePath=".\CvDLLButtonPopup.cpp"
				>
			</File>
			<File
				RelativePath=".\CvDLLEntity.cpp"
				>
			</File>
			<File
				RelativePath=".\CvDLLPython.cpp"
				>
			</File>
			<File
				RelativePath=".\CvDllPythonEvents.cpp"
				>
			</File>
			<File
				RelativePath=".\CvDllTranslator.cpp"
				>
			</File>
			<File
				RelativePath=".\CvDLLWidgetData.cpp"
				>
			</File>
			<File
				RelativePath=".\CvEventReporter.cpp"
				>
			</File>
			<File
				RelativePath=".\CvFractal.cpp"
				>
			</File>
			<File
				RelativePath=".\CvGame.cpp"
				>
			</File>
			<File
				RelativePath=".\CvGameAI.cpp"
				>
			</File>
			<File
				RelativePath=".\CvGameCoreDLL.cpp"
				>
			</File>
			<File
				RelativePath=".\CvGameCoreUtils.cpp"
				>
			</File>
			<File
				RelativePath=".\CvGameInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CvGameTextMgr.cpp"
				>
			</File>
			<File
				RelativePath=".\CvTextScreen.cpp"
				>
			</File>
			<File
				RelativePath=".\CvGlobals.cpp"
				>
			</File>
			<File
				RelativePath=".\CvHallOfFameInfo.cpp"
				>
			</File>
			<File
				RelativePath=".\CvInfos.cpp"
				>
			</File>
			<File
				RelativePath=".\CvInfoWater.cpp"
				>
			</File>
			<File
				RelativePath=".\CvInitCore.cpp"
				>
			</File>
			<File
				RelativePath=".\CvMap.cpp"
				>
			</File>
			<File
				RelativePath=".\CvMapGenerator.cpp"
				>
			</File>
			<File
				RelativePath=".\CvMessageControl.cpp"
				>
			</File>
			<File
				RelativePath=".\CvMessageData.cpp"
				>
			</File>
			<File
				RelativePath=".\CvPlayer.cpp"
				>
			</File>
			<File
				RelativePath=".\CvPlayerAI.cpp"
				>
			</File>
			<File
				RelativePath=".\CvPlot.cpp"
				>
			</File>
			<File
				RelativePath=".\CvPlotGroup.cpp"
				>
			</File>
			<File
				RelativePath=".\CvPopupInfo.cpp"
				>
			</File>
			<File
				RelativePath=".\CvPopupReturn.cpp"
				>
			</File>
			<File
				RelativePath=".\CvRandom.cpp"
				>
			</File>
			<File
				RelativePath=".\CvReplayInfo.cpp"
				>
			</File>
			<File
				RelativePath=".\CvReplayMessage.cpp"
				>
			</File>
			<File
				RelativePath=".\CvSelectionGroup.cpp"
				>
			</File>
			<File
				RelativePath=".\CvSelectionGroupAI.cpp"
				>
			</File>
			<File
				RelativePath=".\CvStatistics.cpp"
				>
			</File>
			<File
				RelativePath=".\CvStructs.cpp"
				>
			</File>
			<File
				RelativePath=".\CvTalkingHeadMessage.cpp"
				>
			</File>
			<File
				RelativePath=".\CvTeam.cpp"
				>
			</File>
			<File
				RelativePath=".\CvTeamAI.cpp"
				>
			</File>
			<File
				RelativePath=".\CvTextScreens.cpp"
				>
			</File>
			<File
				RelativePath=".\CvUnit.cpp"
				>
			</File>
			<File
				RelativePath=".\CvUnitAI.cpp"
				>
			</File>
			<File
				RelativePath=".\CvXMLLoadUtility.cpp"
				>
			</File>
			<File
				RelativePath=".\CvXMLLoadUtilityGet.cpp"
				>
			</File>
			<File
				RelativePath=".\CvXMLLoadUtilityInit.cpp"
				>
			</File>
			<File
				RelativePath=".\CvXMLLoadUtilitySet.cpp"
				>
			</File>
			<File
				RelativePath=".\CyArea.cpp"
				>
			</File>
			<File
				RelativePath=".\CyAreaInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyArgsList.cpp"
				>
			</File>
			<File
				RelativePath=".\CyArtFileMgr.cpp"
				>
			</File>
			<File
				RelativePath=".\CyArtFileMgrInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyCity.cpp"
				>
			</File>
			<File
				RelativePath=".\CyCityInterface1.cpp"
				>
			</File>
			<File
				RelativePath=".\CyDeal.cpp"
				>
			</File>
			<File
				RelativePath=".\CyEnumsInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGame.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGameCoreUtils.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGameCoreUtilsInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGameInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGameTextMgr.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGameTextMgrInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGlobalContext.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGlobalContextInterface1.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGlobalContextInterface2.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGlobalContextInterface3.cpp"
				>
			</File>
			<File
				RelativePath=".\CyGlobalContextInterface4.cpp"
				>
			</File>
			<File
				RelativePath=".\CyHallOfFameInfo.cpp"
				>
			</File>
			<File
				RelativePath=".\CyHallOfFameInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyInfoInterface1.cpp"
				>
			</File>
			<File
				RelativePath=".\CyInfoInterface2.cpp"
				>
			</File>
			<File
				RelativePath=".\CyInfoInterface3.cpp"
				>
			</File>
			<File
				RelativePath=".\CyMap.cpp"
				>
			</File>
			<File
				RelativePath=".\CyMapGenerator.cpp"
				>
			</File>
			<File
				RelativePath=".\CyMapGeneratorInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyMapInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyMessageControl.cpp"
				>
			</File>
			<File
				RelativePath=".\CyMessageControlInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyPlayer.cpp"
				>
			</File>
			<File
				RelativePath=".\CyPlayerInterface1.cpp"
				>
			</File>
			<File
				RelativePath=".\CyPlayerInterface2.cpp"
				>
			</File>
			<File
				RelativePath=".\CyPlot.cpp"
				>
			</File>
			<File
				RelativePath=".\CyPlotInterface1.cpp"
				>
			</File>
			<File
				RelativePath=".\CyRandomInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyReplayInfo.cpp"
				>
			</File>
			<File
				RelativePath=".\CySelectionGroup.cpp"
				>
			</File>
			<File
				RelativePath=".\CySelectionGroupInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyStructsInterface1.cpp"
				>
			</File>
			<File
				RelativePath=".\CyTeam.cpp"
				>
			</File>
			<File
				RelativePath=".\CyTeamInterface.cpp"
				>
			</File>
			<File
				RelativePath=".\CyUnit.cpp"
				>
			</File>
			<File
				RelativePath=".\CyUnitInterface1.cpp"
				>
			</File>
			<File
				RelativePath=".\FAssert.cpp"
				>
			</File>
			<File
				RelativePath=".\FDialogTemplate.cpp"
				>
			</File>
			<File
				RelativePath=".\KmodPathFinder.cpp"
				>
			</File>
		</Filter>
		<Filter
			Name="Header Files"
			Filter="h;hpp;hxx;hm;inl;inc;xsd"
			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
			>
			<File
				RelativePath=".\AI_Defines.h"
				>
			</File>
			<File
				RelativePath=".\BetterBTSAI.h"
				>
			</File>
			<File
				RelativePath=".\CvArea.h"
				>
			</File>
			<File
				RelativePath=".\CvArtFileMgr.h"
				>
			</File>
			<File
				RelativePath=".\CvBugOptions.h"
				>
			</File>
			<File
				RelativePath=".\CvCity.h"
				>
			</File>
			<File
				RelativePath=".\CvCityAI.h"
				>
			</File>
			<File
				RelativePath=".\CvDeal.h"
				>
			</File>
			<File
				RelativePath=".\CvDefines.h"
				>
			</File>
			<File
				RelativePath=".\CvDefinesTGA.h"
				>
			</File>
			<File
				RelativePath=".\CvDiploParameters.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLButtonPopup.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLDataStreamIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLEngineIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLEntity.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLEntityIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLEventReporterIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLFAStarIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLFlagEntityIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLIniParserIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLInterfaceIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLPlotBuilderIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDllPythonEvents.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLPythonIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLSymbolIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDllTranslator.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLUtilityIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLWidgetData.h"
				>
			</File>
			<File
				RelativePath=".\CvDLLXMLIFaceBase.h"
				>
			</File>
			<File
				RelativePath=".\CvEnums.h"
				>
			</File>
			<File
				RelativePath=".\CvEventReporter.h"
				>
			</File>
			<File
				RelativePath=".\CvFractal.h"
				>
			</File>
			<File
				RelativePath=".\CvGame.h"
				>
			</File>
			<File
				RelativePath=".\CvGameAI.h"
				>
			</File>
			<File
				RelativePath=".\CvGameCoreDLL.h"
				>
			</File>
			<File
				RelativePath=".\CvGameCoreDLLDefNew.h"
				>
			</File>
			<File
				RelativePath=".\CvGameCoreDLLUndefNew.h"
				>
			</File>
			<File
				RelativePath=".\CvGameCoreUtils.h"
				>
			</File>
			<File
				RelativePath=".\CvGameTextMgr.h"
				>
			</File>
			<File
				RelativePath=".\CvGlobals.h"
				>
			</File>
			<File
				RelativePath=".\CvHallOfFameInfo.h"
				>
			</File>
			<File
				RelativePath=".\CvInfos.h"
				>
			</File>
			<File
				RelativePath=".\CvInfoWater.h"
				>
			</File>
			<File
				RelativePath=".\CvInitCore.h"
				>
			</File>
			<File
				RelativePath=".\CvMap.h"
				>
			</File>
			<File
				RelativePath=".\CvMapGenerator.h"
				>
			</File>
			<File
				RelativePath=".\CvMessageControl.h"
				>
			</File>
			<File
				RelativePath=".\CvMessageData.h"
				>
			</File>
			<File
				RelativePath=".\CvPlayer.h"
				>
			</File>
			<File
				RelativePath=".\CvPlayerAI.h"
				>
			</File>
			<File
				RelativePath=".\CvPlot.h"
				>
			</File>
			<File
				RelativePath=".\CvPlotGroup.h"
				>
			</File>
			<File
				RelativePath=".\CvPopupInfo.h"
				>
			</File>
			<File
				RelativePath=".\CvPopupReturn.h"
				>
			</File>
			<File
				RelativePath=".\CvRandom.h"
				>
			</File>
			<File
				RelativePath=".\CvReplayInfo.h"
				>
			</File>
			<File
				RelativePath=".\CvReplayMessage.h"
				>
			</File>
			<File
				RelativePath=".\CvSelectionGroup.h"
				>
			</File>
			<File
				RelativePath=".\CvSelectionGroupAI.h"
				>
			</File>
			<File
				RelativePath=".\CvStatistics.h"
				>
			</File>
			<File
				RelativePath=".\CvString.h"
				>
			</File>
			<File
				RelativePath=".\CvStructs.h"
				>
			</File>
			<File
				RelativePath=".\CvTalkingHeadMessage.h"
				>
			</File>
			<File
				RelativePath=".\CvTeam.h"
				>
			</File>
			<File
				RelativePath=".\CvTeamAI.h"
				>
			</File>
			<File
				RelativePath=".\CvUnit.h"
				>
			</File>
			<File
				RelativePath=".\CvUnitAI.h"
				>
			</File>
			<File
				RelativePath=".\CvXMLLoadUtility.h"
				>
			</File>
			<File
				RelativePath=".\CyArea.h"
				>
			</File>
			<File
				RelativePath=".\CyArgsList.h"
				>
			</File>
			<File
				RelativePath=".\CyArtFileMgr.h"
				>
			</File>
			<File
				RelativePath=".\CyCity.h"
				>
			</File>
			<File
				RelativePath=".\CyDeal.h"
				>
			</File>
			<File
				RelativePath=".\CyGame.h"
				>
			</File>
			<File
				RelativePath=".\CyGameCoreUtils.h"
				>
			</File>
			<File
				RelativePath=".\CyGameTextMgr.h"
				>
			</File>
			<File
				RelativePath=".\CyGlobalContext.h"
				>
			</File>
			<File
				RelativePath=".\CyHallOfFameInfo.h"
				>
			</File>
			<File
				RelativePath=".\CyMap.h"
				>
			</File>
			<File
				RelativePath=".\CyMapGenerator.h"
				>
			</File>
			<File
				RelativePath=".\CyMessageControl.h"
				>
			</File>
			<File
				RelativePath=".\CyPlayer.h"
				>
			</File>
			<File
				RelativePath=".\CyPlot.h"
				>
			</File>
			<File
				RelativePath=".\CyReplayInfo.h"
				>
			</File>
			<File
				RelativePath=".\CySelectionGroup.h"
				>
			</File>
			<File
				RelativePath=".\CyTeam.h"
				>
			</File>
			<File
				RelativePath=".\CyUnit.h"
				>
			</File>
			<File
				RelativePath=".\FAssert.h"
				>
			</File>
			<File
				RelativePath=".\FAStarNode.h"
				>
			</File>
			<File
				RelativePath=".\FDataStreamBase.h"
				>
			</File>
			<File
				RelativePath=".\FDialogTemplate.h"
				>
			</File>
			<File
				RelativePath=".\FFreeListArray.h"
				>
			</File>
			<File
				RelativePath=".\FFreeListArrayBase.h"
				>
			</File>
			<File
				RelativePath=".\FFreeListTrashArray.h"
				>
			</File>
			<File
				RelativePath=".\FInputDevice.h"
				>
			</File>
			<File
				RelativePath=".\FProfiler.h"
				>
			</File>
			<File
				RelativePath=".\FVariableSystem.h"
				>
			</File>
			<File
				RelativePath=".\FVariableSystem.inl"
				>
			</File>
			<File
				RelativePath=".\interfaceDirtyBits.inl"
				>
			</File>
			<File
				RelativePath=".\KmodPathFinder.h"
				>
			</File>
			<File
				RelativePath=".\LinkedList.h"
				>
			</File>
			<File
				RelativePath=".\resource.h"
				>
			</File>
		</Filter>
		<Filter
			Name="Resource Files"
			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
			>
			<File
				RelativePath=".\CvGameCoreDLL.rc"
				>
			</File>
		</Filter>
	</Files>
	<Globals>
	</Globals>
</VisualStudioProject>

and heres my older nmake:
Spoiler :
Code:
#### Civilization 4 SDK Makefile 1.0 ####
####  Copyright 2010 Danny Daemonic  ####
#########################################

#### Paths ####
TOOLKIT=C:\compile stuff\Microsoft Visual C++ Toolkit 2003
PSDK=C:\compile stuff\WindowsSDK
CIVINSTALL=D:\games\Civilization IV\Beyond the Sword
GLOBALBOOST=$(CIVINSTALL)\CvGameCoreDLL\Boost-1.32.0
GLOBALPYTHON=$(CIVINSTALL)\CvGameCoreDLL\Python24
## Uncomment to have newly compiled dlls copied to your mod's Assets directory
#YOURMOD=C:\Users\Danny\Documents\My Games\beyond the sword\MODS\MyMod

#### Tools ####
CC="$(TOOLKIT)\bin\cl.exe"
CPP="$(TOOLKIT)\bin\cl.exe"
LD="$(TOOLKIT)\bin\link.exe"
RC="$(PSDK)\bin\rc.exe"
## Uncomment to build dependencies using fastdep
FD="$(MAKEDIR)\bin\fastdep.exe"

#### BLACKLIST ####
## Uncomment to block CvTextScreen (accidentally included by Firaxis)
BLACKLIST=CvTextScreens

#### You shouldn't need to modify anything beyond this point ####
#################################################################

#### Target Files ####
Debug_BIN=Debug\CvGameCoreDLL.dll
Release_BIN=Release\CvGameCoreDLL.dll
Profile_BIN=Profile\CvGameCoreDLL.dll

!IF [IF NOT EXIST CvGameCoreDLL.rc EXIT 1] == 0
Debug_RESOURCE=Debug\CvGameCoreDLL.res
Release_RESOURCE=Release\CvGameCoreDLL.res
Profile_RESOURCE=Profile\CvGameCoreDLL.res
!ENDIF

Debug_STATICLIB=Debug\CvGameCoreDLL.lib
Release_STATICLIB=Release\CvGameCoreDLL.lib
Profile_STATICLIB=Profile\CvGameCoreDLL.lib

Debug_LIBDEF=Debug\CvGameCoreDLL.def
Release_LIBDEF=Release\CvGameCoreDLL.def
Profile_LIBDEF=Profile\CvGameCoreDLL.def

Debug_PCH=Debug\CvGameCoreDLL.pch
Release_PCH=Release\CvGameCoreDLL.pch
Profile_PCH=Profile\CvGameCoreDLL.pch

Debug_PDB=Debug\CvGameCoreDLL.pdb
Release_PDB=Release\CvGameCoreDLL.pdb
Profile_PDB=Profile\CvGameCoreDLL.pdb

Debug_OTHER=Debug\CvGameCoreDLL.exp Debug\CvGameCoreDLL.ilk
Release_OTHER=Release\CvGameCoreDLL.exp
Profile_OTHER=Profile\CvGameCoreDLL.exp

#### CFLAGS ####
GLOBAL_CFLAGS=/GR /Gy /W3 /EHsc /Gd /Gm- /DWIN32 /D_WINDOWS /D_USRDLL /DCVGAMECOREDLL_EXPORTS /Yu"CvGameCoreDLL.h"
Debug_CFLAGS=/MD /Zi /Od /D_DEBUG /DLOG_AI /RTC1 /Fp"$(Debug_PCH)" $(GLOBAL_CFLAGS)
Release_CFLAGS=/MD /O2 /Oy /Oi /Og /G7 /DNDEBUG /DFINAL_RELEASE /Fp"$(Release_PCH)" $(GLOBAL_CFLAGS)
Profile_CFLAGS=/MD /O2 /Oy /Oi /Og /G7 /DNDEBUG /DFP_PROFILE_ENABLE /DUSE_INTERNAL_PROFILER /Fp"$(Profile_PCH)" $(GLOBAL_CFLAGS)

#### LDFLAGS ####
GLOBAL_LDFLAGS=/DLL /NOLOGO /SUBSYSTEM:WINDOWS /LARGEADDRESSAWARE /TLBID:1
Debug_LDFLAGS=/INCREMENTAL /DEBUG /PDB:"$(Debug_PDB)" /IMPLIB:"$(Debug_STATICLIB)" $(GLOBAL_LDFLAGS)
Release_LDFLAGS=/INCREMENTAL:NO /OPT:REF /OPT:ICF /PDB:"$(Release_PDB)" $(GLOBAL_LDFLAGS)
Profile_LDFLAGS=/INCREMENTAL:NO /OPT:REF /OPT:ICF /PDB:"$(Profile_PDB)" $(GLOBAL_LDFLAGS)

#### INCLUDES ####
GLOBAL_INCS=/I"$(TOOLKIT)/include" /I"$(PSDK)/Include" /I"$(PSDK)/Include/mfc"
PROJECT_INCS=/IBoost-1.32.0/include /IPython24/include
Debug_INCS=$(PROJECT_INCS) $(GLOBAL_INCS)
Release_INCS=$(PROJECT_INCS) $(GLOBAL_INCS)
Profile_INCS=$(PROJECT_INCS) $(GLOBAL_INCS)

#### LIBS ####
GLOBAL_LIBS=/LIBPATH:"$(TOOLKIT)/lib" /LIBPATH:"$(PSDK)/Lib" winmm.lib user32.lib
PROJECT_LIBS=/LIBPATH:Python24/libs /LIBPATH:boost-1.32.0/libs/ boost_python-vc71-mt-1_32.lib
Debug_LIBS=$(PROJECT_LIBS) $(GLOBAL_LIBS) msvcprt.lib
Release_LIBS=$(PROJECT_LIBS) $(GLOBAL_LIBS)
Profile_LIBS=$(PROJECT_LIBS) $(GLOBAL_LIBS)

#### Objects ####
Debug_LINKOBJS=$(Debug_OBJS)
Release_LINKOBJS=$(Release_OBJS)
Profile_LINKOBJS=$(Profile_OBJS)

#### Auto SOURCES/OBJS ####
!IF [ECHO SOURCES= \> sources.mk] == 0 && \
    [FOR %i IN (*.cpp) DO @ECHO. "%i" \>> sources.mk] == 0 && \
    [ECHO.>> sources.mk] == 0 && \
    [ECHO Debug_OBJS= \>> sources.mk] == 0 && \
    [FOR /F "delims=." %i IN ('dir /b *.cpp') DO @ECHO. Debug\%i.obj \>> sources.mk] == 0 && \
    [ECHO.>> sources.mk] == 0 && \
    [ECHO Release_OBJS= \>> sources.mk] == 0 && \
    [FOR /F "delims=." %i IN ('dir /b *.cpp') DO @ECHO. Release\%i.obj \>> sources.mk] == 0 && \
    [ECHO.>> sources.mk] == 0 && \
    [ECHO Profile_OBJS= \>> sources.mk] == 0 && \
    [FOR /F "delims=." %i IN ('dir /b *.cpp') DO @ECHO. Profile\%i.obj \>> sources.mk] == 0 && \
    [ECHO.>> sources.mk] == 0
!INCLUDE sources.mk
!IF [DEL sources.mk]
!ENDIF
!ENDIF

#### Targets ####
#################

.PHONY: all clean Debug_clean Release_clean Profile_clean Debug Release Profile

all: Debug Release

clean: Debug_clean Release_clean Profile_clean

Debug_clean:
	@FOR %i IN ($(Debug_BIN) $(Debug_STATICLIB) $(Debug_LIBDEF) \
		Debug\*.obj Debug\*.@ $(Debug_RESOURCE) \
		$(Debug_PCH) $(Debug_PDB) $(Debug_OTHER)) DO @IF EXIST "%i" DEL "%i"

Release_clean:
	@FOR %i IN ($(Release_BIN) $(Release_STATICLIB) $(Release_LIBDEF) \
		Release\*.obj Release\*.@ $(Release_RESOURCE) \
		$(Release_PCH) $(Release_PDB) $(Release_OTHER)) DO @IF EXIST "%i" DEL "%i"

Profile_clean:
	@FOR %i IN ($(Profile_BIN) $(Profile_STATICLIB) $(Profile_LIBDEF) \
		Profile\*.obj Profile\*.@ $(Profile_RESOURCE) \
		$(Profile_PCH) $(Profile_PDB) $(Profile_OTHER)) DO @IF EXIST "%i" DEL "%i"

Debug: Debug_DIR Debug_unfinished $(Debug_PCH) $(Debug_BIN)
!IFDEF YOURMOD
	-COPY "$(Debug_BIN)" "$(YOURMOD)\Assets\."
!ENDIF

Release: Release_DIR Release_unfinished $(Release_PCH) $(Release_BIN)
!IFDEF YOURMOD
	-COPY "$(Release_BIN)" "$(YOURMOD)\Assets\."
!ENDIF

Profile: Profile_DIR Profile_unfinished $(Profile_PCH) $(Profile_BIN)
!IFDEF YOURMOD
	-COPY "$(Profile_BIN)" "$(YOURMOD)\Assets\."
!ENDIF

Debug_DIR:
	-@IF NOT EXIST "Debug\." MKDIR "Debug"

Release_DIR:
	-@IF NOT EXIST "Release\." MKDIR "Release"

Profile_DIR:
	-@IF NOT EXIST "Profile\." MKDIR "Profile"

Debug_unfinished:
	@ECHO.>Debug\unfinished.@
	@FOR /F "delims=@" %i IN ('dir /b Debug\*.@') DO \
		@IF EXIST "Debug\%i" DEL "Debug\%i"
	@FOR /F %i IN ('dir /b Debug\*.@') DO \
		@IF EXIST "Debug\%i" DEL "Debug\%i"

Release_unfinished:
	@ECHO.>Release\unfinished.@
	@FOR /F "delims=@" %i IN ('dir /b Release\*.@') DO \
		@IF EXIST "Release\%i" DEL "Release\%i"
	@FOR /F %i IN ('dir /b Release\*.@') DO \
		@IF EXIST "Release\%i" DEL "Release\%i"

Profile_unfinished:
	@ECHO.>Profile\unfinished.@
	@FOR /F "delims=@" %i IN ('dir /b Profile\*.@') DO \
		@IF EXIST "Profile\%i" DEL "Profile\%i"
	@FOR /F %i IN ('dir /b Profile\*.@') DO \
		@IF EXIST "Profile\%i" DEL "Profile\%i"
		
$(Debug_BIN): $(Debug_LINKOBJS) $(Debug_RESOURCE)
	$(LD) /out:$(Debug_BIN) $(Debug_LDFLAGS) $(Debug_LIBS) $(Debug_LINKOBJS) $(Debug_RESOURCE)

$(Release_BIN): $(Release_LINKOBJS) $(Release_RESOURCE)
	$(LD) /out:$(Release_BIN) $(Release_LDFLAGS) $(Release_LIBS) $(Release_LINKOBJS) $(Release_RESOURCE)

$(Profile_BIN): $(Profile_LINKOBJS) $(Profile_RESOURCE)
	$(LD) /out:$(Profile_BIN) $(Profile_LDFLAGS) $(Profile_LIBS) $(Profile_LINKOBJS) $(Profile_RESOURCE)

.cpp{Debug}.obj:
	@ECHO.>"$*.obj.@"
    $(CPP) /nologo $(Debug_CFLAGS) $(Debug_INCS) /Fo$*.obj /c $<
	@DEL "$*.obj.@"

.cpp{Release}.obj:
	@ECHO.>"$*.obj.@"
    $(CPP) /nologo $(Release_CFLAGS) $(Release_INCS) /Fo$*.obj /c $<
	@DEL "$*.obj.@"

.cpp{Profile}.obj:
	@ECHO.>"$*.obj.@"
    $(CPP) /nologo $(Profile_CFLAGS) $(Profile_INCS) /Fo$*.obj /c $<
	@DEL "$*.obj.@"

$(Debug_PCH) Debug\_precompile.obj:
	@ECHO.>"$(Debug_PCH).@"
	@ECHO.>"Debug\_precompile.obj.@"
	$(CPP) /nologo $(Debug_CFLAGS) $(Debug_INCS) /YcCvGameCoreDLL.h /Fo"Debug\_precompile.obj" /c _precompile.cpp
	@DEL "$(Debug_PCH).@"
	@DEL "Debug\_precompile.obj.@"

$(Release_PCH) Release\_precompile.obj:
	@ECHO.>"$(Release_PCH).@"
	@ECHO.>"Release\_precompile.obj.@"
    $(CPP) /nologo $(Release_CFLAGS) $(Release_INCS) /YcCvGameCoreDLL.h /Fo"Release\_precompile.obj" /c _precompile.cpp
	@DEL "$(Release_PCH).@"
	@DEL "Release\_precompile.obj.@"

$(Profile_PCH) Profile\_precompile.obj:
	@ECHO.>"$(Profile_PCH).@"
	@ECHO.>"Profile\_precompile.obj.@"
    $(CPP) /nologo $(Profile_CFLAGS) $(Profile_INCS) /YcCvGameCoreDLL.h /Fo"Profile\_precompile.obj" /c _precompile.cpp
	@DEL "$(Profile_PCH).@"
	@DEL "Profile\_precompile.obj.@"

.rc{Debug}.res:
	@ECHO.>"$*.res.@"
	$(RC) /Fo$@ $(Debug_INCS) $<
	@DEL "$*.res.@"

.rc{Release}.res:
	@ECHO.>"$*.res.@"
	$(RC) /Fo$@ $(Release_INCS) $<
	@DEL "$*.res.@"

.rc{Profile}.res:
	@ECHO.>"$*.res.@"
	$(RC) /Fo$@ $(Profile_INCS) $<
	@DEL "$*.res.@"

!IFDEF BLACKLIST

Debug\$(BLACKLIST).obj: $(BLACKLIST).cpp
	@ECHO.>"$*.obj.@"
	@ECHO.>"$*-dummy.cpp"
	$(CPP) /nologo $(Debug_CFLAGS) $(Debug_INCS) /Y- /Fo$@ /c "$*-dummy.cpp"
	@DEL "$*-dummy.cpp"
	@DEL "$*.obj.@"

Release\$(BLACKLIST).obj: $(BLACKLIST).cpp
	@ECHO.>"$*.obj.@"
	@ECHO.>"$*-dummy.cpp"
	$(CPP) /nologo $(Release_CFLAGS) $(Release_INCS) /Y- /Fo$@ /c "$*-dummy.cpp"
	@DEL "$*-dummy.cpp"
	@DEL "$*.obj.@"

Profile\$(BLACKLIST).obj: $(BLACKLIST).cpp
	@ECHO.>"$*.obj.@"
	@ECHO.>"$*-dummy.cpp"
	$(CPP) /nologo $(Profile_CFLAGS) $(Profile_INCS) /Y- /Fo$@ /c "$*-dummy.cpp"
	@DEL "$*-dummy.cpp"
	@DEL "$*.obj.@"

!ENDIF

!IFDEF FD

!IF [IF NOT EXIST $(FD) EXIT 1] == 0
!IF [$(FD) --objectextension=pch -q -O Debug CvGameCoreDLL.cpp > depends] != 0 || \
    [$(FD) --objectextension=obj -q -O Debug $(SOURCES) >> depends] != 0 || \
    [$(FD) --objectextension=pch -q -O Release CvGameCoreDLL.cpp >> depends] != 0 || \
    [$(FD) --objectextension=obj -q -O Release $(SOURCES) >> depends] != 0 || \
    [$(FD) --objectextension=pch -q -O Profile CvGameCoreDLL.cpp >> depends] != 0 || \
    [$(FD) --objectextension=obj -q -O Profile $(SOURCES) >> depends] != 0
!MESSAGE Error running fastdep.
!ENDIF
!ELSE
!IF [ECHO "fastdep.exe" NOT FOUND! && \
     ECHO Please edit Makefile to reflect the correct path of fastdep. && \
     ECHO. ]
!ENDIF
!ENDIF

!ENDIF

!IF EXIST(depends)
!INCLUDE depends
!ENDIF
 
The project files are for VC 2010. I thought they would upgrade to 2013 without any issues :(

You can replace your Makefile with Makefile 2.3, but then you have to edit your project manually. Add a target and for nmake build command set
Code:
set TARGET=Profile
nmake dll
If you need more help than that, then ask in the makefile thread instead. Later other people might have the same problem and it would be best to not spread the solution into multiple threads.
 
how do i use the profile dll to find the error?
Two people have asked me this today (two different mods). I think I will have to write a wiki page about it or something because it's likely not the last time a mod freezes and I don't feel like explaining it every single time.

First of all, use a profile DLL, which mean use my makefile.

Next I will have to figure out how to explain profiling to somebody, who haven't profiled before. Being able to profile will make you able to locate slow parts of your code, which in turn are the places, which can be rewritten for speed with great results. I have done so to Religion and Revolution (colo mod) and decreased CPU usage by 40%, most of it in vanilla code. Profiling is actually designed with the intention of decreasing CPU usage, but my experience tells me that it works well for locating causes of freezing.
 
Hi, Nightingale,

as requested by you, I continue the error description in this thread (coming from here).

I've run the profile dll with Sleepy and got this result (a Sleepy savefile is available, too), but I have to admit that I except for assuming the error to be somewhere in the "find next unit"-section I don't have a clue of how to continue...

Spoiler :


In total, it seems that from time to time (unpredictable) the transports may face some problems, as in each case when the freezing happened during my turn, I could see some transports move on the map immediately before the freezing started.

Any advices?
 

Attachments

  • Ashampoo_Snap_2014.08.22_14h24m25s_001_.png
    Ashampoo_Snap_2014.08.22_14h24m25s_001_.png
    81.7 KB · Views: 159
The idea is to locate the function, which spends a lot more time than expected. The inclusive and exclusive columns are time spend there in/ex the functions that function calls. I would propose sorting by inclusive.

Scroll down to the first function which you didn't expect to spend that much time in and look for the telltale sign of a loop, which doesn't exit. It might be in the calling function.
 
i have found the trigger for my hang on,

it is a worker thats stands on a city ruin tile near a city.

further than this, i dont know more - what could it be? some build mission?

**
ok when the ai wants to build an farm like improvement on a city ruins - theres a hang on.
why? :(
 
The idea is to locate the function, which spends a lot more time than expected. The inclusive and exclusive columns are time spend there in/ex the functions that function calls. I would propose sorting by inclusive.

Scroll down to the first function which you didn't expect to spend that much time in and look for the telltale sign of a loop, which doesn't exit. It might be in the calling function.
Thanks, this led me to the point where the problem occurs. :goodjob:

Now I just have to find the cause... :think:
 
Hi keldath, just curious - are you able to open any advisor screens (with the function keys) while the game seems to be frozen? Do you still have a mouse pointer and can you still ineract with the menu's (maybe not exactly on the buttons but somewhere around them)?
 
Hi, well, on the hang ons, ican access the menu, and load save and such, i cannot seem to interact with anything else.
So i load the auto save, and i can start from the begining of the turn, ans start deleting civs, cities, and finally units.
Till i get the unit that get the hang on.
Afforess told me that units are the cause for hang ons.


As for the unit needed to have more the one moves, its really weird, perhaps its due to extra stuff i have in the schema file, sometimes i remove sdk xml tags but leave the schema with them...
Or, perhaps i have some xml wrong combo that crashes it.
Or, somthing about the upgrade to unit, the unit before in the upgrade tree, have moves 2, and perhaps the bug is cause the unit cant be upgraded to a worser unit? I dunno, just shooting ideas :)
 
Top Bottom