blob: 770bde3e5cea3cc0aebf48b1742ae00bbb7ca013 [file] [log] [blame]
Jack Jansenb6789751995-12-21 15:40:26 +00001How to build Python from a source distribution.
2-----------------------------------------------
3
Jack Jansena78d76d1996-08-28 13:50:21 +00004NOTE: These notes are for building a Python from a machine-independent
5source distribution, *not* for building a Python from a mac-specific
6source distribution.
7
Jack Jansenb6789751995-12-21 15:40:26 +00008You will need a Python source distribution in tar form. So, the
9first thing you need is a tar program for the mac. Suntar is
10reasonable and can be found at the info-mac sites. Edit the
11preferences to make it extract C sources with creator CWIE
Jack Jansen857e88e1996-03-20 16:27:30 +000012and .py files as text files with creator Pyth, this will save
Jack Jansenb6789751995-12-21 15:40:26 +000013you work later.
14
Jack Jansen857e88e1996-03-20 16:27:30 +000015You will also need CodeWarrior 8. If you have another development
Jack Jansenb6789751995-12-21 15:40:26 +000016environment you are on your own, basically.
17
18You may also need the img distribution and the stdwin distribution.
19If you don't want them you may have to edit some of the projects
20to remove references to them.
21
22When you've extracted everything you may have to unpack the
Jack Jansen857e88e1996-03-20 16:27:30 +000023.hqx files in Mac:Resources and Mac:mwerks:Projects (but suntar
Jack Jansenb6789751995-12-21 15:40:26 +000024may have done this for you already).
25
Jack Jansen857e88e1996-03-20 16:27:30 +000026You have to remove Modules:fmmodule.c, the SGI fm module, which has a
27name conflict with the Mac Fmmodule.c.
28
Jack Jansenb6789751995-12-21 15:40:26 +000029Next, create your build directories. I use the following naming
30convention:
31build.macppc.shared PowerPC shared-library
32build.mac68k.stand 68K non-shared
33and there are also projects for ppc standalone and some others, they
34may be useful at times. The project files expect the build directories
35to be located right in the main python folder, if you put them elsewhere
36you will have to edit the access paths.
37
Jack Jansen857e88e1996-03-20 16:27:30 +000038Move MWCPythonCoreRuntime.µ, PythonCore.µ, PythonPPC and
39PythonApplet (from the Mac:mwerks:projects folder) to
40build.macppc.shared, move Python68K to build.mac68k.stand.
Jack Jansenb6789751995-12-21 15:40:26 +000041
42Build the projects. For the PPC projects, keep the order given above.
Jack Jansen857e88e1996-03-20 16:27:30 +000043Do *not* run the python interpreter yet. First, move the interpreter
44to the main python folder. For PPC, also move PythonCore to the main
45python folder.
Jack Jansenb6789751995-12-21 15:40:26 +000046
Jack Jansen857e88e1996-03-20 16:27:30 +000047Now try your python interpreter, this will create an initial
48preferences file.
Jack Jansenb6789751995-12-21 15:40:26 +000049
50For 68K python you are now done.
51
Jack Jansen857e88e1996-03-20 16:27:30 +000052For PPC Python, don't try complicated scripts yet, you first have to
53create the dynamically loadable modules. Create a folder PlugIns (in
54the toplevel python folder) and move all the projects that have
55"module" or "modules" in their name there. Build these projects. This
56will create a number of ".exp" files, edit these files to contain only
57all the "init" modules, and build the projects again. This latter step
58isn't really essential, so feel free to skip it.
Jack Jansenb6789751995-12-21 15:40:26 +000059
Jack Jansen857e88e1996-03-20 16:27:30 +000060The next step is to create aliases for the various modules that "live
61together" in one shared library. For this, take MkPluginAliases.py and
62MkPluginAliases.rsrc from the Mac:scripts folder and move or copy them
63to the python home folder. Run the script from there.
Jack Jansenb6789751995-12-21 15:40:26 +000064
Jack Jansen857e88e1996-03-20 16:27:30 +000065If you haven't created all plugins you'll get some errors about files
66not existing, don't worry. Don't forget to move the scripts back.
Jack Jansenb6789751995-12-21 15:40:26 +000067
Jack Jansen857e88e1996-03-20 16:27:30 +000068Next, make an alias of PythonCore (also named PythonCore) and put it
69in System Folder:Extensions. This will ensure that you can run python
70anywhere, not just from the folder where PythonCore lives.
Jack Jansenb6789751995-12-21 15:40:26 +000071
Jack Jansen857e88e1996-03-20 16:27:30 +000072Most of your environment is now setup. You can try it by running
73EditPythonPrefs.py (in Mac:scripts), it should now work from there.
Jack Jansenb6789751995-12-21 15:40:26 +000074
Jack Jansen857e88e1996-03-20 16:27:30 +000075Lastly, you should setup some stuff needed for applet creation. First,
76you should put PythonApplet (or an alias to it) in the python home
77folder. Next, you should turn mkapplet.py (from mac:scripts) into an
78applet itself: double-click it and give it itself as input in the
79input file dialog.
Jack Jansenb6789751995-12-21 15:40:26 +000080
Jack Jansen857e88e1996-03-20 16:27:30 +000081Now that you have created mkapplet you can use this as a droplet:
82drag-and-drop python sources onto it (EditPythonPrefs.py and
83RunLibScript.py come to mind) and the applets will be created.
Jack Jansenb6789751995-12-21 15:40:26 +000084
Jack Jansen857e88e1996-03-20 16:27:30 +000085 Jack Jansen, CWI, 18 March 1996.