blob: 8680e7d135e768400e2d2abb8334b2aced63f267 [file] [log] [blame]
Tim Peters4b5fb072000-07-01 00:03:43 +00001Building Python using VC++ 6.0 or 5.0
Guido van Rossuma29b3602000-03-29 01:51:37 +00002-------------------------------------
Tim Peters4b5fb072000-07-01 00:03:43 +00003This directory is used to build Python for Win32 platforms, e.g. Windows
495, 98 and NT. It requires Microsoft Visual C++ 6.x or 5.x.
Guido van Rossum15b239f1998-05-26 14:16:23 +00005(For other Windows platforms and compilers, see ../PC/readme.txt.)
6
Tim Peters4b5fb072000-07-01 00:03:43 +00007All you need to do is open the workspace "pcbuild.dsw" in MSVC++, select
8the Debug or Release setting (using Build -> Set Active Configuration...),
9and build the projects.
Guido van Rossum15b239f1998-05-26 14:16:23 +000010
Tim Petersbefc97c2001-01-18 19:01:39 +000011The proper order to build subprojects:
Guido van Rossum15b239f1998-05-26 14:16:23 +000012
Tim Peters97c96402001-01-17 23:23:13 +0000131) pythoncore (this builds the main Python DLL and library files,
Tim Petersbefc97c2001-01-18 19:01:39 +000014 python21.{dll, lib} in Release mode)
15 NOTE: in previous releases, this subproject was
16 named after the release number, e.g. python20.
Guido van Rossum15b239f1998-05-26 14:16:23 +000017
Tim Petersbefc97c2001-01-18 19:01:39 +0000182) python (this builds the main Python executable,
19 python.exe in Release mode)
Tim Peters4b5fb072000-07-01 00:03:43 +000020
213) the other subprojects, as desired or needed (note: you probably don't
22 want to build most of the other subprojects, unless you're building an
23 entire Python distribution from scratch, or specifically making changes
24 to the subsystems they implement; see SUBPROJECTS below)
Guido van Rossum15b239f1998-05-26 14:16:23 +000025
26When using the Debug setting, the output files have a _d added to
Tim Peters97c96402001-01-17 23:23:13 +000027their name: python21_d.dll, python_d.exe, parser_d.pyd, and so on.
Guido van Rossume79cf321998-07-07 22:35:03 +000028
Tim Peters4b5fb072000-07-01 00:03:43 +000029SUBPROJECTS
30-----------
Tim Peters610a8272000-07-01 02:51:23 +000031These subprojects should build out of the box. Subprojects other than the
Tim Petersbefc97c2001-01-18 19:01:39 +000032main ones (pythoncore, python, pythonw) generally build a DLL (renamed to
Tim Peters610a8272000-07-01 02:51:23 +000033.pyd) from a specific module so that users don't have to load the code
Tim Peters4b5fb072000-07-01 00:03:43 +000034supporting that module unless they import the module.
Guido van Rossume79cf321998-07-07 22:35:03 +000035
Tim Peters97c96402001-01-17 23:23:13 +000036pythoncore
Tim Peters4b5fb072000-07-01 00:03:43 +000037 .dll and .lib
38python
39 .exe
40pythonw
41 pythonw.exe, a variant of python.exe that doesn't pop up a DOS box
42_socket
43 socketmodule.c
44_sre
45 Unicode-aware regular expression engine
Tim Petersb16c56f2001-02-02 21:24:51 +000046_symtable
47 the _symtable module, symtablemodule.c
Tim Petersd66595f2001-02-04 03:09:53 +000048_testcapi
Tim Petersb16c56f2001-02-02 21:24:51 +000049 tests of the Python C API, run via Lib/test/test_capi.py, and
Tim Petersd66595f2001-02-04 03:09:53 +000050 implemented by module Modules/_testcapimodule.c
Tim Peters4b5fb072000-07-01 00:03:43 +000051mmap
52 mmapmodule.c
53parser
54 the parser module
55select
56 selectmodule.c
Tim Peters19f52c22001-01-24 10:07:22 +000057unicodedata
Tim Peters4b5fb072000-07-01 00:03:43 +000058 large tables of Unicode data
59winreg
60 Windows registry API
61winsound
62 play sounds (typically .wav files) under Windows
63
64The following subprojects will generally NOT build out of the box. They
65wrap code Python doesn't control, and you'll need to download the base
Tim Petersaff12842000-08-25 06:52:44 +000066packages first and unpack them into siblings of PCbuilds's parent
67directory; for example, if your PCbuild is .......\dist\src\PCbuild\,
68unpack into new subdirectories of dist\.
Tim Peters4b5fb072000-07-01 00:03:43 +000069
70_tkinter
Tim Petersaff12842000-08-25 06:52:44 +000071 Python wrapper for the Tk windowing system. Requires tcl832.exe from
Tim Peters610a8272000-07-01 02:51:23 +000072 http://dev.scriptics.com/software/tcltk/downloadnow83.html
Tim Petersaff12842000-08-25 06:52:44 +000073 Run the installer, forcing installation into dist\Tcl.
74 Be sure to install everything, including the Tcl/Tk header files.
Tim Peters4b5fb072000-07-01 00:03:43 +000075
76zlib
Tim Petersee826f82001-01-31 19:39:44 +000077 NOTE: This procedure is new (& simpler, & safer) for 2.1a2.
78 Python wrapper for the zlib compression library. Get the source code
79 for version 1.1.3 from a convenient mirror at:
80 http://www.info-zip.org/pub/infozip/zlib/
81 Unpack into dist\zlib-1.1.3.
82 A custom pre-link step in the zlib project settings should manage to
83 build zlib-1.1.3\zlib.lib by magic before zlib.pyd (or zlib_d.pyd) is
84 linked in PCbuild\.
85 However, the zlib project is not smart enough to remove anything under
86 zlib-1.1.3\ when you do a clean, so if you want to rebuild zlib.lib
87 you need to clean up zlib-1.1.3\ by hand.
Tim Peters4b5fb072000-07-01 00:03:43 +000088
89bsddb
Tim Peters610a8272000-07-01 02:51:23 +000090 Python wrapper for the BSD database 1.85. Requires db.1.85.win32.zip,
91 from the "bsd db" link at
Tim Peters4b5fb072000-07-01 00:03:43 +000092 http://www.nightmare.com/software.html
Tim Petersaff12842000-08-25 06:52:44 +000093 Unpack into dist\bsddb.
94 You then need to compile it: cd to dist\bsddb\Port\win32, and run
95 nmake -f makefile_nt.msc
96 This builds bsddb\Port\win32\db.lib, which the MSVC project links in.
97 Note that if you're running Win9X, you'll need to run vcvars32.bat
98 before running nmake (this batch file is in your MSVC installation).
Tim Petersca873ed2001-02-01 05:10:02 +000099 TODO: make this work like zlib (in particular, MSVC runs the prelink
100 step in an enviroment that already has the correct envars set up).
Tim Peters4b5fb072000-07-01 00:03:43 +0000101
102pyexpat
Tim Petersfaa7f112001-07-28 07:56:38 +0000103 Python wrapper for accelerated XML parsing. Requires the Windows
104 expat_win32bin installer from
105 http://sourceforge.net/projects/expat/
106 Currently using version 1.95.2.
107 Install into dist\expat.
108 You should also copy expat\Libs\expat.dll into your PCbuild directory,
109 else at least two tests will fail (test_pyexpat and test_sax), and
110 others will erroneously get skipped (at least test_minidom).
Tim Peters4b5fb072000-07-01 00:03:43 +0000111
112
113NOTE ON CONFIGURATIONS
114----------------------
115Under Build -> Configuration ..., you'll find several Alpha configurations,
116such as "Win32 Alpha Release". These do not refer to alpha versions (as in
117alpha, beta, final), but to the DEC/COMPAQ Alpha processor. Ignore them if
118you're not building on an Alpha box.
119
120
Tim Petersf9a4a6e2000-07-01 20:38:27 +0000121YOUR OWN EXTENSION DLLs
Tim Peters4b5fb072000-07-01 00:03:43 +0000122-----------------------
123If you want to create your own extension module DLL, there's an example
124with easy-to-follow instructions in ../PC/example/; read the file
125readme.txt there first.