From: <jpg...@us...> - 2007-08-15 21:49:01
|
Revision: 1090 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1090&view=rev Author: jpgrayson Date: 2007-08-15 14:49:02 -0700 (Wed, 15 Aug 2007) Log Message: ----------- Update the vs2005 solution to be able to build release and debug dlls. Update README.VisualStudio with new instructions. Hopefully these new instructions are both simpler and more complete. Modified Paths: -------------- trunk/README.VisualStudio trunk/contrib/win/vs2005/iaxclient.sln trunk/contrib/win/vs2005/libiaxclient.vcproj Modified: trunk/README.VisualStudio =================================================================== --- trunk/README.VisualStudio 2007-08-15 21:38:51 UTC (rev 1089) +++ trunk/README.VisualStudio 2007-08-15 21:49:02 UTC (rev 1090) @@ -6,65 +6,63 @@ properties dialog in the Windows Control Panel to set these variables either for the user or system-wide. - %DXSDK_DIR% + %DXSDK_DIR% - Path to the DirectX SDK. The December 2006 version of the DirectX - SDK has been known to work. + Path to the DirectX SDK. The June 2007 version of the DirectX + SDK is known to work. The December 2006 version is also know to + work. - %PSDK_DIR% + %PSDK_DIR% - Path to the Platform SDK. The Platform SDK for Windows Server - 2003 Release 2 has been known to work. + Path to the Platform SDK. The Windows SDK is known to work for + this. Assuming the Windows SDK is installed in the default + location, PSDK_DIR would be set to: - 2) Open the solution file: contrib/win/vs2005/iaxclient.sln + C:\Program Files\Microsoft SDKs\Windows\v6.0 - 3) Build the solution. This will build the several libraries (.lib - files) that must be linked with the end application: + The older Platform SDK for Windows Server 2003 Release 2 is also + known to work. - Release\libgsm\libgsm.lib - Release\libiax2\libiax2.lib - Release\libiaxclient\libiaxclient.lib - Release\libportaudio\libportaudio.lib - Release\libportmixer\libportmixer.lib - Release\libvideolib\libvideolib.lib + See here for the Windows SDK: - 4) In addition to the above libraries that are built as part of the - iaxclient build, there are several other third-party library - dependencies that must be met: + http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf - speex - libtheora - libogg + 2) Obtain dependencies. At the time of this writing, portaudio-v19, + libogg 1.1.3, speex 1.2beta1, and libtheora 1.0alpha7 are required. + Source for these dependencies are available here: - These standard Windows-provided libraries must also be linked in: + http://portaudio.com/archives/pa_snapshot_v19.tar.gz + http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz + http://downloads.xiph.org/releases/speex/speex-1.2beta1.tar.gz + http://downloads.xiph.org/releases/theora/libtheora-1.0alpha7.tar.gz - comsuppw.lib - strmiids.lib - wininet.lib - ws2_32.lib + In order to build with the vcproj files provided by iaxclient, + these dependent libraries must be moved to be peer directories to + the iaxclient source directory. They also must have the following + names: libogg, speex, and libtheora. So the final directory + layout would be as follows: -Building a DLL --------------- -Note that the reference solution and project files are configured to -build a static library (.lib file). To build iaxclient as a dynamic -library (.dll file), the libiaxclient project needs to be modified. -First, change the "Configuration Type" to "Dynamic Library (.dll)". -Then iaxclient's link dependencies need to be specified in -"Linker->Input->Additional Dependencies". Some of these dependencies -are built as part of the solution (libiax2, libvideolib, ...), other -dependencies come from Windows (comsuppw.lib, strmiids.lib, ...), and -yet other dependencies must come from elsewhere (libspeex, libtheora, -libogg). A working list of link dependencies might look something like -this: - - ..\..\..\..\speex\$(ConfigurationName)\libspeex.lib - ..\..\..\..\libtheora\$(ConfigurationName)\libtheora.lib - ..\..\..\..\libogg\$(ConfigurationName)\libogg.lib - $(ProjectDir)\$(ConfigurationName)\libvideolib\libvideolib.lib - $(ProjectDir)\$(ConfigurationName)\libiax2\libiax2.lib - $(ProjectDir)\$(ConfigurationName)\libgsm\libgsm.lib - strmiids.lib - wininet.lib - comsuppw.lib - ws2_32.lib + C:\...\whereever\iaxclient + C:\...\whereever\portaudio + C:\...\whereever\libogg + C:\...\whereever\speex + C:\...\whereever\libtheora + 2) Open the solution file: contrib/win/vs2005/iaxclient.sln + + 3) Choose configuration. There are four options: + Release -- optimized static library + Release_dll -- optimized dynamic link library + Debug -- debug static library + Debug_dll -- debug dynamic link library + + 4) Build the solution. This will build iaxclient and all its + dependent libraries. All dependent libraries are linked into + the final library. The final libiaxclient library can be found + here (depending on the configuration chosen): + + Release\libiaxclient\libiaxclient.lib + Release_dll\libiaxclient\libiaxclient.dll + Debug\libiaxclient\libiaxclient.lib + Debug_dll\libiaxclient\libiaxclient.dll + Modified: trunk/contrib/win/vs2005/iaxclient.sln =================================================================== --- trunk/contrib/win/vs2005/iaxclient.sln 2007-08-15 21:38:51 UTC (rev 1089) +++ trunk/contrib/win/vs2005/iaxclient.sln 2007-08-15 21:49:02 UTC (rev 1090) @@ -9,11 +9,14 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiaxclient", "libiaxclient.vcproj", "{9A9C003E-EAF6-4D0E-896F-E3994503C7E4}" ProjectSection(ProjectDependencies) = postProject + {E2C6AD95-7A61-41FE-8754-A4623C891BF8} = {E2C6AD95-7A61-41FE-8754-A4623C891BF8} + {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4} + {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} = {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} + {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} + {3A76129B-55AB-4D54-BAA7-08F63ED52569} = {3A76129B-55AB-4D54-BAA7-08F63ED52569} + {82C9BD79-9796-405F-8A28-3F538514AC3A} = {82C9BD79-9796-405F-8A28-3F538514AC3A} + {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} = {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} {3B023516-2C69-4CCB-9302-239991B6EC2C} = {3B023516-2C69-4CCB-9302-239991B6EC2C} - {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} = {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} - {82C9BD79-9796-405F-8A28-3F538514AC3A} = {82C9BD79-9796-405F-8A28-3F538514AC3A} - {3A76129B-55AB-4D54-BAA7-08F63ED52569} = {3A76129B-55AB-4D54-BAA7-08F63ED52569} - {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiax2", "libiax2.vcproj", "{5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}" @@ -28,44 +31,82 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug_dll|Win32 = Debug_dll|Win32 Debug|Win32 = Debug|Win32 + Release_dll|Win32 = Release_dll|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BE15A94D-3766-4693-ABA8-5FBAACBBCC08}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {BE15A94D-3766-4693-ABA8-5FBAACBBCC08}.Debug_dll|Win32.Build.0 = Debug|Win32 {BE15A94D-3766-4693-ABA8-5FBAACBBCC08}.Debug|Win32.ActiveCfg = Debug|Win32 {BE15A94D-3766-4693-ABA8-5FBAACBBCC08}.Debug|Win32.Build.0 = Debug|Win32 + {BE15A94D-3766-4693-ABA8-5FBAACBBCC08}.Release_dll|Win32.ActiveCfg = Release|Win32 + {BE15A94D-3766-4693-ABA8-5FBAACBBCC08}.Release_dll|Win32.Build.0 = Release|Win32 {BE15A94D-3766-4693-ABA8-5FBAACBBCC08}.Release|Win32.ActiveCfg = Release|Win32 {BE15A94D-3766-4693-ABA8-5FBAACBBCC08}.Release|Win32.Build.0 = Release|Win32 + {3A76129B-55AB-4D54-BAA7-08F63ED52569}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {3A76129B-55AB-4D54-BAA7-08F63ED52569}.Debug_dll|Win32.Build.0 = Debug|Win32 {3A76129B-55AB-4D54-BAA7-08F63ED52569}.Debug|Win32.ActiveCfg = Debug|Win32 {3A76129B-55AB-4D54-BAA7-08F63ED52569}.Debug|Win32.Build.0 = Debug|Win32 + {3A76129B-55AB-4D54-BAA7-08F63ED52569}.Release_dll|Win32.ActiveCfg = Release|Win32 + {3A76129B-55AB-4D54-BAA7-08F63ED52569}.Release_dll|Win32.Build.0 = Release|Win32 {3A76129B-55AB-4D54-BAA7-08F63ED52569}.Release|Win32.ActiveCfg = Release|Win32 {3A76129B-55AB-4D54-BAA7-08F63ED52569}.Release|Win32.Build.0 = Release|Win32 + {3B023516-2C69-4CCB-9302-239991B6EC2C}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {3B023516-2C69-4CCB-9302-239991B6EC2C}.Debug_dll|Win32.Build.0 = Debug|Win32 {3B023516-2C69-4CCB-9302-239991B6EC2C}.Debug|Win32.ActiveCfg = Debug|Win32 {3B023516-2C69-4CCB-9302-239991B6EC2C}.Debug|Win32.Build.0 = Debug|Win32 + {3B023516-2C69-4CCB-9302-239991B6EC2C}.Release_dll|Win32.ActiveCfg = Release|Win32 + {3B023516-2C69-4CCB-9302-239991B6EC2C}.Release_dll|Win32.Build.0 = Release|Win32 {3B023516-2C69-4CCB-9302-239991B6EC2C}.Release|Win32.ActiveCfg = Release|Win32 {3B023516-2C69-4CCB-9302-239991B6EC2C}.Release|Win32.Build.0 = Release|Win32 + {9A9C003E-EAF6-4D0E-896F-E3994503C7E4}.Debug_dll|Win32.ActiveCfg = Debug_dll|Win32 + {9A9C003E-EAF6-4D0E-896F-E3994503C7E4}.Debug_dll|Win32.Build.0 = Debug_dll|Win32 {9A9C003E-EAF6-4D0E-896F-E3994503C7E4}.Debug|Win32.ActiveCfg = Debug|Win32 {9A9C003E-EAF6-4D0E-896F-E3994503C7E4}.Debug|Win32.Build.0 = Debug|Win32 + {9A9C003E-EAF6-4D0E-896F-E3994503C7E4}.Release_dll|Win32.ActiveCfg = Release_dll|Win32 + {9A9C003E-EAF6-4D0E-896F-E3994503C7E4}.Release_dll|Win32.Build.0 = Release_dll|Win32 {9A9C003E-EAF6-4D0E-896F-E3994503C7E4}.Release|Win32.ActiveCfg = Release|Win32 {9A9C003E-EAF6-4D0E-896F-E3994503C7E4}.Release|Win32.Build.0 = Release|Win32 + {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Debug_dll|Win32.Build.0 = Debug|Win32 {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Debug|Win32.ActiveCfg = Debug|Win32 {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Debug|Win32.Build.0 = Debug|Win32 + {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Release_dll|Win32.ActiveCfg = Release|Win32 + {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Release_dll|Win32.Build.0 = Release|Win32 {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Release|Win32.ActiveCfg = Release|Win32 {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}.Release|Win32.Build.0 = Release|Win32 + {82C9BD79-9796-405F-8A28-3F538514AC3A}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {82C9BD79-9796-405F-8A28-3F538514AC3A}.Debug_dll|Win32.Build.0 = Debug|Win32 {82C9BD79-9796-405F-8A28-3F538514AC3A}.Debug|Win32.ActiveCfg = Debug|Win32 {82C9BD79-9796-405F-8A28-3F538514AC3A}.Debug|Win32.Build.0 = Debug|Win32 + {82C9BD79-9796-405F-8A28-3F538514AC3A}.Release_dll|Win32.ActiveCfg = Release|Win32 + {82C9BD79-9796-405F-8A28-3F538514AC3A}.Release_dll|Win32.Build.0 = Release|Win32 {82C9BD79-9796-405F-8A28-3F538514AC3A}.Release|Win32.ActiveCfg = Release|Win32 {82C9BD79-9796-405F-8A28-3F538514AC3A}.Release|Win32.Build.0 = Release|Win32 + {2F463562-375D-481E-A6E0-7C7D0DC1ED7A}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {2F463562-375D-481E-A6E0-7C7D0DC1ED7A}.Debug_dll|Win32.Build.0 = Debug|Win32 {2F463562-375D-481E-A6E0-7C7D0DC1ED7A}.Debug|Win32.ActiveCfg = Debug|Win32 {2F463562-375D-481E-A6E0-7C7D0DC1ED7A}.Debug|Win32.Build.0 = Debug|Win32 + {2F463562-375D-481E-A6E0-7C7D0DC1ED7A}.Release_dll|Win32.ActiveCfg = Release|Win32 + {2F463562-375D-481E-A6E0-7C7D0DC1ED7A}.Release_dll|Win32.Build.0 = Release|Win32 {2F463562-375D-481E-A6E0-7C7D0DC1ED7A}.Release|Win32.ActiveCfg = Release|Win32 {2F463562-375D-481E-A6E0-7C7D0DC1ED7A}.Release|Win32.Build.0 = Release|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug_dll|Win32.Build.0 = Debug|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.ActiveCfg = Debug|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.Build.0 = Debug|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release_dll|Win32.ActiveCfg = Release|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release_dll|Win32.Build.0 = Release|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.ActiveCfg = Release|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.Build.0 = Release|Win32 + {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Debug_dll|Win32.Build.0 = Debug|Win32 {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Debug|Win32.ActiveCfg = Debug|Win32 {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Debug|Win32.Build.0 = Debug|Win32 + {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release_dll|Win32.ActiveCfg = Release|Win32 + {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release_dll|Win32.Build.0 = Release|Win32 {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release|Win32.ActiveCfg = Release|Win32 {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection Modified: trunk/contrib/win/vs2005/libiaxclient.vcproj =================================================================== --- trunk/contrib/win/vs2005/libiaxclient.vcproj 2007-08-15 21:38:51 UTC (rev 1089) +++ trunk/contrib/win/vs2005/libiaxclient.vcproj 2007-08-15 21:49:02 UTC (rev 1090) @@ -141,6 +141,151 @@ Name="VCPostBuildEventTool" /> </Configuration> + <Configuration + Name="Release_dll|Win32" + OutputDirectory="$(SolutionDir)\$(ConfigurationName)\$(ProjectName)" + IntermediateDirectory="$(OutDir)" + ConfigurationType="2" + CharacterSet="2" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\..\lib\libiax2\src;..\..\..\..\portaudio\include;..\..\..\lib\spandsp;..\..\..\lib\gsm\inc;..\..\..\..\speex\include;..\..\..\..\libogg\include;..\..\..\..\libtheora\include;..\..\..\lib\portmixer\px_common" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB;PA_NO_DS;PA_NO_ASIO;BUILDING_DLL;LIBIAX;SPEEX_EC=1;_CRT_SECURE_NO_DEPRECATE;strncasecmp=strnicmp;__inline__=_inline;NTDDI_VERSION=NTDDI_WIN2KSP4;_WIN32_WINNT=0x0500;WINVER=0x0500" + RuntimeLibrary="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + CompileAs="1" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="libiax2.lib libvideolib.lib libportmixer.lib libportaudio.lib libgsm.lib libogg.lib libspeex.lib libtheora.lib comsuppw.lib strmiids.lib wininet.lib ws2_32.lib" + AdditionalLibraryDirectories=""$(SolutionDir)Release\libiax2";"$(SolutionDir)Release\libvideolib";"$(SolutionDir)Release\libportaudio";"$(SolutionDir)Release\libportmixer";"$(SolutionDir)Release\libogg";"$(SolutionDir)Release\libtheora";"$(SolutionDir)Release\libspeex";"$(SolutionDir)Release\libgsm"" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug_dll|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="2" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\..\lib\libiax2\src;..\..\..\..\portaudio\include;..\..\..\lib\spandsp;..\..\..\lib\gsm\inc;..\..\..\..\speex\include;..\..\..\..\libogg\include;..\..\..\..\libtheora\include;..\..\..\lib\portmixer\px_common" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB;PA_NO_DS;PA_NO_ASIO;BUILDING_DLL;LIBIAX;SPEEX_EC=1;_CRT_SECURE_NO_DEPRECATE;strncasecmp=strnicmp;__inline__=_inline;NTDDI_VERSION=NTDDI_WIN2KSP4;_WIN32_WINNT=0x0500;WINVER=0x0500" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + CompileAs="1" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="libiax2.lib libvideolib.lib libportmixer.lib libportaudio.lib libgsm.lib libogg.lib libspeex.lib libtheora.lib comsuppw.lib strmiids.lib wininet.lib ws2_32.lib" + AdditionalLibraryDirectories=""$(SolutionDir)Debug\libiax2";"$(SolutionDir)Debug\libvideolib";"$(SolutionDir)Debug\libportaudio";"$(SolutionDir)Debug\libportmixer";"$(SolutionDir)Debug\libogg";"$(SolutionDir)Debug\libtheora";"$(SolutionDir)Debug\libspeex";"$(SolutionDir)Debug\libgsm"" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> </Configurations> <References> </References> @@ -201,6 +346,22 @@ CompileAs="2" /> </FileConfiguration> + <FileConfiguration + Name="Release_dll|Win32" + > + <Tool + Name="VCCLCompilerTool" + CompileAs="2" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug_dll|Win32" + > + <Tool + Name="VCCLCompilerTool" + CompileAs="2" + /> + </FileConfiguration> </File> <File RelativePath="..\..\..\lib\ringbuffer.c" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |