blob: 2e343126f227a2ddf280448c4cfad634e655def9 [file] [log] [blame]
Martin v. Löwisb38b0192004-01-02 21:13:28 +00001Building Python using VC++ 7.1
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
Martin v. Löwisb38b0192004-01-02 21:13:28 +0000495, 98 and NT. It requires Microsoft Visual C++ 7.1
5(a.k.a. Visual Studio .NET 2003).
Guido van Rossum15b239f1998-05-26 14:16:23 +00006(For other Windows platforms and compilers, see ../PC/readme.txt.)
7
Martin v. Löwisb38b0192004-01-02 21:13:28 +00008All you need to do is open the workspace "pcbuild.sln" in MSVC++, select
9the Debug or Release setting (using "Solution Configuration" from
10the "Standard" toolbar"), and build the projects.
Guido van Rossum15b239f1998-05-26 14:16:23 +000011
Tim Petersbefc97c2001-01-18 19:01:39 +000012The proper order to build subprojects:
Guido van Rossum15b239f1998-05-26 14:16:23 +000013
Tim Peters97c96402001-01-17 23:23:13 +0000141) pythoncore (this builds the main Python DLL and library files,
Martin v. Löwisff0940f2007-08-30 05:40:17 +000015 python30.{dll, lib} in Release mode)
Guido van Rossum15b239f1998-05-26 14:16:23 +000016
Tim Petersbefc97c2001-01-18 19:01:39 +0000172) python (this builds the main Python executable,
18 python.exe in Release mode)
Tim Peters4b5fb072000-07-01 00:03:43 +000019
203) the other subprojects, as desired or needed (note: you probably don't
21 want to build most of the other subprojects, unless you're building an
22 entire Python distribution from scratch, or specifically making changes
Tim Peters7ccbb072006-03-13 19:43:34 +000023 to the subsystems they implement, or are running a Python core buildbot
24 test slave; 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
Martin v. Löwisff0940f2007-08-30 05:40:17 +000027their name: python30_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
Tim Petersd66595f2001-02-04 03:09:53 +000044_testcapi
Tim Petersb16c56f2001-02-02 21:24:51 +000045 tests of the Python C API, run via Lib/test/test_capi.py, and
Tim Petersd66595f2001-02-04 03:09:53 +000046 implemented by module Modules/_testcapimodule.c
Tim Petersb012a152002-02-13 23:56:46 +000047pyexpat
48 Python wrapper for accelerated XML parsing, which incorporates stable
49 code from the Expat project: http://sourceforge.net/projects/expat/
Tim Peters4b5fb072000-07-01 00:03:43 +000050select
51 selectmodule.c
Tim Peters19f52c22001-01-24 10:07:22 +000052unicodedata
Tim Peters4b5fb072000-07-01 00:03:43 +000053 large tables of Unicode data
Tim Peters4b5fb072000-07-01 00:03:43 +000054winsound
55 play sounds (typically .wav files) under Windows
56
57The following subprojects will generally NOT build out of the box. They
58wrap code Python doesn't control, and you'll need to download the base
Tim Petersaff12842000-08-25 06:52:44 +000059packages first and unpack them into siblings of PCbuilds's parent
60directory; for example, if your PCbuild is .......\dist\src\PCbuild\,
61unpack into new subdirectories of dist\.
Tim Peters4b5fb072000-07-01 00:03:43 +000062
63_tkinter
Tim Peters077736b2002-11-14 23:24:40 +000064 Python wrapper for the Tk windowing system. Requires building
Thomas Wouters49fd7fa2006-04-21 10:40:58 +000065 Tcl/Tk first. Following are instructions for Tcl/Tk 8.4.12.
Tim Peters077736b2002-11-14 23:24:40 +000066
67 Get source
68 ----------
Thomas Wouters49fd7fa2006-04-21 10:40:58 +000069 In the dist directory, run
70 svn export http://svn.python.org/projects/external/tcl8.4.12
71 svn export http://svn.python.org/projects/external/tk8.4.12
72 svn export http://svn.python.org/projects/external/tix-8.4.0
Tim Peters077736b2002-11-14 23:24:40 +000073
Guido van Rossumd54357d2004-03-20 21:00:26 +000074 Build Tcl first (done here w/ MSVC 7.1 on Windows XP)
Tim Peters6c629952002-11-15 18:36:11 +000075 ---------------
Guido van Rossumd54357d2004-03-20 21:00:26 +000076 Use "Start -> All Programs -> Microsoft Visual Studio .NET 2003
77 -> Visual Studio .NET Tools -> Visual Studio .NET 2003 Command Prompt"
78 to get a shell window with the correct environment settings
Thomas Wouters49fd7fa2006-04-21 10:40:58 +000079 cd dist\tcl8.4.12\win
Tim Peters077736b2002-11-14 23:24:40 +000080 nmake -f makefile.vc
Martin v. Löwis6de2d4d2004-08-30 09:22:04 +000081 nmake -f makefile.vc INSTALLDIR=..\..\tcltk install
Tim Peters077736b2002-11-14 23:24:40 +000082
83 XXX Should we compile with OPTS=threads?
84
Tim Peters011de6cc2004-04-11 17:29:12 +000085 Optional: run tests, via
86 nmake -f makefile.vc test
87
Martin v. Löwis6de2d4d2004-08-30 09:22:04 +000088 On WinXP Pro, wholly up to date as of 30-Aug-2004:
Tim Peterse82b00f2004-08-30 21:14:51 +000089 all.tcl: Total 10678 Passed 9969 Skipped 709 Failed 0
Tim Peters011de6cc2004-04-11 17:29:12 +000090 Sourced 129 Test Files.
Tim Peters077736b2002-11-14 23:24:40 +000091
Tim Peters077736b2002-11-14 23:24:40 +000092 Build Tk
Tim Peters6c629952002-11-15 18:36:11 +000093 --------
Thomas Wouters49fd7fa2006-04-21 10:40:58 +000094 cd dist\tk8.4.12\win
95 nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12
96 nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 INSTALLDIR=..\..\tcltk install
Tim Peters077736b2002-11-14 23:24:40 +000097
98 XXX Should we compile with OPTS=threads?
99
Tim Peters077736b2002-11-14 23:24:40 +0000100 XXX Our installer copies a lot of stuff out of the Tcl/Tk install
101 XXX directory. Is all of that really needed for Python use of Tcl/Tk?
102
Tim Peters011de6cc2004-04-11 17:29:12 +0000103 Optional: run tests, via
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000104 nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 test
Tim Peters011de6cc2004-04-11 17:29:12 +0000105
Martin v. Löwis6de2d4d2004-08-30 09:22:04 +0000106 On WinXP Pro, wholly up to date as of 30-Aug-2004:
Tim Peterse82b00f2004-08-30 21:14:51 +0000107 all.tcl: Total 8420 Passed 6826 Skipped 1581 Failed 13
Martin v. Löwis6de2d4d2004-08-30 09:22:04 +0000108 Sourced 91 Test Files.
Tim Peterse82b00f2004-08-30 21:14:51 +0000109 Files with failing tests: canvImg.test scrollbar.test textWind.test winWm.test
Tim Peters63db6282005-08-07 02:47:12 +0000110
Martin v. Löwis3cf21632004-08-31 16:22:09 +0000111 Built Tix
112 ---------
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000113 cd dist\tix-8.4.0\win
114 nmake -f python.mak
115 nmake -f python.mak install
Tim Peters4b5fb072000-07-01 00:03:43 +0000116
Tim Petersb0ead4e2002-11-09 04:48:58 +0000117bz2
118 Python wrapper for the libbz2 compression library. Homepage
119 http://sources.redhat.com/bzip2/
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000120 Download the source from the python.org copy into the dist
121 directory:
122
Martin v. Löwis14c1cf82006-03-13 10:52:04 +0000123 svn export http://svn.python.org/projects/external/bzip2-1.0.3
Tim Peters077736b2002-11-14 23:24:40 +0000124
Thomas Heller46a007e2003-08-20 18:27:36 +0000125 A custom pre-link step in the bz2 project settings should manage to
Tim Peters7ccbb072006-03-13 19:43:34 +0000126 build bzip2-1.0.3\libbz2.lib by magic before bz2.pyd (or bz2_d.pyd) is
Thomas Heller46a007e2003-08-20 18:27:36 +0000127 linked in PCbuild\.
128 However, the bz2 project is not smart enough to remove anything under
Martin v. Löwis14c1cf82006-03-13 10:52:04 +0000129 bzip2-1.0.3\ when you do a clean, so if you want to rebuild bzip2.lib
130 you need to clean up bzip2-1.0.3\ by hand.
Tim Peters077736b2002-11-14 23:24:40 +0000131
Thomas Heller46a007e2003-08-20 18:27:36 +0000132 The build step shouldn't yield any warnings or errors, and should end
Tim Petersb0ead4e2002-11-09 04:48:58 +0000133 by displaying 6 blocks each terminated with
134 FC: no differences encountered
Tim Peterscaba60a2004-01-04 02:04:35 +0000135
Martin v. Löwis14c1cf82006-03-13 10:52:04 +0000136 All of this managed to build bzip2-1.0.3\libbz2.lib, which the Python
Tim Petersb0ead4e2002-11-09 04:48:58 +0000137 project links in.
138
139
Tim Peters78e35f92002-11-22 20:00:34 +0000140_bsddb
Tim Peters7ccbb072006-03-13 19:43:34 +0000141 To use the version of bsddb that Python is built with by default, invoke
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000142 (in the dist directory)
Tim Petersb0ead4e2002-11-09 04:48:58 +0000143
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000144 svn export http://svn.python.org/projects/external/db-4.4.20
145
146
Tim Peters6da8ceb2006-03-13 20:09:32 +0000147 Then open a VS.NET 2003 shell, and invoke:
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000148
Tim Peters6da8ceb2006-03-13 20:09:32 +0000149 devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Release /project db_static
150
151 and do that a second time for a Debug build too:
152
153 devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Debug /project db_static
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000154
Tim Peters32d996f2006-03-13 19:35:53 +0000155 Alternatively, if you want to start with the original sources,
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000156 go to Sleepycat's download page:
157 http://www.sleepycat.com/downloads/releasehistorybdb.html
158
159 and download version 4.4.20.
Tim Peters011de6cc2004-04-11 17:29:12 +0000160
161 With or without strong cryptography? You can choose either with or
162 without strong cryptography, as per the instructions below. By
Thomas Heller81391402004-07-02 08:58:46 +0000163 default, Python is built and distributed WITHOUT strong crypto.
Tim Peters011de6cc2004-04-11 17:29:12 +0000164
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000165 Unpack the sources; if you downloaded the non-crypto version, rename
166 the directory from db-4.4.20.NC to db-4.4.20.
Tim Peters011de6cc2004-04-11 17:29:12 +0000167
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000168 Now apply any patches that apply to your version.
Tim Petersa0d781a2004-04-11 18:23:06 +0000169
Tim Peters00640262003-01-24 15:31:31 +0000170 Open
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000171 dist\db-4.4.20\docs\index.html
Tim Peters00640262003-01-24 15:31:31 +0000172
Mark Hammond2362da82004-01-06 04:04:01 +0000173 and follow the "Windows->Building Berkeley DB with Visual C++ .NET"
174 instructions for building the Sleepycat
Tim Peters00640262003-01-24 15:31:31 +0000175 software. Note that Berkeley_DB.dsw is in the build_win32 subdirectory.
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000176 Build the "db_static" project, for "Release" mode.
Tim Peters78e35f92002-11-22 20:00:34 +0000177
Tim Peters00640262003-01-24 15:31:31 +0000178 To run extensive tests, pass "-u bsddb" to regrtest.py. test_bsddb3.py
179 is then enabled. Running in verbose mode may be helpful.
180
181 XXX The test_bsddb3 tests don't always pass, on Windows (according to
Guido van Rossumd54357d2004-03-20 21:00:26 +0000182 XXX me) or on Linux (according to Barry). (I had much better luck
183 XXX on Win2K than on Win98SE.) The common failure mode across platforms
Tim Peters00640262003-01-24 15:31:31 +0000184 XXX is
185 XXX DBAgainError: (11, 'Resource temporarily unavailable -- unable
186 XXX to join the environment')
187 XXX
188 XXX and it appears timing-dependent. On Win2K I also saw this once:
189 XXX
190 XXX test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ...
191 XXX Exception in thread reader 1:
192 XXX Traceback (most recent call last):
193 XXX File "C:\Code\python\lib\threading.py", line 411, in __bootstrap
194 XXX self.run()
195 XXX File "C:\Code\python\lib\threading.py", line 399, in run
Neal Norwitzd9108552006-03-17 08:00:19 +0000196 XXX self.__target(*self.__args, **self.__kwargs)
Tim Peters00640262003-01-24 15:31:31 +0000197 XXX File "C:\Code\python\lib\bsddb\test\test_thread.py", line 268, in
198 XXX readerThread
199 XXX rec = c.next()
200 XXX DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed
201 XXX to resolve a deadlock')
Tim Petersad8605d2003-01-29 00:38:42 +0000202 XXX
203 XXX I'm told that DBLockDeadlockError is expected at times. It
204 XXX doesn't cause a test to fail when it happens (exceptions in
205 XXX threads are invisible to unittest).
Tim Peters00640262003-01-24 15:31:31 +0000206
Martin v. Löwisb0912412006-03-13 15:37:40 +0000207 Building for Win64:
208 - open a VS.NET 2003 command prompt
209 - run the SDK setenv.cmd script, passing /RETAIL and the target
210 architecture (/SRV64 for Itanium, /X64 for AMD64)
211 - build BerkeleyDB with the solution configuration matching the
212 target ("Release IA64" for Itanium, "Release AMD64" for AMD64), e.g.
213 devenv db-4.4.20\build_win32\Berkeley_DB.sln /build "Release AMD64" /project db_static /useenv
Tim Peters32d996f2006-03-13 19:35:53 +0000214
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000215_sqlite3
216 Python wrapper for SQLite library.
217
218 Get the source code through
219
220 svn export http://svn.python.org/projects/external/sqlite-source-3.3.4
221
222 To use the extension module in a Python build tree, copy sqlite3.dll into
223 the PCbuild folder.
Martin v. Löwisb0912412006-03-13 15:37:40 +0000224
Mark Hammondf229f9f2002-12-03 05:47:26 +0000225_ssl
Tim Peterse8bcb252002-12-04 02:39:52 +0000226 Python wrapper for the secure sockets library.
Tim Peters4b5fb072000-07-01 00:03:43 +0000227
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000228 Get the source code through
Mark Hammondf229f9f2002-12-03 05:47:26 +0000229
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000230 svn export http://svn.python.org/projects/external/openssl-0.9.8a
Tim Peterse8bcb252002-12-04 02:39:52 +0000231
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000232 Alternatively, get the latest version from http://www.openssl.org.
Mark Hammondf229f9f2002-12-03 05:47:26 +0000233 You can (theoretically) use any version of OpenSSL you like - the
234 build process will automatically select the latest version.
235
236 You must also install ActivePerl from
237 http://www.activestate.com/Products/ActivePerl/
Tim Peterse8bcb252002-12-04 02:39:52 +0000238 as this is used by the OpenSSL build process. Complain to them <wink>.
Mark Hammondf229f9f2002-12-03 05:47:26 +0000239
240 The MSVC project simply invokes PCBuild/build_ssl.py to perform
Tim Peterse8bcb252002-12-04 02:39:52 +0000241 the build. This Python script locates and builds your OpenSSL
Mark Hammondf229f9f2002-12-03 05:47:26 +0000242 installation, then invokes a simple makefile to build the final .pyd.
243
244 build_ssl.py attempts to catch the most common errors (such as not
245 being able to find OpenSSL sources, or not being able to find a Perl
246 that works with OpenSSL) and give a reasonable error message.
247 If you have a problem that doesn't seem to be handled correctly
248 (eg, you know you have ActivePerl but we can't find it), please take
249 a peek at build_ssl.py and suggest patches. Note that build_ssl.py
250 should be able to be run directly from the command-line.
251
Tim Peterse8bcb252002-12-04 02:39:52 +0000252 build_ssl.py/MSVC isn't clever enough to clean OpenSSL - you must do
253 this by hand.
Tim Peters4b5fb072000-07-01 00:03:43 +0000254
Martin v. Löwis13e50fe2004-07-20 14:37:48 +0000255Building for Itanium
256--------------------
257
Tim Peterse82b00f2004-08-30 21:14:51 +0000258The project files support a ReleaseItanium configuration which creates
Martin v. Löwis13e50fe2004-07-20 14:37:48 +0000259Win64/Itanium binaries. For this to work, you need to install the Platform
260SDK, in particular the 64-bit support. This includes an Itanium compiler
261(future releases of the SDK likely include an AMD64 compiler as well).
262In addition, you need the Visual Studio plugin for external C compilers,
263from http://sf.net/projects/vsextcomp. The plugin will wrap cl.exe, to
Tim Peterse82b00f2004-08-30 21:14:51 +0000264locate the proper target compiler, and convert compiler options
Thomas Wouters0e3f5912006-08-11 14:57:12 +0000265accordingly. The project files require atleast version 0.9.
Martin v. Löwis13e50fe2004-07-20 14:37:48 +0000266
Martin v. Löwis856bf9a2006-02-14 20:42:55 +0000267Building for AMD64
268------------------
269
270The build process for the ReleaseAMD64 configuration is very similar
271to the Itanium configuration; make sure you use the latest version of
272vsextcomp.
273
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000274Building Python Using the free MS Toolkit Compiler
275--------------------------------------------------
276
277The build process for Visual C++ can be used almost unchanged with the free MS
278Toolkit Compiler. This provides a way of building Python using freely
279available software.
280
Thomas Wouters0e3f5912006-08-11 14:57:12 +0000281Note that Microsoft have withdrawn the free MS Toolkit Compiler, so this can
282no longer be considered a supported option. The instructions are still
283correct, but you need to already have a copy of the compiler in order to use
284them. Microsoft now supply Visual C++ 2005 Express Edition for free, but this
285is NOT compatible with Visual C++ 7.1 (it uses a different C runtime), and so
286cannot be used to build a version of Python compatible with the standard
287python.org build. If you are interested in using Visual C++ 2005 Express
288Edition, however, you should look at the PCBuild8 directory.
289
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000290Requirements
291
292 To build Python, the following tools are required:
293
294 * The Visual C++ Toolkit Compiler
Thomas Wouters0e3f5912006-08-11 14:57:12 +0000295 no longer available for download - see above
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000296 * A recent Platform SDK
297 from http://www.microsoft.com/downloads/details.aspx?FamilyID=484269e2-3b89-47e3-8eb7-1f2be6d7123a
298 * The .NET 1.1 SDK
299 from http://www.microsoft.com/downloads/details.aspx?FamilyID=9b3a2ca6-3647-4070-9f41-a333c6b9181d
300
301 [Does anyone have better URLs for the last 2 of these?]
302
303 The toolkit compiler is needed as it is an optimising compiler (the
304 compiler supplied with the .NET SDK is a non-optimising version). The
305 platform SDK is needed to provide the Windows header files and libraries
306 (the Windows 2003 Server SP1 edition, typical install, is known to work -
307 other configurations or versions are probably fine as well). The .NET 1.1
308 SDK is needed because it contains a version of msvcrt.dll which links to
309 the msvcr71.dll CRT. Note that the .NET 2.0 SDK is NOT acceptable, as it
310 references msvcr80.dll.
311
312 All of the above items should be installed as normal.
313
314 If you intend to build the openssl (needed for the _ssl extension) you
315 will need the C runtime sources installed as part of the platform SDK.
316
317 In addition, you will need Nant, available from
318 http://nant.sourceforge.net. The 0.85 release candidate 3 version is known
319 to work. This is the latest released version at the time of writing. Later
320 "nightly build" versions are known NOT to work - it is not clear at
321 present whether future released versions will work.
322
323Setting up the environment
324
325 Start a platform SDK "build environment window" from the start menu. The
326 "Windows XP 32-bit retail" version is known to work.
327
328 Add the following directories to your PATH:
329 * The toolkit compiler directory
330 * The SDK "Win64" binaries directory
331 * The Nant directory
332 Add to your INCLUDE environment variable:
333 * The toolkit compiler INCLUDE directory
334 Add to your LIB environment variable:
335 * The toolkit compiler LIB directory
336 * The .NET SDK Visual Studio 2003 VC7\lib directory
337
338 The following commands should set things up as you need them:
339
340 rem Set these values according to where you installed the software
341 set TOOLKIT=C:\Program Files\Microsoft Visual C++ Toolkit 2003
342 set SDK=C:\Program Files\Microsoft Platform SDK
343 set NET=C:\Program Files\Microsoft Visual Studio .NET 2003
344 set NANT=C:\Utils\Nant
345
346 set PATH=%TOOLKIT%\bin;%PATH%;%SDK%\Bin\win64;%NANT%\bin
347 set INCLUDE=%TOOLKIT%\include;%INCLUDE%
348 set LIB=%TOOLKIT%\lib;%NET%\VC7\lib;%LIB%
349
350 The "win64" directory from the SDK is added to supply executables such as
351 "cvtres" and "lib", which are not available elsewhere. The versions in the
352 "win64" directory are 32-bit programs, so they are fine to use here.
353
354 That's it. To build Python (the core only, no binary extensions which
355 depend on external libraries) you just need to issue the command
356
357 nant -buildfile:python.build all
358
359 from within the PCBuild directory.
360
361Extension modules
362
363 To build those extension modules which require external libraries
364 (_tkinter, bz2, _bsddb, _sqlite3, _ssl) you can follow the instructions
365 for the Visual Studio build above, with a few minor modifications. These
366 instructions have only been tested using the sources in the Python
367 subversion repository - building from original sources should work, but
368 has not been tested.
369
370 For each extension module you wish to build, you should remove the
371 associated include line from the excludeprojects section of pc.build.
372
373 The changes required are:
374
375 _tkinter
376 The tix makefile (tix-8.4.0\win\makefile.vc) must be modified to
377 remove references to TOOLS32. The relevant lines should be changed to
378 read:
379 cc32 = cl.exe
380 link32 = link.exe
381 include32 =
382 The remainder of the build instructions will work as given.
383
384 bz2
385 No changes are needed
386
387 _bsddb
388 The file db.build should be copied from the Python PCBuild directory
389 to the directory db-4.4.20\build_win32.
390
391 The file db_static.vcproj in db-4.4.20\build_win32 should be edited to
392 remove the string "$(SolutionDir)" - this occurs in 2 places, only
393 relevant for 64-bit builds. (The edit is required as otherwise, nant
394 wants to read the solution file, which is not in a suitable form).
395
396 The bsddb library can then be build with the command
397 nant -buildfile:db.build all
398 run from the db-4.4.20\build_win32 directory.
399
400 _sqlite3
401 No changes are needed. However, in order for the tests to succeed, a
402 copy of sqlite3.dll must be downloaded, and placed alongside
403 python.exe.
404
405 _ssl
406 The documented build process works as written. However, it needs a
407 copy of the file setargv.obj, which is not supplied in the platform
408 SDK. However, the sources are available (in the crt source code). To
409 build setargv.obj, proceed as follows:
410
411 Copy setargv.c, cruntime.h and internal.h from %SDK%\src\crt to a
412 temporary directory.
413 Compile using "cl /c /I. /MD /D_CRTBLD setargv.c"
414 Copy the resulting setargv.obj to somewhere on your LIB environment
415 (%SDK%\lib is a reasonable place).
416
417 With setargv.obj in place, the standard build process should work
418 fine.
419
Tim Petersf9a4a6e2000-07-01 20:38:27 +0000420YOUR OWN EXTENSION DLLs
Tim Peters4b5fb072000-07-01 00:03:43 +0000421-----------------------
422If you want to create your own extension module DLL, there's an example
423with easy-to-follow instructions in ../PC/example/; read the file
424readme.txt there first.