diff options
author | Skip Montanaro <skip@pobox.com> | 2003-05-06 20:43:34 (GMT) |
---|---|---|
committer | Skip Montanaro <skip@pobox.com> | 2003-05-06 20:43:34 (GMT) |
commit | 22e00c42c092c151ab220b234e859d91f5b19c77 (patch) | |
tree | 2ecf7581a2935f1d129eef15ca5cd3000465a487 | |
parent | 8c044d8ca4c42058d6f9f57f34c5292af1a29bbf (diff) | |
download | cpython-22e00c42c092c151ab220b234e859d91f5b19c77.zip cpython-22e00c42c092c151ab220b234e859d91f5b19c77.tar.gz cpython-22e00c42c092c151ab220b234e859d91f5b19c77.tar.bz2 |
build bsddb185 module in certain restricted circumstances
-rw-r--r-- | setup.py | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -287,6 +287,11 @@ class PyBuildExt(build_ext): inc_dirs += ['/system/include', '/atheos/autolnk/include'] inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) + # OSF/1 has some stuff in /usr/ccs/lib (like -ldb) + if platform[:4] == 'osf1': + platform = 'osf1' + lib_dirs += ['/usr/ccs/lib'] + # Check for MacOS X, which doesn't need libm.a at all math_libs = ['m'] if platform in ['darwin', 'beos', 'mac']: @@ -560,6 +565,29 @@ class PyBuildExt(build_ext): dblibs = [] dblib_dir = None + + # Look for Berkeley db 1.85. Note that it is built as a different + # module name so it can be included even when later versions are + # available. A very restrictive search is performed to avoid + # accidentally building this module with a later version of the + # underlying db library. May BSD-ish Unixes incorporate db 1.85 + # symbols into libc and place the include file in /usr/include. + f = "/usr/include/db.h" + if os.path.exists(f): + data = open(f).read() + m = re.search(r"#s*define\s+HASHVERSION\s+2\s*", data) + if m is not None: + # bingo - old version used hash file format version 2 + ### XXX this should be fixed to not be platform-dependent + ### but I don't have direct access to an osf1 platform and + ### seemed to be muffing the search somehow + libraries = platform == "osf1" and ['db'] or None + if libraries is not None: + exts.append(Extension('bsddb185', ['bsddbmodule.c'], + libraries=libraries)) + else: + exts.append(Extension('bsddb185', ['bsddbmodule.c'])) + # The standard Unix dbm module: if platform not in ['cygwin']: if find_file("ndbm.h", inc_dirs, []) is not None: |