@@ -496,6 +496,47 @@ LIBRARY_OBJS= \
496496DTRACE_DEPS = \
497497 Python/ceval.o Python/import.o Python/sysmodule.o Modules/gcmodule.o
498498
499+ ##########################################################################
500+ # decimal's libmpdec
501+
502+ LIBMPDEC_OBJS= \
503+ Modules/_decimal/libmpdec/basearith.o \
504+ Modules/_decimal/libmpdec/constants.o \
505+ Modules/_decimal/libmpdec/context.o \
506+ Modules/_decimal/libmpdec/convolute.o \
507+ Modules/_decimal/libmpdec/crt.o \
508+ Modules/_decimal/libmpdec/difradix2.o \
509+ Modules/_decimal/libmpdec/fnt.o \
510+ Modules/_decimal/libmpdec/fourstep.o \
511+ Modules/_decimal/libmpdec/io.o \
512+ Modules/_decimal/libmpdec/mpalloc.o \
513+ Modules/_decimal/libmpdec/mpdecimal.o \
514+ Modules/_decimal/libmpdec/numbertheory.o \
515+ Modules/_decimal/libmpdec/sixstep.o \
516+ Modules/_decimal/libmpdec/transpose.o
517+ # _decimal does not use signaling API
518+ # Modules/_decimal/libmpdec/mpsignal.o
519+
520+ LIBMPDEC_HEADERS= \
521+ $(srcdir)/Modules/_decimal/libmpdec/basearith.h \
522+ $(srcdir)/Modules/_decimal/libmpdec/bits.h \
523+ $(srcdir)/Modules/_decimal/libmpdec/constants.h \
524+ $(srcdir)/Modules/_decimal/libmpdec/convolute.h \
525+ $(srcdir)/Modules/_decimal/libmpdec/crt.h \
526+ $(srcdir)/Modules/_decimal/libmpdec/difradix2.h \
527+ $(srcdir)/Modules/_decimal/libmpdec/fnt.h \
528+ $(srcdir)/Modules/_decimal/libmpdec/fourstep.h \
529+ $(srcdir)/Modules/_decimal/libmpdec/io.h \
530+ $(srcdir)/Modules/_decimal/libmpdec/mpalloc.h \
531+ $(srcdir)/Modules/_decimal/libmpdec/mpdecimal.h \
532+ $(srcdir)/Modules/_decimal/libmpdec/numbertheory.h \
533+ $(srcdir)/Modules/_decimal/libmpdec/sixstep.h \
534+ $(srcdir)/Modules/_decimal/libmpdec/transpose.h \
535+ $(srcdir)/Modules/_decimal/libmpdec/typearith.h \
536+ $(srcdir)/Modules/_decimal/libmpdec/umodarith.h
537+
538+ LIBMPDEC_A= Modules/_decimal/libmpdec/libmpdec.a
539+
499540#########################################################################
500541# Rules
501542
@@ -647,7 +688,7 @@ $(srcdir)/Modules/_blake2/blake2s_impl.c: $(srcdir)/Modules/_blake2/blake2b_impl
647688# -s, --silent or --quiet is always the first char.
648689# Under BSD make, MAKEFLAGS might be " -s -v x=y".
649690# Ignore macros passed by GNU make, passed after --
650- sharedmods: $(BUILDPYTHON) pybuilddir.txt
691+ sharedmods: $(BUILDPYTHON) pybuilddir.txt @LIBMPDEC_INTERNAL@
651692 @case "`echo X $$MAKEFLAGS | sed 's/^X //;s/ -- .*//'`" in \
652693 *\ -s*|s*) quiet="-q";; \
653694 *) quiet="";; \
@@ -729,6 +770,63 @@ $(DLLLIBRARY) libpython$(LDVERSION).dll.a: $(LIBRARY_OBJS)
729770 else true; \
730771 fi
731772
773+ ##########################################################################
774+ # Build static libmpdec.a
775+ LIBMPDEC_CFLAGS=$(PY_STDMODULE_CFLAGS) $(CCSHARED) @LIBMPDEC_CFLAGS@
776+
777+ # for setup.py
778+ DECIMAL_CFLAGS=@LIBMPDEC_CFLAGS@
779+ DECIMAL_LDFLAGS=@LIBMPDEC_LDFLAGS@
780+
781+ # "%.o: %c" is not portable
782+ Modules/_decimal/libmpdec/basearith.o: $(srcdir)/Modules/_decimal/libmpdec/basearith.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
783+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/basearith.c
784+
785+ Modules/_decimal/libmpdec/constants.o: $(srcdir)/Modules/_decimal/libmpdec/constants.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
786+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/constants.c
787+
788+ Modules/_decimal/libmpdec/context.o: $(srcdir)/Modules/_decimal/libmpdec/context.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
789+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/context.c
790+
791+ Modules/_decimal/libmpdec/convolute.o: $(srcdir)/Modules/_decimal/libmpdec/convolute.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
792+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/convolute.c
793+
794+ Modules/_decimal/libmpdec/crt.o: $(srcdir)/Modules/_decimal/libmpdec/crt.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
795+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/crt.c
796+
797+ Modules/_decimal/libmpdec/difradix2.o: $(srcdir)/Modules/_decimal/libmpdec/difradix2.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
798+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/difradix2.c
799+
800+ Modules/_decimal/libmpdec/fnt.o: $(srcdir)/Modules/_decimal/libmpdec/fnt.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
801+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/fnt.c
802+
803+ Modules/_decimal/libmpdec/fourstep.o: $(srcdir)/Modules/_decimal/libmpdec/fourstep.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
804+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/fourstep.c
805+
806+ Modules/_decimal/libmpdec/io.o: $(srcdir)/Modules/_decimal/libmpdec/io.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
807+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/io.c
808+
809+ Modules/_decimal/libmpdec/mpalloc.o: $(srcdir)/Modules/_decimal/libmpdec/mpalloc.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
810+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/mpalloc.c
811+
812+ Modules/_decimal/libmpdec/mpdecimal.o: $(srcdir)/Modules/_decimal/libmpdec/mpdecimal.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
813+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/mpdecimal.c
814+
815+ Modules/_decimal/libmpdec/mpsignal.o: $(srcdir)/Modules/_decimal/libmpdec/mpsignal.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
816+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/mpsignal.c
817+
818+ Modules/_decimal/libmpdec/numbertheory.o: $(srcdir)/Modules/_decimal/libmpdec/numbertheory.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
819+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/numbertheory.c
820+
821+ Modules/_decimal/libmpdec/sixstep.o: $(srcdir)/Modules/_decimal/libmpdec/sixstep.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
822+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/sixstep.c
823+
824+ Modules/_decimal/libmpdec/transpose.o: $(srcdir)/Modules/_decimal/libmpdec/transpose.c $(LIBMPDEC_HEADERS) $(PYTHON_HEADERS)
825+ $(CC) -c $(LIBMPDEC_CFLAGS) -o $@ $(srcdir)/Modules/_decimal/libmpdec/transpose.c
826+
827+ $(LIBMPDEC_A): $(LIBMPDEC_OBJS)
828+ -rm -f $@
829+ $(AR) $(ARFLAGS) $@ $(LIBMPDEC_OBJS)
732830
733831# create relative links from build/lib.platform/egg.so to Modules/egg.so
734832# pybuilddir.txt is created too late. We cannot use it in Makefile
@@ -2313,7 +2411,7 @@ MODULE_PYEXPAT_DEPS=$(srcdir)/Modules/expat/ascii.h $(srcdir)/Modules/expat/asci
23132411MODULE_UNICODEDATA_DEPS=$(srcdir)/Modules/unicodedata_db.h $(srcdir)/Modules/unicodename_db.h
23142412MODULE__BLAKE2_DEPS=$(srcdir)/Modules/_blake2/impl/blake2-config.h $(srcdir)/Modules/_blake2/impl/blake2-dispatch.c $(srcdir)/Modules/_blake2/impl/blake2-impl.h $(srcdir)/Modules/_blake2/impl/blake2-kat.h $(srcdir)/Modules/_blake2/impl/blake2.h $(srcdir)/Modules/_blake2/impl/blake2b-load-sse2.h $(srcdir)/Modules/_blake2/impl/blake2b-load-sse41.h $(srcdir)/Modules/_blake2/impl/blake2b-ref.c $(srcdir)/Modules/_blake2/impl/blake2b-round.h $(srcdir)/Modules/_blake2/impl/blake2b-test.c $(srcdir)/Modules/_blake2/impl/blake2b.c $(srcdir)/Modules/_blake2/impl/blake2bp-test.c $(srcdir)/Modules/_blake2/impl/blake2bp.c $(srcdir)/Modules/_blake2/impl/blake2s-load-sse2.h $(srcdir)/Modules/_blake2/impl/blake2s-load-sse41.h $(srcdir)/Modules/_blake2/impl/blake2s-load-xop.h $(srcdir)/Modules/_blake2/impl/blake2s-ref.c $(srcdir)/Modules/_blake2/impl/blake2s-round.h $(srcdir)/Modules/_blake2/impl/blake2s-test.c $(srcdir)/Modules/_blake2/impl/blake2s.c $(srcdir)/Modules/_blake2/impl/blake2sp-test.c $(srcdir)/Modules/_blake2/impl/blake2sp.c $(srcdir)/Modules/hashlib.h
23152413MODULE__CTYPES_DEPS=$(srcdir)/Modules/_ctypes/ctypes.h
2316- MODULE__DECIMAL_DEPS=$(srcdir)/Modules/_decimal/docstrings.h $(srcdir)/Modules/_decimal/libmpdec/basearith.h $(srcdir)/Modules/_decimal/libmpdec/bits.h $(srcdir)/Modules/_decimal/libmpdec/constants.h $(srcdir)/Modules/_decimal/libmpdec/convolute.h $(srcdir)/Modules/_decimal/libmpdec/crt.h $(srcdir)/Modules/_decimal/libmpdec/difradix2.h $(srcdir)/Modules/_decimal/libmpdec/fnt.h $(srcdir)/Modules/_decimal/libmpdec/fourstep.h $(srcdir)/Modules/_decimal/libmpdec/io.h $(srcdir)/Modules/_decimal/libmpdec/mpalloc.h $(srcdir)/Modules/_decimal/libmpdec/mpdecimal.h $(srcdir)/Modules/_decimal/libmpdec/numbertheory.h $(srcdir)/Modules/_decimal/libmpdec/sixstep.h $(srcdir)/Modules/_decimal/libmpdec/transpose.h $(srcdir)/Modules/_decimal/libmpdec/typearith.h $(srcdir)/Modules/_decimal/libmpdec/umodarith.h
2414+ MODULE__DECIMAL_DEPS=$(srcdir)/Modules/_decimal/docstrings.h $(LIBMPDEC_HEADERS) @LIBMPDEC_INTERNAL@
23172415MODULE__ELEMENTTREE_DEPS=$(srcdir)/Modules/expat/ascii.h $(srcdir)/Modules/expat/asciitab.h $(srcdir)/Modules/expat/expat.h $(srcdir)/Modules/expat/expat_config.h $(srcdir)/Modules/expat/expat_external.h $(srcdir)/Modules/expat/internal.h $(srcdir)/Modules/expat/latin1tab.h $(srcdir)/Modules/expat/utf8tab.h $(srcdir)/Modules/expat/xmlparse.c $(srcdir)/Modules/expat/xmlrole.c $(srcdir)/Modules/expat/xmlrole.h $(srcdir)/Modules/expat/xmltok.c $(srcdir)/Modules/expat/xmltok.h $(srcdir)/Modules/expat/xmltok_impl.h $(srcdir)/Modules/pyexpat.c
23182416MODULE__HASHLIB_DEPS=$(srcdir)/Modules/hashlib.h
23192417MODULE__IO_DEPS=$(srcdir)/Modules/_io/_iomodule.h
0 commit comments