summaryrefslogtreecommitdiffstats
path: root/BeOS/README
diff options
context:
space:
mode:
Diffstat (limited to 'BeOS/README')
-rw-r--r--BeOS/README110
1 files changed, 31 insertions, 79 deletions
diff --git a/BeOS/README b/BeOS/README
index c801afb..a4d6aee 100644
--- a/BeOS/README
+++ b/BeOS/README
@@ -1,19 +1,12 @@
-Python 1.5.1 for BeOS
+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.
-At this time, Python only supports BeOS on the PowerPC platform; if you'd
-like to help me port it to the x86 platform, please let me know (I only
-have limited access to BeOS on an x86 system). If you'd like to lend
-me an x86 laptop running BeOS to do the port, _definitely_ let me know! :-)
-I'll even give it back when I'm done.
-
What's Here?
-ar-1.1 - An "ar" command with a POSIX 1003.2 interface; you'll need
- this for building the Python libraries under BeOS
- (/bin/ar just won't cut it).
+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.
@@ -41,100 +34,59 @@ README.readline-2.2 - Instructions for compiling/installing GNU readline 2.2.
Compiling Your Own Version
-To compile your own version of Python 1.5.1 for BeOS (with any luck,
-Python 1.6 will compile "out of the box" on BeOS), try this:
-
-1) Get the Python 1.5.1 source code from ftp.python.org.
-
-2) Get the Python 1.5.1 diffs from my web pages
- (http://www.qnx.com/~chrish/Be/software/); if you can't get them through
- a web browser, send me email and I'll mail them back to you. These
- diffs should also be available at ftp.python.org along with the BeOS
- binary archive.
-
- Run autoconf. If you don't have autoconf, you can get a precompiled
- version from GeekGadgets (ftp://ftp.ninemoons.com/pub/geekgadgets/...).
+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:
-3) Compile and install the POSIX ar from the ar-1.1 directory; see the
- README in there for details.
+1) Get the latest Python source code from ftp.python.org.
-4) Configure with:
+2) Configure with:
- AR=ar-posix RANLIB=: ./configure --verbose --without-gcc \
+ AR=$(pwd)/BeOS/ar-fake RANLIB=: ./configure --verbose --without-gcc \
--prefix=/boot/home/config --with-thread
- The only strange thing that happens during the configure is that
- we fail the "genuine getopt()" test; this is odd because we've got
- a real live GNU getopt() in the system libs. Other packages built
- using configure (such as all of the goodies in GeekGadgets) suffer
- the same fate though, so it's not a Python problem.
+3) Copy Modules/Setup.in to Modules/Setup.
-5) Copy Modules/Setup.in to Modules/Setup.
+4) Edit Modules/Setup to turn on all the modules you want built.
-6) Edit Modules/Setup to turn on all the modules you want built. I've
- personally built the following modules:
+ Make sure you use _socket instead of socket for the name of the
+ socketmodule on BeOS.
- array, audioop, binascii, cPickle, cStringIO, cmath, crypt, curses,
- errno, fcntl, gdbm, grp, imageop, math, md5, new, operator, parser,
- pcre, posix, pwd, readline, regex, reop, rgbimg, rotor, select,
- signal, socket, soundex, strop, struct, syslog, termios, thread,
- time, timing, zlib
+ 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.
- Newly compiled/tested with 1.5.1:
-
- _locale
+5) Make sure Modules/Makefile.pre has REALLIBRARY set to:
- You can get precompiled gdbm, ncurses, and zlib libraries from the
- GeekGadgets repository (ftp://ftp.ninemoons.com/pub/geekgadgets/...).
-
- Make sure you use _socket instead of socket for the name of the
- socketmodule on BeOS.
+ REALLIBRARY=../libpython$(VERSION).so
-7) Make:
+6) Make:
- make
-
- or, if you feel the need for speed:
-
- make OPT="-O7 -opt schedule604"
+ make AR=$(pwd)/BeOS/ar-fake RANLIB=: OPT=-DUSE_DL_EXPORT \
+ CCSHARED=-UUSE_DL_EXPORT
- You can safely ignore any warnings you see during the build (and you'll
- see several if you use full warnings; I compiled the distribution with
- -w9 -ansi strict and cleaned up any errors...).
+7) Test:
-8) Test:
-
- make test
+ make AR=$(pwd)/BeOS/ar-fake RANLIB=: OPT=-DUSE_DL_EXPORT \
+ CCSHARED=-UUSE_DL_EXPORT test
Expect the following errors:
- test_builtin failed -- round(1000000000.0)
- test_fcntl skipped -- an optional feature could not be imported
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 (like the round()
- error; different CPUs represent floating point numbers differently,
- which can cause minor rounding errors).
-
-9) Install:
-
- make install
+ sockets), or valid differences between systems.
-10) Enjoy!
+ NOTE: On R4/x86, the pause() function is broken; expect the signal
+ module test to crash Python!
-NOTE
+8) Install:
-If you're going to build your own C/C++-based Python modules, link them
-against the libpython1.5.so shared library (in /boot/home/config/lib)
-instead of the libpython1.5.a (in /boot/home/config/lib/python1.5/config),
-unless you're building a statically-linked python interpreter (then you
-could try linking against _APP_ instead).
+ make AR=$(pwd)/BeOS/ar-fake RANLIB=: OPT=-DUSE_DL_EXPORT \
+ CCSHARED=-UUSE_DL_EXPORT install
-Mixing modules linked against the shared library with a statically-linked
-interpreter is a bad idea (and it'll fail in _interesting_ ways).
+9) Enjoy!
- Chris Herborth (chrish@qnx.com)
- April 25, 1998
+ December 17, 1998