diff options
Diffstat (limited to 'PCbuild')
-rw-r--r-- | PCbuild/_overlapped.vcxproj | 234 | ||||
-rw-r--r-- | PCbuild/_overlapped.vcxproj.filters (renamed from PCbuild/w9xpopen.vcxproj.filters) | 4 | ||||
-rw-r--r-- | PCbuild/_sqlite3.vcxproj | 1 | ||||
-rw-r--r-- | PCbuild/_sqlite3.vcxproj.filters | 3 | ||||
-rw-r--r-- | PCbuild/_ssl.vcxproj | 16 | ||||
-rw-r--r-- | PCbuild/_testembed.vcxproj | 161 | ||||
-rw-r--r-- | PCbuild/_testembed.vcxproj.filters | 22 | ||||
-rw-r--r-- | PCbuild/_testimportmultiple.vcxproj (renamed from PCbuild/w9xpopen.vcxproj) | 167 | ||||
-rw-r--r-- | PCbuild/_testimportmultiple.vcxproj.filters | 13 | ||||
-rw-r--r-- | PCbuild/build_ssl.bat | 4 | ||||
-rw-r--r-- | PCbuild/build_ssl.py | 20 | ||||
-rw-r--r-- | PCbuild/build_tkinter.py | 12 | ||||
-rw-r--r-- | PCbuild/kill_python.c | 2 | ||||
-rw-r--r-- | PCbuild/pcbuild.sln | 70 | ||||
-rw-r--r-- | PCbuild/pyproject.props | 21 | ||||
-rw-r--r-- | PCbuild/python.vcxproj | 8 | ||||
-rw-r--r-- | PCbuild/pythoncore.vcxproj | 43 | ||||
-rw-r--r-- | PCbuild/pythoncore.vcxproj.filters | 35 | ||||
-rw-r--r-- | PCbuild/readme.txt | 490 | ||||
-rw-r--r-- | PCbuild/xxlimited.vcxproj | 11 |
20 files changed, 895 insertions, 442 deletions
diff --git a/PCbuild/_overlapped.vcxproj b/PCbuild/_overlapped.vcxproj new file mode 100644 index 0000000..d0ee72f --- /dev/null +++ b/PCbuild/_overlapped.vcxproj @@ -0,0 +1,234 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGInstrument|Win32"> + <Configuration>PGInstrument</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGInstrument|x64"> + <Configuration>PGInstrument</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGUpdate|Win32"> + <Configuration>PGUpdate</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="PGUpdate|x64"> + <Configuration>PGUpdate</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}</ProjectGuid> + <RootNamespace>_overlapped</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyd.props" /> + <Import Project="pgupdate.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyd.props" /> + <Import Project="pginstrument.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyd_d.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyd.props" /> + <Import Project="x64.props" /> + <Import Project="pgupdate.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyd.props" /> + <Import Project="x64.props" /> + <Import Project="pginstrument.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyd.props" /> + <Import Project="x64.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyd_d.props" /> + <Import Project="x64.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Link> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <IgnoreSpecificDefaultLibraries>libc;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <BaseAddress>0x1D110000</BaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <Link> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <IgnoreSpecificDefaultLibraries>libc;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <BaseAddress>0x1D110000</BaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Link> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <IgnoreSpecificDefaultLibraries>libc;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <BaseAddress>0x1D110000</BaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <Link> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <IgnoreSpecificDefaultLibraries>libc;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <BaseAddress>0x1D110000</BaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'"> + <Link> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <IgnoreSpecificDefaultLibraries>libc;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <BaseAddress>0x1D110000</BaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <Link> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <IgnoreSpecificDefaultLibraries>libc;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <BaseAddress>0x1D110000</BaseAddress> + <TargetMachine>MachineX64</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'"> + <Link> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <IgnoreSpecificDefaultLibraries>libc;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <BaseAddress>0x1D110000</BaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <Link> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <IgnoreSpecificDefaultLibraries>libc;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <BaseAddress>0x1D110000</BaseAddress> + <TargetMachine>MachineX64</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\Modules\overlapped.c" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="pythoncore.vcxproj"> + <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/PCbuild/w9xpopen.vcxproj.filters b/PCbuild/_overlapped.vcxproj.filters index dec67ad..78de895 100644 --- a/PCbuild/w9xpopen.vcxproj.filters +++ b/PCbuild/_overlapped.vcxproj.filters @@ -2,11 +2,11 @@ <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <Filter Include="Source Files"> - <UniqueIdentifier>{abc2dffd-3f2a-47bd-b89b-0314c99ef21e}</UniqueIdentifier> + <UniqueIdentifier>{6f67c8db-7de7-4714-a967-2b0d4bc71f2e}</UniqueIdentifier> </Filter> </ItemGroup> <ItemGroup> - <ClCompile Include="..\PC\w9xpopen.c"> + <ClCompile Include="..\Modules\overlapped.c"> <Filter>Source Files</Filter> </ClCompile> </ItemGroup> diff --git a/PCbuild/_sqlite3.vcxproj b/PCbuild/_sqlite3.vcxproj index 392dad1..ed35d5b 100644 --- a/PCbuild/_sqlite3.vcxproj +++ b/PCbuild/_sqlite3.vcxproj @@ -243,7 +243,6 @@ <ClInclude Include="..\Modules\_sqlite\module.h" /> <ClInclude Include="..\Modules\_sqlite\prepare_protocol.h" /> <ClInclude Include="..\Modules\_sqlite\row.h" /> - <ClInclude Include="..\Modules\_sqlite\sqlitecompat.h" /> <ClInclude Include="..\Modules\_sqlite\statement.h" /> <ClInclude Include="..\Modules\_sqlite\util.h" /> </ItemGroup> diff --git a/PCbuild/_sqlite3.vcxproj.filters b/PCbuild/_sqlite3.vcxproj.filters index 88e5fdb..dce77c9 100644 --- a/PCbuild/_sqlite3.vcxproj.filters +++ b/PCbuild/_sqlite3.vcxproj.filters @@ -30,9 +30,6 @@ <ClInclude Include="..\Modules\_sqlite\row.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\Modules\_sqlite\sqlitecompat.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="..\Modules\_sqlite\statement.h"> <Filter>Header Files</Filter> </ClInclude> diff --git a/PCbuild/_ssl.vcxproj b/PCbuild/_ssl.vcxproj index ae71d19..7378794 100644 --- a/PCbuild/_ssl.vcxproj +++ b/PCbuild/_ssl.vcxproj @@ -158,7 +158,7 @@ </Command> </PreLinkEvent> <Link> - <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;crypt32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> @@ -173,7 +173,7 @@ </Command> </PreLinkEvent> <Link> - <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;crypt32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> @@ -185,7 +185,7 @@ </Command> </PreLinkEvent> <Link> - <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;crypt32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> @@ -200,7 +200,7 @@ </Command> </PreLinkEvent> <Link> - <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;crypt32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'"> @@ -212,7 +212,7 @@ </Command> </PreLinkEvent> <Link> - <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;crypt32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'"> @@ -227,7 +227,7 @@ </Command> </PreLinkEvent> <Link> - <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;crypt32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> <TargetMachine>MachineX64</TargetMachine> </Link> </ItemDefinitionGroup> @@ -240,7 +240,7 @@ </Command> </PreLinkEvent> <Link> - <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;crypt32.lib;$(opensslDir)\out32\libeay32.lib;$(opensslDir)\out32\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'"> @@ -255,7 +255,7 @@ </Command> </PreLinkEvent> <Link> - <AdditionalDependencies>ws2_32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;crypt32.lib;$(opensslDir)\out64\libeay32.lib;$(opensslDir)\out64\ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> <TargetMachine>MachineX64</TargetMachine> </Link> </ItemDefinitionGroup> diff --git a/PCbuild/_testembed.vcxproj b/PCbuild/_testembed.vcxproj new file mode 100644 index 0000000..83c7ad2 --- /dev/null +++ b/PCbuild/_testembed.vcxproj @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{6DAC66D9-E703-4624-BE03-49112AB5AA62}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>_testembed</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyproject.props" /> + <Import Project="debug.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyproject.props" /> + <Import Project="debug.props" /> + <Import Project="x64.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyproject.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="pyproject.props" /> + <Import Project="x64.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\Modules\_testembed.c" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="pythoncore.vcxproj"> + <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> + <Private>true</Private> + <ReferenceOutputAssembly>true</ReferenceOutputAssembly> + <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies> + <LinkLibraryDependencies>true</LinkLibraryDependencies> + <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/PCbuild/_testembed.vcxproj.filters b/PCbuild/_testembed.vcxproj.filters new file mode 100644 index 0000000..dea54d4 --- /dev/null +++ b/PCbuild/_testembed.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\Modules\_testembed.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/PCbuild/w9xpopen.vcxproj b/PCbuild/_testimportmultiple.vcxproj index d1afe22..84984ff 100644 --- a/PCbuild/w9xpopen.vcxproj +++ b/PCbuild/_testimportmultiple.vcxproj @@ -35,104 +35,95 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}</ProjectGuid> - <RootNamespace>w9xpopen</RootNamespace> + <ProjectGuid>{36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}</ProjectGuid> + <RootNamespace>_testimportmultiple</RootNamespace> + <Keyword>Win32Proj</Keyword> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseOfMfc>false</UseOfMfc> - <CharacterSet>MultiByte</CharacterSet> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseOfMfc>false</UseOfMfc> - <CharacterSet>MultiByte</CharacterSet> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseOfMfc>false</UseOfMfc> - <CharacterSet>MultiByte</CharacterSet> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseOfMfc>false</UseOfMfc> + <ConfigurationType>DynamicLibrary</ConfigurationType> <CharacterSet>NotSet</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseOfMfc>false</UseOfMfc> - <CharacterSet>MultiByte</CharacterSet> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseOfMfc>false</UseOfMfc> - <CharacterSet>MultiByte</CharacterSet> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseOfMfc>false</UseOfMfc> - <CharacterSet>MultiByte</CharacterSet> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseOfMfc>false</UseOfMfc> - <CharacterSet>MultiByte</CharacterSet> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>NotSet</CharacterSet> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="pyproject.props" /> - <Import Project="release.props" /> + <Import Project="pyd.props" /> <Import Project="pgupdate.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="pyproject.props" /> - <Import Project="release.props" /> + <Import Project="pyd.props" /> <Import Project="pginstrument.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="pyproject.props" /> - <Import Project="release.props" /> + <Import Project="pyd.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="pyproject.props" /> - <Import Project="debug.props" /> + <Import Project="pyd_d.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="pyproject.props" /> + <Import Project="pyd.props" /> <Import Project="x64.props" /> - <Import Project="release.props" /> <Import Project="pgupdate.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="pyproject.props" /> + <Import Project="pyd.props" /> <Import Project="x64.props" /> - <Import Project="release.props" /> <Import Project="pginstrument.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="pyproject.props" /> + <Import Project="pyd.props" /> <Import Project="x64.props" /> - <Import Project="release.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="pyproject.props" /> + <Import Project="pyd_d.props" /> <Import Project="x64.props" /> - <Import Project="debug.props" /> </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup> - <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> @@ -159,129 +150,69 @@ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <Optimization>Disabled</Optimization> - <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> - <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> - </ClCompile> <Link> - <SubSystem>Console</SubSystem> + <BaseAddress>0x1e1F0000</BaseAddress> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> </Midl> - <ClCompile> - <Optimization>Disabled</Optimization> - <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> - <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> - </ClCompile> <Link> - <SubSystem>Console</SubSystem> + <BaseAddress>0x1e1F0000</BaseAddress> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <Optimization>MaxSpeed</Optimization> - <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> - <StringPooling>true</StringPooling> - <RuntimeLibrary>MultiThreaded</RuntimeLibrary> - <FunctionLevelLinking>true</FunctionLevelLinking> - </ClCompile> <Link> - <GenerateDebugInformation>false</GenerateDebugInformation> - <SubSystem>Console</SubSystem> + <BaseAddress>0x1e1F0000</BaseAddress> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> </Midl> - <ClCompile> - <Optimization>MaxSpeed</Optimization> - <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> - <StringPooling>true</StringPooling> - <RuntimeLibrary>MultiThreaded</RuntimeLibrary> - <FunctionLevelLinking>true</FunctionLevelLinking> - </ClCompile> <Link> - <GenerateDebugInformation>false</GenerateDebugInformation> - <SubSystem>Console</SubSystem> + <BaseAddress>0x1e1F0000</BaseAddress> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'"> - <ClCompile> - <Optimization>MaxSpeed</Optimization> - <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> - <StringPooling>true</StringPooling> - <RuntimeLibrary>MultiThreaded</RuntimeLibrary> - <FunctionLevelLinking>true</FunctionLevelLinking> - </ClCompile> <Link> - <GenerateDebugInformation>false</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <ImportLibrary> - </ImportLibrary> + <BaseAddress>0x1e1F0000</BaseAddress> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> </Midl> - <ClCompile> - <Optimization>MaxSpeed</Optimization> - <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> - <StringPooling>true</StringPooling> - <RuntimeLibrary>MultiThreaded</RuntimeLibrary> - <FunctionLevelLinking>true</FunctionLevelLinking> - </ClCompile> <Link> - <GenerateDebugInformation>false</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <ImportLibrary> - </ImportLibrary> + <BaseAddress>0x1e1F0000</BaseAddress> <TargetMachine>MachineX64</TargetMachine> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'"> - <ClCompile> - <Optimization>MaxSpeed</Optimization> - <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> - <StringPooling>true</StringPooling> - <RuntimeLibrary>MultiThreaded</RuntimeLibrary> - <FunctionLevelLinking>true</FunctionLevelLinking> - </ClCompile> <Link> - <GenerateDebugInformation>false</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <ImportLibrary> - </ImportLibrary> + <BaseAddress>0x1e1F0000</BaseAddress> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> </Midl> - <ClCompile> - <Optimization>MaxSpeed</Optimization> - <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> - <StringPooling>true</StringPooling> - <RuntimeLibrary>MultiThreaded</RuntimeLibrary> - <FunctionLevelLinking>true</FunctionLevelLinking> - </ClCompile> <Link> - <GenerateDebugInformation>false</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <ImportLibrary> - </ImportLibrary> + <BaseAddress>0x1e1F0000</BaseAddress> <TargetMachine>MachineX64</TargetMachine> </Link> </ItemDefinitionGroup> <ItemGroup> - <ClCompile Include="..\PC\w9xpopen.c" /> + <ClCompile Include="..\Modules\_testimportmultiple.c" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="pythoncore.vcxproj"> + <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> -</Project>
\ No newline at end of file +</Project> diff --git a/PCbuild/_testimportmultiple.vcxproj.filters b/PCbuild/_testimportmultiple.vcxproj.filters new file mode 100644 index 0000000..db0d0a6 --- /dev/null +++ b/PCbuild/_testimportmultiple.vcxproj.filters @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{1ec38ad9-1abf-4b80-8628-ac43ccba324b}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\Modules\_testimportmultiple.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> diff --git a/PCbuild/build_ssl.bat b/PCbuild/build_ssl.bat index 357b08b..805d77a 100644 --- a/PCbuild/build_ssl.bat +++ b/PCbuild/build_ssl.bat @@ -2,10 +2,10 @@ if not defined HOST_PYTHON ( if %1 EQU Debug ( set HOST_PYTHON=python_d.exe - if not exist python33_d.dll exit 1 + if not exist python34_d.dll exit 1 ) ELSE ( set HOST_PYTHON=python.exe - if not exist python33.dll exit 1 + if not exist python34.dll exit 1 ) ) %HOST_PYTHON% build_ssl.py %1 %2 %3 diff --git a/PCbuild/build_ssl.py b/PCbuild/build_ssl.py index 5a7a89e..260cbf3 100644 --- a/PCbuild/build_ssl.py +++ b/PCbuild/build_ssl.py @@ -24,6 +24,7 @@ # python.exe build_ssl.py Release Win32 import os, sys, re, shutil +import subprocess # Find all "foo.exe" files on the PATH. def find_all_on_path(filename, extras = None): @@ -46,27 +47,26 @@ def find_all_on_path(filename, extras = None): # is available. def find_working_perl(perls): for perl in perls: - fh = os.popen('"%s" -e "use Win32;"' % perl) - fh.read() - rc = fh.close() - if rc: + try: + subprocess.check_output([perl, "-e", "use Win32;"]) + except subprocess.CalledProcessError: continue - return perl - print("Can not find a suitable PERL:") + else: + return perl + if perls: - print(" the following perl interpreters were found:") + print("The following perl interpreters were found:") for p in perls: print(" ", p) print(" None of these versions appear suitable for building OpenSSL") else: - print(" NO perl interpreters were found on this machine at all!") + print("NO perl interpreters were found on this machine at all!") print(" Please install ActivePerl and ensure it appears on your path") - return None # Fetch SSL directory from VC properties def get_ssl_dir(): propfile = (os.path.join(os.path.dirname(__file__), 'pyproject.props')) - with open(propfile) as f: + with open(propfile, encoding='utf-8-sig') as f: m = re.search('openssl-([^<]+)<', f.read()) return "..\..\openssl-"+m.group(1) diff --git a/PCbuild/build_tkinter.py b/PCbuild/build_tkinter.py index 4196cf3..c807e7b 100644 --- a/PCbuild/build_tkinter.py +++ b/PCbuild/build_tkinter.py @@ -11,16 +11,12 @@ import sys here = os.path.abspath(os.path.dirname(__file__)) par = os.path.pardir -TCL = "tcl8.5.11" -TK = "tk8.5.11" -TIX = "tix-8.4.3.x" +TCL = "tcl8.6.1" +TK = "tk8.6.1" +TIX = "tix-8.4.3.3" ROOT = os.path.abspath(os.path.join(here, par, par)) -# Windows 2000 compatibility: WINVER 0x0500 -# http://msdn2.microsoft.com/en-us/library/aa383745.aspx -NMAKE = ('nmake /nologo /f %s ' - 'COMPILERFLAGS=\"-DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -DNTDDI_VERSION=NTDDI_WIN2KSP4\" ' - '%s %s') +NMAKE = ('nmake /nologo /f %s %s %s') def nmake(makefile, command="", **kw): defines = ' '.join(k+'='+str(v) for k, v in kw.items()) diff --git a/PCbuild/kill_python.c b/PCbuild/kill_python.c index bb323d3..604731f 100644 --- a/PCbuild/kill_python.c +++ b/PCbuild/kill_python.c @@ -106,7 +106,7 @@ main(int argc, char **argv) /* * XXX TODO: if we really wanted to be fancy, we could check the * modules for all processes (not just the python[_d].exe ones) - * and see if any of our DLLs are loaded (i.e. python33[_d].dll), + * and see if any of our DLLs are loaded (i.e. python34[_d].dll), * as that would also inhibit our ability to rebuild the solution. * Not worth loosing sleep over though; for now, a simple check * for just the python executable should be sufficient. diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln index d6a022f..a346e10 100644 --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln @@ -14,8 +14,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vc EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcxproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w9xpopen", "w9xpopen.vcxproj", "{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}"
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buildinfo.vcxproj", "{C73F0EC1-358B-4177-940F-0846AC8B04CD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcxproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}"
@@ -38,6 +36,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcxproj", "{C6 EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcxproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testimportmultiple", "_testimportmultiple.vcxproj", "{36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}"
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_tkinter", "_tkinter.vcxproj", "{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bz2", "_bz2.vcxproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}"
@@ -74,6 +74,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pywlauncher", "pywlauncher. EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_freeze_importlib", "_freeze_importlib.vcxproj", "{19C0C13F-47CA-4432-AFF3-799A296A4DDC}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_overlapped", "_overlapped.vcxproj", "{EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testembed", "_testembed.vcxproj", "{6DAC66D9-E703-4624-BE03-49112AB5AA62}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -150,22 +154,6 @@ Global {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|Win32.Build.0 = Release|Win32
{F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.ActiveCfg = Release|x64
{F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release|x64.Build.0 = Release|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.ActiveCfg = Debug|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|Win32.Build.0 = Debug|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.ActiveCfg = Debug|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug|x64.Build.0 = Debug|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGInstrument|x64.Build.0 = PGInstrument|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.PGUpdate|x64.Build.0 = PGUpdate|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.ActiveCfg = Release|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|Win32.Build.0 = Release|Win32
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.ActiveCfg = Release|x64
- {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release|x64.Build.0 = Release|x64
{C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.ActiveCfg = Release|Win32
{C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|Win32.Build.0 = Release|Win32
{C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug|x64.ActiveCfg = Release|Win32
@@ -342,6 +330,22 @@ Global {6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|Win32.Build.0 = Release|Win32
{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.ActiveCfg = Release|x64
{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}.Release|x64.Build.0 = Release|x64
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|Win32.ActiveCfg = Debug|Win32
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|Win32.Build.0 = Debug|Win32
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|x64.ActiveCfg = Debug|x64
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Debug|x64.Build.0 = Debug|x64
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGInstrument|x64.Build.0 = PGInstrument|x64
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.PGUpdate|x64.Build.0 = PGUpdate|x64
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|Win32.ActiveCfg = Release|Win32
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|Win32.Build.0 = Release|Win32
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|x64.ActiveCfg = Release|x64
+ {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}.Release|x64.Build.0 = Release|x64
{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.ActiveCfg = Debug|Win32
{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|Win32.Build.0 = Debug|Win32
{4946ECAC-2E69-4BF8-A90A-F5136F5094DF}.Debug|x64.ActiveCfg = Debug|x64
@@ -611,6 +615,36 @@ Global {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGUpdate|x64.ActiveCfg = Release|Win32
{19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|Win32.ActiveCfg = Release|Win32
{19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|x64.ActiveCfg = Release|x64
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Debug|Win32.Build.0 = Debug|Win32
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Debug|x64.ActiveCfg = Debug|x64
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Debug|x64.Build.0 = Debug|x64
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.PGInstrument|x64.Build.0 = PGInstrument|x64
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.PGUpdate|x64.Build.0 = PGUpdate|x64
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Release|Win32.ActiveCfg = Release|Win32
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Release|Win32.Build.0 = Release|Win32
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Release|x64.ActiveCfg = Release|x64
+ {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E}.Release|x64.Build.0 = Release|x64
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.Debug|Win32.Build.0 = Debug|Win32
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.Debug|x64.ActiveCfg = Debug|x64
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.Debug|x64.Build.0 = Debug|x64
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGInstrument|Win32.ActiveCfg = Release|Win32
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGInstrument|x64.ActiveCfg = Release|x64
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGUpdate|Win32.ActiveCfg = Release|Win32
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGUpdate|Win32.Build.0 = Release|Win32
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGUpdate|x64.ActiveCfg = Release|x64
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.PGUpdate|x64.Build.0 = Release|x64
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|Win32.ActiveCfg = Release|Win32
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|Win32.Build.0 = Release|Win32
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|x64.ActiveCfg = Release|x64
+ {6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props index 8155231..0b513ce 100644 --- a/PCbuild/pyproject.props +++ b/PCbuild/pyproject.props @@ -13,20 +13,20 @@ <IntDir>$(SolutionDir)$(PlatformName)-temp-$(Configuration)\$(ProjectName)\</IntDir> </PropertyGroup> <PropertyGroup Label="UserMacros"> - <PyDllName>python33$(PyDebugExt)</PyDllName> + <PyDllName>python34$(PyDebugExt)</PyDllName> <PythonExe>$(OutDir)python$(PyDebugExt).exe</PythonExe> <KillPythonExe>$(OutDir)kill_python$(PyDebugExt).exe</KillPythonExe> <externalsDir>..\..</externalsDir> - <sqlite3Dir>$(externalsDir)\sqlite-3.7.12</sqlite3Dir> + <sqlite3Dir>$(externalsDir)\sqlite-3.8.3.1</sqlite3Dir> <bz2Dir>$(externalsDir)\bzip2-1.0.6</bz2Dir> - <lzmaDir>$(externalsDir)\xz-5.0.3</lzmaDir> - <opensslDir>$(externalsDir)\openssl-1.0.1e</opensslDir> + <lzmaDir>$(externalsDir)\xz-5.0.5</lzmaDir> + <opensslDir>$(externalsDir)\openssl-1.0.1i</opensslDir> <tcltkDir>$(externalsDir)\tcltk</tcltkDir> <tcltk64Dir>$(externalsDir)\tcltk64</tcltk64Dir> - <tcltkLib>$(tcltkDir)\lib\tcl85.lib;$(tcltkDir)\lib\tk85.lib</tcltkLib> - <tcltkLibDebug>$(tcltkDir)\lib\tcl85g.lib;$(tcltkDir)\lib\tk85g.lib</tcltkLibDebug> - <tcltk64Lib>$(tcltk64Dir)\lib\tcl85.lib;$(tcltk64Dir)\lib\tk85.lib</tcltk64Lib> - <tcltk64LibDebug>$(tcltk64Dir)\lib\tcl85g.lib;$(tcltk64Dir)\lib\tk85g.lib</tcltk64LibDebug> + <tcltkLib>$(tcltkDir)\lib\tcl86t.lib;$(tcltkDir)\lib\tk86t.lib</tcltkLib> + <tcltkLibDebug>$(tcltkDir)\lib\tcl86tg.lib;$(tcltkDir)\lib\tk86tg.lib</tcltkLibDebug> + <tcltk64Lib>$(tcltk64Dir)\lib\tcl86t.lib;$(tcltk64Dir)\lib\tk86t.lib</tcltk64Lib> + <tcltk64LibDebug>$(tcltk64Dir)\lib\tcl86tg.lib;$(tcltk64Dir)\lib\tk86tg.lib</tcltk64LibDebug> </PropertyGroup> <ItemDefinitionGroup> <ClCompile> @@ -49,9 +49,8 @@ <GenerateDebugInformation>true</GenerateDebugInformation> <ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile> <SubSystem>Windows</SubSystem> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention> - </DataExecutionPrevention> + <RandomizedBaseAddress>true</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> <TargetMachine>MachineX86</TargetMachine> </Link> <ResourceCompile> diff --git a/PCbuild/python.vcxproj b/PCbuild/python.vcxproj index d0a9de0..bd12624 100644 --- a/PCbuild/python.vcxproj +++ b/PCbuild/python.vcxproj @@ -243,7 +243,7 @@ <Link> <OutputFile>$(OutDir)python_d.exe</OutputFile> <SubSystem>Console</SubSystem> - <StackReserveSize>2100000</StackReserveSize> + <StackReserveSize>4194304</StackReserveSize> <BaseAddress>0x1d000000</BaseAddress> </Link> </ItemDefinitionGroup> @@ -357,12 +357,8 @@ <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference> - <ProjectReference Include="w9xpopen.vcxproj"> - <Project>{e9e0a1f6-0009-4e8c-b8f8-1b8f5d49a058}</Project> - <ReferenceOutputAssembly>false</ReferenceOutputAssembly> - </ProjectReference> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> -</Project>
\ No newline at end of file +</Project> diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 8b5c42f..6021cd7 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -173,7 +173,7 @@ </ResourceCompile> <PreLinkEvent> <Message>Generate build information...</Message> - <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)"</Command> + <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\"</Command> </PreLinkEvent> <Link> <AdditionalDependencies>$(IntDir)getbuildinfo.o;%(AdditionalDependencies)</AdditionalDependencies> @@ -184,7 +184,7 @@ <PreBuildEvent> <Command>$(KillPythonExe) IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: warning: could not kill running Pythons, exit code %ERRORLEVEL% + echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% exit /b 0 )</Command> </PreBuildEvent> @@ -209,7 +209,7 @@ IF %ERRORLEVEL% NEQ 0 ( </ResourceCompile> <PreLinkEvent> <Message>Generate build information...</Message> - <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)"</Command> + <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\"</Command> </PreLinkEvent> <Link> <AdditionalDependencies>$(IntDir)getbuildinfo.o;%(AdditionalDependencies)</AdditionalDependencies> @@ -219,7 +219,7 @@ IF %ERRORLEVEL% NEQ 0 ( <PreBuildEvent> <Command>$(KillPythonExe) IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: warning: could not kill running Pythons, exit code %ERRORLEVEL% + echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% exit /b 0 )</Command> </PreBuildEvent> @@ -254,7 +254,7 @@ IF %ERRORLEVEL% NEQ 0 ( <PreBuildEvent> <Command>$(KillPythonExe) IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: warning: could not kill running Pythons, exit code %ERRORLEVEL% + echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% exit /b 0 )</Command> </PreBuildEvent> @@ -292,7 +292,7 @@ IF %ERRORLEVEL% NEQ 0 ( <PreBuildEvent> <Command>$(KillPythonExe) IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: warning: could not kill running Pythons, exit code %ERRORLEVEL% + echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% exit /b 0 )</Command> </PreBuildEvent> @@ -314,7 +314,7 @@ IF %ERRORLEVEL% NEQ 0 ( </ResourceCompile> <PreLinkEvent> <Message>Generate build information...</Message> - <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)"</Command> + <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\"</Command> </PreLinkEvent> <Link> <AdditionalDependencies>$(IntDir)getbuildinfo.o;%(AdditionalDependencies)</AdditionalDependencies> @@ -325,7 +325,7 @@ IF %ERRORLEVEL% NEQ 0 ( <PreBuildEvent> <Command>$(KillPythonExe) IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: warning: could not kill running Pythons, exit code %ERRORLEVEL% + echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% exit /b 0 )</Command> </PreBuildEvent> @@ -350,7 +350,7 @@ IF %ERRORLEVEL% NEQ 0 ( </ResourceCompile> <PreLinkEvent> <Message>Generate build information...</Message> - <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)"</Command> + <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\"</Command> </PreLinkEvent> <Link> <AdditionalDependencies>$(IntDir)getbuildinfo.o;%(AdditionalDependencies)</AdditionalDependencies> @@ -361,7 +361,7 @@ IF %ERRORLEVEL% NEQ 0 ( <PreBuildEvent> <Command>$(KillPythonExe) IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: warning: could not kill running Pythons, exit code %ERRORLEVEL% + echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% exit /b 0 )</Command> </PreBuildEvent> @@ -383,7 +383,7 @@ IF %ERRORLEVEL% NEQ 0 ( </ResourceCompile> <PreLinkEvent> <Message>Generate build information...</Message> - <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)"</Command> + <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\"</Command> </PreLinkEvent> <Link> <AdditionalDependencies>$(IntDir)getbuildinfo.o;%(AdditionalDependencies)</AdditionalDependencies> @@ -394,7 +394,7 @@ IF %ERRORLEVEL% NEQ 0 ( <PreBuildEvent> <Command>$(KillPythonExe) IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: warning: could not kill running Pythons, exit code %ERRORLEVEL% + echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% exit /b 0 )</Command> </PreBuildEvent> @@ -419,7 +419,7 @@ IF %ERRORLEVEL% NEQ 0 ( </ResourceCompile> <PreLinkEvent> <Message>Generate build information...</Message> - <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)"</Command> + <Command>"$(SolutionDir)make_buildinfo.exe" Release "$(IntDir)\"</Command> </PreLinkEvent> <Link> <AdditionalDependencies>$(IntDir)getbuildinfo.o;%(AdditionalDependencies)</AdditionalDependencies> @@ -430,7 +430,7 @@ IF %ERRORLEVEL% NEQ 0 ( <PreBuildEvent> <Command>$(KillPythonExe) IF %ERRORLEVEL% NEQ 0 ( - echo kill_python: warning: could not kill running Pythons, exit code %ERRORLEVEL% + echo kill_python: war^ning: could not kill running Pythons, exit code %ERRORLEVEL% exit /b 0 )</Command> </PreBuildEvent> @@ -492,6 +492,7 @@ IF %ERRORLEVEL% NEQ 0 ( <ClInclude Include="..\Include\patchlevel.h" /> <ClInclude Include="..\Include\pgen.h" /> <ClInclude Include="..\Include\pgenheaders.h" /> + <ClInclude Include="..\Include\pyhash.h" /> <ClInclude Include="..\Include\py_curses.h" /> <ClInclude Include="..\Include\pyarena.h" /> <ClInclude Include="..\Include\pycapsule.h" /> @@ -528,7 +529,11 @@ IF %ERRORLEVEL% NEQ 0 ( <ClInclude Include="..\Include\unicodeobject.h" /> <ClInclude Include="..\Include\weakrefobject.h" /> <ClInclude Include="..\Modules\_math.h" /> + <ClInclude Include="..\Modules\hashtable.h" /> <ClInclude Include="..\Modules\rotatingtree.h" /> + <ClInclude Include="..\Modules\sre.h" /> + <ClInclude Include="..\Modules\sre_constants.h" /> + <ClInclude Include="..\Modules\sre_lib.h" /> <ClInclude Include="..\Modules\_io\_iomodule.h" /> <ClInclude Include="..\Modules\zlib\crc32.h" /> <ClInclude Include="..\Modules\zlib\deflate.h" /> @@ -555,6 +560,7 @@ IF %ERRORLEVEL% NEQ 0 ( <ClInclude Include="..\Objects\stringlib\fastsearch.h" /> <ClInclude Include="..\Objects\stringlib\find.h" /> <ClInclude Include="..\Objects\stringlib\partition.h" /> + <ClInclude Include="..\Objects\stringlib\replace.h" /> <ClInclude Include="..\Objects\stringlib\split.h" /> <ClInclude Include="..\Objects\unicodetype_db.h" /> <ClInclude Include="..\Parser\parser.h" /> @@ -580,6 +586,7 @@ IF %ERRORLEVEL% NEQ 0 ( <ClCompile Include="..\Modules\_pickle.c" /> <ClCompile Include="..\Modules\_randommodule.c" /> <ClCompile Include="..\Modules\_sre.c" /> + <ClCompile Include="..\Modules\_stat.c" /> <ClCompile Include="..\Modules\_struct.c" /> <ClCompile Include="..\Modules\_weakref.c" /> <ClCompile Include="..\Modules\arraymodule.c" /> @@ -591,12 +598,14 @@ IF %ERRORLEVEL% NEQ 0 ( <ClCompile Include="..\Modules\errnomodule.c" /> <ClCompile Include="..\Modules\faulthandler.c" /> <ClCompile Include="..\Modules\gcmodule.c" /> + <ClCompile Include="..\Modules\hashtable.c" /> <ClCompile Include="..\Modules\itertoolsmodule.c" /> <ClCompile Include="..\Modules\main.c" /> <ClCompile Include="..\Modules\mathmodule.c" /> <ClCompile Include="..\Modules\md5module.c" /> <ClCompile Include="..\Modules\mmapmodule.c" /> - <ClCompile Include="..\Modules\operator.c" /> + <ClCompile Include="..\Modules\_opcode.c" /> + <ClCompile Include="..\Modules\_operator.c" /> <ClCompile Include="..\Modules\parsermodule.c" /> <ClCompile Include="..\Modules\posixmodule.c" /> <ClCompile Include="..\Modules\rotatingtree.c" /> @@ -606,6 +615,7 @@ IF %ERRORLEVEL% NEQ 0 ( <ClCompile Include="..\Modules\signalmodule.c" /> <ClCompile Include="..\Modules\symtablemodule.c" /> <ClCompile Include="..\Modules\_threadmodule.c" /> + <ClCompile Include="..\Modules\_tracemalloc.c" /> <ClCompile Include="..\Modules\timemodule.c" /> <ClCompile Include="..\Modules\xxsubtype.c" /> <ClCompile Include="..\Modules\zipimport.c" /> @@ -691,6 +701,7 @@ IF %ERRORLEVEL% NEQ 0 ( <ClCompile Include="..\PC\dl_nt.c" /> <ClCompile Include="..\PC\getpathp.c" /> <ClCompile Include="..\PC\msvcrtmodule.c" /> + <ClCompile Include="..\Python\pyhash.c" /> <ClCompile Include="..\Python\random.c" /> <ClCompile Include="..\Python\_warnings.c" /> <ClCompile Include="..\Python\asdl.c" /> @@ -757,4 +768,4 @@ IF %ERRORLEVEL% NEQ 0 ( <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> -</Project>
\ No newline at end of file +</Project> diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters index 5647feb..8c65247 100644 --- a/PCbuild/pythoncore.vcxproj.filters +++ b/PCbuild/pythoncore.vcxproj.filters @@ -300,6 +300,15 @@ <ClInclude Include="..\Modules\rotatingtree.h"> <Filter>Modules</Filter> </ClInclude> + <ClInclude Include="..\Modules\sre.h"> + <Filter>Modules</Filter> + </ClInclude> + <ClInclude Include="..\Modules\sre_constants.h"> + <Filter>Modules</Filter> + </ClInclude> + <ClInclude Include="..\Modules\sre_lib.h"> + <Filter>Modules</Filter> + </ClInclude> <ClInclude Include="..\Modules\_io\_iomodule.h"> <Filter>Modules\_io</Filter> </ClInclude> @@ -378,6 +387,9 @@ <ClInclude Include="..\Objects\stringlib\partition.h"> <Filter>Objects</Filter> </ClInclude> + <ClInclude Include="..\Objects\stringlib\replace.h"> + <Filter>Objects</Filter> + </ClInclude> <ClInclude Include="..\Objects\stringlib\split.h"> <Filter>Objects</Filter> </ClInclude> @@ -408,9 +420,15 @@ <ClInclude Include="..\Python\ceval_gil.h"> <Filter>Python</Filter> </ClInclude> + <ClInclude Include="..\Include\pyhash.h"> + <Filter>Include</Filter> + </ClInclude> <ClInclude Include="..\Include\namespaceobject.h"> <Filter>Include</Filter> </ClInclude> + <ClInclude Include="..\Modules\hashtable.h"> + <Filter>Modules</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <ClCompile Include="..\Modules\_bisectmodule.c"> @@ -500,7 +518,7 @@ <ClCompile Include="..\Modules\mmapmodule.c"> <Filter>Modules</Filter> </ClCompile> - <ClCompile Include="..\Modules\operator.c"> + <ClCompile Include="..\Modules\_operator.c"> <Filter>Modules</Filter> </ClCompile> <ClCompile Include="..\Modules\parsermodule.c"> @@ -917,9 +935,24 @@ <ClCompile Include="..\Modules\_winapi.c"> <Filter>PC</Filter> </ClCompile> + <ClCompile Include="..\Modules\_stat.c"> + <Filter>Modules</Filter> + </ClCompile> + <ClCompile Include="..\Python\pyhash.c"> + <Filter>Python</Filter> + </ClCompile> <ClCompile Include="..\Objects\namespaceobject.c"> <Filter>Objects</Filter> </ClCompile> + <ClCompile Include="..\Modules\_opcode.c"> + <Filter>Modules</Filter> + </ClCompile> + <ClCompile Include="..\Modules\_tracemalloc.c"> + <Filter>Modules</Filter> + </ClCompile> + <ClCompile Include="..\Modules\hashtable.c"> + <Filter>Modules</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\PC\python_nt.rc"> diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt index 6f07689..7d57726 100644 --- a/PCbuild/readme.txt +++ b/PCbuild/readme.txt @@ -1,200 +1,264 @@ -Building Python using VC++ 10.0 -------------------------------- - -This directory is used to build Python for Win32 and x64 platforms, e.g. -Windows XP, Vista and Windows Server 2008. In order to build 32-bit -debug and release executables, Microsoft Visual C++ 2010 Express Edition is -required at the very least. In order to build 64-bit debug and release -executables, Visual Studio 2010 Standard Edition is required at the very -least. In order to build all of the above, as well as generate release builds -that make use of Profile Guided Optimisation (PG0), Visual Studio 2010 -Professional Edition is required at the very least. The official Python -releases are built with this version of Visual Studio. - -For other Windows platforms and compilers, see ../PC/readme.txt. - -All you need to do is open the workspace "pcbuild.sln" in Visual Studio, -select the desired combination of configuration and platform and eventually -build the solution. Unless you are going to debug a problem in the core or -you are going to create an optimized build you want to select "Release" as -configuration. - -The PCbuild directory is compatible with all versions of Visual Studio from -VS C++ Express Edition over the standard edition up to the professional -edition. However the express edition does not support features like solution -folders or profile guided optimization (PGO). The missing bits and pieces -won't stop you from building Python. - -The solution is configured to build the projects in the correct order. "Build -Solution" or F7 takes care of dependencies except for x64 builds. To make -cross compiling x64 builds on a 32bit OS possible the x64 builds require a -32bit version of Python. - -NOTE: - You probably don't want to build most of the other subprojects, unless - you're building an entire Python distribution from scratch, or - specifically making changes to the subsystems they implement, or are - running a Python core buildbot test slave; see SUBPROJECTS below) - -When using the Debug setting, the output files have a _d added to -their name: python33_d.dll, python_d.exe, parser_d.pyd, and so on. Both -the build and rt batch files accept a -d option for debug builds. - -The 32bit builds end up in the solution folder PCbuild while the x64 builds -land in the amd64 subfolder. The PGI and PGO builds for profile guided -optimization end up in their own folders, too. +Building Python using Microsoft Visual C++ +------------------------------------------ + +This directory is used to build CPython for Microsoft Windows NT version +5.1 or higher (Windows XP, Windows Server 2003, or later) on 32 and 64 +bit platforms. Using this directory requires an installation of +Microsoft Visual C++ 2010 (MSVC 10.0) of any edition. The specific +requirements are as follows: + +Visual C++ 2010 Express Edition + Required for building 32-bit Debug and Release configuration builds. + The Python build solution pcbuild.sln makes use of Solution Folders, + which this edition does not support. Any time pcbuild.sln is opened + or reloaded by Visual C++, a warning about Solution Folders will be + displayed which can be safely dismissed with no impact on your + ability to build Python. +Visual Studio 2010 Professional Edition + Required for building 64-bit Debug and Release configuration builds +Visual Studio 2010 Premium Edition + Required for building Release configuration builds that make use of + Profile Guided Optimization (PGO), on either platform. + +Installing Service Pack 1 for Visual Studio 2010 is highly recommended +to avoid LNK1123 errors. + +All you need to do to build is open the solution "pcbuild.sln" in Visual +Studio, select the desired combination of configuration and platform, +then build with "Build Solution" or the F7 keyboard shortcut. You can +also build from the command line using the "build.bat" script in this +directory. The solution is configured to build the projects in the +correct order. + +The solution currently supports two platforms. The Win32 platform is +used to build standard x86-compatible 32-bit binaries, output into this +directory. The x64 platform is used for building 64-bit AMD64 (aka +x86_64 or EM64T) binaries, output into the amd64 sub-directory which +will be created if it doesn't already exist. The Itanium (IA-64) +platform is no longer supported. See the "Building for AMD64" section +below for more information about 64-bit builds. + +Four configuration options are supported by the solution: +Debug + Used to build Python with extra debugging capabilities, equivalent + to using ./configure --with-pydebug on UNIX. All binaries built + using this configuration have "_d" added to their name: + python34_d.dll, python_d.exe, parser_d.pyd, and so on. Both the + build and rt (run test) batch files in this directory accept a -d + option for debug builds. If you are building Python to help with + development of CPython, you will most likely use this configuration. +PGInstrument, PGUpdate + Used to build Python in Release configuration using PGO, which + requires Premium Edition of Visual Studio. See the "Profile + Guided Optimization" section below for more information. Build + output from each of these configurations lands in its own + sub-directory of this directory. The official Python releases are + built using these configurations. +Release + Used to build Python as it is meant to be used in production + settings, though without PGO. + Legacy support -------------- You can find build directories for older versions of Visual Studio and -Visual C++ in the PC directory. The legacy build directories are no longer -actively maintained and may not work out of the box. +Visual C++ in the PC directory. The legacy build directories are no +longer actively maintained and may not work out of the box. -PC/VC6/ - Visual C++ 6.0 -PC/VS7.1/ - Visual Studio 2003 (7.1) -PC/VS8.0/ - Visual Studio 2005 (8.0) -PC/VS9.0/ - Visual Studio 2008 (9.0) +Currently, the only legacy build directory is PC\VS9.0, for Visual +Studio 2008 (9.0). -C RUNTIME +C Runtime --------- -Visual Studio 2010 uses version 10 of the C runtime (MSVCRT10). The executables -no longer use the "Side by Side" assemblies used in previous versions of the -compiler. This simplifies distribution of applications. -The run time libraries are available under the VC/Redist folder of your visual studio -distribution. For more info, see the Readme in the VC/Redist folder. +Visual Studio 2010 uses version 10 of the C runtime (MSVCRT10). The +executables no longer use the "Side by Side" assemblies used in previous +versions of the compiler. This simplifies distribution of applications. + +The run time libraries are available under the VC/Redist folder of your +Visual Studio distribution. For more info, see the Readme in the +VC/Redist folder. + + +Sub-Projects +------------ -SUBPROJECTS ------------ -These subprojects should build out of the box. Subprojects other than the -main ones (pythoncore, python, pythonw) generally build a DLL (renamed to -.pyd) from a specific module so that users don't have to load the code -supporting that module unless they import the module. +The CPython project is split up into several smaller sub-projects which +are managed by the pcbuild.sln solution file. Each sub-project is +represented by a .vcxproj and a .vcxproj.filters file starting with the +name of the sub-project. These sub-projects fall into a few general +categories: +The following sub-projects represent the bare minimum required to build +a functioning CPython interpreter. If nothing else builds but these, +you'll have a very limited but usable python.exe: pythoncore .dll and .lib python .exe +kill_python + kill_python.exe, a small program designed to kill any instances of + python(_d).exe that are running and live in the build output + directory; this is meant to avoid build issues due to locked files +make_buildinfo, make_versioninfo + helpers to provide necessary information to the build process + +These sub-projects provide extra executables that are useful for running +CPython in different ways: pythonw - pythonw.exe, a variant of python.exe that doesn't pop up a DOS box + pythonw.exe, a variant of python.exe that doesn't open a Command + Prompt window +pylauncher + py.exe, the Python Launcher for Windows, see + http://docs.python.org/3/using/windows.html#launcher +pywlauncher + pyw.exe, a variant of py.exe that doesn't open a Command Prompt + window +_testembed + _testembed.exe, a small program that embeds Python for testing + purposes, used by test_capi.py + +These are miscellaneous sub-projects that don't really fit the other +categories. By default, these projects do not build in Debug +configuration: +_freeze_importlib + _freeze_importlib.exe, used to regenerate Python\importlib.h after + changes have been made to Lib\importlib\_bootstrap.py +bdist_wininst + ..\Lib\distutils\command\wininst-10.0[-amd64].exe, the base + executable used by the distutils bdist_wininst command +python3dll + python3.dll, the PEP 384 Stable ABI dll +xxlimited + builds an example module that makes use of the PEP 384 Stable ABI, + see Modules\xxlimited.c + +The following sub-projects are for individual modules of the standard +library which are implemented in C; each one builds a DLL (renamed to +.pyd) of the same name as the project: +_ctypes +_ctypes_test +_decimal +_elementtree +_hashlib +_msi +_multiprocessing +_overlapped _socket - socketmodule.c _testcapi - tests of the Python C API, run via Lib/test/test_capi.py, and - implemented by module Modules/_testcapimodule.c _testbuffer - buffer protocol tests, run via Lib/test/test_buffer.py, and - implemented by module Modules/_testbuffer.c +_testimportmultiple pyexpat - Python wrapper for accelerated XML parsing, which incorporates stable - code from the Expat project: http://sourceforge.net/projects/expat/ select - selectmodule.c unicodedata - large tables of Unicode data winsound - play sounds (typically .wav files) under Windows -Python-controlled subprojects that wrap external projects: -_sqlite3 - Wraps SQLite 3.7.12, which is currently built by sqlite3.vcxproj. -_tkinter - Wraps the Tk windowing system. Unlike _sqlite3, there's no - corresponding tcltk.vcxproj-type project that builds Tcl/Tk from vcxproj's - within our pcbuild.sln, which means this module expects to find a - pre-built Tcl/Tk in either ..\..\tcltk for 32-bit or ..\..\tcltk64 for - 64-bit (relative to this directory). See below for instructions to build - Tcl/Tk. +The following Python-controlled sub-projects wrap external projects. +Note that these external libraries are not necessary for a working +interpreter, but they do implement several major features. See the +"Getting External Sources" section below for additional information +about getting the source for building these libraries. The sub-projects +are: _bz2 - Python wrapper for the libbzip2 compression library. Homepage + Python wrapper for version 1.0.6 of the libbzip2 compression library + Homepage: http://www.bzip.org/ - Download the source from the python.org copy into the dist - directory: - - svn export http://svn.python.org/projects/external/bzip2-1.0.6 - - ** NOTE: if you use the Tools\buildbot\external(-amd64).bat approach for - obtaining external sources then you don't need to manually get the source - above via subversion. ** _lzma - Python wrapper for the liblzma compression library. - - Download the pre-built Windows binaries from http://tukaani.org/xz/, and - extract to ..\xz-5.0.3. If you are using a more recent version of liblzma, - it will be necessary to rename the directory from xz-<VERSION> to xz-5.0.3. - + Python wrapper for the liblzma compression library, using pre-built + binaries of XZ Utils version 5.0.5 + Homepage: + http://tukaani.org/xz/ _ssl - Python wrapper for the secure sockets library. - - Get the source code through - - svn export http://svn.python.org/projects/external/openssl-1.0.1e - - ** NOTE: if you use the Tools\buildbot\external(-amd64).bat approach for - obtaining external sources then you don't need to manually get the source - above via subversion. ** - - Alternatively, get the latest version from http://www.openssl.org. - You can (theoretically) use any version of OpenSSL you like - the - build process will automatically select the latest version. - - You must install the NASM assembler 2.10 or newer from - http://nasm.sf.net - for x86 builds. Put nasm.exe anywhere in your PATH. More recent - versions of OpenSSL may need a later version of NASM. If OpenSSL's self - tests don't pass, you should first try to update NASM and do a full - rebuild of OpenSSL. - - You can also install ActivePerl from + Python wrapper for version 1.0.1h of the OpenSSL secure sockets + library, which is built by ssl.vcxproj + Homepage: + http://www.openssl.org/ + + Building OpenSSL requires nasm.exe (the Netwide Assembler), version + 2.10 or newer from + http://www.nasm.us/ + to be somewhere on your PATH. More recent versions of OpenSSL may + need a later version of NASM. If OpenSSL's self tests don't pass, + you should first try to update NASM and do a full rebuild of + OpenSSL. + + If you like to use the official sources instead of the files from + python.org's subversion repository, Perl is required to build the + necessary makefiles and assembly files. ActivePerl is available + from http://www.activestate.com/activeperl/ - if you like to use the official sources instead of the files from - python's subversion repository. The svn version contains pre-build - makefiles and assembly files. + The svn.python.org version contains pre-built makefiles and assembly + files. - The build process makes sure that no patented algorithms are included. - For now RC5, MDC2 and IDEA are excluded from the build. You may have - to manually remove $(OBJ_D)\i_*.obj from ms\nt.mak if the build process - complains about missing files or forbidden IDEA. Again the files provided - in the subversion repository are already fixed. + The build process makes sure that no patented algorithms are + included. For now RC5, MDC2 and IDEA are excluded from the build. + You may have to manually remove $(OBJ_D)\i_*.obj from ms\nt.mak if + using official sources; the svn.python.org-hosted version is already + fixed. - The MSVC project simply invokes PCBuild/build_ssl.py to perform - the build. This Python script locates and builds your OpenSSL - installation, then invokes a simple makefile to build the final .pyd. + The ssl.vcxproj sub-project simply invokes PCbuild/build_ssl.py, + which locates and builds OpenSSL. build_ssl.py attempts to catch the most common errors (such as not being able to find OpenSSL sources, or not being able to find a Perl - that works with OpenSSL) and give a reasonable error message. - If you have a problem that doesn't seem to be handled correctly - (eg, you know you have ActivePerl but we can't find it), please take - a peek at build_ssl.py and suggest patches. Note that build_ssl.py + that works with OpenSSL) and give a reasonable error message. If + you have a problem that doesn't seem to be handled correctly (e.g., + you know you have ActivePerl but we can't find it), please take a + peek at build_ssl.py and suggest patches. Note that build_ssl.py should be able to be run directly from the command-line. - build_ssl.py/MSVC isn't clever enough to clean OpenSSL - you must do - this by hand. + The ssl sub-project does not have the ability to clean the OpenSSL + build; if you need to rebuild, you'll have to clean it by hand. +_sqlite3 + Wraps SQLite 3.8.3.1, which is itself built by sqlite3.vcxproj + Homepage: + http://www.sqlite.org/ +_tkinter + Wraps version 8.6.1 of the Tk windowing system. + Homepage: + http://www.tcl.tk/ -The subprojects above wrap external projects Python doesn't control, and as -such, a little more work is required in order to download the relevant source -files for each project before they can be built. The buildbots do this each -time they're built, so the easiest approach is to run either external.bat or -external-amd64.bat in the ..\Tools\buildbot directory from ..\, i.e.: + Unlike the other external libraries listed above, Tk must be built + separately before the _tkinter module can be built. This means that + a pre-built Tcl/Tk installation is expected in ..\..\tcltk (tcltk64 + for 64-bit) relative to this directory. See "Getting External + Sources" below for the easiest method to ensure Tcl/Tk is built. - C:\..\svn.python.org\projects\python\trunk\PCbuild>cd .. - C:\..\svn.python.org\projects\python\trunk>Tools\buildbot\external.bat -This extracts all the external subprojects from http://svn.python.org/external -via Subversion (so you'll need an svn.exe on your PATH) and places them in -..\.. (relative to this directory). The external(-amd64).bat scripts will -also build a debug build of Tcl/Tk; there aren't any equivalent batch files -for building release versions of Tcl/Tk lying around in the Tools\buildbot -directory. If you need to build a release version of Tcl/Tk it isn't hard -though, take a look at the relevant external(-amd64).bat file and find the -two nmake lines, then call each one without the 'DEBUG=1' parameter, i.e.: +Getting External Sources +------------------------ + +The last category of sub-projects listed above wrap external projects +Python doesn't control, and as such a little more work is required in +order to download the relevant source files for each project before they +can be built. The buildbots must ensure that all libraries are present +before building, so the easiest approach is to run either external.bat +or external-amd64.bat (depending on platform) in the ..\Tools\buildbot +directory from ..\, i.e.: + + C:\python\cpython\PCbuild>cd .. + C:\python\cpython>Tools\buildbot\external.bat + +This extracts all the external sub-projects from + http://svn.python.org/projects/external +via Subversion (so you'll need an svn.exe on your PATH) and places them +in ..\.. (relative to this directory). + +It is also possible to download sources from each project's homepage, +though you may have to change the names of some folders in order to make +things work. For instance, if you were to download a version 5.0.7 of +XZ Utils, you would need to extract the archive into ..\..\xz-5.0.5 +anyway, since that is where the solution is set to look for xz. The +same is true for all other external projects. + +The external(-amd64).bat scripts will also build a debug build of +Tcl/Tk, but there aren't any equivalent batch files for building release +versions of Tcl/Tk currently available. If you need to build a release +version of Tcl/Tk, just take a look at the relevant external(-amd64).bat +file and find the two nmake lines, then call each one without the +'DEBUG=1' parameter, i.e.: The external-amd64.bat file contains this for tcl: nmake -f makefile.vc DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all install @@ -202,89 +266,53 @@ The external-amd64.bat file contains this for tcl: So for a release build, you'd call it as: nmake -f makefile.vc MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all install - XXX Should we compile with OPTS=threads? - XXX Our installer copies a lot of stuff out of the Tcl/Tk install - XXX directory. Is all of that really needed for Python use of Tcl/Tk? - -This will be cleaned up in the future; ideally Tcl/Tk will be brought into our -pcbuild.sln as custom .vcxproj files, just as we've recently done with the -sqlite3.vcxproj file, which will remove the need for Tcl/Tk to be built -separately via a batch file. - -XXX trent.nelson 02-Apr-08: - Having the external subprojects in ..\.. relative to this directory is a - bit of a nuisance when you're working on py3k and trunk in parallel and - your directory layout mimics that of Python's subversion layout, e.g.: - - C:\..\svn.python.org\projects\python\trunk - C:\..\svn.python.org\projects\python\branches\py3k - C:\..\svn.python.org\projects\python\branches\release25-maint - - I'd like to change things so that external subprojects are fetched from - ..\external instead of ..\.., then provide some helper scripts or batch - files that would set up a new ..\external directory with svn checkouts of - the relevant branches in http://svn.python.org/projects/external/, or - alternatively, use junctions to link ..\external with a pre-existing - externals directory being used by another branch. i.e. if I'm usually - working on trunk (and have previously created trunk\external via the - provided batch file), and want to do some work on py3k, I'd set up a - junction as follows (using the directory structure above as an example): +Note that the above command is called from within ..\..\tcl-8.6.1.0\win +(relative to this directory); don't forget to build Tk as well as Tcl! - C:\..\python\trunk\external <- already exists and has built versions - of the external subprojects +This will be cleaned up in the future; http://bugs.python.org/issue15968 +tracks adding a new tcltk.vcxproj file that will build Tcl/Tk and Tix +the same way the other external projects listed above are built. - C:\..\python\branches\py3k>linkd.exe external ..\..\trunk\external - Link created at: external - - Only a slight tweak would be needed to the buildbots such that bots - building trunk and py3k could make use of the same facility. (2.5.x - builds need to be kept separate as they're using Visual Studio 7.1.) -/XXX trent.nelson 02-Apr-08 - -Building for Itanium --------------------- - -Official support for Itanium builds have been dropped from the build. Please -contact us and provide patches if you are interested in Itanium builds. Building for AMD64 ------------------ -The build process for AMD64 / x64 is very similar to standard builds. You just -have to set x64 as platform. In addition, the HOST_PYTHON environment variable -must point to a Python interpreter (at least 2.4), to support cross-compilation. - -Building Python Using the free MS Toolkit Compiler --------------------------------------------------- +The build process for AMD64 / x64 is very similar to standard builds, +you just have to set x64 as platform. In addition, the HOST_PYTHON +environment variable must point to a Python interpreter (at least 2.4), +to support cross-compilation from Win32. Note that Visual Studio +requires Professional Edition or better in order to build 64-bit +binaries. -Microsoft has withdrawn the free MS Toolkit Compiler, so this can no longer -be considered a supported option. Instead you can use the free VS C++ Express -Edition. Profile Guided Optimization --------------------------- The solution has two configurations for PGO. The PGInstrument -configuration must be build first. The PGInstrument binaries are -linked against a profiling library and contain extra debug -information. The PGUpdate configuration takes the profiling data and -generates optimized binaries. +configuration must be built first. The PGInstrument binaries are linked +against a profiling library and contain extra debug information. The +PGUpdate configuration takes the profiling data and generates optimized +binaries. -The build_pgo.bat script automates the creation of optimized binaries. It -creates the PGI files, runs the unit test suite or PyBench with the PGI -python and finally creates the optimized files. +The build_pgo.bat script automates the creation of optimized binaries. +It creates the PGI files, runs the unit test suite or PyBench with the +PGI python, and finally creates the optimized files. + +See + http://msdn.microsoft.com/en-us/library/e7k32f4k(VS.100).aspx +for more on this topic. -http://msdn.microsoft.com/en-us/library/e7k32f4k(VS.100).aspx Static library -------------- -The solution has no configuration for static libraries. However it is easy -it build a static library instead of a DLL. You simply have to set the -"Configuration Type" to "Static Library (.lib)" and alter the preprocessor -macro "Py_ENABLE_SHARED" to "Py_NO_ENABLE_SHARED". You may also have to -change the "Runtime Library" from "Multi-threaded DLL (/MD)" to -"Multi-threaded (/MT)". +The solution has no configuration for static libraries. However it is +easy to build a static library instead of a DLL. You simply have to set +the "Configuration Type" to "Static Library (.lib)" and alter the +preprocessor macro "Py_ENABLE_SHARED" to "Py_NO_ENABLE_SHARED". You may +also have to change the "Runtime Library" from "Multi-threaded DLL +(/MD)" to "Multi-threaded (/MT)". + Visual Studio properties ------------------------ @@ -293,6 +321,7 @@ The PCbuild solution makes heavy use of Visual Studio property files (*.props). The properties can be viewed and altered in the Property Manager (View -> Other Windows -> Property Manager). +The property files used are (+-- = "also imports"): * debug (debug macro: _DEBUG) * pginstrument (PGO) * pgupdate (PGO) @@ -305,15 +334,18 @@ Manager (View -> Other Windows -> Property Manager). +-- pyproject * pyproject (base settings for all projects, user macros like PyDllName) * release (release macro: NDEBUG) + * sqlite3 (used only by sqlite3.vcxproj) * x64 (AMD64 / x64 platform specific settings) -The pyproject propertyfile defines _WIN32 and x64 defines _WIN64 and _M_X64 -although the macros are set by the compiler, too. The GUI doesn't always know -about the macros and confuse the user with false information. +The pyproject property file defines _WIN32 and x64 defines _WIN64 and +_M_X64 although the macros are set by the compiler, too. The GUI doesn't +always know about the macros and confuse the user with false +information. + -YOUR OWN EXTENSION DLLs +Your Own Extension DLLs ----------------------- -If you want to create your own extension module DLL, there's an example -with easy-to-follow instructions in ../PC/example/; read the file -readme.txt there first. +If you want to create your own extension module DLL (.pyd), there's an +example with easy-to-follow instructions in ..\PC\example\; read the +file readme.txt there first. diff --git a/PCbuild/xxlimited.vcxproj b/PCbuild/xxlimited.vcxproj index 26bc20d..abf41f9 100644 --- a/PCbuild/xxlimited.vcxproj +++ b/PCbuild/xxlimited.vcxproj @@ -120,7 +120,7 @@ </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> - <PreprocessorDefinitions>NDEBUG;_WIN32;_WINDLL;Py_LIMITED_API</PreprocessorDefinitions> + <PreprocessorDefinitions>NDEBUG;_WIN32;_WINDLL;Py_LIMITED_API=0x03040000</PreprocessorDefinitions> </ClCompile> <Link> <AdditionalDependencies>wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -140,7 +140,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'"> <ClCompile> - <PreprocessorDefinitions>Py_LIMITED_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>Py_LIMITED_API=0x03040000;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <AdditionalDependencies>wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -161,7 +161,7 @@ </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|Win32'"> <ClCompile> - <PreprocessorDefinitions>Py_LIMITED_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>Py_LIMITED_API=0x03040000;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <AdditionalDependencies>wsock32.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -183,11 +183,6 @@ <ItemGroup> <ClCompile Include="..\Modules\xxlimited.c" /> </ItemGroup> - <ItemGroup> - <ProjectReference Include="pythoncore.vcxproj"> - <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> - </ProjectReference> - </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> |