- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
the order that backends for the dbm extension are checked.
This commit is contained in:
parent
58a42244cf
commit
55708cce31
|
@ -880,6 +880,9 @@ Tools/Demos
|
||||||
Build
|
Build
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- Issue #4587: Add configure option --with-dbmliborder=db1:db2:... to specify
|
||||||
|
the order that backends for the dbm extension are checked.
|
||||||
|
|
||||||
- Link the shared python library with $(MODLIBS).
|
- Link the shared python library with $(MODLIBS).
|
||||||
|
|
||||||
- Issue #5134: Silence compiler warnings when compiling sqlite with VC++.
|
- Issue #5134: Silence compiler warnings when compiling sqlite with VC++.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# From configure.in Revision: 71723 .
|
# From configure.in Revision: 71731 .
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.61 for python 3.1.
|
# Generated by GNU Autoconf 2.61 for python 3.1.
|
||||||
#
|
#
|
||||||
|
@ -1340,6 +1340,10 @@ Optional Packages:
|
||||||
--with-pydebug build with Py_DEBUG defined
|
--with-pydebug build with Py_DEBUG defined
|
||||||
--with-libs='lib1 ...' link against additional libs
|
--with-libs='lib1 ...' link against additional libs
|
||||||
--with-system-ffi build _ctypes module using an installed ffi library
|
--with-system-ffi build _ctypes module using an installed ffi library
|
||||||
|
--with-dbmliborder=db1:db2:...
|
||||||
|
order to check db backends for dbm. Valid value is a
|
||||||
|
colon separated string with the backend names
|
||||||
|
`ndbm', `gdbm' and `bdb'.
|
||||||
--with-signal-module disable/enable signal module
|
--with-signal-module disable/enable signal module
|
||||||
--with-dec-threads use DEC Alpha/OSF1 thread-safe libraries
|
--with-dec-threads use DEC Alpha/OSF1 thread-safe libraries
|
||||||
--with(out)-threads[=DIRECTORY]
|
--with(out)-threads[=DIRECTORY]
|
||||||
|
@ -14087,6 +14091,33 @@ fi
|
||||||
{ echo "$as_me:$LINENO: result: $with_system_ffi" >&5
|
{ echo "$as_me:$LINENO: result: $with_system_ffi" >&5
|
||||||
echo "${ECHO_T}$with_system_ffi" >&6; }
|
echo "${ECHO_T}$with_system_ffi" >&6; }
|
||||||
|
|
||||||
|
# Check for --with-dbmliborder
|
||||||
|
{ echo "$as_me:$LINENO: checking for --with-dbmliborder" >&5
|
||||||
|
echo $ECHO_N "checking for --with-dbmliborder... $ECHO_C" >&6; }
|
||||||
|
|
||||||
|
# Check whether --with-dbmliborder was given.
|
||||||
|
if test "${with_dbmliborder+set}" = set; then
|
||||||
|
withval=$with_dbmliborder;
|
||||||
|
if test x$with_dbmliborder = xyes
|
||||||
|
then
|
||||||
|
{ { echo "$as_me:$LINENO: error: proper usage is --with-dbmliborder=db1:db2:..." >&5
|
||||||
|
echo "$as_me: error: proper usage is --with-dbmliborder=db1:db2:..." >&2;}
|
||||||
|
{ (exit 1); exit 1; }; }
|
||||||
|
else
|
||||||
|
for db in `echo $with_dbmliborder | sed 's/:/ /g'`; do
|
||||||
|
if test x$db != xndbm && test x$db != xgdbm && test x$db != xbdb
|
||||||
|
then
|
||||||
|
{ { echo "$as_me:$LINENO: error: proper usage is --with-dbmliborder=db1:db2:..." >&5
|
||||||
|
echo "$as_me: error: proper usage is --with-dbmliborder=db1:db2:..." >&2;}
|
||||||
|
{ (exit 1); exit 1; }; }
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
{ echo "$as_me:$LINENO: result: $with_dbmliborder" >&5
|
||||||
|
echo "${ECHO_T}$with_dbmliborder" >&6; }
|
||||||
|
|
||||||
# Determine if signalmodule should be used.
|
# Determine if signalmodule should be used.
|
||||||
|
|
||||||
|
|
||||||
|
|
18
configure.in
18
configure.in
|
@ -1837,6 +1837,24 @@ AC_ARG_WITH(system_ffi,
|
||||||
|
|
||||||
AC_MSG_RESULT($with_system_ffi)
|
AC_MSG_RESULT($with_system_ffi)
|
||||||
|
|
||||||
|
# Check for --with-dbmliborder
|
||||||
|
AC_MSG_CHECKING(for --with-dbmliborder)
|
||||||
|
AC_ARG_WITH(dbmliborder,
|
||||||
|
AC_HELP_STRING([--with-dbmliborder=db1:db2:...], [order to check db backends for dbm. Valid value is a colon separated string with the backend names `ndbm', `gdbm' and `bdb'.]),
|
||||||
|
[
|
||||||
|
if test x$with_dbmliborder = xyes
|
||||||
|
then
|
||||||
|
AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
|
||||||
|
else
|
||||||
|
for db in `echo $with_dbmliborder | sed 's/:/ /g'`; do
|
||||||
|
if test x$db != xndbm && test x$db != xgdbm && test x$db != xbdb
|
||||||
|
then
|
||||||
|
AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi])
|
||||||
|
AC_MSG_RESULT($with_dbmliborder)
|
||||||
|
|
||||||
# Determine if signalmodule should be used.
|
# Determine if signalmodule should be used.
|
||||||
AC_SUBST(USE_SIGNAL_MODULE)
|
AC_SUBST(USE_SIGNAL_MODULE)
|
||||||
AC_SUBST(SIGNAL_OBJS)
|
AC_SUBST(SIGNAL_OBJS)
|
||||||
|
|
94
setup.py
94
setup.py
|
@ -913,37 +913,69 @@ 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 find_file("ndbm.h", inc_dirs, []) is not None:
|
config_args = [arg.strip("'")
|
||||||
# Some systems have -lndbm, others don't
|
for arg in sysconfig.get_config_var("CONFIG_ARGS").split()]
|
||||||
if self.compiler.find_library_file(lib_dirs, 'ndbm'):
|
dbm_args = [arg.split('=')[-1] for arg in config_args
|
||||||
ndbm_libs = ['ndbm']
|
if arg.startswith('--with-dbmliborder=')]
|
||||||
else:
|
if dbm_args:
|
||||||
ndbm_libs = []
|
dbm_order = dbm_args[-1].split(":")
|
||||||
exts.append( Extension('_dbm', ['_dbmmodule.c'],
|
else:
|
||||||
define_macros=[('HAVE_NDBM_H',None)],
|
dbm_order = "ndbm:gdbm:bdb".split(":")
|
||||||
libraries = ndbm_libs ) )
|
dbmext = None
|
||||||
elif self.compiler.find_library_file(lib_dirs, 'gdbm'):
|
for cand in dbm_order:
|
||||||
gdbm_libs = ['gdbm']
|
if cand == "ndbm":
|
||||||
if self.compiler.find_library_file(lib_dirs, 'gdbm_compat'):
|
if find_file("ndbm.h", inc_dirs, []) is not None:
|
||||||
gdbm_libs.append('gdbm_compat')
|
# Some systems have -lndbm, others don't
|
||||||
if find_file("gdbm/ndbm.h", inc_dirs, []) is not None:
|
if self.compiler.find_library_file(lib_dirs, 'ndbm'):
|
||||||
exts.append( Extension(
|
ndbm_libs = ['ndbm']
|
||||||
'_dbm', ['_dbmmodule.c'],
|
else:
|
||||||
define_macros=[('HAVE_GDBM_NDBM_H',None)],
|
ndbm_libs = []
|
||||||
libraries = gdbm_libs ) )
|
print("building dbm using ndbm")
|
||||||
elif find_file("gdbm-ndbm.h", inc_dirs, []) is not None:
|
dbmext = Extension('_dbm', ['_dbmmodule.c'],
|
||||||
exts.append( Extension(
|
define_macros=[
|
||||||
'_dbm', ['_dbmmodule.c'],
|
('HAVE_NDBM_H',None),
|
||||||
define_macros=[('HAVE_GDBM_DASH_NDBM_H',None)],
|
],
|
||||||
libraries = gdbm_libs ) )
|
libraries=ndbm_libs)
|
||||||
elif db_incs is not None:
|
break
|
||||||
exts.append( Extension('_dbm', ['_dbmmodule.c'],
|
|
||||||
library_dirs=dblib_dir,
|
elif cand == "gdbm":
|
||||||
runtime_library_dirs=dblib_dir,
|
if self.compiler.find_library_file(lib_dirs, 'gdbm'):
|
||||||
include_dirs=db_incs,
|
gdbm_libs = ['gdbm']
|
||||||
define_macros=[('HAVE_BERKDB_H',None),
|
if self.compiler.find_library_file(lib_dirs, 'gdbm_compat'):
|
||||||
('DB_DBM_HSEARCH',None)],
|
gdbm_libs.append('gdbm_compat')
|
||||||
libraries=dblibs))
|
if find_file("gdbm/ndbm.h", inc_dirs, []) is not None:
|
||||||
|
print("building dbm using gdbm")
|
||||||
|
dbmext = Extension(
|
||||||
|
'_dbm', ['_dbmmodule.c'],
|
||||||
|
define_macros=[
|
||||||
|
('HAVE_GDBM_NDBM_H', None),
|
||||||
|
],
|
||||||
|
libraries = gdbm_libs)
|
||||||
|
break
|
||||||
|
if find_file("gdbm-ndbm.h", inc_dirs, []) is not None:
|
||||||
|
print("building dbm using gdbm")
|
||||||
|
dbmext = Extension(
|
||||||
|
'_dbm', ['_dbmmodule.c'],
|
||||||
|
define_macros=[
|
||||||
|
('HAVE_GDBM_DASH_NDBM_H', None),
|
||||||
|
],
|
||||||
|
libraries = gdbm_libs)
|
||||||
|
break
|
||||||
|
elif cand == "bdb":
|
||||||
|
if db_incs is not None:
|
||||||
|
print("building dbm using bdb")
|
||||||
|
dbmext = Extension('_dbm', ['_dbmmodule.c'],
|
||||||
|
library_dirs=dblib_dir,
|
||||||
|
runtime_library_dirs=dblib_dir,
|
||||||
|
include_dirs=db_incs,
|
||||||
|
define_macros=[
|
||||||
|
('HAVE_BERKDB_H', None),
|
||||||
|
('DB_DBM_HSEARCH', None),
|
||||||
|
],
|
||||||
|
libraries=dblibs)
|
||||||
|
break
|
||||||
|
if dbmext is not None:
|
||||||
|
exts.append(dbmext)
|
||||||
else:
|
else:
|
||||||
missing.append('_dbm')
|
missing.append('_dbm')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue