diff --git a/Modules/Setup b/Modules/Setup index 2e44ec24dac..a4440dfb6fc 100644 --- a/Modules/Setup +++ b/Modules/Setup @@ -62,9 +62,9 @@ # *noconfig* has the same effect as *shared*.) # # NOTE: As a standard policy, as many modules as can be supported by a -# platform should be present. The distribution comes with all modules -# enabled that are supported by most platforms and don't require you -# to ftp sources from elsewhere. +# platform should be listed below. The distribution comes with all +# modules enabled that are supported by most platforms and don't +# require you to download sources from elsewhere. # Some special rules to define PYTHONPATH. @@ -94,58 +94,40 @@ COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH) PYTHONPATH=$(COREPYTHONPATH) -# The modules listed here can't be built as shared libraries for -# various reasons; therefore they are listed here instead of in the -# normal order. +# --- +# Built-in modules required to get a functioning interpreter; +# cannot be built as shared! -# This only contains the minimal set of modules required to run the -# setup.py script in the root of the Python source tree. - -posix -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.c # posix (UNIX) system calls -errno errnomodule.c # posix (UNIX) errno values -pwd pwdmodule.c # this is needed to find out the user's home dir - # if $HOME is not set -_sre -DPy_BUILD_CORE_BUILTIN _sre.c # Fredrik Lundh's new regular expressions -_codecs _codecsmodule.c # access to the builtin codecs and codec registry -_weakref _weakref.c # weak references -_functools -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _functoolsmodule.c # Tools for working with functions and callable objects -_operator -DPy_BUILD_CORE_BUILTIN _operator.c # operator.add() and similar goodies -_collections _collectionsmodule.c # Container types -_abc -DPy_BUILD_CORE_BUILTIN _abc.c # Abstract base classes -itertools itertoolsmodule.c # Functions creating iterators for efficient looping -atexit atexitmodule.c # Register functions to be run at interpreter-shutdown -_signal -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal signalmodule.c -_stat _stat.c # stat.h interface -time -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal timemodule.c # -lm # time operations and variables -_thread -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _threadmodule.c # low-level threading interface - -# access to ISO C locale support -_locale -DPy_BUILD_CORE_BUILTIN _localemodule.c # -lintl - -# Standard I/O baseline +_collections _collectionsmodule.c +_abc -DPy_BUILD_CORE_BUILTIN _abc.c +_codecs _codecsmodule.c +_functools -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _functoolsmodule.c _io -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io _io/_iomodule.c _io/iobase.c _io/fileio.c _io/bytesio.c _io/bufferedio.c _io/textio.c _io/stringio.c - -# faulthandler module +_locale -DPy_BUILD_CORE_BUILTIN _localemodule.c # -lintl +_operator -DPy_BUILD_CORE_BUILTIN _operator.c +_signal -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal signalmodule.c +_sre -DPy_BUILD_CORE_BUILTIN _sre.c +_stat _stat.c +_symtable symtablemodule.c # setup.py can't track the .h file that _symtable depends on. +_thread -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _threadmodule.c +_tracemalloc _tracemalloc.c # See bpo-35053 as to why this is built in. +_weakref _weakref.c +atexit atexitmodule.c +errno errnomodule.c faulthandler faulthandler.c +itertools itertoolsmodule.c +posix -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.c +pwd pwdmodule.c +time -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal timemodule.c -# debug tool to trace memory blocks allocated by Python -# -# bpo-35053: The module must be builtin since _Py_NewReference() -# can call _PyTraceMalloc_NewReference(). -_tracemalloc _tracemalloc.c +# --- # The rest of the modules listed in this file are all commented out by # default. Usually they can be detected and built as dynamically -# loaded modules by the new setup.py script added in Python 2.1. If -# you're on a platform that doesn't support dynamic loading, want to -# compile modules statically into the Python binary, or need to -# specify some odd set of compiler switches, you can uncomment the -# appropriate lines below. - -# ====================================================================== - -# The Python symtable module depends on .h files that setup.py doesn't track -_symtable symtablemodule.c +# loaded modules by setup.py. If you're on a platform that doesn't +# support dynamic loading, want to compile modules statically into the +# Python binary, or need to specify some odd set of compiler switches, +# you can uncomment the appropriate lines below. # Uncommenting the following line tells makesetup that all following # modules are to be built as shared libraries (see above for more @@ -153,6 +135,76 @@ _symtable symtablemodule.c #*shared* +# Modules that should always be present (non UNIX dependent): + +#_asyncio _asynciomodule.c +#_bisect _bisectmodule.c +#_blake2 -DPy_BUILD_CORE_BUILTIN _blake2/blake2module.c _blake2/blake2b_impl.c _blake2/blake2s_impl.c +#_codecs_cn cjkcodecs/_codecs_cn.c +#_codecs_hk cjkcodecs/_codecs_hk.c +#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c +#_codecs_jp cjkcodecs/_codecs_jp.c +#_codecs_kr cjkcodecs/_codecs_kr.c +#_codecs_tw cjkcodecs/_codecs_tw.c +#_contextvars _contextvarsmodule.c +#_csv _csv.c +#_datetime _datetimemodule.c +#_elementtree -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI -I$(srcdir)/Modules/expat _elementtree.c +#_heapq -DPy_BUILD_CORE_MODULE _heapqmodule.c +#_json -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _json.c +#_lsprof _lsprof.c rotatingtree.c +#_md5 -DPy_BUILD_CORE_BUILTIN md5module.c +#_multibytecodec cjkcodecs/multibytecodec.c +#_opcode _opcode.c +#_pickle -DPy_BUILD_CORE_MODULE _pickle.c +#_posixsubprocess -DPy_BUILD_CORE_BUILTIN _posixsubprocess.c +#_queue -DPy_BUILD_CORE_MODULE _queuemodule.c +#_random -DPy_BUILD_CORE_MODULE _randommodule.c +#_sha1 -DPy_BUILD_CORE_BUILTIN sha1module.c +#_sha256 -DPy_BUILD_CORE_BUILTIN sha256module.c +#_sha512 -DPy_BUILD_CORE_BUILTIN sha512module.c +#_sha3 -DPy_BUILD_CORE_BUILTIN _sha3/sha3module.c +#_statistics _statisticsmodule.c +#_struct -DPy_BUILD_CORE_MODULE _struct.c +#_typing _typingmodule.c +#_zoneinfo -DPy_BUILD_CORE_MODULE _zoneinfo.c +#array -DPy_BUILD_CORE_MODULE arraymodule.c +#audioop audioop.c +#binascii -DPy_BUILD_CORE_MODULE binascii.c +#cmath -DPy_BUILD_CORE_MODULE cmathmodule.c _math.c # -lm +#math -DPy_BUILD_CORE_MODULE mathmodule.c _math.c # -lm +#pyexpat -DHAVE_EXPAT_CONFIG_H -DXML_POOR_ENTROPY -DUSE_PYEXPAT_CAPI -I$(srcdir)/Modules/expat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c +#unicodedata -DPy_BUILD_CORE_BUILTIN unicodedata.c + +# Modules with some UNIX dependencies -- on by default: +# (If you have a really backward UNIX, select and socket may not be +# supported...) + +#_socket socketmodule.c # socket(2) +#fcntl fcntlmodule.c # fcntl(2) and ioctl(2) +#grp grpmodule.c # grp(3) +#mmap mmapmodule.c # Also works on win32. +#ossaudiodev ossaudiodev.c +#select selectmodule.c # select(2); not on ancient System V +#spwd spwdmodule.c # spwd(3) +#syslog syslogmodule.c + +# Some more UNIX dependent modules -- off by default, since these +# are not supported by all UNIX systems: + +#_crypt _cryptmodule.c # -lcrypt # crypt(3); breaks many builds. +#nis nismodule.c -lnsl # Sun yellow pages -- not everywhere +#termios termios.c # Steen Lumholt's termios module +#resource resource.c # Jeremy Hylton's rlimit interface + +# Modules that require external libraries. + +#_bz2 _bz2module.c -lbz2 +#_dbm _dbmmodule.c # -lndbm # dbm(3) +#_gdbm -I/usr/local/include -L/usr/local/lib -lgdbm _gdbmmodule.c +#_lzma _lzmamodule.c -llzma +#zlib -I$(prefix)/include -L$(exec_prefix)/lib -lz zlibmodule.c + # GNU readline. Unlike previous Python incarnations, GNU readline is # now incorporated in an optional module, configured in the Setup file # instead of by a configure script switch. You may have to insert a @@ -163,57 +215,11 @@ _symtable symtablemodule.c #readline readline.c -lreadline -ltermcap +# Set OpenSSL when not using the system copy found by ./configure. +#OPENSSL=/path/to/openssl/directory -# Modules that should always be present (non UNIX dependent): - -#array -DPy_BUILD_CORE_MODULE arraymodule.c # array objects -#cmath cmathmodule.c _math.c -DPy_BUILD_CORE_MODULE # -lm # complex math library functions -#math mathmodule.c _math.c -DPy_BUILD_CORE_MODULE # -lm # math library functions, e.g. sin() -#_contextvars _contextvarsmodule.c # Context Variables -#_struct -DPy_BUILD_CORE_MODULE _struct.c # binary structure packing/unpacking -#_testcapi _testcapimodule.c # Python C API test module; CANNOT be statically compiled! -#_testinternalcapi _testinternalcapi.c -I$(srcdir)/Include/internal -DPy_BUILD_CORE_MODULE # Python internal C API test module -#_random _randommodule.c -DPy_BUILD_CORE_MODULE # Random number generator -#_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator -#_pickle -DPy_BUILD_CORE_MODULE _pickle.c # pickle accelerator -#_datetime _datetimemodule.c # datetime accelerator -#_zoneinfo _zoneinfo.c -DPy_BUILD_CORE_MODULE # zoneinfo accelerator -#_bisect _bisectmodule.c # Bisection algorithms -#_heapq _heapqmodule.c -DPy_BUILD_CORE_MODULE # Heap queue algorithm -#_asyncio _asynciomodule.c # Fast asyncio Future -#_json -I$(srcdir)/Include/internal -DPy_BUILD_CORE_BUILTIN _json.c # _json speedups -#_statistics _statisticsmodule.c # statistics accelerator -#_typing _typingmodule.c # typing accelerator -#_lsprof _lsprof.c rotatingtree.c # cProfile accelerators -#_opcode _opcode.c -#_queue _queuemodule.c -DPy_BUILD_CORE_MODULE - -#unicodedata unicodedata.c -DPy_BUILD_CORE_BUILTIN # static Unicode character database - - -# Modules with some UNIX dependencies -- on by default: -# (If you have a really backward UNIX, select and socket may not be -# supported...) - -#fcntl fcntlmodule.c # fcntl(2) and ioctl(2) -#spwd spwdmodule.c # spwd(3) -#grp grpmodule.c # grp(3) -#select selectmodule.c # select(2); not on ancient System V -#ossaudiodev ossaudiodev.c - -# Memory-mapped files (also works on Win32). -#mmap mmapmodule.c - -# CSV file helper -#_csv _csv.c - -# Socket module helper for socket(2) -#_socket socketmodule.c - -# Socket module helper for SSL support; you must comment out the other -# socket line above, and edit the OPENSSL variable: -# OPENSSL=/path/to/openssl/directory -# _ssl _ssl.c \ +# To dynamically link OpenSSL: +#_ssl _ssl.c \ # -I$(OPENSSL)/include -L$(OPENSSL)/lib \ # -lssl -lcrypto \ # -DPy_BUILD_CORE_BUILTIN @@ -223,7 +229,7 @@ _symtable symtablemodule.c # -DPy_BUILD_CORE_BUILTIN # To statically link OpenSSL: -# _ssl _ssl.c \ +#_ssl _ssl.c \ # -I$(OPENSSL)/include -L$(OPENSSL)/lib \ # -l:libssl.a -Wl,--exclude-libs,libssl.a \ # -l:libcrypto.a -Wl,--exclude-libs,libcrypto.a \ @@ -233,52 +239,6 @@ _symtable symtablemodule.c # -l:libcrypto.a -Wl,--exclude-libs,libcrypto.a \ # -DPy_BUILD_CORE_BUILTIN -# The crypt module is now disabled by default because it breaks builds -# on many systems (where -lcrypt is needed), e.g. Linux (I believe). - -#_crypt _cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems - - -# Some more UNIX dependent modules -- off by default, since these -# are not supported by all UNIX systems: - -#nis nismodule.c -lnsl # Sun yellow pages -- not everywhere -#termios termios.c # Steen Lumholt's termios module -#resource resource.c # Jeremy Hylton's rlimit interface - -#_posixsubprocess -DPy_BUILD_CORE_BUILTIN _posixsubprocess.c # POSIX subprocess module helper - -# Multimedia modules -- off by default. -# These don't work for 64-bit platforms!!! -# #993173 says audioop works on 64-bit platforms, though. -# These represent audio samples or images as strings: - -#audioop audioop.c # Operations on audio samples - - -# Note that the _md5 and _sha modules are normally only built if the -# system does not have the OpenSSL libs containing an optimized version. - -# The _md5 module implements the RSA Data Security, Inc. MD5 -# Message-Digest Algorithm, described in RFC 1321. - -#_md5 md5module.c -DPy_BUILD_CORE_BUILTIN - - -# The _sha module implements the SHA checksum algorithms. -# (NIST's Secure Hash Algorithms.) -#_sha1 sha1module.c -DPy_BUILD_CORE_BUILTIN -#_sha256 sha256module.c -DPy_BUILD_CORE_BUILTIN -#_sha512 sha512module.c -DPy_BUILD_CORE_BUILTIN -#_sha3 _sha3/sha3module.c -DPy_BUILD_CORE_BUILTIN - -# _blake module -#_blake2 _blake2/blake2module.c _blake2/blake2b_impl.c _blake2/blake2s_impl.c -DPy_BUILD_CORE_BUILTIN - -# Compression -#_bz2 _bz2module.c -lbz2 -#_lzma _lzmamodule.c -llzma - # The _tkinter module. # # The command for _tkinter is long and site specific. Please @@ -322,75 +282,34 @@ _symtable symtablemodule.c # *** Always uncomment this; X11 libraries to link with: # -lX11 -# Lance Ellinghaus's syslog module -#syslog syslogmodule.c # syslog daemon interface - - # Curses support, requiring the System V version of curses, often # provided by the ncurses library. e.g. on Linux, link with -lncurses # instead of -lcurses). -#_curses _cursesmodule.c -lcurses -ltermcap -DPy_BUILD_CORE_MODULE +#_curses -DPy_BUILD_CORE_MODULE -lcurses -ltermcap _cursesmodule.c + # Wrapper for the panel library that's part of ncurses and SYSV curses. -#_curses_panel _curses_panel.c -lpanel -lncurses +#_curses_panel -lpanel -lncurses _curses_panel.c +# Examples -# Modules that provide persistent dictionary-like semantics. You will -# probably want to arrange for at least one of them to be available on -# your machine, though none are defined by default because of library -# dependencies. The Python module dbm/__init__.py provides an -# implementation independent wrapper for these; dbm/dumb.py provides -# similar functionality (but slower of course) implemented in Python. - -#_dbm _dbmmodule.c # dbm(3) may require -lndbm or similar - -# Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: - -#_gdbm _gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm - - -# Helper module for various ascii-encoders -#binascii binascii.c -DPy_BUILD_CORE_MODULE - -# Andrew Kuchling's zlib module. -# This require zlib 1.1.3 (or later). -# See http://www.gzip.org/zlib/ -#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz - -# Interface to the Expat XML parser -# More information on Expat can be found at www.libexpat.org. -# -#pyexpat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DXML_POOR_ENTROPY -DUSE_PYEXPAT_CAPI - -# Hye-Shik Chang's CJKCodecs - -# multibytecodec is required for all the other CJK codec modules -#_multibytecodec cjkcodecs/multibytecodec.c - -#_codecs_cn cjkcodecs/_codecs_cn.c -#_codecs_hk cjkcodecs/_codecs_hk.c -#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c -#_codecs_jp cjkcodecs/_codecs_jp.c -#_codecs_kr cjkcodecs/_codecs_kr.c -#_codecs_tw cjkcodecs/_codecs_tw.c - -# Example -- included for reference only: -# xx xxmodule.c - -# Another example -- the 'xxsubtype' module shows C-level subtyping in action -xxsubtype xxsubtype.c - -# Limited API examples +#xx xxmodule.c #xxlimited xxlimited.c #xxlimited_35 xxlimited_35.c +xxsubtype xxsubtype.c # Required for the test suite to pass! + +# Testing -# For testing #_xxsubinterpreters _xxsubinterpretersmodule.c #_xxtestfuzz _xxtestfuzz/_xxtestfuzz.c _xxtestfuzz/fuzzer.c #_testbuffer _testbuffer.c +#_testcapi _testcapimodule.c # CANNOT be statically compiled! #_testimportmultiple _testimportmultiple.c +#_testinternalcapi -DPy_BUILD_CORE_MODULE -I$(srcdir)/Include/internal _testinternalcapi.c #_testmultiphase _testmultiphase.c + +# --- # Uncommenting the following line tells makesetup that all following modules # are not built (see above for more detail). #