diff --git a/Misc/NEWS b/Misc/NEWS
index c9e7a309ea1..a7e54ade2ac 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -699,6 +699,8 @@ Library
Build
-----
+- Build support for Win64-AMD64 was added.
+
- Patch #1428494: Prefer linking against ncursesw over ncurses library.
- Patch #881820: look for openpty and forkpty also in libbsd.
diff --git a/PCbuild/_bsddb.vcproj b/PCbuild/_bsddb.vcproj
index e10b9d89f82..798fd68a429 100644
--- a/PCbuild/_bsddb.vcproj
+++ b/PCbuild/_bsddb.vcproj
@@ -183,6 +183,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/_elementtree.vcproj b/PCbuild/_elementtree.vcproj
index e37bf28f954..e7f9117be32 100644
--- a/PCbuild/_elementtree.vcproj
+++ b/PCbuild/_elementtree.vcproj
@@ -181,6 +181,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/_socket.vcproj b/PCbuild/_socket.vcproj
index 008cd3d1afd..3078f6d8c78 100644
--- a/PCbuild/_socket.vcproj
+++ b/PCbuild/_socket.vcproj
@@ -180,6 +180,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/_ssl.vcproj b/PCbuild/_ssl.vcproj
index 3bcd564c008..373e948ff54 100644
--- a/PCbuild/_ssl.vcproj
+++ b/PCbuild/_ssl.vcproj
@@ -50,6 +50,19 @@
ReBuildCommandLine="python build_ssl.py -a"
Output="_ssl.pyd"/>
+
+
+
diff --git a/PCbuild/_testcapi.vcproj b/PCbuild/_testcapi.vcproj
index 46eac065fbb..3f8ef30f66e 100644
--- a/PCbuild/_testcapi.vcproj
+++ b/PCbuild/_testcapi.vcproj
@@ -175,6 +175,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/_tkinter.vcproj b/PCbuild/_tkinter.vcproj
index afacc515ff2..f33f7f859f1 100644
--- a/PCbuild/_tkinter.vcproj
+++ b/PCbuild/_tkinter.vcproj
@@ -183,6 +183,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/bz2.vcproj b/PCbuild/bz2.vcproj
index 8083a35b7f3..affccf9c310 100644
--- a/PCbuild/bz2.vcproj
+++ b/PCbuild/bz2.vcproj
@@ -179,6 +179,71 @@ nmake /nologo /f makefile.msc lib
Name="VCPreLinkEventTool"
CommandLine="cd ..\..\bzip2-1.0.2
nmake /nologo /f makefile.msc lib
+"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/make_buildinfo.c b/PCbuild/make_buildinfo.c
index 0b28ade04d6..b7b7ebc2eb3 100644
--- a/PCbuild/make_buildinfo.c
+++ b/PCbuild/make_buildinfo.c
@@ -58,15 +58,16 @@ int main(int argc, char*argv[])
}
if (strcmp(argv[1], "Release") == 0) {
strcat(command, "-MD ");
- //strcpy(targetdir, "x86-temp-debug");
}
else if (strcmp(argv[1], "Debug") == 0) {
strcat(command, "-D_DEBUG -MDd ");
- //strcpy(targetdir, "x86-temp-release");
}
- else if (strcmp(argv[1], "ReleaseItanium")) {
+ else if (strcmp(argv[1], "ReleaseItanium") == 0) {
+ strcat(command, "-MD /USECL:MS_ITANIUM ");
+ }
+ else if (strcmp(argv[1], "ReleaseAMD64") == 0) {
strcat(command, "-MD ");
- //strcpy(targetdir, "ia64-temp-release");
+ strcat(command, "-MD /USECL:MS_OPTERON ");
}
else {
fprintf(stderr, "unsupported configuration %s\n", argv[1]);
diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln
index 7ccab0aabb6..5e4681edd4b 100644
--- a/PCbuild/pcbuild.sln
+++ b/PCbuild/pcbuild.sln
@@ -88,6 +88,7 @@ Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
Release = Release
+ ReleaseAMD64 = ReleaseAMD64
ReleaseItanium = ReleaseItanium
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
@@ -95,101 +96,134 @@ Global
{E1DBB220-D64B-423D-A545-539A55AA7FE2}.Debug.Build.0 = Debug|Win32
{E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.ActiveCfg = Release|Win32
{E1DBB220-D64B-423D-A545-539A55AA7FE2}.Release.Build.0 = Release|Win32
+ {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{E1DBB220-D64B-423D-A545-539A55AA7FE2}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.ActiveCfg = Debug|Win32
{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Debug.Build.0 = Debug|Win32
{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.ActiveCfg = Release|Win32
{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.Release.Build.0 = Release|Win32
+ {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.ActiveCfg = Debug|Win32
{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Debug.Build.0 = Debug|Win32
{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.ActiveCfg = Release|Win32
{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.Release.Build.0 = Release|Win32
+ {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{8E85BA54-8A47-4C8B-B72E-8E17579CC6D7}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.ActiveCfg = Debug|Win32
{59CBF474-9E06-4C50-9142-C44A118BB447}.Debug.Build.0 = Debug|Win32
{59CBF474-9E06-4C50-9142-C44A118BB447}.Release.ActiveCfg = Release|Win32
{59CBF474-9E06-4C50-9142-C44A118BB447}.Release.Build.0 = Release|Win32
+ {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{59CBF474-9E06-4C50-9142-C44A118BB447}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.ActiveCfg = Debug|Win32
{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Debug.Build.0 = Debug|Win32
{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.ActiveCfg = Release|Win32
{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.Release.Build.0 = Release|Win32
+ {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{5B51DFF7-5DC0-41F8-8791-A4AB7114A151}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.ActiveCfg = Debug|Win32
{AC557788-6354-43F7-BE05-C9C8C59A344A}.Debug.Build.0 = Debug|Win32
{AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.ActiveCfg = Release|Win32
{AC557788-6354-43F7-BE05-C9C8C59A344A}.Release.Build.0 = Release|Win32
+ {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{AC557788-6354-43F7-BE05-C9C8C59A344A}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.ActiveCfg = Debug|Win32
{F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Debug.Build.0 = Debug|Win32
{F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.ActiveCfg = Release|Win32
{F0E0541E-F17D-430B-97C4-93ADF0DD284E}.Release.Build.0 = Release|Win32
+ {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseAMD64.ActiveCfg = Release|Win32
+ {F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseAMD64.Build.0 = Release|Win32
{F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseItanium.ActiveCfg = Release|Win32
{F0E0541E-F17D-430B-97C4-93ADF0DD284E}.ReleaseItanium.Build.0 = Release|Win32
{7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.ActiveCfg = Debug|Win32
{7E551393-3C43-47F8-9F3F-5BC368A6C487}.Debug.Build.0 = Debug|Win32
{7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.ActiveCfg = Release|Win32
{7E551393-3C43-47F8-9F3F-5BC368A6C487}.Release.Build.0 = Release|Win32
+ {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{7E551393-3C43-47F8-9F3F-5BC368A6C487}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.ActiveCfg = Debug|Win32
{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Debug.Build.0 = Debug|Win32
{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.ActiveCfg = Release|Win32
{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.Release.Build.0 = Release|Win32
+ {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.ActiveCfg = Debug|Win32
{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Debug.Build.0 = Debug|Win32
{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.ActiveCfg = Release|Win32
{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.Release.Build.0 = Release|Win32
+ {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.ActiveCfg = Debug|Win32
{F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Debug.Build.0 = Debug|Win32
{F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.ActiveCfg = Release|Win32
{F4229CC3-873C-49AE-9729-DD308ED4CD4A}.Release.Build.0 = Release|Win32
+ {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{F4229CC3-873C-49AE-9729-DD308ED4CD4A}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.ActiveCfg = Debug|Win32
{97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Debug.Build.0 = Debug|Win32
{97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.ActiveCfg = Release|Win32
{97239A56-DBC0-41D2-BC14-C87D9B97D63B}.Release.Build.0 = Release|Win32
+ {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{97239A56-DBC0-41D2-BC14-C87D9B97D63B}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.ActiveCfg = Debug|Win32
{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Debug.Build.0 = Debug|Win32
{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.ActiveCfg = Release|Win32
{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.Release.Build.0 = Release|Win32
+ {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.ActiveCfg = Debug|Win32
{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Debug.Build.0 = Debug|Win32
{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.ActiveCfg = Release|Win32
{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.Release.Build.0 = Release|Win32
+ {E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.ReleaseAMD64.ActiveCfg = Release|Win32
{E9E0A1F6-0009-4E8C-B8F8-1B8F5D49A058}.ReleaseItanium.ActiveCfg = Release|Win32
{51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.ActiveCfg = Debug|Win32
{51F35FAE-FB92-4B2C-9187-1542C065AD77}.Debug.Build.0 = Debug|Win32
{51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.ActiveCfg = Release|Win32
{51F35FAE-FB92-4B2C-9187-1542C065AD77}.Release.Build.0 = Release|Win32
+ {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{51F35FAE-FB92-4B2C-9187-1542C065AD77}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug.ActiveCfg = Debug|Win32
{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Debug.Build.0 = Debug|Win32
{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release.ActiveCfg = Release|Win32
{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.Release.Build.0 = Release|Win32
+ {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseAMD64.ActiveCfg = ReleaseAMD64|Win32
+ {1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseAMD64.Build.0 = ReleaseAMD64|Win32
{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseItanium.ActiveCfg = ReleaseItanium|Win32
{1966DDE2-4AB7-4E4E-ACC9-C121E4D37F8E}.ReleaseItanium.Build.0 = ReleaseItanium|Win32
{C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug.ActiveCfg = Debug|Win32
{C73F0EC1-358B-4177-940F-0846AC8B04CD}.Debug.Build.0 = Debug|Win32
{C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release.ActiveCfg = Release|Win32
{C73F0EC1-358B-4177-940F-0846AC8B04CD}.Release.Build.0 = Release|Win32
+ {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseAMD64.ActiveCfg = Release|Win32
+ {C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseAMD64.Build.0 = Release|Win32
{C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseItanium.ActiveCfg = Release|Win32
{C73F0EC1-358B-4177-940F-0846AC8B04CD}.ReleaseItanium.Build.0 = Release|Win32
EndGlobalSection
diff --git a/PCbuild/pyexpat.vcproj b/PCbuild/pyexpat.vcproj
index bd58c0eeada..6f004038f7e 100644
--- a/PCbuild/pyexpat.vcproj
+++ b/PCbuild/pyexpat.vcproj
@@ -180,6 +180,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/python.vcproj b/PCbuild/python.vcproj
index 287a0e9820b..fc9ecb87b79 100644
--- a/PCbuild/python.vcproj
+++ b/PCbuild/python.vcproj
@@ -191,6 +191,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/pythoncore.vcproj b/PCbuild/pythoncore.vcproj
index 88ddf1abf4c..9d3776c971b 100644
--- a/PCbuild/pythoncore.vcproj
+++ b/PCbuild/pythoncore.vcproj
@@ -58,7 +58,7 @@
+ CommandLine="make_buildinfo.exe $(ConfigurationName)"/>
+ CommandLine="make_buildinfo.exe $(ConfigurationName)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -509,6 +582,12 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\Python"/>
+
+
+
diff --git a/PCbuild/pythonw.vcproj b/PCbuild/pythonw.vcproj
index baf5e4ac3c0..9bc3b8ad1d4 100644
--- a/PCbuild/pythonw.vcproj
+++ b/PCbuild/pythonw.vcproj
@@ -183,6 +183,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt
index 7ca818667c3..25d0e8ab9bc 100644
--- a/PCbuild/readme.txt
+++ b/PCbuild/readme.txt
@@ -280,6 +280,13 @@ The Itanium build has seen little testing. The SDK compiler reports a lot
of warnings about conversion from size_t to int, which will be fixed in
future Python releases.
+Building for AMD64
+------------------
+
+The build process for the ReleaseAMD64 configuration is very similar
+to the Itanium configuration; make sure you use the latest version of
+vsextcomp.
+
YOUR OWN EXTENSION DLLs
-----------------------
If you want to create your own extension module DLL, there's an example
diff --git a/PCbuild/select.vcproj b/PCbuild/select.vcproj
index 1c1343328d5..12e1f650ee8 100644
--- a/PCbuild/select.vcproj
+++ b/PCbuild/select.vcproj
@@ -183,6 +183,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/unicodedata.vcproj b/PCbuild/unicodedata.vcproj
index da49b159239..24644e519b2 100644
--- a/PCbuild/unicodedata.vcproj
+++ b/PCbuild/unicodedata.vcproj
@@ -175,6 +175,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PCbuild/winsound.vcproj b/PCbuild/winsound.vcproj
index c1e8130372e..93a5ca65770 100644
--- a/PCbuild/winsound.vcproj
+++ b/PCbuild/winsound.vcproj
@@ -178,6 +178,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py
index 839eb9d3756..52dfa225e80 100644
--- a/Tools/msi/msi.py
+++ b/Tools/msi/msi.py
@@ -8,8 +8,6 @@
from distutils.spawn import find_executable
# Settings can be overridden in config.py below
-# 1 for Itanium build
-msilib.Win64 = 0
# 0 for official python.org releases
# 1 for intermediate releases by anybody, with
# a new product code for every package.
@@ -129,7 +127,6 @@
"25":"{2e41b118-38bd-4c1b-a840-6977efd1b911}"
} [major+minor]
-
# Build the mingw import library, libpythonXY.a
# This requires 'nm' and 'dlltool' executables on your PATH
def build_mingw_lib(lib_file, def_file, dll_file, mingw_lib):
@@ -176,6 +173,12 @@ def build_mingw_lib(lib_file, def_file, dll_file, mingw_lib):
have_mingw = build_mingw_lib(lib_file, def_file, dll_file, mingw_lib)
+# Determine the target architechture
+dll_path = os.path.join(srcdir, "PCBuild", dll_file)
+msilib.set_arch_from_file(dll_path)
+if msilib.pe_type(dll_path) != msilib.pe_type("msisupport.dll"):
+ raise SystemError, "msisupport.dll for incorrect architecture"
+
if testpackage:
ext = 'px'
testprefix = 'x'
@@ -205,11 +208,7 @@ def build_database():
# schema represents the installer 2.0 database schema.
# sequence is the set of standard sequences
# (ui/execute, admin/advt/install)
- if msilib.Win64:
- w64 = ".ia64"
- else:
- w64 = ""
- db = msilib.init_database("python-%s%s.msi" % (full_current_version, w64),
+ db = msilib.init_database("python-%s%s.msi" % (full_current_version, msilib.arch_ext),
schema, ProductName="Python "+full_current_version,
ProductCode=product_code,
ProductVersion=current_version,
diff --git a/Tools/msi/msilib.py b/Tools/msi/msilib.py
index 948099db5fc..9011b0a568b 100644
--- a/Tools/msi/msilib.py
+++ b/Tools/msi/msilib.py
@@ -5,15 +5,13 @@
import win32com.client
import pythoncom, pywintypes
from win32com.client import constants
-import re, string, os, sets, glob, popen2, sys, _winreg
+import re, string, os, sets, glob, popen2, sys, _winreg, struct
try:
basestring
except NameError:
basestring = (str, unicode)
-Win64 = 0
-
# Partially taken from Wine
datasizemask= 0x00ff
type_valid= 0x0100
@@ -311,10 +309,7 @@ def init_database(name, schema,
si.SetProperty(PID_TITLE, "Installation Database")
si.SetProperty(PID_SUBJECT, ProductName)
si.SetProperty(PID_AUTHOR, Manufacturer)
- if Win64:
- si.SetProperty(PID_TEMPLATE, "Intel64;1033")
- else:
- si.SetProperty(PID_TEMPLATE, "Intel;1033")
+ si.SetProperty(PID_TEMPLATE, msi_type)
si.SetProperty(PID_REVNUMBER, gen_uuid())
si.SetProperty(PID_WORDCOUNT, 2) # long file names, compressed, original media
si.SetProperty(PID_PAGECOUNT, 200)
@@ -647,3 +642,34 @@ def radiogroup(self, name, x, y, w, h, attr, prop, text, next):
def checkbox(self, name, x, y, w, h, attr, prop, text, next):
return self.control(name, "CheckBox", x, y, w, h, attr, prop, text, next, None)
+
+def pe_type(path):
+ header = open(path).read(1000)
+ # offset of PE header is at offset 0x3c; 1-based
+ pe_offset = struct.unpack("