summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Mac/OSX/README82
1 files changed, 37 insertions, 45 deletions
diff --git a/Mac/OSX/README b/Mac/OSX/README
index b6bdc64..1656e61 100644
--- a/Mac/OSX/README
+++ b/Mac/OSX/README
@@ -1,8 +1,8 @@
Building and using a framework-based Python on Mac OS X.
--------------------------------------------------------
-This document provides a quick introduction to framework-based Python.
-It is rather terse and probably incomplete, please send me feedback.
+This document provides a quick introduction to framework-based Python, its
+advantages, and how to build it.
1. Why would I want a framework Python in stead of a normal static Python?
--------------------------------------------------------------------------
@@ -15,12 +15,16 @@ While it is technically possible to create a .app without using frameworks you
will have to do the work yourself if you really want this.
A second reason for using frameworks is that they put Python-related items in
-only two places: /Library/Framework/Python.framework and /Applications/Python.
+only two places: /Library/Framework/Python.framework and /Applications/MacPython-2.3.
This simplifies matters for users installing Python from a binary distribution
if they want to get rid of it again. Moreover, due to the way frameworks work
a user without admin privileges can install a binary distribution in his or
her home directory without recompilation.
+Incidentally, the procedure described here is also the procedure that is
+used to create the MacPython binary installer, so the information here
+should theoretically allow you to rebuild that.
+
2. How does a framework Python differ from a normal static Python?
------------------------------------------------------------------
@@ -51,7 +55,7 @@ information.
This directory contains a Makefile that will create a couple of python-related
applications (fullblown OSX .app applications, that is) in
-/Applications/Python, and a hidden helper application Python.app inside the
+/Applications/MacPython-2.3, and a hidden helper application Python.app inside the
Python.framework, and unix tools "python" and "pythonw" into /usr/local/bin.
In addition it has a target "installmacsubtree" that installs the relevant
portions of the Mac subtree into the Python.framework.
@@ -65,10 +69,10 @@ in the sequence
This sequence will put the framework in /Library/Framework/Python.framework,
the applications in /Applications/Python and the unix tools in /usr/local/bin.
-Building in another place, for instance $HOME/Library/Frameworks if you have
+Installing in another place, for instance $HOME/Library/Frameworks if you have
no admin privileges on your machine, has only been tested very lightly. This
can be done by configuring with --enable-framework=$HOME/Library/Frameworks.
-The other two directories, /Applications/Python and /usr/local/bin, will then
+The other two directories, /Applications/MacPython-2.3 and /usr/local/bin, will then
also be deposited in $HOME. This is sub-optimal for the unix tools, which you
would want in $HOME/bin, but there is no easy way to fix this right now.
@@ -81,6 +85,10 @@ If you want to install some part, but not all, read the main Makefile. The
frameworkinstall is composed of a couple of sub-targets that install the
framework itself, the Mac subtree, the applications and the unix tools.
+There is an extra target frameworkinstallextras that is not part of the
+normal frameworkinstall which installs the Demo and Tools directories
+into /Applications/MacPython-2.3, this is useful for binary distributions.
+
If you want to run the Makefile here directly, in stead of through the main
Makefile, you will have to pass various variable-assignments. Read the
beginning of the Makefile for details.
@@ -111,44 +119,28 @@ non-GUI and GUI python scripts from the command line, respectively.
6. How do I create a binary distribution?
-----------------------------------------
-Note: this section is work-in-progress.
-
-First, to make sure there's no contamination, it is best to remove your
-existing Python installation (clear out /Library/Frameworks/Python.framework
-and /Applications/Python). Also, after build/install is finished check that
-nothing has shown up in those two locations.
-
-Create a subdirectory of the main python directory, say build-pythondist. In
-there, run
- ../configure --enable-framework=/tmp/pythondist/Library/Frameworks \
- LDFLAGS=-Wl,-x
- make
- make frameworkinstall
-This installs a complete distribution set in /tmp/pythondist: in a framework
-build all other pathnames are computed from the framework pathname.
-
-Optionally you may want to include the full documentation in the binary installer.
-To this end, execute the following commands:
- python.exe ../Mac/OSX/setupDocs.py build
- python.exe ../Mac/OSX/setupDocs.py install \
- --prefix=/tmp/python/Library/Frameworks/Python.framework/Versions/Current
-
-Note that the unix tools in /tmp/pythondist are wrong, these have to be
-removed, and the installer post-install script should recreate them on the
-target system. Also, the .pyc and .pyo files need to be removed:
- rm -rf /tmp/pythondist/usr
- python.exe ../Mac/script/zappycfiles.py /tmp/pythondist
-
-Finally, create the .pkg file with a commandline like
- python ../Mac/scripts/buildpkg.py \
- --Title=MacPython-X \
- --Version=2.3a0 \
- --Description="Python for Mac OS X, framework based" \
- /tmp/pythondist
-This creates a MacPython-X.pkg in the current directory.
-
-TBD: provide postinstall scripts to precompile .pyc/.pyo files, and to recreate
-the unix programs.
+Go to the Mac/OSX/Dist directory. There you find a script "build" that
+does all the work: it configures and builds a framework Python, installs
+it, creates the installer package file and packs this in a DMG image.
+
+All of this is normally done completely isolated in /tmp/_py, so it does not
+use your normal build directory nor does it install into /.
+
+Because the build script locates the Python source tree relative to its own
+pathname you may have to run it with a full pathname. If you are debugging your
+install you can pass one argument: the pathname where the build directory
+is located (i.e. where configure and make will be run), then this directory
+will be saved between runs of the build script. Do *not* specify your normal
+build directory here.
+
+build will ask you whether you have updated the readme file, and it will offer
+to include the full documentation in the installer. That option has not
+been used for a while, and it may not work.
+
+If you need to execute code on the client machine after installing Python
+you can add this to resources/postflight. If you need to do even stranger things
+you have to read Apple's documentation on PackageMaker and read the source
+of Mac/scripts/buildpkg.py.
7. Odds and ends.
-----------------
@@ -164,4 +156,4 @@ macresource module and the Mac/OSX/Makefile cater for this, and create
".rsrc.df.rsrc" files on the fly that are normal datafork-based resource
files.
- Jack Jansen, jack@oratrix.com, 06-Sep-02 \ No newline at end of file
+ Jack Jansen, Jack.Jansen@cwi.nl, 20-Jun-2003. \ No newline at end of file