]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Merged revisions 59234-59238 via svnmerge from
authorChristian Heimes <christian@cheimes.de>
Fri, 30 Nov 2007 19:27:20 +0000 (19:27 +0000)
committerChristian Heimes <christian@cheimes.de>
Fri, 30 Nov 2007 19:27:20 +0000 (19:27 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r59237 | facundo.batista | 2007-11-30 18:15:25 +0100 (Fri, 30 Nov 2007) | 4 lines

  Reordering of __new__ to minimize isinstance() calls to most
  used types. Thanks Mark Dickinson.
........
  r59238 | christian.heimes | 2007-11-30 20:18:08 +0100 (Fri, 30 Nov 2007) | 6 lines

  Removed or replaced some more deprecated preprocessor macros.
  Moved the _DEBUG and NDEBUG macros to two new property files.
  Fixed #1527 Problem with static libs on Windows
  Updated README.txt
........

14 files changed:
Lib/decimal.py
PC/dl_nt.c
PCbuild9/debug.vsprops [new file with mode: 0644]
PCbuild9/make_buildinfo.vcproj
PCbuild9/make_versioninfo.vcproj
PCbuild9/pyd.vsprops
PCbuild9/pyd_d.vsprops
PCbuild9/pyproject.vsprops
PCbuild9/python.vcproj
PCbuild9/pythoncore.vcproj
PCbuild9/pythonw.vcproj
PCbuild9/readme.txt
PCbuild9/release.vsprops [new file with mode: 0644]
PCbuild9/w9xpopen.vcproj

index 7842cb25071358494ed6f6156c84b7f14e4f0688..2c97dbd0b325a3c6db84d6af3a0af60f0f06c09a 100644 (file)
@@ -540,21 +540,47 @@ class Decimal(object):
         # digits.
 
         self = object.__new__(cls)
-        self._is_special = False
 
-        # From an internal working value
-        if isinstance(value, _WorkRep):
-            self._sign = value.sign
-            self._int = str(value.int)
-            self._exp = int(value.exp)
-            return self
+        # From a string
+        # REs insist on real strings, so we can too.
+        if isinstance(value, str):
+            m = _parser(value)
+            if m is None:
+                if context is None:
+                    context = getcontext()
+                return context._raise_error(ConversionSyntax,
+                                "Invalid literal for Decimal: %r" % value)
 
-        # From another decimal
-        if isinstance(value, Decimal):
-            self._exp  = value._exp
-            self._sign = value._sign
-            self._int  = value._int
-            self._is_special  = value._is_special
+            if m.group('sign') == "-":
+                self._sign = 1
+            else:
+                self._sign = 0
+            intpart = m.group('int')
+            if intpart is not None:
+                # finite number
+                fracpart = m.group('frac')
+                exp = int(m.group('exp') or '0')
+                if fracpart is not None:
+                    self._int = (intpart+fracpart).lstrip('0') or '0'
+                    self._exp = exp - len(fracpart)
+                else:
+                    self._int = intpart.lstrip('0') or '0'
+                    self._exp = exp
+                self._is_special = False
+            else:
+                diag = m.group('diag')
+                if diag is not None:
+                    # NaN
+                    self._int = diag.lstrip('0')
+                    if m.group('signal'):
+                        self._exp = 'N'
+                    else:
+                        self._exp = 'n'
+                else:
+                    # infinity
+                    self._int = '0'
+                    self._exp = 'F'
+                self._is_special = True
             return self
 
         # From an integer
@@ -565,6 +591,23 @@ class Decimal(object):
                 self._sign = 1
             self._exp = 0
             self._int = str(abs(value))
+            self._is_special = False
+            return self
+
+        # From another decimal
+        if isinstance(value, Decimal):
+            self._exp  = value._exp
+            self._sign = value._sign
+            self._int  = value._int
+            self._is_special  = value._is_special
+            return self
+
+        # From an internal working value
+        if isinstance(value, _WorkRep):
+            self._sign = value.sign
+            self._int = str(value.int)
+            self._exp = int(value.exp)
+            self._is_special = False
             return self
 
         # tuple/list conversion (possibly from as_tuple())
@@ -616,48 +659,6 @@ class Decimal(object):
             raise TypeError("Cannot convert float to Decimal.  " +
                             "First convert the float to a string")
 
-        # From a string
-        # REs insist on real strings, so we can too.
-        if isinstance(value, str):
-            m = _parser(value)
-            if m is None:
-                if context is None:
-                    context = getcontext()
-                return context._raise_error(ConversionSyntax,
-                                "Invalid literal for Decimal: %r" % value)
-
-            if m.group('sign') == "-":
-                self._sign = 1
-            else:
-                self._sign = 0
-            intpart = m.group('int')
-            if intpart is not None:
-                # finite number
-                fracpart = m.group('frac')
-                exp = int(m.group('exp') or '0')
-                if fracpart is not None:
-                    self._int = (intpart+fracpart).lstrip('0') or '0'
-                    self._exp = exp - len(fracpart)
-                else:
-                    self._int = intpart.lstrip('0') or '0'
-                    self._exp = exp
-                self._is_special = False
-            else:
-                diag = m.group('diag')
-                if diag is not None:
-                    # NaN
-                    self._int = diag.lstrip('0')
-                    if m.group('signal'):
-                        self._exp = 'N'
-                    else:
-                        self._exp = 'n'
-                else:
-                    # infinity
-                    self._int = '0'
-                    self._exp = 'F'
-                self._is_special = True
-            return self
-
         raise TypeError("Cannot convert %r to Decimal" % value)
 
     def _isnan(self):
index a87b523818a3d2a27917fe37c0ca073d350fe2ed..e143c780ac4b23dfaf3d27cd45338683afa8849d 100644 (file)
@@ -11,6 +11,7 @@ forgotten) from the programmer.
 #include "Python.h"
 #include "windows.h"
 
+#ifdef Py_ENABLE_SHARED
 char dllVersionBuffer[16] = ""; // a private buffer
 
 // Python Globals
@@ -35,3 +36,5 @@ BOOL  WINAPI  DllMain (HANDLE hInst,
        }
        return TRUE;
 }
+
+#endif /* Py_ENABLE_SHARED */
diff --git a/PCbuild9/debug.vsprops b/PCbuild9/debug.vsprops
new file mode 100644 (file)
index 0000000..59acd90
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+       ProjectType="Visual C++"
+       Version="8.00"
+       Name="debug"
+       >
+       <Tool
+               Name="VCCLCompilerTool"
+               PreprocessorDefinitions="_DEBUG"
+       />
+</VisualStudioPropertySheet>
\ No newline at end of file
index 8ba5c49a9e21ff28cede50cb5cf88457903319ab..c42229c1a0ac9aa7ea720d244c0e809d1399281d 100644 (file)
@@ -22,7 +22,7 @@
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
                        CharacterSet="0"
                        >
                        <Tool
@@ -44,7 +44,7 @@
                                Name="VCCLCompilerTool"
                                Optimization="0"
                                InlineFunctionExpansion="1"
-                               PreprocessorDefinitions="NDEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                RuntimeLibrary="0"
                        />
                        <Tool
@@ -87,7 +87,7 @@
                <Configuration
                        Name="Release|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
                        >
                        <Tool
                                Name="VCPreBuildEventTool"
                        />
                        <Tool
                                Name="VCCLCompilerTool"
-                               PreprocessorDefinitions="NDEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                        />
                        <Tool
                                Name="VCManagedResourceCompilerTool"
index 61feabb880316c11cf227b5ec647b7d89e589665..dcb922bf1e85e4ba69308a695ff46483d486027f 100644 (file)
@@ -21,7 +21,7 @@
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
@@ -50,7 +50,7 @@
                                InlineFunctionExpansion="1"
                                EnableIntrinsicFunctions="true"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
