| Python 1.5.x (x > 1) for BeOS |
| |
| This directory contains several useful things to help you build your own |
| version of Python for BeOS. |
| |
| What's Here? |
| |
| ar-fake - A shell script used by the build process to emulate a "real" |
| POSIX ar command; helps to build the Python shared library. |
| |
| linkcc - A shell script used by the build process to build the Python |
| shared library. |
| |
| linkmodule - A shell script used by the build process to build the |
| shared library versions of the standard modules; you'll |
| probably need this if you want to build dynamically loaded |
| modules from the Python archives. |
| |
| PyImport_BeImageID.html - Documentation for a function added to the |
| Python interpreter under BeOS; not interesting |
| unless you're writing your own BeOS-specific |
| modules for dealing with dynamically-loaded |
| Python modules. |
| |
| README - This file (obviously!). |
| |
| README.readline-2.2 - Instructions for compiling/installing GNU readline 2.2. |
| You'll have to grab the GNU readline source code from |
| prep.ai.mit.edu:/pub/GNU or any other GNU mirror. |
| |
| The Python interpreter is much nicer to work with |
| interactively if you've got readline installed. Highly |
| recommended. |
| |
| Compiling Your Own Version |
| |
| To compile your own version of Python 1.5.x for BeOS (with any luck, |
| Python 1.5.2 and later will compile "out of the box" on BeOS), try this: |
| |
| 1) Get the latest Python source code from ftp.python.org. |
| |
| 2) Configure with: |
| |
| AR=$(pwd)/BeOS/ar-fake RANLIB=: ./configure --verbose \ |
| --prefix=/boot/home/config --with-thread |
| |
| When configure is done, add this anywhere in config.h: |
| |
| #ifndef DL_EXPORT |
| # define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE |
| #endif |
| #ifndef DL_IMPORT |
| # ifdef USE_DL_EXPORT |
| # define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE |
| # else |
| # define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE |
| # endif |
| #endif |
| |
| 3) Copy Modules/Setup.in to Modules/Setup. |
| |
| 4) Edit Modules/Setup to turn on all the modules you want built. |
| |
| Make sure you use _socket instead of socket for the name of the |
| socketmodule on BeOS. |
| |
| If you want the modules to be built as shared libraries, instead of as |
| part of the Python shared library, be sure to uncomment the #*shared* |
| line. |
| |
| I've tried the following modules: |
| |
| regex pcre posix signal readline array cmath math strop struct time |
| operator _locale fcntl pwd grp select _socket errno crypt termios |
| audioop imageop rgbimg md5 timing rotor syslog curses new gdbm soundex |
| binascii parser cStringIO cPickle zlib |
| |
| 5) Make sure Modules/Makefile.pre has REALLIBRARY set to: |
| |
| REALLIBRARY=../libpython$(VERSION).so |
| |
| 6) Make: |
| |
| make OPT=-DUSE_DL_EXPORT CCSHARED=-UUSE_DL_EXPORT MACHDEP=beos |
| |
| On PowerPC systems, you'll see lots of warnings about duplicate |
| symbols when things get linked; don't worry about this, it's |
| harmless (and should disappear soon). |
| |
| 7) Test: |
| |
| make OPT=-DUSE_DL_EXPORT CCSHARED=-UUSE_DL_EXPORT MACHDEP=beos test |
| |
| Expect the following errors: |
| |
| test_grp crashed -- exceptions.KeyError : getgrnam(): name not found |
| test_pwd failed -- Writing: 'fakename', expected: 'caught e' |
| test_socket crashed -- exceptions.AttributeError : SOCK_RAW |
| |
| These are all due to either partial support for certain things (like |
| sockets), or valid differences between systems. |
| |
| NOTE: On R4/x86, the pause() function is broken; expect the signal |
| module test to crash Python! |
| |
| 8) Install: |
| |
| make OPT=-DUSE_DL_EXPORT CCSHARED=-UUSE_DL_EXPORT MACHDEP=beos nstall |
| |
| This will fail trying to copy libpython1.5.a; at that point in the |
| install, everything you "normally" need is installed (all the Python |
| bits), and the stuff you need for compiling C-based modules is half- |
| installed. This will be fixed before the 1.5.2 release. |
| |
| 9) Enjoy! |
| |
| - Chris Herborth (chrish@qnx.com) |
| December 22, 1998 |