Commit a37d61f1 authored by Martin v. Löwis's avatar Martin v. Löwis

Correct db3 /opt/sfw library path. Link ndbm with libc only if ndbm.h

is present and libndbm is not. Add runtime libs to dbm if linked against
Berkeley DB.
parent 065c06a6
...@@ -476,7 +476,7 @@ class PyBuildExt(build_ext): ...@@ -476,7 +476,7 @@ class PyBuildExt(build_ext):
'/usr/local/BerkeleyDB.3.1/lib', '/usr/local/BerkeleyDB.3.1/lib',
'/usr/local/BerkeleyDB.3.0/lib', '/usr/local/BerkeleyDB.3.0/lib',
'/usr/local/lib', '/usr/local/lib',
'/opt/sfw', '/opt/sfw/lib',
'/sw/lib', '/sw/lib',
), ),
'incdirs': ('/usr/local/BerkeleyDB.3.3/include', 'incdirs': ('/usr/local/BerkeleyDB.3.3/include',
...@@ -542,16 +542,15 @@ class PyBuildExt(build_ext): ...@@ -542,16 +542,15 @@ class PyBuildExt(build_ext):
# The standard Unix dbm module: # The standard Unix dbm module:
if platform not in ['cygwin']: if platform not in ['cygwin']:
if (self.compiler.find_library_file(lib_dirs, 'ndbm') if find_file("ndbm.h", inc_dirs, []) is not None:
and find_file("ndbm.h", inc_dirs, []) is not None): # Some systems have -lndbm, others don't
if self.compiler.find_library_file(lib_dirs, 'ndbm'):
ndbm_libs = ['ndbm']
else:
ndbm_libs = []
exts.append( Extension('dbm', ['dbmmodule.c'], exts.append( Extension('dbm', ['dbmmodule.c'],
define_macros=[('HAVE_NDBM_H',None)], define_macros=[('HAVE_NDBM_H',None)],
libraries = ['ndbm'] ) ) libraries = ndbm_libs ) )
elif (platform in ['darwin']
and find_file("ndbm.h", inc_dirs, []) is not None):
# Darwin has ndbm in libc
exts.append( Extension('dbm', ['dbmmodule.c'],
define_macros=[('HAVE_NDBM_H',None)]) )
elif (self.compiler.find_library_file(lib_dirs, 'gdbm') elif (self.compiler.find_library_file(lib_dirs, 'gdbm')
and find_file("gdbm/ndbm.h", inc_dirs, []) is not None): and find_file("gdbm/ndbm.h", inc_dirs, []) is not None):
exts.append( Extension('dbm', ['dbmmodule.c'], exts.append( Extension('dbm', ['dbmmodule.c'],
...@@ -559,7 +558,8 @@ class PyBuildExt(build_ext): ...@@ -559,7 +558,8 @@ class PyBuildExt(build_ext):
libraries = ['gdbm'] ) ) libraries = ['gdbm'] ) )
elif db_incs is not None: elif db_incs is not None:
exts.append( Extension('dbm', ['dbmmodule.c'], exts.append( Extension('dbm', ['dbmmodule.c'],
library_dirs=[dblib_dir], library_dirs=dblib_dir,
runtime_library_dirs=dblib_dir,
include_dirs=db_incs, include_dirs=db_incs,
define_macros=[('HAVE_BERKDB_H',None), define_macros=[('HAVE_BERKDB_H',None),
('DB_DBM_HSEARCH',None)], ('DB_DBM_HSEARCH',None)],
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment