blob: e303313244a9af9898c958d660c2cb53722591a5 [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,
Tim Peters63db6282005-08-07 02:47:12 +000015 python25.{dll, lib} in Release mode)
Tim Petersbefc97c2001-01-18 19:01:39 +000016 NOTE: in previous releases, this subproject was
17 named after the release number, e.g. python20.
Guido van Rossum15b239f1998-05-26 14:16:23 +000018
Tim Petersbefc97c2001-01-18 19:01:39 +0000192) python (this builds the main Python executable,
20 python.exe in Release mode)
Tim Peters4b5fb072000-07-01 00:03:43 +000021
223) the other subprojects, as desired or needed (note: you probably don't
23 want to build most of the other subprojects, unless you're building an
24 entire Python distribution from scratch, or specifically making changes
Tim Peters7ccbb072006-03-13 19:43:34 +000025 to the subsystems they implement, or are running a Python core buildbot
26 test slave; see SUBPROJECTS below)
Guido van Rossum15b239f1998-05-26 14:16:23 +000027
28When using the Debug setting, the output files have a _d added to
Tim Peters63db6282005-08-07 02:47:12 +000029their name: python25_d.dll, python_d.exe, parser_d.pyd, and so on.
Guido van Rossume79cf321998-07-07 22:35:03 +000030
Tim Peters4b5fb072000-07-01 00:03:43 +000031SUBPROJECTS
32-----------
Tim Peters610a8272000-07-01 02:51:23 +000033These subprojects should build out of the box. Subprojects other than the
Tim Petersbefc97c2001-01-18 19:01:39 +000034main ones (pythoncore, python, pythonw) generally build a DLL (renamed to
Tim Peters610a8272000-07-01 02:51:23 +000035.pyd) from a specific module so that users don't have to load the code
Tim Peters4b5fb072000-07-01 00:03:43 +000036supporting that module unless they import the module.
Guido van Rossume79cf321998-07-07 22:35:03 +000037
Tim Peters97c96402001-01-17 23:23:13 +000038pythoncore
Tim Peters4b5fb072000-07-01 00:03:43 +000039 .dll and .lib
40python
41 .exe
42pythonw
43 pythonw.exe, a variant of python.exe that doesn't pop up a DOS box
44_socket
45 socketmodule.c
Tim Petersd66595f2001-02-04 03:09:53 +000046_testcapi
Tim Petersb16c56f2001-02-02 21:24:51 +000047 tests of the Python C API, run via Lib/test/test_capi.py, and
Tim Petersd66595f2001-02-04 03:09:53 +000048 implemented by module Modules/_testcapimodule.c
Tim Petersb012a152002-02-13 23:56:46 +000049pyexpat
50 Python wrapper for accelerated XML parsing, which incorporates stable
51 code from the Expat project: http://sourceforge.net/projects/expat/
Tim Peters4b5fb072000-07-01 00:03:43 +000052select
53 selectmodule.c
Tim Peters19f52c22001-01-24 10:07:22 +000054unicodedata
Tim Peters4b5fb072000-07-01 00:03:43 +000055 large tables of Unicode data
Tim Peters4b5fb072000-07-01 00:03:43 +000056winsound
57 play sounds (typically .wav files) under Windows
58
59The following subprojects will generally NOT build out of the box. They
60wrap code Python doesn't control, and you'll need to download the base
Tim Petersaff12842000-08-25 06:52:44 +000061packages first and unpack them into siblings of PCbuilds's parent
62directory; for example, if your PCbuild is .......\dist\src\PCbuild\,
63unpack into new subdirectories of dist\.
Tim Peters4b5fb072000-07-01 00:03:43 +000064
65_tkinter
Tim Peters077736b2002-11-14 23:24:40 +000066 Python wrapper for the Tk windowing system. Requires building
Thomas Wouters49fd7fa2006-04-21 10:40:58 +000067 Tcl/Tk first. Following are instructions for Tcl/Tk 8.4.12.
Tim Peters077736b2002-11-14 23:24:40 +000068
69 Get source
70 ----------
Thomas Wouters49fd7fa2006-04-21 10:40:58 +000071 In the dist directory, run
72 svn export http://svn.python.org/projects/external/tcl8.4.12
73 svn export http://svn.python.org/projects/external/tk8.4.12
74 svn export http://svn.python.org/projects/external/tix-8.4.0
Tim Peters077736b2002-11-14 23:24:40 +000075
Guido van Rossumd54357d2004-03-20 21:00:26 +000076 Build Tcl first (done here w/ MSVC 7.1 on Windows XP)
Tim Peters6c629952002-11-15 18:36:11 +000077 ---------------
Guido van Rossumd54357d2004-03-20 21:00:26 +000078 Use "Start -> All Programs -> Microsoft Visual Studio .NET 2003
79 -> Visual Studio .NET Tools -> Visual Studio .NET 2003 Command Prompt"
80 to get a shell window with the correct environment settings
Thomas Wouters49fd7fa2006-04-21 10:40:58 +000081 cd dist\tcl8.4.12\win
Tim Peters077736b2002-11-14 23:24:40 +000082 nmake -f makefile.vc
Martin v. Löwis6de2d4d2004-08-30 09:22:04 +000083 nmake -f makefile.vc INSTALLDIR=..\..\tcltk install
Tim Peters077736b2002-11-14 23:24:40 +000084
85 XXX Should we compile with OPTS=threads?
86
Tim Peters011de6cc2004-04-11 17:29:12 +000087 Optional: run tests, via
88 nmake -f makefile.vc test
89
Martin v. Löwis6de2d4d2004-08-30 09:22:04 +000090 On WinXP Pro, wholly up to date as of 30-Aug-2004:
Tim Peterse82b00f2004-08-30 21:14:51 +000091 all.tcl: Total 10678 Passed 9969 Skipped 709 Failed 0
Tim Peters011de6cc2004-04-11 17:29:12 +000092 Sourced 129 Test Files.
Tim Peters077736b2002-11-14 23:24:40 +000093
Tim Peters077736b2002-11-14 23:24:40 +000094 Build Tk
Tim Peters6c629952002-11-15 18:36:11 +000095 --------
Thomas Wouters49fd7fa2006-04-21 10:40:58 +000096 cd dist\tk8.4.12\win
97 nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12
98 nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 INSTALLDIR=..\..\tcltk install
Tim Peters077736b2002-11-14 23:24:40 +000099
100 XXX Should we compile with OPTS=threads?
101
Tim Peters077736b2002-11-14 23:24:40 +0000102 XXX Our installer copies a lot of stuff out of the Tcl/Tk install
103 XXX directory. Is all of that really needed for Python use of Tcl/Tk?
104
Tim Peters011de6cc2004-04-11 17:29:12 +0000105 Optional: run tests, via
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000106 nmake -f makefile.vc TCLDIR=..\..\tcl8.4.12 test
Tim Peters011de6cc2004-04-11 17:29:12 +0000107
Martin v. Löwis6de2d4d2004-08-30 09:22:04 +0000108 On WinXP Pro, wholly up to date as of 30-Aug-2004:
Tim Peterse82b00f2004-08-30 21:14:51 +0000109 all.tcl: Total 8420 Passed 6826 Skipped 1581 Failed 13
Martin v. Löwis6de2d4d2004-08-30 09:22:04 +0000110 Sourced 91 Test Files.
Tim Peterse82b00f2004-08-30 21:14:51 +0000111 Files with failing tests: canvImg.test scrollbar.test textWind.test winWm.test
Tim Peters63db6282005-08-07 02:47:12 +0000112
Martin v. Löwis3cf21632004-08-31 16:22:09 +0000113 Built Tix
114 ---------
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000115 cd dist\tix-8.4.0\win
116 nmake -f python.mak
117 nmake -f python.mak install
Tim Peters4b5fb072000-07-01 00:03:43 +0000118
Tim Petersb0ead4e2002-11-09 04:48:58 +0000119bz2
120 Python wrapper for the libbz2 compression library. Homepage
121 http://sources.redhat.com/bzip2/
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000122 Download the source from the python.org copy into the dist
123 directory:
124
Martin v. Löwis14c1cf82006-03-13 10:52:04 +0000125 svn export http://svn.python.org/projects/external/bzip2-1.0.3
Tim Peters077736b2002-11-14 23:24:40 +0000126
Thomas Heller46a007e2003-08-20 18:27:36 +0000127 A custom pre-link step in the bz2 project settings should manage to
Tim Peters7ccbb072006-03-13 19:43:34 +0000128 build bzip2-1.0.3\libbz2.lib by magic before bz2.pyd (or bz2_d.pyd) is
Thomas Heller46a007e2003-08-20 18:27:36 +0000129 linked in PCbuild\.
130 However, the bz2 project is not smart enough to remove anything under
Martin v. Löwis14c1cf82006-03-13 10:52:04 +0000131 bzip2-1.0.3\ when you do a clean, so if you want to rebuild bzip2.lib
132 you need to clean up bzip2-1.0.3\ by hand.
Tim Peters077736b2002-11-14 23:24:40 +0000133
Thomas Heller46a007e2003-08-20 18:27:36 +0000134 The build step shouldn't yield any warnings or errors, and should end
Tim Petersb0ead4e2002-11-09 04:48:58 +0000135 by displaying 6 blocks each terminated with
136 FC: no differences encountered
Tim Peterscaba60a2004-01-04 02:04:35 +0000137
Martin v. Löwis14c1cf82006-03-13 10:52:04 +0000138 All of this managed to build bzip2-1.0.3\libbz2.lib, which the Python
Tim Petersb0ead4e2002-11-09 04:48:58 +0000139 project links in.
140
141
Tim Peters78e35f92002-11-22 20:00:34 +0000142_bsddb
Tim Peters7ccbb072006-03-13 19:43:34 +0000143 To use the version of bsddb that Python is built with by default, invoke
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000144 (in the dist directory)
Tim Petersb0ead4e2002-11-09 04:48:58 +0000145
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000146 svn export http://svn.python.org/projects/external/db-4.4.20
147
148
Tim Peters6da8ceb2006-03-13 20:09:32 +0000149 Then open a VS.NET 2003 shell, and invoke:
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000150
Tim Peters6da8ceb2006-03-13 20:09:32 +0000151 devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Release /project db_static
152
153 and do that a second time for a Debug build too:
154
155 devenv db-4.4.20\build_win32\Berkeley_DB.sln /build Debug /project db_static
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000156
Tim Peters32d996f2006-03-13 19:35:53 +0000157 Alternatively, if you want to start with the original sources,
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000158 go to Sleepycat's download page:
159 http://www.sleepycat.com/downloads/releasehistorybdb.html
160
161 and download version 4.4.20.
Tim Peters011de6cc2004-04-11 17:29:12 +0000162
163 With or without strong cryptography? You can choose either with or
164 without strong cryptography, as per the instructions below. By
Thomas Heller81391402004-07-02 08:58:46 +0000165 default, Python is built and distributed WITHOUT strong crypto.
Tim Peters011de6cc2004-04-11 17:29:12 +0000166
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000167 Unpack the sources; if you downloaded the non-crypto version, rename
168 the directory from db-4.4.20.NC to db-4.4.20.
Tim Peters011de6cc2004-04-11 17:29:12 +0000169
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000170 Now apply any patches that apply to your version.
Tim Petersa0d781a2004-04-11 18:23:06 +0000171
Tim Peters00640262003-01-24 15:31:31 +0000172 Open
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000173 dist\db-4.4.20\docs\index.html
Tim Peters00640262003-01-24 15:31:31 +0000174
Mark Hammond2362da82004-01-06 04:04:01 +0000175 and follow the "Windows->Building Berkeley DB with Visual C++ .NET"
176 instructions for building the Sleepycat
Tim Peters00640262003-01-24 15:31:31 +0000177 software. Note that Berkeley_DB.dsw is in the build_win32 subdirectory.
Martin v. Löwisf6f79252006-03-13 13:48:05 +0000178 Build the "db_static" project, for "Release" mode.
Tim Peters78e35f92002-11-22 20:00:34 +0000179
Tim Peters00640262003-01-24 15:31:31 +0000180 To run extensive tests, pass "-u bsddb" to regrtest.py. test_bsddb3.py
181 is then enabled. Running in verbose mode may be helpful.
182
183 XXX The test_bsddb3 tests don't always pass, on Windows (according to
Guido van Rossumd54357d2004-03-20 21:00:26 +0000184 XXX me) or on Linux (according to Barry). (I had much better luck
185 XXX on Win2K than on Win98SE.) The common failure mode across platforms
Tim Peters00640262003-01-24 15:31:31 +0000186 XXX is
187 XXX DBAgainError: (11, 'Resource temporarily unavailable -- unable
188 XXX to join the environment')
189 XXX
190 XXX and it appears timing-dependent. On Win2K I also saw this once:
191 XXX
192 XXX test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ...
193 XXX Exception in thread reader 1:
194 XXX Traceback (most recent call last):
195 XXX File "C:\Code\python\lib\threading.py", line 411, in __bootstrap
196 XXX self.run()
197 XXX File "C:\Code\python\lib\threading.py", line 399, in run
Neal Norwitzd9108552006-03-17 08:00:19 +0000198 XXX self.__target(*self.__args, **self.__kwargs)
Tim Peters00640262003-01-24 15:31:31 +0000199 XXX File "C:\Code\python\lib\bsddb\test\test_thread.py", line 268, in
200 XXX readerThread
201 XXX rec = c.next()
202 XXX DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed
203 XXX to resolve a deadlock')
Tim Petersad8605d2003-01-29 00:38:42 +0000204 XXX
205 XXX I'm told that DBLockDeadlockError is expected at times. It
206 XXX doesn't cause a test to fail when it happens (exceptions in
207 XXX threads are invisible to unittest).
Tim Peters00640262003-01-24 15:31:31 +0000208
Martin v. Löwisb0912412006-03-13 15:37:40 +0000209 Building for Win64:
210 - open a VS.NET 2003 command prompt
211 - run the SDK setenv.cmd script, passing /RETAIL and the target
212 architecture (/SRV64 for Itanium, /X64 for AMD64)
213 - build BerkeleyDB with the solution configuration matching the
214 target ("Release IA64" for Itanium, "Release AMD64" for AMD64), e.g.
215 devenv db-4.4.20\build_win32\Berkeley_DB.sln /build "Release AMD64" /project db_static /useenv
Tim Peters32d996f2006-03-13 19:35:53 +0000216
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000217_sqlite3
218 Python wrapper for SQLite library.
219
220 Get the source code through
221
222 svn export http://svn.python.org/projects/external/sqlite-source-3.3.4
223
224 To use the extension module in a Python build tree, copy sqlite3.dll into
225 the PCbuild folder.
Martin v. Löwisb0912412006-03-13 15:37:40 +0000226
Mark Hammondf229f9f2002-12-03 05:47:26 +0000227_ssl
Tim Peterse8bcb252002-12-04 02:39:52 +0000228 Python wrapper for the secure sockets library.
Tim Peters4b5fb072000-07-01 00:03:43 +0000229
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000230 Get the source code through
Mark Hammondf229f9f2002-12-03 05:47:26 +0000231
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000232 svn export http://svn.python.org/projects/external/openssl-0.9.8a
Tim Peterse8bcb252002-12-04 02:39:52 +0000233
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000234 Alternatively, get the latest version from http://www.openssl.org.
Mark Hammondf229f9f2002-12-03 05:47:26 +0000235 You can (theoretically) use any version of OpenSSL you like - the
236 build process will automatically select the latest version.
237
238 You must also install ActivePerl from
239 http://www.activestate.com/Products/ActivePerl/
Tim Peterse8bcb252002-12-04 02:39:52 +0000240 as this is used by the OpenSSL build process. Complain to them <wink>.
Mark Hammondf229f9f2002-12-03 05:47:26 +0000241
242 The MSVC project simply invokes PCBuild/build_ssl.py to perform
Tim Peterse8bcb252002-12-04 02:39:52 +0000243 the build. This Python script locates and builds your OpenSSL
Mark Hammondf229f9f2002-12-03 05:47:26 +0000244 installation, then invokes a simple makefile to build the final .pyd.
245
246 build_ssl.py attempts to catch the most common errors (such as not
247 being able to find OpenSSL sources, or not being able to find a Perl
248 that works with OpenSSL) and give a reasonable error message.
249 If you have a problem that doesn't seem to be handled correctly
250 (eg, you know you have ActivePerl but we can't find it), please take
251 a peek at build_ssl.py and suggest patches. Note that build_ssl.py
252 should be able to be run directly from the command-line.
253
Tim Peterse8bcb252002-12-04 02:39:52 +0000254 build_ssl.py/MSVC isn't clever enough to clean OpenSSL - you must do
255 this by hand.
Tim Peters4b5fb072000-07-01 00:03:43 +0000256
Martin v. Löwis13e50fe2004-07-20 14:37:48 +0000257Building for Itanium
258--------------------
259
Tim Peterse82b00f2004-08-30 21:14:51 +0000260The project files support a ReleaseItanium configuration which creates
Martin v. Löwis13e50fe2004-07-20 14:37:48 +0000261Win64/Itanium binaries. For this to work, you need to install the Platform
262SDK, in particular the 64-bit support. This includes an Itanium compiler
263(future releases of the SDK likely include an AMD64 compiler as well).
264In addition, you need the Visual Studio plugin for external C compilers,
265from http://sf.net/projects/vsextcomp. The plugin will wrap cl.exe, to
Tim Peterse82b00f2004-08-30 21:14:51 +0000266locate the proper target compiler, and convert compiler options
Martin v. Löwis13e50fe2004-07-20 14:37:48 +0000267accordingly.
268
Martin v. Löwis856bf9a2006-02-14 20:42:55 +0000269Building for AMD64
270------------------
271
272The build process for the ReleaseAMD64 configuration is very similar
273to the Itanium configuration; make sure you use the latest version of
274vsextcomp.
275
Thomas Wouters49fd7fa2006-04-21 10:40:58 +0000276Building Python Using the free MS Toolkit Compiler
277--------------------------------------------------
278
279The build process for Visual C++ can be used almost unchanged with the free MS
280Toolkit Compiler. This provides a way of building Python using freely
281available software.
282
283Requirements
284
285 To build Python, the following tools are required:
286
287 * The Visual C++ Toolkit Compiler
288 from http://msdn.microsoft.com/visualc/vctoolkit2003/
289 * A recent Platform SDK
290 from http://www.microsoft.com/downloads/details.aspx?FamilyID=484269e2-3b89-47e3-8eb7-1f2be6d7123a
291 * The .NET 1.1 SDK
292 from http://www.microsoft.com/downloads/details.aspx?FamilyID=9b3a2ca6-3647-4070-9f41-a333c6b9181d
293
294 [Does anyone have better URLs for the last 2 of these?]
295
296 The toolkit compiler is needed as it is an optimising compiler (the
297 compiler supplied with the .NET SDK is a non-optimising version). The
298 platform SDK is needed to provide the Windows header files and libraries
299 (the Windows 2003 Server SP1 edition, typical install, is known to work -
300 other configurations or versions are probably fine as well). The .NET 1.1
301 SDK is needed because it contains a version of msvcrt.dll which links to
302 the msvcr71.dll CRT. Note that the .NET 2.0 SDK is NOT acceptable, as it
303 references msvcr80.dll.
304
305 All of the above items should be installed as normal.
306
307 If you intend to build the openssl (needed for the _ssl extension) you
308 will need the C runtime sources installed as part of the platform SDK.
309
310 In addition, you will need Nant, available from
311 http://nant.sourceforge.net. The 0.85 release candidate 3 version is known
312 to work. This is the latest released version at the time of writing. Later
313 "nightly build" versions are known NOT to work - it is not clear at
314 present whether future released versions will work.
315
316Setting up the environment
317
318 Start a platform SDK "build environment window" from the start menu. The
319 "Windows XP 32-bit retail" version is known to work.
320
321 Add the following directories to your PATH:
322 * The toolkit compiler directory
323 * The SDK "Win64" binaries directory
324 * The Nant directory
325 Add to your INCLUDE environment variable:
326 * The toolkit compiler INCLUDE directory
327 Add to your LIB environment variable:
328 * The toolkit compiler LIB directory
329 * The .NET SDK Visual Studio 2003 VC7\lib directory
330
331 The following commands should set things up as you need them:
332
333 rem Set these values according to where you installed the software
334 set TOOLKIT=C:\Program Files\Microsoft Visual C++ Toolkit 2003
335 set SDK=C:\Program Files\Microsoft Platform SDK
336 set NET=C:\Program Files\Microsoft Visual Studio .NET 2003
337 set NANT=C:\Utils\Nant
338
339 set PATH=%TOOLKIT%\bin;%PATH%;%SDK%\Bin\win64;%NANT%\bin
340 set INCLUDE=%TOOLKIT%\include;%INCLUDE%
341 set LIB=%TOOLKIT%\lib;%NET%\VC7\lib;%LIB%
342
343 The "win64" directory from the SDK is added to supply executables such as
344 "cvtres" and "lib", which are not available elsewhere. The versions in the
345 "win64" directory are 32-bit programs, so they are fine to use here.
346
347 That's it. To build Python (the core only, no binary extensions which
348 depend on external libraries) you just need to issue the command
349
350 nant -buildfile:python.build all
351
352 from within the PCBuild directory.
353
354Extension modules
355
356 To build those extension modules which require external libraries
357 (_tkinter, bz2, _bsddb, _sqlite3, _ssl) you can follow the instructions
358 for the Visual Studio build above, with a few minor modifications. These
359 instructions have only been tested using the sources in the Python
360 subversion repository - building from original sources should work, but
361 has not been tested.
362
363 For each extension module you wish to build, you should remove the
364 associated include line from the excludeprojects section of pc.build.
365
366 The changes required are:
367
368 _tkinter
369 The tix makefile (tix-8.4.0\win\makefile.vc) must be modified to
370 remove references to TOOLS32. The relevant lines should be changed to
371 read:
372 cc32 = cl.exe
373 link32 = link.exe
374 include32 =
375 The remainder of the build instructions will work as given.
376
377 bz2
378 No changes are needed
379
380 _bsddb
381 The file db.build should be copied from the Python PCBuild directory
382 to the directory db-4.4.20\build_win32.
383
384 The file db_static.vcproj in db-4.4.20\build_win32 should be edited to
385 remove the string "$(SolutionDir)" - this occurs in 2 places, only
386 relevant for 64-bit builds. (The edit is required as otherwise, nant
387 wants to read the solution file, which is not in a suitable form).
388
389 The bsddb library can then be build with the command
390 nant -buildfile:db.build all
391 run from the db-4.4.20\build_win32 directory.
392
393 _sqlite3
394 No changes are needed. However, in order for the tests to succeed, a
395 copy of sqlite3.dll must be downloaded, and placed alongside
396 python.exe.
397
398 _ssl
399 The documented build process works as written. However, it needs a
400 copy of the file setargv.obj, which is not supplied in the platform
401 SDK. However, the sources are available (in the crt source code). To
402 build setargv.obj, proceed as follows:
403
404 Copy setargv.c, cruntime.h and internal.h from %SDK%\src\crt to a
405 temporary directory.
406 Compile using "cl /c /I. /MD /D_CRTBLD setargv.c"
407 Copy the resulting setargv.obj to somewhere on your LIB environment
408 (%SDK%\lib is a reasonable place).
409
410 With setargv.obj in place, the standard build process should work
411 fine.
412
Tim Petersf9a4a6e2000-07-01 20:38:27 +0000413YOUR OWN EXTENSION DLLs
Tim Peters4b5fb072000-07-01 00:03:43 +0000414-----------------------
415If you want to create your own extension module DLL, there's an example
416with easy-to-follow instructions in ../PC/example/; read the file
417readme.txt there first.