@@ -1796,42 +1796,53 @@ def detect_ctypes(self, inc_dirs, lib_dirs):
17961796 self .use_system_libffi = True
17971797
17981798 def _decimal_ext (self ):
1799- sources = [
1800- '_decimal/_decimal.c' ,
1801- '_decimal/libmpdec/basearith.c' ,
1802- '_decimal/libmpdec/constants.c' ,
1803- '_decimal/libmpdec/context.c' ,
1804- '_decimal/libmpdec/convolute.c' ,
1805- '_decimal/libmpdec/crt.c' ,
1806- '_decimal/libmpdec/difradix2.c' ,
1807- '_decimal/libmpdec/fnt.c' ,
1808- '_decimal/libmpdec/fourstep.c' ,
1809- '_decimal/libmpdec/io.c' ,
1810- '_decimal/libmpdec/memory.c' ,
1811- '_decimal/libmpdec/mpdecimal.c' ,
1812- '_decimal/libmpdec/numbertheory.c' ,
1813- '_decimal/libmpdec/sixstep.c' ,
1814- '_decimal/libmpdec/transpose.c' ,
1815- ]
1816- depends = [
1817- '_decimal/docstrings.h' ,
1818- '_decimal/libmpdec/basearith.h' ,
1819- '_decimal/libmpdec/bits.h' ,
1820- '_decimal/libmpdec/constants.h' ,
1821- '_decimal/libmpdec/convolute.h' ,
1822- '_decimal/libmpdec/crt.h' ,
1823- '_decimal/libmpdec/difradix2.h' ,
1824- '_decimal/libmpdec/fnt.h' ,
1825- '_decimal/libmpdec/fourstep.h' ,
1826- '_decimal/libmpdec/io.h' ,
1827- '_decimal/libmpdec/memory.h' ,
1828- '_decimal/libmpdec/mpdecimal.h' ,
1829- '_decimal/libmpdec/numbertheory.h' ,
1830- '_decimal/libmpdec/sixstep.h' ,
1831- '_decimal/libmpdec/transpose.h' ,
1832- '_decimal/libmpdec/typearith.h' ,
1833- '_decimal/libmpdec/umodarith.h' ,
1834- ]
1799+ extra_compile_args = []
1800+ undef_macros = ['NDEBUG' ]
1801+ if '--with-system-libmpdec' in sysconfig .get_config_var ("CONFIG_ARGS" ):
1802+ include_dirs = []
1803+ libraries = ['mpdec' ]
1804+ sources = ['_decimal/_decimal.c' ]
1805+ depends = ['_decimal/docstrings.h' ]
1806+ else :
1807+ include_dirs = ['./Modules/_decimal/libmpdec' ]
1808+ libraries = []
1809+ sources = [
1810+ '_decimal/_decimal.c' ,
1811+ '_decimal/libmpdec/basearith.c' ,
1812+ '_decimal/libmpdec/constants.c' ,
1813+ '_decimal/libmpdec/context.c' ,
1814+ '_decimal/libmpdec/convolute.c' ,
1815+ '_decimal/libmpdec/crt.c' ,
1816+ '_decimal/libmpdec/difradix2.c' ,
1817+ '_decimal/libmpdec/fnt.c' ,
1818+ '_decimal/libmpdec/fourstep.c' ,
1819+ '_decimal/libmpdec/io.c' ,
1820+ '_decimal/libmpdec/memory.c' ,
1821+ '_decimal/libmpdec/mpdecimal.c' ,
1822+ '_decimal/libmpdec/numbertheory.c' ,
1823+ '_decimal/libmpdec/sixstep.c' ,
1824+ '_decimal/libmpdec/transpose.c' ,
1825+ ]
1826+ depends = [
1827+ '_decimal/docstrings.h' ,
1828+ '_decimal/libmpdec/basearith.h' ,
1829+ '_decimal/libmpdec/bits.h' ,
1830+ '_decimal/libmpdec/constants.h' ,
1831+ '_decimal/libmpdec/convolute.h' ,
1832+ '_decimal/libmpdec/crt.h' ,
1833+ '_decimal/libmpdec/difradix2.h' ,
1834+ '_decimal/libmpdec/fnt.h' ,
1835+ '_decimal/libmpdec/fourstep.h' ,
1836+ '_decimal/libmpdec/io.h' ,
1837+ '_decimal/libmpdec/memory.h' ,
1838+ '_decimal/libmpdec/mpdecimal.h' ,
1839+ '_decimal/libmpdec/numbertheory.h' ,
1840+ '_decimal/libmpdec/sixstep.h' ,
1841+ '_decimal/libmpdec/transpose.h' ,
1842+ '_decimal/libmpdec/typearith.h' ,
1843+ '_decimal/libmpdec/umodarith.h' ,
1844+ ]
1845+
18351846 config = {
18361847 'x64' : [('CONFIG_64' ,'1' ), ('ASM' ,'1' )],
18371848 'uint128' : [('CONFIG_64' ,'1' ), ('ANSI' ,'1' ), ('HAVE_UINT128_T' ,'1' )],
@@ -1843,10 +1854,6 @@ def _decimal_ext(self):
18431854 'universal' : [('UNIVERSAL' ,'1' )]
18441855 }
18451856
1846- include_dirs = ['./Modules/_decimal/libmpdec' ]
1847- extra_compile_args = []
1848- undef_macros = ['NDEBUG' ]
1849-
18501857 platform = self .get_platform ()
18511858 cc = sysconfig .get_config_var ('CC' )
18521859 sizeof_size_t = sysconfig .get_config_var ('SIZEOF_SIZE_T' )
@@ -1898,6 +1905,7 @@ def _decimal_ext(self):
18981905 ext = Extension (
18991906 '_decimal' ,
19001907 include_dirs = include_dirs ,
1908+ libraries = libraries ,
19011909 define_macros = define_macros ,
19021910 undef_macros = undef_macros ,
19031911 extra_compile_args = extra_compile_args ,
0 commit comments