Building a MacPython-OSX on top of Jaguar's /usr/bin/python
-----------------------------------------------------------

One way of getting MacPython functionality is to use the Python that Apple
supplies since MacOSX 10.2, and extend this with the missing bits.

(Another way is building a framework python, see Mac/OSX/README for
details on that).

Preparation
-----------

First of all you have to fix two things in the python distributed
by Apple. This paragraph is valid for 10.2 through 10.2.2, so if you
have a later version of Jaguar your mileage may vary.

1. /usr/lib/python2.2/config/Makefile has an erronuous reference to
   building for intel processors. Edit the file with sudo, and change
   the line
   LDFLAGS=        -arch i386 -arch ppc
   to
   LDFLAGS=        -arch ppc
2. /usr/lib/python2.2/site-packages is not writeable except by root.
   Make it writeable by administrators by doing
   sudo chgrp admin /usr/lib/python2.2/site-packages
   sudo chmod g+w /usr/lib/python2.2/site-packages
   Alternatively you can do the make's below as superuser, but I
   would advise against this.
   
Building
--------

Typing "make -f Makefile.jaguar" will build and install almost everything you need.
If you also want the "pythonw" unix program, which allows you to run GUI scripts from
a Terminal window, you should also do "sudo make -f Makefile.jaguar install_pythonw".

What do you get
---------------

After the make you will have a folder /Applications/MacPython-OSX that contains the
IDE and BuildApplet applications. Also, you will find a folder "python-additions" there
that contains the MacPython-specific additions to your installed Python. The only thing
that is installed outside the /Applications/MacPython-OSX folder is
/usr/lib/python2.2/site-packages/MacPython.pth, which is the magic file that will make
python find the new modules.

Uninstalling
------------
1. Remove /Applications/MacPython-OSX
2. Remove /usr/lib/python2.2/site-packages/MacPython.pth

How does it work?
-----------------

Makefile.jaguar does most of the work by calling on Makefile (which is normally used
to build the Mac extensions for a framework-based python) after setting various
variables such that everything is built for /usr/bin/python. Some extension modules
(that are included in framework python 2.3a0, but missing from static python 2.2)
are built with setup.py. And some Carbon modules are built to replace their 2.2
versions, which lack required functionality. The stubs in Mac/Lib/Carbon know about
this overriding.

