--- setup.py +++ setup.py @@ -790,16 +790,11 @@ # The standard Unix dbm module: if platform not in ['cygwin']: - if 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'], - define_macros=[('HAVE_NDBM_H',None)], - libraries = ndbm_libs ) ) - elif self.compiler.find_library_file(lib_dirs, 'gdbm'): + # To prevent automagic dependencies check for relevant modules in + # disabled_module_list. + if (self.compiler.find_library_file(lib_dirs, 'gdbm') + and find_file("gdbm/ndbm.h", inc_dirs, []) is not None + and 'gdbm' not in disabled_module_list): gdbm_libs = ['gdbm'] if self.compiler.find_library_file(lib_dirs, 'gdbm_compat'): gdbm_libs.append('gdbm_compat') @@ -813,6 +808,16 @@ '_dbm', ['_dbmmodule.c'], define_macros=[('HAVE_GDBM_DASH_NDBM_H',None)], libraries = gdbm_libs ) ) + elif (self.compiler.find_library_file(lib_dirs, 'gdbm') + and 'gdbm' not in disabled_module_list): + # 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'], + define_macros=[('HAVE_NDBM_H',None)], + libraries = ndbm_libs ) ) elif db_incs is not None: exts.append( Extension('_dbm', ['_dbmmodule.c'], library_dirs=dblib_dir, @@ -825,7 +830,8 @@ missing.append('_dbm') # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: - if (self.compiler.find_library_file(lib_dirs, 'gdbm')): + if (self.compiler.find_library_file(lib_dirs, 'gdbm') + and 'gdbm' not in disabled_module_list): exts.append( Extension('_gdbm', ['_gdbmmodule.c'], libraries = ['gdbm'] ) ) else: