mirror of https://github.com/python/cpython
121 lines
4.6 KiB
Plaintext
121 lines
4.6 KiB
Plaintext
Building Python using VC++ 6.0 or 5.0
|
|
-------------------------------------
|
|
This directory is used to build Python for Win32 platforms, e.g. Windows
|
|
95, 98 and NT. It requires Microsoft Visual C++ 6.x or 5.x.
|
|
(For other Windows platforms and compilers, see ../PC/readme.txt.)
|
|
|
|
All you need to do is open the workspace "pcbuild.dsw" in MSVC++, select
|
|
the Debug or Release setting (using Build -> Set Active Configuration...),
|
|
and build the projects.
|
|
|
|
The proper order to build subprojects:
|
|
|
|
1) pythoncore (this builds the main Python DLL and library files,
|
|
python21.{dll, lib} in Release mode)
|
|
NOTE: in previous releases, this subproject was
|
|
named after the release number, e.g. python20.
|
|
|
|
2) python (this builds the main Python executable,
|
|
python.exe in Release mode)
|
|
|
|
3) the other subprojects, as desired or needed (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; see SUBPROJECTS below)
|
|
|
|
When using the Debug setting, the output files have a _d added to
|
|
their name: python21_d.dll, python_d.exe, parser_d.pyd, and so on.
|
|
|
|
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
|
|
_sre
|
|
Unicode-aware regular expression engine
|
|
_symtable
|
|
the _symtable module, symtablemodule.c
|
|
_testcapi
|
|
tests of the Python C API, run via Lib/test/test_capi.py, and
|
|
implemented by module Modules/_testcapimodule.c
|
|
mmap
|
|
mmapmodule.c
|
|
parser
|
|
the parser module
|
|
select
|
|
selectmodule.c
|
|
unicodedata
|
|
large tables of Unicode data
|
|
winreg
|
|
Windows registry API
|
|
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 PCbuild is .......\dist\src\PCbuild\,
|
|
unpack into new subdirectories of dist\.
|
|
|
|
_tkinter
|
|
Python wrapper for the Tk windowing system. Requires tcl832.exe from
|
|
http://dev.scriptics.com/software/tcltk/downloadnow83.html
|
|
Run the installer, forcing installation into dist\Tcl.
|
|
Be sure to install everything, including the Tcl/Tk header files.
|
|
|
|
zlib
|
|
NOTE: This procedure is new (& simpler, & safer) for 2.1a2.
|
|
Python wrapper for the zlib compression library. Get the source code
|
|
for version 1.1.3 from a convenient mirror at:
|
|
http://www.info-zip.org/pub/infozip/zlib/
|
|
Unpack into dist\zlib-1.1.3.
|
|
A custom pre-link step in the zlib project settings should manage to
|
|
build zlib-1.1.3\zlib.lib by magic before zlib.pyd (or zlib_d.pyd) is
|
|
linked in PCbuild\.
|
|
However, the zlib project is not smart enough to remove anything under
|
|
zlib-1.1.3\ when you do a clean, so if you want to rebuild zlib.lib
|
|
you need to clean up zlib-1.1.3\ by hand.
|
|
|
|
bsddb
|
|
Python wrapper for the BSD database 1.85. Requires db.1.85.win32.zip,
|
|
from the "bsd db" link at
|
|
http://www.nightmare.com/software.html
|
|
Unpack into dist\bsddb.
|
|
You then need to compile it: cd to dist\bsddb\Port\win32, and run
|
|
nmake -f makefile_nt.msc
|
|
This builds bsddb\Port\win32\db.lib, which the MSVC project links in.
|
|
Note that if you're running Win9X, you'll need to run vcvars32.bat
|
|
before running nmake (this batch file is in your MSVC installation).
|
|
TODO: make this work like zlib (in particular, MSVC runs the prelink
|
|
step in an enviroment that already has the correct envars set up).
|
|
|
|
pyexpat
|
|
Python wrapper for accelerated XML parsing. Requires
|
|
ftp://ftp.jclark.com/pub/xml/expat.zip
|
|
Unpack into dist\expat.
|
|
|
|
|
|
NOTE ON CONFIGURATIONS
|
|
----------------------
|
|
Under Build -> Configuration ..., you'll find several Alpha configurations,
|
|
such as "Win32 Alpha Release". These do not refer to alpha versions (as in
|
|
alpha, beta, final), but to the DEC/COMPAQ Alpha processor. Ignore them if
|
|
you're not building on an Alpha box.
|
|
|
|
|
|
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.
|