Issue #7652: Enable linking of _decimal.so against an installed libmpdec.
This commit is contained in:
parent
0175af85a5
commit
60187b5ee5
|
@ -34,6 +34,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #7652: Add --with-system-libmpdec option to configure for linking
|
||||||
|
the _decimal module against an installed libmpdec.
|
||||||
|
|
||||||
- Issue #14380: MIMEText now defaults to utf-8 when passed non-ASCII unicode
|
- Issue #14380: MIMEText now defaults to utf-8 when passed non-ASCII unicode
|
||||||
with no charset specified.
|
with no charset specified.
|
||||||
|
|
||||||
|
|
|
@ -762,6 +762,7 @@ with_pydebug
|
||||||
with_libs
|
with_libs
|
||||||
with_system_expat
|
with_system_expat
|
||||||
with_system_ffi
|
with_system_ffi
|
||||||
|
with_system_libmpdec
|
||||||
enable_loadable_sqlite_extensions
|
enable_loadable_sqlite_extensions
|
||||||
with_dbmliborder
|
with_dbmliborder
|
||||||
with_signal_module
|
with_signal_module
|
||||||
|
@ -1434,6 +1435,8 @@ Optional Packages:
|
||||||
--with-system-expat build pyexpat module using an installed expat
|
--with-system-expat build pyexpat module using an installed expat
|
||||||
library
|
library
|
||||||
--with-system-ffi build _ctypes module using an installed ffi library
|
--with-system-ffi build _ctypes module using an installed ffi library
|
||||||
|
--with-system-libmpdec build _decimal module using an installed libmpdec
|
||||||
|
library
|
||||||
--with-dbmliborder=db1:db2:...
|
--with-dbmliborder=db1:db2:...
|
||||||
order to check db backends for dbm. Valid value is a
|
order to check db backends for dbm. Valid value is a
|
||||||
colon separated string with the backend names
|
colon separated string with the backend names
|
||||||
|
@ -8501,6 +8504,21 @@ fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_ffi" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_ffi" >&5
|
||||||
$as_echo "$with_system_ffi" >&6; }
|
$as_echo "$with_system_ffi" >&6; }
|
||||||
|
|
||||||
|
# Check for use of the system libmpdec library
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-libmpdec" >&5
|
||||||
|
$as_echo_n "checking for --with-system-libmpdec... " >&6; }
|
||||||
|
|
||||||
|
# Check whether --with-system_libmpdec was given.
|
||||||
|
if test "${with_system_libmpdec+set}" = set; then :
|
||||||
|
withval=$with_system_libmpdec;
|
||||||
|
else
|
||||||
|
with_system_libmpdec="no"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_libmpdec" >&5
|
||||||
|
$as_echo "$with_system_libmpdec" >&6; }
|
||||||
|
|
||||||
# Check for support for loadable sqlite extensions
|
# Check for support for loadable sqlite extensions
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5
|
||||||
$as_echo_n "checking for --enable-loadable-sqlite-extensions... " >&6; }
|
$as_echo_n "checking for --enable-loadable-sqlite-extensions... " >&6; }
|
||||||
|
|
|
@ -2048,6 +2048,15 @@ AC_SUBST(LIBFFI_INCLUDEDIR)
|
||||||
|
|
||||||
AC_MSG_RESULT($with_system_ffi)
|
AC_MSG_RESULT($with_system_ffi)
|
||||||
|
|
||||||
|
# Check for use of the system libmpdec library
|
||||||
|
AC_MSG_CHECKING(for --with-system-libmpdec)
|
||||||
|
AC_ARG_WITH(system_libmpdec,
|
||||||
|
AS_HELP_STRING([--with-system-libmpdec], [build _decimal module using an installed libmpdec library]),
|
||||||
|
[],
|
||||||
|
[with_system_libmpdec="no"])
|
||||||
|
|
||||||
|
AC_MSG_RESULT($with_system_libmpdec)
|
||||||
|
|
||||||
# Check for support for loadable sqlite extensions
|
# Check for support for loadable sqlite extensions
|
||||||
AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions)
|
AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions)
|
||||||
AC_ARG_ENABLE(loadable-sqlite-extensions,
|
AC_ARG_ENABLE(loadable-sqlite-extensions,
|
||||||
|
|
88
setup.py
88
setup.py
|
@ -1796,42 +1796,53 @@ class PyBuildExt(build_ext):
|
||||||
self.use_system_libffi = True
|
self.use_system_libffi = True
|
||||||
|
|
||||||
def _decimal_ext(self):
|
def _decimal_ext(self):
|
||||||
sources = [
|
extra_compile_args = []
|
||||||
'_decimal/_decimal.c',
|
undef_macros=['NDEBUG']
|
||||||
'_decimal/libmpdec/basearith.c',
|
if '--with-system-libmpdec' in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||||
'_decimal/libmpdec/constants.c',
|
include_dirs = []
|
||||||
'_decimal/libmpdec/context.c',
|
libraries = ['mpdec']
|
||||||
'_decimal/libmpdec/convolute.c',
|
sources = ['_decimal/_decimal.c']
|
||||||
'_decimal/libmpdec/crt.c',
|
depends = ['_decimal/docstrings.h']
|
||||||
'_decimal/libmpdec/difradix2.c',
|
else:
|
||||||
'_decimal/libmpdec/fnt.c',
|
include_dirs = ['./Modules/_decimal/libmpdec']
|
||||||
'_decimal/libmpdec/fourstep.c',
|
libraries = []
|
||||||
'_decimal/libmpdec/io.c',
|
sources = [
|
||||||
'_decimal/libmpdec/memory.c',
|
'_decimal/_decimal.c',
|
||||||
'_decimal/libmpdec/mpdecimal.c',
|
'_decimal/libmpdec/basearith.c',
|
||||||
'_decimal/libmpdec/numbertheory.c',
|
'_decimal/libmpdec/constants.c',
|
||||||
'_decimal/libmpdec/sixstep.c',
|
'_decimal/libmpdec/context.c',
|
||||||
'_decimal/libmpdec/transpose.c',
|
'_decimal/libmpdec/convolute.c',
|
||||||
]
|
'_decimal/libmpdec/crt.c',
|
||||||
depends = [
|
'_decimal/libmpdec/difradix2.c',
|
||||||
'_decimal/docstrings.h',
|
'_decimal/libmpdec/fnt.c',
|
||||||
'_decimal/libmpdec/basearith.h',
|
'_decimal/libmpdec/fourstep.c',
|
||||||
'_decimal/libmpdec/bits.h',
|
'_decimal/libmpdec/io.c',
|
||||||
'_decimal/libmpdec/constants.h',
|
'_decimal/libmpdec/memory.c',
|
||||||
'_decimal/libmpdec/convolute.h',
|
'_decimal/libmpdec/mpdecimal.c',
|
||||||
'_decimal/libmpdec/crt.h',
|
'_decimal/libmpdec/numbertheory.c',
|
||||||
'_decimal/libmpdec/difradix2.h',
|
'_decimal/libmpdec/sixstep.c',
|
||||||
'_decimal/libmpdec/fnt.h',
|
'_decimal/libmpdec/transpose.c',
|
||||||
'_decimal/libmpdec/fourstep.h',
|
]
|
||||||
'_decimal/libmpdec/io.h',
|
depends = [
|
||||||
'_decimal/libmpdec/memory.h',
|
'_decimal/docstrings.h',
|
||||||
'_decimal/libmpdec/mpdecimal.h',
|
'_decimal/libmpdec/basearith.h',
|
||||||
'_decimal/libmpdec/numbertheory.h',
|
'_decimal/libmpdec/bits.h',
|
||||||
'_decimal/libmpdec/sixstep.h',
|
'_decimal/libmpdec/constants.h',
|
||||||
'_decimal/libmpdec/transpose.h',
|
'_decimal/libmpdec/convolute.h',
|
||||||
'_decimal/libmpdec/typearith.h',
|
'_decimal/libmpdec/crt.h',
|
||||||
'_decimal/libmpdec/umodarith.h',
|
'_decimal/libmpdec/difradix2.h',
|
||||||
]
|
'_decimal/libmpdec/fnt.h',
|
||||||
|
'_decimal/libmpdec/fourstep.h',
|
||||||
|
'_decimal/libmpdec/io.h',
|
||||||
|
'_decimal/libmpdec/memory.h',
|
||||||
|
'_decimal/libmpdec/mpdecimal.h',
|
||||||
|
'_decimal/libmpdec/numbertheory.h',
|
||||||
|
'_decimal/libmpdec/sixstep.h',
|
||||||
|
'_decimal/libmpdec/transpose.h',
|
||||||
|
'_decimal/libmpdec/typearith.h',
|
||||||
|
'_decimal/libmpdec/umodarith.h',
|
||||||
|
]
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
'x64': [('CONFIG_64','1'), ('ASM','1')],
|
'x64': [('CONFIG_64','1'), ('ASM','1')],
|
||||||
'uint128': [('CONFIG_64','1'), ('ANSI','1'), ('HAVE_UINT128_T','1')],
|
'uint128': [('CONFIG_64','1'), ('ANSI','1'), ('HAVE_UINT128_T','1')],
|
||||||
|
@ -1843,10 +1854,6 @@ class PyBuildExt(build_ext):
|
||||||
'universal': [('UNIVERSAL','1')]
|
'universal': [('UNIVERSAL','1')]
|
||||||
}
|
}
|
||||||
|
|
||||||
include_dirs = ['./Modules/_decimal/libmpdec']
|
|
||||||
extra_compile_args = []
|
|
||||||
undef_macros=['NDEBUG']
|
|
||||||
|
|
||||||
platform = self.get_platform()
|
platform = self.get_platform()
|
||||||
cc = sysconfig.get_config_var('CC')
|
cc = sysconfig.get_config_var('CC')
|
||||||
sizeof_size_t = sysconfig.get_config_var('SIZEOF_SIZE_T')
|
sizeof_size_t = sysconfig.get_config_var('SIZEOF_SIZE_T')
|
||||||
|
@ -1898,6 +1905,7 @@ class PyBuildExt(build_ext):
|
||||||
ext = Extension (
|
ext = Extension (
|
||||||
'_decimal',
|
'_decimal',
|
||||||
include_dirs=include_dirs,
|
include_dirs=include_dirs,
|
||||||
|
libraries=libraries,
|
||||||
define_macros=define_macros,
|
define_macros=define_macros,
|
||||||
undef_macros=undef_macros,
|
undef_macros=undef_macros,
|
||||||
extra_compile_args=extra_compile_args,
|
extra_compile_args=extra_compile_args,
|
||||||
|
|
Loading…
Reference in New Issue