[Python-Dev] Making setup.py a little more flexible (original) (raw)
M.-A. Lemburg mal@lemburg.com
Thu, 04 Oct 2001 10:44:28 +0200
- Previous message: [Python-Dev] Making setup.py a little more flexible
- Next message: [Python-Dev] Fixing compiler warnings (bug #445960)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Greg Ward wrote:
Some months ago, I tried to build the latest Python on an IRIX 6.5 system that has been, shall we say, lightly maintained for some time. (Basically, its /usr/local/ is mounted from an IRIX 5 system, and it's full of libraries that you can't link against with the default compiler flags on IRIX 6.) Unfortunately, Python's setup.py is a bit too rigid: it assumes that it should always add /usr/local/{lib,include} to the lib/include search paths, it assumes it should always search /usr/local/lib (and a few others) for SSL libraries, etc. Worse, it assumes the existence of libssl.a implies the linkability of -lssl -- when /usr/local is broken, this ain't necessarily so. Now I know what the Right Answer is: finish implementing the Distutils "config" command, and use it to properly probe the system for includable header files and linkable libraries, rather than just assuming existence == validity.
That would be nice. That would certainly be nice indeed (for other users of distutils as well ;-).
But I've got a quick 'n easy fix -- the moral equivalent of commenting out the code in PyBuildExt.detectmodules() that makes those blithe assumptions. Namely, I added --without-usrlocal and --without-ssl options to the custom buildext command used by setup.py.
Now, I can build most extensions just fine on this broken IRIX system like this: ./python setup.py buildext --without-ssl --without-usrlocal I've just uploaded patch #467650 (assigned to Andrew) to implement this: http://sourceforge.net/tracker/index.php?func=detail&aid=467650&groupid=5470&atid=305470 Whaddya think? Good enough bandaid solution? Or should I add a few more things, eg.: --with-ssl-lib=DIR directory to search for OpenSSL libs --with-ssl-inc=DIR directory to search for OpenSSL headers --without-foo don't try to build foo
I think that these options are more in line with what configure scripts tend to offer: if the magic doesn't work, let the user decide.
The last one could be repeated for various values of "foo": curses, dbm, bsddb, etc. I don't think that's too necessary; if some foo doesn't build, then it doesn't build and that's that. From my cursory examination of detectmodules(), the socket/OpenSSL dependency is the only obvious module-killer. (That is, the bogus OpenSSL libs killed the socket module completely, when all I really need to do is not use OpenSSL on this system.)
-- Marc-Andre Lemburg CEO eGenix.com Software GmbH
Consulting & Company: http://www.egenix.com/ Python Software: http://www.lemburg.com/python/
- Previous message: [Python-Dev] Making setup.py a little more flexible
- Next message: [Python-Dev] Fixing compiler warnings (bug #445960)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]