summaryrefslogtreecommitdiffstats
path: root/PCbuild9/readme.txt
diff options
context:
space:
mode:
Diffstat (limited to 'PCbuild9/readme.txt')
-rw-r--r--PCbuild9/readme.txt334
1 files changed, 0 insertions, 334 deletions
diff --git a/PCbuild9/readme.txt b/PCbuild9/readme.txt
deleted file mode 100644
index ef3b97d..0000000
--- a/PCbuild9/readme.txt
+++ /dev/null
@@ -1,334 +0,0 @@
-Building Python using VC++ 9.0
-------------------------------
-This directory is used to build Python for Win32 platforms, e.g. Windows
-2000, XP and Vista. It requires Microsoft Visual C++ 9.0
-(a.k.a. Visual Studio .NET 2008).
-(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 PCbuild9 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 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 F6 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: python30_d.dll, python_d.exe, parser_d.pyd, and so on.
-
-The 32bit builds end up in the solution folder PCbuild9 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.
-
-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.
-
-pythoncore
- .dll and .lib
-python
- .exe
-pythonw
- pythonw.exe, a variant of python.exe that doesn't pop up a DOS box
-_socket
- socketmodule.c
-_testcapi
- tests of the Python C API, run via Lib/test/test_capi.py, and
- implemented by module Modules/_testcapimodule.c
-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
-
-The following subprojects will generally NOT build out of the box. They
-wrap code Python doesn't control, and you'll need to download the base
-packages first and unpack them into siblings of PCbuilds's parent
-directory; for example, if your PCbuild9 is ..\dist\py3k\PCbuild9\,
-unpack into new subdirectories of ..\dist\.
-
-_tkinter
- Python wrapper for the Tk windowing system. Requires building
- Tcl/Tk first. Following are instructions for Tcl/Tk 8.4.16.
-
- NOTE: The 64 build builds must land in tcltk64 instead of tcltk.
-
- Get source
- ----------
- In the dist directory, run
- svn export http://svn.python.org/projects/external/tcl8.4.16
- svn export http://svn.python.org/projects/external/tk8.4.16
- svn export http://svn.python.org/projects/external/tix-8.4.0
-
- Build with build_tkinter.py
- ---------------------------
- The PCbuild9 directory contains a Python script which automates all
- steps. Run the script in a Visual Studio 2009 command prompt with
-
- python build_tkinter.py Win32
-
- Use x64 instead of Win32 for the x64 platform.
-
- Build Tcl first
- ---------------
- Use "Start -> All Programs -> Microsoft Visual Studio 2008
- -> Visual Studio Tools -> Visual Studio 2008 Command Prompt"
- to get a shell window with the correct environment settings
- cd dist\tcl8.4.16\win
- nmake -f makefile.vc
- nmake -f makefile.vc INSTALLDIR=..\..\tcltk install
-
- XXX Should we compile with OPTS=threads?
-
- Optional: run tests, via
- nmake -f makefile.vc test
-
- On WinXP Pro, wholly up to date as of 30-Aug-2004:
- all.tcl: Total 10678 Passed 9969 Skipped 709 Failed 0
- Sourced 129 Test Files.
-
- Build Tk
- --------
- cd dist\tk8.4.16\win
- nmake -f makefile.vc TCLDIR=..\..\tcl8.4.16
- nmake -f makefile.vc TCLDIR=..\..\tcl8.4.16 INSTALLDIR=..\..\tcltk 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?
-
- Optional: run tests, via
- nmake -f makefile.vc TCLDIR=..\..\tcl8.4.16 test
-
- On WinXP Pro, wholly up to date as of 30-Aug-2004:
- all.tcl: Total 8420 Passed 6826 Skipped 1581 Failed 13
- Sourced 91 Test Files.
- Files with failing tests: canvImg.test scrollbar.test textWind.test winWm.test
-
- Built Tix
- ---------
- cd dist\tix-8.4.0\win
- nmake -f python9.mak
- nmake -f python9.mak install
-
-bz2
- Python wrapper for the libbz2 compression library. Homepage
- http://sources.redhat.com/bzip2/
- Download the source from the python.org copy into the dist
- directory:
-
- svn export http://svn.python.org/projects/external/bzip2-1.0.3
-
- A custom pre-link step in the bz2 project settings should manage to
- build bzip2-1.0.3\libbz2.lib by magic before bz2.pyd (or bz2_d.pyd) is
- linked in PCbuild9\.
- However, the bz2 project is not smart enough to remove anything under
- bzip2-1.0.3\ when you do a clean, so if you want to rebuild bzip2.lib
- you need to clean up bzip2-1.0.3\ by hand.
-
- All of this managed to build libbz2.lib in
- bzip2-1.0.3\$platform-$configuration\, which the Python project links in.
-
-
-_bsddb
- To use the version of bsddb that Python is built with by default, invoke
- (in the dist directory)
-
- svn export http://svn.python.org/projects/external/db-4.4.20
-
- Next open the solution file db-4.4.20\build_win32\Berkeley_DB.sln with
- Visual Studio and convert the projects to the new format. The standard
- and professional version of VS 2008 builds the necessary libraries
- in a pre-link step of _bsddb. However the express edition is missing
- some pieces and you have to build the libs yourself.
-
- The _bsddb subprojects depends only on the db_static project of
- Berkeley DB. You have to choose either "Release", "Release AMD64", "Debug"
- or "Debug AMD64" as configuration.
-
- Alternatively, if you want to start with the original sources,
- go to Sleepycat's download page:
- http://www.sleepycat.com/downloads/releasehistorybdb.html
-
- and download version 4.4.20.
-
- With or without strong cryptography? You can choose either with or
- without strong cryptography, as per the instructions below. By
- default, Python is built and distributed WITHOUT strong crypto.
-
- Unpack the sources; if you downloaded the non-crypto version, rename
- the directory from db-4.4.20.NC to db-4.4.20.
-
- Now apply any patches that apply to your version.
-
- Open
- db-4.4.20\docs\ref\build_win\intro.html
-
- and follow the "Windows->Building Berkeley DB with Visual C++ .NET"
- instructions for building the Sleepycat
- software. Note that Berkeley_DB.dsw is in the build_win32 subdirectory.
- Build the "db_static" project, for "Release" mode.
-
- To run extensive tests, pass "-u bsddb" to regrtest.py. test_bsddb3.py
- is then enabled. Running in verbose mode may be helpful.
-
-_sqlite3
- Python wrapper for SQLite library.
-
- Get the source code through
-
- svn export http://svn.python.org/projects/external/sqlite-source-3.3.4
-
- To use the extension module in a Python build tree, copy sqlite3.dll into
- the PCbuild folder. The source directory in svn also contains a .def file
- from the binary release of sqlite3.
-
-_ssl
- Python wrapper for the secure sockets library.
-
- Get the source code through
-
- svn export http://svn.python.org/projects/external/openssl-0.9.8g
-
- 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 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.
-
- 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 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.
-
- 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
- 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.
-
-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.
-
-The project files support a ReleaseItanium configuration which creates
-Win64/Itanium binaries. For this to work, you need to install the Platform
-SDK, in particular the 64-bit support. This includes an Itanium compiler
-(future releases of the SDK likely include an AMD64 compiler as well).
-In addition, you need the Visual Studio plugin for external C compilers,
-from http://sf.net/projects/vsextcomp. The plugin will wrap cl.exe, to
-locate the proper target compiler, and convert compiler options
-accordingly. The project files require atleast version 0.9.
-
-Building for AMD64
-------------------
-
-The build process for AMD64 / x64 is very similar to standard builds. You just
-have to set x64 as platform.
-
-Building Python Using the free MS Toolkit Compiler
---------------------------------------------------
-
-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 lniked 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.
-
-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)".
-
-Visual Studio properties
-------------------------
-
-The PCbuild9 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).
-
- * debug (debug macro: _DEBUG)
- * pginstrument (PGO)
- * pgupdate (PGO)
- +-- pginstrument
- * pyd (python extension, release build)
- +-- release
- +-- pyproject
- * pyd_d (python extension, debug build)
- +-- debug
- +-- pyproject
- * pyproject (base settings for all projects, user macros like PyDllName)
- * release (release macro: NDEBUG)
- * 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.
-
-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.