>>>>> "TR" == Tim Rice <tim@multitalents.net> writes: TR> It gets tricky trying to automagicly use the -R flag. As an TR> example, the default install dir for OpenSSL is TR> /usr/local/ssl. So on platforms that support -R you would TR> think you could use -L/usr/local/ssl/lib -R/usr/local/ssl/lib TR> -lssl -lcrypto OpenUNIX supports -R but if you did not build TR> shared libraries for OpenSSL, the -R/usr/local/ssl/lib will TR> break the build. Since there seems to be so little agreement among *nixes about how to do this, it seems like the only/best place to codify all this knowledge is in distutils. I still think specifying runtime_library_dirs to the Extension constructor is the right thing to do. But maybe on some systems distutils ought to ignore it, or at least check to make sure that the dynamic libraries it wants to link against are actually present. TR> Then there is the whole issue of what non system dirs to TR> include. Maybe you have OpenSSL 0.9.6g in /usr/local/ssl but TR> you're testing 0.9.7 that's installed in some other dir. If TR> setup.py automagicly adds ssl to build the '_socket' TR> extension, how does it know which version to use? How would it TR> even find the one not in /usr/local/ssl? Normally you would TR> configure --with-ssl-dir=/some_path_to_ssl I would hope that setup.py would match the library version with the header version, but I'm sure it's not easy or foolproof. Look at the machinations setup.py goes through to build bsddbmodule. I still think it's best to do this so that Python has a chance of building out of the box for the widest possible audience. It's impossible to get 100% right. TR> As one who has done ports to many Open Source projects, I TR> found python one of the more difficult ones because the build TR> process uses python. So for a new platform (or broken build) TR> you have to know python to build python. Python's also a pretty complicated piece of software, what with each extension module linking against non-standard libraries presenting its own set of complications. But what tool that you can portably count on being present would you use instead? -Barry
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4