blob: b892153803a7ef0ebd9b53b58dfbb13f6112cb8f [file] [log] [blame]
Guido van Rossum082d2891997-05-16 16:24:09 +00001Welcome to the "PC" subdirectory of the Python distribution!
2************************************************************
3
Guido van Rossum2028dd01998-05-26 14:20:15 +00004(NOTE: the project files for MS VC++ 5.x are now in the PCbuild
5directory. See the file readme.txt there for instructions.)
Guido van Rossum082d2891997-05-16 16:24:09 +00006
7This "PC" subdirectory contains complete project files to make
8several PC ports of Python, as well as all the PC-specific
9Python source files. It should be located in the root of the
10Python distribution, and there should be directories "Modules",
11"Objects", "Python", etc. in the parent directory of this "PC"
Guido van Rossum1aa7e3a1997-05-19 14:16:21 +000012subdirectory. Be sure to read the documentation in the Python
13distribution.
Guido van Rossum082d2891997-05-16 16:24:09 +000014
Guido van Rossum1aa7e3a1997-05-19 14:16:21 +000015Python requires library files such as string.py to be available in
16one or more library directories. The search path of libraries is
17set up when Python starts. To see the current Python library search
18path, start Python and enter "import sys" and "print sys.path".
19
Guido van Rossum831c2581997-08-14 22:57:33 +000020All PC ports use this scheme to try to set up a module search path:
Guido van Rossum1aa7e3a1997-05-19 14:16:21 +000021
Guido van Rossum831c2581997-08-14 22:57:33 +000022 1) The script location; the current directory without script.
23 2) The PYTHONPATH variable, if set.
24 3) For Win32 platforms (NT/95), paths specified in the Registry.
25 4) Default directories lib, lib/win, lib/test, lib/tkinter;
26 these are searched relative to the environment variable
27 PYTHONHOME, if set, or relative to the executable and its
28 ancestors, if a landmark file (Lib/string.py) is found ,
29 or the current directory (not useful).
30 5) The directory containing the executable.
31
32The best installation strategy is to put the Python executable (and
33DLL, for Win32 platforms) in some convenient directory such as
34C:/python, and copy all library files and subdirectories (using XCOPY)
35to C:/python/lib. Then you don't need to set PYTHONPATH. Otherwise,
36set the environment variable PYTHONPATH to your Python search path.
37For example,
Guido van Rossumffeb59381997-12-17 21:27:23 +000038 set PYTHONPATH=.;d:\python\lib;d:\python\lib\win;d:\python\lib\dos-8x3
Guido van Rossum1aa7e3a1997-05-19 14:16:21 +000039
Guido van Rossum082d2891997-05-16 16:24:09 +000040There are several add-in modules to build Python programs which use
41the native Windows operating environment. The ports here just make
42"QuickWin" and DOS Python versions which support a character-mode
43(console) environment. Look in www.python.org for Tkinter, PythonWin,
44WPY and wxPython.
45
46To make a Python port, start the Integrated Development Environment
47(IDE) of your compiler, and read in the native "project file"
48(or makefile) provided. This will enable you to change any source
49files or build settings so you can make custom builds.
50
51config.h An important configuration file specific to PC's.
52
53config.c The list of C modules to include in the Python PC
54 version. Manually edit this file to add or
55 remove Python modules.
56
57testpy.py A Python test program. Run this to test your
Guido van Rossum831c2581997-08-14 22:57:33 +000058 Python port. It should produce copious output,
59 ending in a report on how many tests were OK, how many
60 failed, and how many were skipped. Don't worry about
61 skipped tests (these test unavailable optional features).
Guido van Rossum082d2891997-05-16 16:24:09 +000062
63src A subdirectory used only for VC++ version 1.5 Python
64 source files. See below. The other compilers do not
65 use it. They reference the actual distribution
66 directories instead.
67
68
Guido van Rossume34b7de1997-05-19 20:01:57 +000069Microsoft Visual C++ Version 4.x (32-bit Windows)
Guido van Rossum082d2891997-05-16 16:24:09 +000070=================================================
71
Guido van Rossume34b7de1997-05-19 20:01:57 +000072(For historic reasons this uses the filename "vc40"; it has been tested
Guido van Rossum2028dd01998-05-26 14:20:15 +000073most recently with VC 4.2. See ../PCbuild for VC 5.x.)
Guido van Rossum082d2891997-05-16 16:24:09 +000074
Guido van Rossum85f8b091997-12-15 18:31:32 +000075NOTE: VC 4.2 support is eroding, as I no longer have a VC 4.2
Guido van Rossum79882061997-12-16 22:26:02 +000076installation. Some newer files need to be added to the project.
Guido van Rossum85f8b091997-12-15 18:31:32 +000077
Guido van Rossum082d2891997-05-16 16:24:09 +000078The distributed Makefile is vc40.mak. This file is distributed with
79CRLF line separators, otherwise Developer Studio won't like it. It
80will NOT work from this PC directory. To use it, first copy it to the
81Python distribution directory, e.g. with this command:
82 copy vc40.mak ..
83To convert the Makefile into a project file, start Developer Studio,
84choose Open Workspace, change the file name pattern to *.mak, find and
85select the file vc40.mak, and click OK. Developer Studio will create
86additional project files vc40.ncb and vc40.mdp when you use the
87project. The project contains six targets, which should be built in
88this order:
89
Guido van Rossume34b7de1997-05-19 20:01:57 +000090python15 The Python core as a DLL, named python15.dll.
Guido van Rossum082d2891997-05-16 16:24:09 +000091
92python The Python main program, named python.exe. This should
93 work as a console program under Windows 95 or NT, as well
94 as under Windows 3.1(1) when using win32s. It uses
Guido van Rossume34b7de1997-05-19 20:01:57 +000095 python15.dll.
Guido van Rossum082d2891997-05-16 16:24:09 +000096
97_tkinter The optional _tkinter extension, _tkinter.dll; see below.
98
Guido van Rossum1aa7e3a1997-05-19 14:16:21 +000099All end products of the compilation are placed in the subdirectory
Guido van Rossum082d2891997-05-16 16:24:09 +0000100vc40 (which Developer Studio creates); object files are placed in
101vc40/tmp. There are no separate Release and Debug project variants.
102Note that the python and _tkinter projects require that the
Guido van Rossume34b7de1997-05-19 20:01:57 +0000103python15.lib file exists in the vc40 subdirectory before they can be
Guido van Rossum082d2891997-05-16 16:24:09 +0000104built.
105
106*** How to build the _tkinter extension ***
107
108This assumes that you have installed the Tcl/Tk binary distribution for
109Windows 95/NT with version numbers 7.5p1/4.1p1, in the default
110installation location (C:\tcl). (Ftp to ftp.sunlabs.com in /pub/tcl,
111file win41p1.exe.) You must also fetch and unpack the zip file
112vclibs41.zip which contains the files tcl75.lib and tk41.lib, and place
113those files in the PC subdirectory. In order to use _tkinter, the
114Tkinter.py module must be on PYTHONPATH. It is found in the
115Lib\tkinter subdirectory.
116
117
118Additional files and subdirectories for 32-bit Windows
119======================================================
120
Guido van Rossume34b7de1997-05-19 20:01:57 +0000121python_nt.def Exports definition file for python15.dll.
Guido van Rossum082d2891997-05-16 16:24:09 +0000122
Guido van Rossume34b7de1997-05-19 20:01:57 +0000123python_nt.rc Resource compiler input for python15.dll.
Guido van Rossum082d2891997-05-16 16:24:09 +0000124
Guido van Rossum831c2581997-08-14 22:57:33 +0000125dl_nt.c, import_nt.c
Guido van Rossum082d2891997-05-16 16:24:09 +0000126 Additional sources used for 32-bit Windows features.
127
Guido van Rossum831c2581997-08-14 22:57:33 +0000128getpathp.c Default sys.path calculations (for all PC platforms).
Guido van Rossum082d2891997-05-16 16:24:09 +0000129
130dllbase_nt.txt A (manually maintained) list of base addresses for
131 various DLLs, to avoid run-time relocation.
132
133_tkinter.def The export definitions file for _tkinter.dll.
Guido van Rossum831c2581997-08-14 22:57:33 +0000134 (No longer needed; the /export:init_tkinter takes care
135 of this.)
Guido van Rossum082d2891997-05-16 16:24:09 +0000136
137make_nt.in Include file for nmake-based builds (unsupported).
138
139example_nt A subdirectory showing how to build an extension as a
140 DLL.
141
Guido van Rossum082d2891997-05-16 16:24:09 +0000142
143Microsoft Visual C++ Version 1.5 (16-bit Windows)
144=================================================
145
146Since VC++1.5 does not handle long file names, it is necessary
147to run the "makesrc.exe" program in this directory to copy
148Python files from the distribution to the directory "src"
149with shortened names. Included file names are shortened too.
150Do this before you attempt to build Python.
151
152The "makesrc.exe" program is a native NT program, and you must
153have NT, Windows 95 or Win32s to run it. Otherwise you will need
154to copy distribution files to src yourself.
155
156The makefiles are named *.mak and are located in directories
157starting with "vc15_". NOTE: When dependencies are scanned
158VC++ will create dependencies for directories which are not
159used because it fails to evaluate "#define" properly. You
160must manaully edit makefiles (*.mak) to remove references to
161"sys/" and other bad directories.
162
163vc15_lib A static Python library. Create this first because is
164 is required for vc15_w31.
165
166vc15_w31 A Windows 3.1x Python QuickWin (console-mode)
167 Python including sockets. Requires vc15_lib.
168
169
170Watcom C++ Version 10.6
171=======================
172
173The project file for the Watcom compiler is ./python.wpj.
174It will build Watcom versions in the directories wat_*.
175
176wat_dos A 32-bit extended DOS Python (console-mode) using the
177 dos4gw DOS extender. Sockets are not included.
178
179wat_os2 A 32-bit OS/2 Python (console-mode).
180 Sockets are not included.
Guido van Rossum0ba48ba1997-11-22 21:58:14 +0000181
Guido van Rossumcee1dca1997-12-05 22:06:23 +0000182
Guido van Rossum0ba48ba1997-11-22 21:58:14 +0000183IBM VisualAge C/C++ for OS/2
184============================
185
Guido van Rossumcee1dca1997-12-05 22:06:23 +0000186See os2vacpp/readme.txt. This platform is supported by Jeff Rush.