Issue #1706: Require Windows 2000+

Added Py_BUILD_CORE_MODULES macro to set WINVER and NTDDI_VERSION to Windows 2000 for core modules, too
Added -d option to build.bat (same as -c Debug) and fixed warning about /build option
Updated Windows related readme.txt files
This commit is contained in:
Christian Heimes 2008-02-09 19:55:22 +00:00
parent 97fac3eb0a
commit 95d644708e
7 changed files with 35 additions and 20 deletions

View File

@ -1562,6 +1562,10 @@ C API
Windows
-------
- Patch #1706: Drop support for Win9x, WinME and NT4. Python now requires
Windows 2000 or greater. The _WINVER and NTDDI_VERSION macros are set to
Win2k for x86/32bit builds and WinXP for AMD64 builds.
- Conditionalize definition of _CRT_SECURE_NO_DEPRECATE
and _CRT_NONSTDC_NO_DEPRECATE.

View File

@ -158,10 +158,12 @@ WIN32 is still required for the locale module.
/* set the version macros for the windows headers */
#ifdef MS_WINX64
/* 64 bit only runs on XP or greater */
#define Py_WINVER 0x0501
#define Py_WINVER _WIN32_WINNT_WINXP
#define Py_NTDDI NTDDI_WINXP
#else
/* NT 4.0 or greater required otherwise */
#define Py_WINVER 0x0400
/* Python 2.6+ requires Windows 2000 or greater */
#define Py_WINVER _WIN32_WINNT_WIN2K
#define Py_NTDDI NTDDI_WIN2KSP4
#endif
/* We only set these values when building Python - we don't want to force
@ -171,7 +173,10 @@ WIN32 is still required for the locale module.
structures etc so it can optionally use new Windows features if it
determines at runtime they are available.
*/
#ifdef Py_BUILD_CORE
#if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_MODULE)
#ifndef NTDDI_VERSION
#define NTDDI_VERSION Py_NTDDI
#endif
#ifndef WINVER
#define WINVER Py_WINVER
#endif

View File

@ -1,11 +1,6 @@
Welcome to the "PC" subdirectory of the Python distribution
***********************************************************
*** Note: the project files for MS VC++ 7.1 are now in the
*** PCbuild directory. See the file readme.txt there for build
*** instructions. There is some information below that might
*** still be relevant.
This "PC" subdirectory contains complete project files to make
several older PC ports of Python, as well as all the PC-specific
Python source files. It should be located in the root of the
@ -79,18 +74,23 @@ dllbase_nt.txt A (manually maintained) list of base addresses for
example_nt A subdirectory showing how to build an extension as a
DLL.
Visual Studio 6.0
=================
The subdirectory VC6 contains Visual Studio 6 project files. These
were originally located in the PCBuild directory, but are no longer
maintained.
Legacy support for older versions of Visual Studio
==================================================
The subdirectories VC6, VS7.1 and VS8.0 contain legacy support older
versions of Microsoft Visual Studio. See PCbuild/readme.txt.
EMX development tools for OS/2
==============================
See os2emx/readme.txt. This platform is maintained by Andrew MacIntyre.
IBM VisualAge C/C++ for OS/2
============================
See os2vacpp/readme.txt. This platform is supported by Jeff Rush.
NOTE: Support for os2vacpp may be dropped in the near future. Please move
to EMX.
Note for Windows 3.x and DOS users
==================================

View File

@ -5,12 +5,13 @@ rem just for convenience.
setlocal
set platf=Win32
set conf=Release
set build=/build
set build=
:CheckOpts
if "%1"=="-c" (set conf=%2) & shift & shift & goto CheckOpts
if "%1"=="-c" (set conf=%2) & shift & shift & goto CheckOpts
if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts
if "%1"=="-r" (set build=/rebuild) & shift & goto CheckOpts
if "%1"=="-r" (set build=/rebuild) & shift & goto CheckOpts
if "%1"=="-d" (set conf=Debug) & shift & goto CheckOpts
set cmd=vcbuild /useenv pcbuild.sln %build% "%conf%|%platf%"
echo %cmd%

View File

@ -7,6 +7,7 @@
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="Py_BUILD_CORE_MODULE"
RuntimeLibrary="2"
/>
<Tool

View File

@ -10,6 +10,7 @@
Optimization="0"
InlineFunctionExpansion="0"
EnableIntrinsicFunctions="false"
PreprocessorDefinitions="Py_BUILD_CORE_MODULE"
RuntimeLibrary="3"
/>
<Tool

View File

@ -19,7 +19,7 @@ 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 F6 takes care of dependencies except for x64 builds. To make
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.
@ -30,7 +30,8 @@ NOTE:
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: python30_d.dll, python_d.exe, parser_d.pyd, and so on.
their name: python30_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
@ -122,6 +123,8 @@ _tkinter
Use x64 instead of Win32 for the x64 platform.
NOTE: Tcl/Tk 8.4 doesn't compile for x64.
Build Tcl first
---------------
Use "Start -> All Programs -> Microsoft Visual Studio 2008
@ -285,7 +288,7 @@ Building for Itanium
NOTE:
Official support for Itanium builds have been dropped from the build. Please
contact as and provide patches if you are interested in Itanium builds.
contact us and provide patches if you are interested in Itanium builds.
The project files support a ReleaseItanium configuration which creates
Win64/Itanium binaries. For this to work, you need to install the Platform