@@ -99,7 +99,7 @@
                <Configuration
                        Name="Release|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
                        >
                        <Tool
                                Name="VCPreBuildEventTool"
                                Optimization="2"
                                InlineFunctionExpansion="1"
                                EnableIntrinsicFunctions="true"
-                               PreprocessorDefinitions="NDEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                        />
                        <Tool
                                Name="VCManagedResourceCompilerTool"
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="0"
                                InlineFunctionExpansion="1"
                                EnableIntrinsicFunctions="false"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="_DEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="Debug|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
                        >
                        <Tool
                                Name="VCPreBuildEventTool"
                                Optimization="0"
                                InlineFunctionExpansion="1"
                                EnableIntrinsicFunctions="false"
-                               PreprocessorDefinitions="_DEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                        />
                        <Tool
                                Name="VCManagedResourceCompilerTool"
index 2a69d9599bc3992170679212f3fa40b17a69628c..2e21a8068a2d163af251c9d2fa1fb8788de72afd 100644 (file)
@@ -3,11 +3,10 @@
        ProjectType="Visual C++"
        Version="8.00"
        Name="pyd"
-       InheritedPropertySheets=".\pyproject.vsprops"
+       InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
        >
        <Tool
                Name="VCCLCompilerTool"
-               PreprocessorDefinitions="NDEBUG"
                RuntimeLibrary="2"
        />
        <Tool
index f0dc87c6344cb2ef8b2490842d9f9e077bdbc4a6..b8f98f686aef91976dba30fc98f33e6f0f5033f1 100644 (file)
@@ -3,14 +3,13 @@
        ProjectType="Visual C++"
        Version="8.00"
        Name="pyd_d"
-       InheritedPropertySheets=".\pyproject.vsprops"
+       InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
        >
        <Tool
                Name="VCCLCompilerTool"
                Optimization="0"
                InlineFunctionExpansion="0"
                EnableIntrinsicFunctions="false"
-               PreprocessorDefinitions="_DEBUG"
                RuntimeLibrary="3"
        />
        <Tool
index 3582f32a591c2dbe47da345baf06b0b4b5ec322d..007804405c8c84ecc5161de07a63f24dc9ca51c7 100644 (file)
@@ -12,7 +12,7 @@
                InlineFunctionExpansion="1"
                EnableIntrinsicFunctions="true"
                AdditionalIncludeDirectories="..\Include; ..\PC"
-               PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE"
+               PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
                StringPooling="true"
                ExceptionHandling="0"
                RuntimeLibrary="0"
index 8381dcfe2e8c647e59886b7497a5d5220d53157e..7efa98dabe212dbadafffa44fb9c20c980cfbfed 100644 (file)
@@ -20,7 +20,7 @@
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
@@ -43,7 +43,7 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
@@ -93,7 +93,7 @@
                <Configuration
                        Name="Release|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="0"
                                Optimization="0"
                                EnableIntrinsicFunctions="false"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="_DEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                RuntimeLibrary="3"
                                BrowseInformation="1"
                                CompileAs="0"
                <Configuration
                        Name="Debug|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                                Optimization="0"
                                EnableIntrinsicFunctions="false"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="_DEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                RuntimeLibrary="3"
                                BrowseInformation="1"
                                CompileAs="0"
                <Configuration
                        Name="PGInstrument|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGInstrument|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGUpdate|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGUpdate|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_CONSOLE"
+                               PreprocessorDefinitions="_CONSOLE"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
index 878d39128487c6ab5b53ce1db7e703419f2f51df..1df98d4f8b63e6f079b159388a67a39fcb781dd4 100644 (file)
@@ -21,7 +21,7 @@
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
@@ -44,7 +44,7 @@
                                Name="VCCLCompilerTool"
                                AdditionalOptions="/Zm200 "
                                AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
-                               PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
+                               PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
                                RuntimeLibrary="2"
                        />
                        <Tool
@@ -95,7 +95,7 @@
                <Configuration
                        Name="Release|x64"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                                Name="VCCLCompilerTool"
                                AdditionalOptions="/Zm200 "
                                AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
-                               PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
+                               PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
                                RuntimeLibrary="2"
                        />
                        <Tool
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="0"
                                InlineFunctionExpansion="0"
                                EnableIntrinsicFunctions="false"
                                AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
-                               PreprocessorDefinitions="_DEBUG;USE_DL_EXPORT;_USRDLL"
+                               PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
                                RuntimeLibrary="3"
                        />
                        <Tool
                <Configuration
                        Name="Debug|x64"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                                InlineFunctionExpansion="0"
                                EnableIntrinsicFunctions="false"
                                AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
-                               PreprocessorDefinitions="_DEBUG;USE_DL_EXPORT;_USRDLL"
+                               PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
                                RuntimeLibrary="3"
                        />
                        <Tool
                <Configuration
                        Name="PGInstrument|Win32"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                                Name="VCCLCompilerTool"
                                AdditionalOptions="/Zm200 "
                                AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
-                               PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
+                               PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
                                RuntimeLibrary="2"
                        />
                        <Tool
                <Configuration
                        Name="PGInstrument|x64"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                                Name="VCCLCompilerTool"
                                AdditionalOptions="/Zm200 "
                                AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
-                               PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
+                               PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
                                RuntimeLibrary="2"
                        />
                        <Tool
                <Configuration
                        Name="PGUpdate|Win32"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                                Name="VCCLCompilerTool"
                                AdditionalOptions="/Zm200 "
                                AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
-                               PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
+                               PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
                                RuntimeLibrary="2"
                        />
                        <Tool
                <Configuration
                        Name="PGUpdate|x64"
                        ConfigurationType="2"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                                Name="VCCLCompilerTool"
                                AdditionalOptions="/Zm200 "
                                AdditionalIncludeDirectories="..\Python;..\Modules\zlib"
-                               PreprocessorDefinitions="NDEBUG;USE_DL_EXPORT;_USRDLL"
+                               PreprocessorDefinitions="_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED"
                                RuntimeLibrary="2"
                        />
                        <Tool
index 1bc1dad0ff747c2e96f18dd5f7874bb8dcb54d4c..0013e9cbe92cf85dfb3981d84d77efbcc5a46391 100644 (file)
@@ -20,7 +20,7 @@
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="0"
@@ -45,7 +45,7 @@
                                Optimization="0"
                                EnableIntrinsicFunctions="false"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="_DEBUG;_WINDOWS"
+                               PreprocessorDefinitions="_WINDOWS"
                                RuntimeLibrary="3"
                                CompileAs="0"
                        />
@@ -92,7 +92,7 @@
                <Configuration
                        Name="Debug|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                                Optimization="0"
                                EnableIntrinsicFunctions="false"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="_DEBUG;_WINDOWS"
+                               PreprocessorDefinitions="_WINDOWS"
                                RuntimeLibrary="3"
                                CompileAs="0"
                        />
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_WINDOWS"
+                               PreprocessorDefinitions="_WINDOWS"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="Release|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_WINDOWS"
+                               PreprocessorDefinitions="_WINDOWS"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGInstrument|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_WINDOWS"
+                               PreprocessorDefinitions="_WINDOWS"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGInstrument|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_WINDOWS"
+                               PreprocessorDefinitions="_WINDOWS"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGUpdate|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_WINDOWS"
+                               PreprocessorDefinitions="_WINDOWS"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGUpdate|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        >
                        <Tool
                                Name="VCCLCompilerTool"
                                AdditionalIncludeDirectories=""
-                               PreprocessorDefinitions="NDEBUG;_WINDOWS"
+                               PreprocessorDefinitions="_WINDOWS"
                                StringPooling="true"
                                RuntimeLibrary="2"
                                EnableFunctionLevelLinking="true"
index 025684b0e840a8f8a61d95d46f38679fb6fd196b..668a86b0512661faf387df0fd34655e5a2f224b2 100644 (file)
@@ -23,8 +23,8 @@ 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
+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)
@@ -209,16 +209,16 @@ _ssl
     You can (theoretically) use any version of OpenSSL you like - the
     build process will automatically select the latest version.
 
-    You must also install ActivePerl from
+    You must install the NASM assembler from
+        http://www.kernel.org/pub/software/devel/nasm/binaries/win32/
+    for x86 builds.  Put nasmw.exe anywhere in your PATH.
+
+    You can also install ActivePerl from
         http://www.activestate.com/Products/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.
 
-    You also need the NASM assembler
-    from http://www.kernel.org/pub/software/devel/nasm/binaries/win32/
-    Put nasmw.exe anywhere in your PATH.
-    
     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
@@ -265,15 +265,25 @@ have to set x64 as platform.
 Building Python Using the free MS Toolkit Compiler
 --------------------------------------------------
 
-Note that Microsoft have 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
+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
 ---------------------------
 
 http://msdn2.microsoft.com/en-us/library/e7k32f4k(VS.90).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)".
+
 YOUR OWN EXTENSION DLLs
 -----------------------
 If you want to create your own extension module DLL, there's an example
diff --git a/PCbuild9/release.vsprops b/PCbuild9/release.vsprops
new file mode 100644 (file)
index 0000000..4bbda68
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+       ProjectType="Visual C++"
+       Version="8.00"
+       Name="release"
+       >
+       <Tool
+               Name="VCCLCompilerTool"
+               PreprocessorDefinitions="NDEBUG"
+       />
+</VisualStudioPropertySheet>
index d00cef4def8bd133b12e5122329214971cd6f814..2397366b7929d5addc2c822128b6f09c7a8f98fa 100644 (file)
@@ -21,7 +21,7 @@
                <Configuration
                        Name="Debug|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="0"
@@ -44,7 +44,6 @@
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               PreprocessorDefinitions="_DEBUG"
                                BasicRuntimeChecks="3"
                                RuntimeLibrary="1"
                        />
@@ -86,7 +85,7 @@
                <Configuration
                        Name="Debug|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                        <Tool
                                Name="VCCLCompilerTool"
                                Optimization="0"
-                               PreprocessorDefinitions="_DEBUG"
                                BasicRuntimeChecks="3"
                                RuntimeLibrary="1"
                        />
                <Configuration
                        Name="Release|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                                Name="VCCLCompilerTool"
                                Optimization="2"
                                InlineFunctionExpansion="1"
-                               PreprocessorDefinitions="NDEBUG"
                                StringPooling="true"
                                RuntimeLibrary="0"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="Release|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                                Name="VCCLCompilerTool"
                                Optimization="2"
                                InlineFunctionExpansion="1"
-                               PreprocessorDefinitions="NDEBUG"
                                StringPooling="true"
                                RuntimeLibrary="0"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGInstrument|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\pginstrument.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                                Name="VCCLCompilerTool"
                                Optimization="2"
                                InlineFunctionExpansion="1"
-                               PreprocessorDefinitions="NDEBUG"
                                StringPooling="true"
                                RuntimeLibrary="0"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGInstrument|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pginstrument.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                                Name="VCCLCompilerTool"
                                Optimization="2"
                                InlineFunctionExpansion="1"
-                               PreprocessorDefinitions="NDEBUG"
                                StringPooling="true"
                                RuntimeLibrary="0"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGUpdate|Win32"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\pgupdate.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                                Name="VCCLCompilerTool"
                                Optimization="2"
                                InlineFunctionExpansion="1"
-                               PreprocessorDefinitions="NDEBUG"
                                StringPooling="true"
                                RuntimeLibrary="0"
                                EnableFunctionLevelLinking="true"
                <Configuration
                        Name="PGUpdate|x64"
                        ConfigurationType="1"
-                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops"
+                       InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\pgupdate.vsprops;.\release.vsprops"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="false"
                        CharacterSet="2"
                                Name="VCCLCompilerTool"
                                Optimization="2"
                                InlineFunctionExpansion="1"
-                               PreprocessorDefinitions="NDEBUG"
                                StringPooling="true"
                                RuntimeLibrary="0"
                                EnableFunctionLevelLinking="true"