I've just commited support for building python as a 4-way universal binary to the python repository (revision 63955).

What does does:

This patch adds a new configure argument on OSX:
        --with-universal-archs=[32-bit|64-bit|all]

When used with the --enable-universalsdk option this controls which
CPU architectures are includes in the framework. The default is 32-bit,
meaning i386 and ppc. The most useful alternative is 'all', which includes all 4 CPU architectures supported by MacOS X (i386, ppc, x86_64 and ppc64).

This includes limited support for the Carbon bindings in 64-bit mode as well, limited because (a) I haven't done extensive testing and (b) a large portion
of the Carbon API's aren't available in 64-bit mode anyway.

I've also duplicated a feature of Apple's build of python: setting the
environment variable 'ARCHFLAGS' controls the '-arch' flags used for building
extensions using distutils.


How to build the tree:

- Checkout a copy of the python trunk (that is, the code that will be python 2.6 in the future)
- in the root of that checkout:
- mkdir build
- cd build
- ../configure --with-framework-name=Python64' '--with-universal- archs=all' '--enable-framework' '--enable-universalsdk=/' 'MACOSX_DEPLOYMENT_TARGET=10.5'
- make
- sudo make install

This will install a 4-way universal build of Python 2.6 in /Library/ Frameworks/Python64.framework. Add the 'bin' directory inside the framework to your shell's PATH to use this. Note how the framework name is "Python64.framework" and not "Python.framework", this allows you to easily remove this build.

There a 3 variants of the command-line interpreter: python-32, python-64 and python-all, python-32 will always run in 32-bit mode, python-64 runs in 64-bit mode and python-all will run in whatever mode is available on a machine. The command "python" without a suffix is an alias for python-32 (because most GUI libraries aren't available in 64- bit mode yet).

Distutils will build extensions 4-way universal as well, use ARCHFLAGS to override this (as documented on Apple's website).

There are some minor issues in this build:
- the tools installed in /usr/local/bin don't include the 3 variants
- I haven't tested the Carbon bindings in 64-bit mode.


I'll be traveling for the next couple of weeks (WWDC and then some down time) and will probably not be able to provide support during this time. Please file bugs about any issues with this configuration, preferable including patching ;-)

Ronald

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to