Patch #103937: Attempt to get the BSDDB autodetection right (or at least
less wrong)
diff --git a/setup.py b/setup.py
index ea4d94f..4e8008b 100644
--- a/setup.py
+++ b/setup.py
@@ -325,17 +325,22 @@
# (See http://electricrain.com/greg/python/bsddb3/ for an interface to
# BSD DB 3.x.)
- db_incs = find_file('db_185.h', inc_dirs, [])
- if (db_incs is not None and
- self.compiler.find_library_file(lib_dirs, 'db') ):
+ dblib = []
+ if self.compiler.find_library_file(lib_dirs, 'db'):
+ dblib = ['db']
+
+ db185_incs = find_file('db_185.h', inc_dirs,
+ ['/usr/include/db3', '/usr/include/db2'])
+ db_inc = find_file('db.h', inc_dirs, ['/usr/include/db1'])
+ if db185_incs is not None:
exts.append( Extension('bsddb', ['bsddbmodule.c'],
- include_dirs = db_incs,
- libraries = ['db'] ) )
- else:
- db_incs = find_file('db.h', inc_dirs, [])
- if db_incs is not None:
- exts.append( Extension('bsddb', ['bsddbmodule.c'],
- include_dirs = db_incs) )
+ include_dirs = db185_incs,
+ define_macros=[('HAVE_DB_185_H',1)],
+ libraries = dblib ) )
+ elif db_inc is not None:
+ exts.append( Extension('bsddb', ['bsddbmodule.c'],
+ include_dirs = db_inc,
+ libraries = dblib) )
# The mpz module interfaces to the GNU Multiple Precision library.
# You need to ftp the GNU MP library.