diff -r 1e9fa629756c PCbuild/get_common_externals.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PCbuild/get_common_externals.bat Wed Feb 13 22:55:00 2013 -0600 @@ -0,0 +1,51 @@ +@rem Common file shared between get_externals.bat and get_externals-amd64.bat. +@rem Responsible for fetching external components into the root\.. buildbot directories. + +pushd "%~dp0..\.." + +@rem XXX: If you need to force the buildbots to start from a fresh environment, uncomment +@rem the following, check it in, then check it out, comment it out, then check it back in. +@rem if exist bzip2-1.0.6 rd /s/q bzip2-1.0.6 +@rem if exist tcltk rd /s/q tcltk +@rem if exist tcltk64 rd /s/q tcltk64 +@rem if exist tcl8.4.12 rd /s/q tcl8.4.12 +@rem if exist tcl8.4.16 rd /s/q tcl8.4.16 +@rem if exist tcl-8.4.18.1 rd /s/q tcl-8.4.18.1 +@rem if exist tk8.4.12 rd /s/q tk8.4.12 +@rem if exist tk8.4.16 rd /s/q tk8.4.16 +@rem if exist tk-8.4.18.1 rd /s/q tk-8.4.18.1 +@rem if exist db-4.4.20 rd /s/q db-4.4.20 +@rem if exist openssl-1.0.1c rd /s/q openssl-1.0.1c +@rem if exist sqlite-3.7.12 rd /s/q sqlite-3.7.12 + +@rem bzip +if not exist bzip2-1.0.6 ( + rd /s/q bzip2-1.0.5 + svn export http://svn.python.org/projects/external/bzip2-1.0.6 +) + +@rem OpenSSL +if not exist openssl-1.0.1c ( + rd /s/q openssl-1.0.0j + svn export http://svn.python.org/projects/external/openssl-1.0.1c +) + +@rem tcl/tk +if not exist tcl-8.5.11.0 ( + rd /s/q tcltk tcltk64 + svn export http://svn.python.org/projects/external/tcl-8.5.11.0 +) +if not exist tk-8.5.11.0 svn export http://svn.python.org/projects/external/tk-8.5.11.0 + +@rem sqlite3 +if not exist sqlite-3.7.12 ( + rd /s/q sqlite-source-3.7.4 + svn export http://svn.python.org/projects/external/sqlite-3.7.12 +) + +@rem lzma +if not exist xz-5.0.3 ( + svn export http://svn.python.org/projects/external/xz-5.0.3 +) + +popd diff -r 1e9fa629756c PCbuild/get_externals-amd64.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PCbuild/get_externals-amd64.bat Wed Feb 13 22:55:00 2013 -0600 @@ -0,0 +1,24 @@ +@rem Fetches (and builds if necessary) external dependencies + +pushd "%~dp0.." +call "PCbuild\get_common_externals.bat" +call "%VS100COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 + +cd .. + +if not exist tcltk64\bin\tcl85g.dll ( + cd tcl-8.5.11.0\win + nmake -f makefile.vc DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all + nmake -f makefile.vc DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 install + cd ..\.. +) + +if not exist tcltk64\bin\tk85g.dll ( + cd tk-8.5.11.0\win + nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 clean + nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 all + nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 install + cd ..\.. +) + +popd diff -r 1e9fa629756c PCbuild/get_externals.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PCbuild/get_externals.bat Wed Feb 13 22:55:00 2013 -0600 @@ -0,0 +1,25 @@ +@rem Fetches (and builds if necessary) external dependencies + +pushd "%~dp0.." +call "PCbuild\get_common_externals.bat" +call "%VS100COMNTOOLS%\vsvars32.bat" + +cd .. + +if not exist tcltk\bin\tcl85g.dll ( + @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install + cd tcl-8.5.11.0\win + nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk clean all + nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install + cd ..\.. +) + +if not exist tcltk\bin\tk85g.dll ( + cd tk-8.5.11.0\win + nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.11.0 clean + nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.11.0 all + nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.11.0 install + cd ..\.. +) + +popd diff -r 1e9fa629756c PCbuild/readme.txt --- a/PCbuild/readme.txt Mon Feb 11 20:33:24 2013 +0200 +++ b/PCbuild/readme.txt Wed Feb 13 22:55:00 2013 -0600 @@ -1,7 +1,7 @@ Building Python using VC++ 10.0 ------------------------------ -This directory is used to build Python for Win32 and x64 platforms, e.g. +This directory is used to build Python for Win32 and x64 platforms, e.g. Windows 2000, XP, Vista and Windows Server 2008. In order to build 32-bit debug and release executables, Microsoft Visual C++ 2008 Express Edition is required at the very least. In order to build 64-bit debug and release @@ -27,7 +27,7 @@ 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 +cross compiling x64 builds on a 32bit OS possible the x64 builds require a 32bit version of Python. NOTE: @@ -47,7 +47,7 @@ Legacy support -------------- -You can find build directories for older versions of Visual Studio and +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. @@ -108,7 +108,7 @@ 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. + Tcl/Tk. _bz2 Python wrapper for the libbzip2 compression library. Homepage http://www.bzip.org/ @@ -117,7 +117,7 @@ svn export http://svn.python.org/projects/external/bzip2-1.0.6 - ** NOTE: if you use the Tools\buildbot\external(-amd64).bat approach for + ** NOTE: if you use the PCbuild\get_externals(-amd64).bat approach for obtaining external sources then you don't need to manually get the source above via subversion. ** @@ -128,7 +128,7 @@ bzip2-1.0.6\ when you do a clean, so if you want to rebuild bzip2.lib you need to clean up bzip2-1.0.6\ by hand. - All of this managed to build libbz2.lib in + All of this managed to build libbz2.lib in bzip2-1.0.6\$platform-$configuration\, which the Python project links in. _lzma Python wrapper for the liblzma compression library. @@ -144,7 +144,7 @@ svn export http://svn.python.org/projects/external/openssl-1.0.1c - ** NOTE: if you use the Tools\buildbot\external(-amd64).bat approach for + ** NOTE: if you use the PCbuild\get_externals(-amd64).bat approach for obtaining external sources then you don't need to manually get the source above via subversion. ** @@ -155,17 +155,17 @@ You must install the NASM assembler from http://nasm.sf.net for x86 builds. Put nasmw.exe anywhere in your PATH. - Note: recent releases of nasm only have nasm.exe. Just rename it to + Note: recent releases of nasm only have nasm.exe. Just rename it to nasmw.exe. You can also install ActivePerl from http://www.activestate.com/activeperl/ - if you like to use the official sources instead of the files from + 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 build process makes sure that no patented algorithms are included. - For now RC5, MDC2 and IDEA are excluded from the build. You may have + 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. @@ -186,24 +186,21 @@ this by hand. 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 +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.: - - C:\..\svn.python.org\projects\python\trunk\PCbuild>cd .. - C:\..\svn.python.org\projects\python\trunk>Tools\buildbot\external.bat +time they're built, so the easiest approach is to run either get_externals.bat +or get_externals-amd64.bat in this directory. 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 +via Subversion (so you'll need an svn.exe on your PATH) and places them in +..\.. (relative to this directory). The get_externals(-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 +for building release versions of Tcl/Tk lying around anywhere. +If you need to build a release version of Tcl/Tk it isn't hard +though, take a look at the relevant get_externals(-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: +The get_externals-amd64.bat file contains this for tcl: nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all install So for a release build, you'd call it as: @@ -238,7 +235,7 @@ junction as follows (using the directory structure above as an example): C:\..\python\trunk\external <- already exists and has built versions - of the external subprojects + of the external subprojects C:\..\python\branches\py3k>linkd.exe external ..\..\trunk\external Link created at: external @@ -297,16 +294,16 @@ -------------- 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 +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 +change the "Runtime Library" from "Multi-threaded DLL (/MD)" to "Multi-threaded (/MT)". Visual Studio properties ------------------------ -The PCbuild solution makes heavy use of Visual Studio property files +The PCbuild solution makes heavy use of Visual Studio property files (*.vsprops). The properties can be viewed and altered in the Property Manager (View -> Other Windows -> Property Manager). diff -r 1e9fa629756c Tools/buildbot/build-amd64.bat --- a/Tools/buildbot/build-amd64.bat Mon Feb 11 20:33:24 2013 +0200 +++ b/Tools/buildbot/build-amd64.bat Wed Feb 13 22:55:00 2013 -0600 @@ -1,7 +1,9 @@ @rem Used by the buildbot "compile" step. -cmd /c Tools\buildbot\external-amd64.bat +pushd "%~dp0..\.." +cmd /c PCBuild\get_externals-amd64.bat call "%VS100COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 cmd /c Tools\buildbot\clean-amd64.bat msbuild PCbuild\kill_python.vcxproj /p:Configuration=Debug /p:PlatformTarget=x64 PCbuild\amd64\kill_python_d.exe msbuild PCbuild\pcbuild.sln /p:Configuration=Debug /p:Platform=x64 +popd diff -r 1e9fa629756c Tools/buildbot/build.bat --- a/Tools/buildbot/build.bat Mon Feb 11 20:33:24 2013 +0200 +++ b/Tools/buildbot/build.bat Wed Feb 13 22:55:00 2013 -0600 @@ -1,8 +1,9 @@ @rem Used by the buildbot "compile" step. -cmd /c Tools\buildbot\external.bat +pushd "%~dp0..\.." +cmd /c PCBuild\get_externals.bat call "%VS100COMNTOOLS%vsvars32.bat" cmd /c Tools\buildbot\clean.bat msbuild PCbuild\kill_python.vcxproj /p:Configuration=Debug /p:PlatformTarget=x86 PCbuild\kill_python_d.exe msbuild PCbuild\pcbuild.sln /p:Configuration=Debug /p:Platform=Win32 - +popd diff -r 1e9fa629756c Tools/buildbot/buildmsi.bat --- a/Tools/buildbot/buildmsi.bat Mon Feb 11 20:33:24 2013 +0200 +++ b/Tools/buildbot/buildmsi.bat Wed Feb 13 22:55:00 2013 -0600 @@ -1,6 +1,6 @@ @rem Used by the buildbot "buildmsi" step. - -cmd /c Tools\buildbot\external.bat +pushd "%~dp0..\.." +cmd /c PCbuild\get_externals.bat @rem build release versions of things call "%VS100COMNTOOLS%vsvars32.bat" @@ -19,3 +19,4 @@ nmake /f msisupport.mak %HOST_PYTHON% msi.py +popd diff -r 1e9fa629756c Tools/buildbot/clean-amd64.bat --- a/Tools/buildbot/clean-amd64.bat Mon Feb 11 20:33:24 2013 +0200 +++ b/Tools/buildbot/clean-amd64.bat Wed Feb 13 22:55:00 2013 -0600 @@ -1,5 +1,6 @@ @rem Used by the buildbot "clean" step. call "%VS100COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 +pushd "%~dp0..\.." @echo Deleting .pyc/.pyo files ... del /s Lib\*.pyc Lib\*.pyo @echo Deleting test leftovers ... @@ -7,4 +8,4 @@ cd PCbuild msbuild /target:clean pcbuild.sln /p:Configuration=Release /p:PlatformTarget=x64 msbuild /target:clean pcbuild.sln /p:Configuration=Debug /p:PlatformTarget=x64 -cd .. +popd diff -r 1e9fa629756c Tools/buildbot/clean.bat --- a/Tools/buildbot/clean.bat Mon Feb 11 20:33:24 2013 +0200 +++ b/Tools/buildbot/clean.bat Wed Feb 13 22:55:00 2013 -0600 @@ -1,8 +1,9 @@ @rem Used by the buildbot "clean" step. call "%VS100COMNTOOLS%vsvars32.bat" +pushd "%~dp0..\.." @echo Deleting test leftovers ... rmdir /s /q build cd PCbuild msbuild /target:clean pcbuild.sln /p:Configuration=Release /p:PlatformTarget=x86 msbuild /target:clean pcbuild.sln /p:Configuration=Debug /p:PlatformTarget=x86 -cd .. +popd diff -r 1e9fa629756c Tools/buildbot/external-amd64.bat --- a/Tools/buildbot/external-amd64.bat Mon Feb 11 20:33:24 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -@rem Fetches (and builds if necessary) external dependencies - -@rem Assume we start inside the Python source directory -call "Tools\buildbot\external-common.bat" -call "%VS100COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 - -if not exist tcltk64\bin\tcl85g.dll ( - cd tcl-8.5.11.0\win - nmake -f makefile.vc DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all - nmake -f makefile.vc DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 install - cd ..\.. -) - -if not exist tcltk64\bin\tk85g.dll ( - cd tk-8.5.11.0\win - nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 clean - nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 all - nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 install - cd ..\.. -) - diff -r 1e9fa629756c Tools/buildbot/external-common.bat --- a/Tools/buildbot/external-common.bat Mon Feb 11 20:33:24 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -@rem Common file shared between external.bat and external-amd64.bat. Responsible for -@rem fetching external components into the root\.. buildbot directories. - -cd .. -@rem XXX: If you need to force the buildbots to start from a fresh environment, uncomment -@rem the following, check it in, then check it out, comment it out, then check it back in. -@rem if exist bzip2-1.0.6 rd /s/q bzip2-1.0.6 -@rem if exist tcltk rd /s/q tcltk -@rem if exist tcltk64 rd /s/q tcltk64 -@rem if exist tcl8.4.12 rd /s/q tcl8.4.12 -@rem if exist tcl8.4.16 rd /s/q tcl8.4.16 -@rem if exist tcl-8.4.18.1 rd /s/q tcl-8.4.18.1 -@rem if exist tk8.4.12 rd /s/q tk8.4.12 -@rem if exist tk8.4.16 rd /s/q tk8.4.16 -@rem if exist tk-8.4.18.1 rd /s/q tk-8.4.18.1 -@rem if exist db-4.4.20 rd /s/q db-4.4.20 -@rem if exist openssl-1.0.1c rd /s/q openssl-1.0.1c -@rem if exist sqlite-3.7.12 rd /s/q sqlite-3.7.12 - -@rem bzip -if not exist bzip2-1.0.6 ( - rd /s/q bzip2-1.0.5 - svn export http://svn.python.org/projects/external/bzip2-1.0.6 -) - -@rem OpenSSL -if not exist openssl-1.0.1c ( - rd /s/q openssl-1.0.0j - svn export http://svn.python.org/projects/external/openssl-1.0.1c -) - -@rem tcl/tk -if not exist tcl-8.5.11.0 ( - rd /s/q tcltk tcltk64 - svn export http://svn.python.org/projects/external/tcl-8.5.11.0 -) -if not exist tk-8.5.11.0 svn export http://svn.python.org/projects/external/tk-8.5.11.0 - -@rem sqlite3 -if not exist sqlite-3.7.12 ( - rd /s/q sqlite-source-3.7.4 - svn export http://svn.python.org/projects/external/sqlite-3.7.12 -) - -@rem lzma -if not exist xz-5.0.3 ( - svn export http://svn.python.org/projects/external/xz-5.0.3 -) diff -r 1e9fa629756c Tools/buildbot/external.bat --- a/Tools/buildbot/external.bat Mon Feb 11 20:33:24 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -@rem Fetches (and builds if necessary) external dependencies - -@rem Assume we start inside the Python source directory -call "Tools\buildbot\external-common.bat" -call "%VS100COMNTOOLS%\vsvars32.bat" - -if not exist tcltk\bin\tcl85g.dll ( - @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install - cd tcl-8.5.11.0\win - nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk clean all - nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install - cd ..\.. -) - -if not exist tcltk\bin\tk85g.dll ( - cd tk-8.5.11.0\win - nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.11.0 clean - nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.11.0 all - nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.11.0 install - cd ..\.. -) diff -r 1e9fa629756c Tools/buildbot/test-amd64.bat --- a/Tools/buildbot/test-amd64.bat Mon Feb 11 20:33:24 2013 +0200 +++ b/Tools/buildbot/test-amd64.bat Wed Feb 13 22:55:00 2013 -0600 @@ -1,3 +1,4 @@ @rem Used by the buildbot "test" step. -cd PCbuild +pushd "%~dp0..\..\PCbuild" call rt.bat -d -q -x64 -uall -rwW -n %1 %2 %3 %4 %5 %6 %7 %8 %9 +popd diff -r 1e9fa629756c Tools/buildbot/test.bat --- a/Tools/buildbot/test.bat Mon Feb 11 20:33:24 2013 +0200 +++ b/Tools/buildbot/test.bat Wed Feb 13 22:55:00 2013 -0600 @@ -1,3 +1,4 @@ @rem Used by the buildbot "test" step. -cd PCbuild +pushd "%~dp0..\..\PCbuild" call rt.bat -d -q -uall -rwW -n %1 %2 %3 %4 %5 %6 %7 %8 %9 +popd