mirror of
https://github.com/python/cpython.git
synced 2025-10-24 18:33:49 +00:00
Critical sections are helpers to replace the global interpreter lock with finer grained locking. They provide similar guarantees to the GIL and avoid the deadlock risk that plain locking involves. Critical sections are implicitly ended whenever the GIL would be released. They are resumed when the GIL would be acquired. Nested critical sections behave as if the sections were interleaved.
175 lines
7.7 KiB
Makefile
175 lines
7.7 KiB
Makefile
# -*- makefile -*-
|
|
#
|
|
# This file is autogenerated from Modules/Setup.stdlib.in.
|
|
#
|
|
|
|
# The file is not used by default yet. For testing do:
|
|
#
|
|
# ln -sfr Modules/Setup.stdlib Modules/Setup.local
|
|
#
|
|
|
|
# * @MODULE_{NAME}_TRUE@ is removed when configure detects all build
|
|
# dependencies for a module. Otherwise the template variable is replaced
|
|
# by a comment "#" and the module is skipped.
|
|
# * Module lines without any compiler and linker flags automatically use
|
|
# $(MODULE_{NAME}_CFLAGS) and $(MODULE_{NAME}_LDFLAGS). These flags are
|
|
# generated by PY_STDLIB_MOD macro.
|
|
# * All source files automatically depend on $(PYTHON_HEADERS) and
|
|
# $(MODULE_{NAME}_DEPS).
|
|
#
|
|
# See Modules/Setup and Modules/makesetup
|
|
#
|
|
|
|
|
|
# Build modules statically or as shared extensions
|
|
# *shared* / *static*
|
|
*@MODULE_BUILDTYPE@*
|
|
|
|
|
|
############################################################################
|
|
# Modules that should always be present (POSIX and Windows):
|
|
@MODULE_ARRAY_TRUE@array arraymodule.c
|
|
@MODULE__ASYNCIO_TRUE@_asyncio _asynciomodule.c
|
|
@MODULE__BISECT_TRUE@_bisect _bisectmodule.c
|
|
@MODULE__CONTEXTVARS_TRUE@_contextvars _contextvarsmodule.c
|
|
@MODULE__CSV_TRUE@_csv _csv.c
|
|
@MODULE__HEAPQ_TRUE@_heapq _heapqmodule.c
|
|
@MODULE__JSON_TRUE@_json _json.c
|
|
@MODULE__LSPROF_TRUE@_lsprof _lsprof.c rotatingtree.c
|
|
@MODULE__OPCODE_TRUE@_opcode _opcode.c
|
|
@MODULE__PICKLE_TRUE@_pickle _pickle.c
|
|
@MODULE__QUEUE_TRUE@_queue _queuemodule.c
|
|
@MODULE__RANDOM_TRUE@_random _randommodule.c
|
|
@MODULE__STRUCT_TRUE@_struct _struct.c
|
|
@MODULE__XXSUBINTERPRETERS_TRUE@_xxsubinterpreters _xxsubinterpretersmodule.c
|
|
@MODULE__XXINTERPCHANNELS_TRUE@_xxinterpchannels _xxinterpchannelsmodule.c
|
|
@MODULE__ZONEINFO_TRUE@_zoneinfo _zoneinfo.c
|
|
|
|
# needs libm
|
|
@MODULE_MATH_TRUE@math mathmodule.c
|
|
@MODULE_CMATH_TRUE@cmath cmathmodule.c
|
|
@MODULE__STATISTICS_TRUE@_statistics _statisticsmodule.c
|
|
|
|
# needs libm and on some platforms librt
|
|
@MODULE__DATETIME_TRUE@_datetime _datetimemodule.c
|
|
|
|
# _decimal uses libmpdec
|
|
# either static libmpdec.a from Modules/_decimal/libmpdec or libmpdec.so
|
|
# with ./configure --with-system-libmpdec
|
|
@MODULE__DECIMAL_TRUE@_decimal _decimal/_decimal.c
|
|
|
|
# compression libs and binascii (optional CRC32 from zlib)
|
|
# bindings need -lbz2, -lz, or -llzma, respectively
|
|
@MODULE_BINASCII_TRUE@binascii binascii.c
|
|
@MODULE__BZ2_TRUE@_bz2 _bz2module.c
|
|
@MODULE__LZMA_TRUE@_lzma _lzmamodule.c
|
|
@MODULE_ZLIB_TRUE@zlib zlibmodule.c
|
|
|
|
# dbm/gdbm
|
|
# dbm needs either libndbm, libgdbm_compat, or libdb 5.x
|
|
@MODULE__DBM_TRUE@_dbm _dbmmodule.c
|
|
# gdbm module needs -lgdbm
|
|
@MODULE__GDBM_TRUE@_gdbm _gdbmmodule.c
|
|
|
|
# needs -lreadline or -ledit, sometimes termcap, termlib, or tinfo
|
|
@MODULE_READLINE_TRUE@readline readline.c
|
|
|
|
# hashing builtins, can be disabled with --without-builtin-hashlib-hashes
|
|
@MODULE__MD5_TRUE@_md5 md5module.c -I$(srcdir)/Modules/_hacl/include _hacl/Hacl_Hash_MD5.c -D_BSD_SOURCE -D_DEFAULT_SOURCE
|
|
@MODULE__SHA1_TRUE@_sha1 sha1module.c -I$(srcdir)/Modules/_hacl/include _hacl/Hacl_Hash_SHA1.c -D_BSD_SOURCE -D_DEFAULT_SOURCE
|
|
@MODULE__SHA2_TRUE@_sha2 sha2module.c -I$(srcdir)/Modules/_hacl/include Modules/_hacl/libHacl_Hash_SHA2.a
|
|
@MODULE__SHA3_TRUE@_sha3 sha3module.c -I$(srcdir)/Modules/_hacl/include _hacl/Hacl_Hash_SHA3.c -D_BSD_SOURCE -D_DEFAULT_SOURCE
|
|
@MODULE__BLAKE2_TRUE@_blake2 _blake2/blake2module.c _blake2/blake2b_impl.c _blake2/blake2s_impl.c
|
|
|
|
############################################################################
|
|
# XML and text
|
|
|
|
# pyexpat module uses libexpat
|
|
# either static libexpat.a from Modules/expat or libexpat.so with
|
|
# ./configure --with-system-expat
|
|
@MODULE_PYEXPAT_TRUE@pyexpat pyexpat.c
|
|
|
|
# _elementtree libexpat via CAPI hook in pyexpat.
|
|
@MODULE__ELEMENTTREE_TRUE@_elementtree _elementtree.c
|
|
|
|
@MODULE__CODECS_CN_TRUE@_codecs_cn cjkcodecs/_codecs_cn.c
|
|
@MODULE__CODECS_HK_TRUE@_codecs_hk cjkcodecs/_codecs_hk.c
|
|
@MODULE__CODECS_ISO2022_TRUE@_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
|
|
@MODULE__CODECS_JP_TRUE@_codecs_jp cjkcodecs/_codecs_jp.c
|
|
@MODULE__CODECS_KR_TRUE@_codecs_kr cjkcodecs/_codecs_kr.c
|
|
@MODULE__CODECS_TW_TRUE@_codecs_tw cjkcodecs/_codecs_tw.c
|
|
@MODULE__MULTIBYTECODEC_TRUE@_multibytecodec cjkcodecs/multibytecodec.c
|
|
@MODULE_UNICODEDATA_TRUE@unicodedata unicodedata.c
|
|
|
|
############################################################################
|
|
# Modules with some UNIX dependencies
|
|
#
|
|
|
|
@MODULE_FCNTL_TRUE@fcntl fcntlmodule.c
|
|
@MODULE_GRP_TRUE@grp grpmodule.c
|
|
@MODULE_MMAP_TRUE@mmap mmapmodule.c
|
|
# needs sys/soundcard.h or linux/soundcard.h (Linux, FreeBSD)
|
|
@MODULE__POSIXSUBPROCESS_TRUE@_posixsubprocess _posixsubprocess.c
|
|
@MODULE_RESOURCE_TRUE@resource resource.c
|
|
@MODULE_SELECT_TRUE@select selectmodule.c
|
|
@MODULE__SOCKET_TRUE@_socket socketmodule.c
|
|
@MODULE_SYSLOG_TRUE@syslog syslogmodule.c
|
|
@MODULE_TERMIOS_TRUE@termios termios.c
|
|
|
|
# multiprocessing
|
|
@MODULE__POSIXSHMEM_TRUE@_posixshmem _multiprocessing/posixshmem.c
|
|
@MODULE__MULTIPROCESSING_TRUE@_multiprocessing _multiprocessing/multiprocessing.c _multiprocessing/semaphore.c
|
|
|
|
|
|
############################################################################
|
|
# Modules with third party dependencies
|
|
#
|
|
|
|
# needs -lffi and -ldl
|
|
@MODULE__CTYPES_TRUE@_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c @MODULE__CTYPES_MALLOC_CLOSURE@
|
|
|
|
# needs -lncurses[w], sometimes -ltermcap/tinfo
|
|
@MODULE__CURSES_TRUE@_curses _cursesmodule.c
|
|
# needs -lncurses[w] and -lpanel[w]
|
|
@MODULE__CURSES_PANEL_TRUE@_curses_panel _curses_panel.c
|
|
|
|
@MODULE__SQLITE3_TRUE@_sqlite3 _sqlite/blob.c _sqlite/connection.c _sqlite/cursor.c _sqlite/microprotocols.c _sqlite/module.c _sqlite/prepare_protocol.c _sqlite/row.c _sqlite/statement.c _sqlite/util.c
|
|
|
|
# needs -lssl and -lcrypt
|
|
@MODULE__SSL_TRUE@_ssl _ssl.c
|
|
# needs -lcrypt
|
|
@MODULE__HASHLIB_TRUE@_hashlib _hashopenssl.c
|
|
|
|
# Linux: -luuid, BSD/AIX: libc's uuid_create()
|
|
@MODULE__UUID_TRUE@_uuid _uuidmodule.c
|
|
|
|
@MODULE__TKINTER_TRUE@_tkinter _tkinter.c tkappinit.c
|
|
|
|
############################################################################
|
|
# macOS specific modules
|
|
|
|
# _scproxy needs SystemConfiguration and CoreFoundation framework
|
|
@MODULE__SCPROXY_TRUE@_scproxy _scproxy.c
|
|
|
|
|
|
############################################################################
|
|
# Test modules
|
|
|
|
@MODULE_XXSUBTYPE_TRUE@xxsubtype xxsubtype.c
|
|
@MODULE__XXTESTFUZZ_TRUE@_xxtestfuzz _xxtestfuzz/_xxtestfuzz.c _xxtestfuzz/fuzzer.c
|
|
@MODULE__TESTBUFFER_TRUE@_testbuffer _testbuffer.c
|
|
@MODULE__TESTINTERNALCAPI_TRUE@_testinternalcapi _testinternalcapi.c _testinternalcapi/test_lock.c _testinternalcapi/pytime.c _testinternalcapi/set.c _testinternalcapi/test_critical_sections.c
|
|
@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c _testcapi/vectorcall.c _testcapi/vectorcall_limited.c _testcapi/heaptype.c _testcapi/abstract.c _testcapi/bytearray.c _testcapi/bytes.c _testcapi/unicode.c _testcapi/dict.c _testcapi/set.c _testcapi/list.c _testcapi/tuple.c _testcapi/getargs.c _testcapi/datetime.c _testcapi/docstring.c _testcapi/mem.c _testcapi/watchers.c _testcapi/long.c _testcapi/float.c _testcapi/complex.c _testcapi/numbers.c _testcapi/structmember.c _testcapi/exceptions.c _testcapi/code.c _testcapi/buffer.c _testcapi/pyatomic.c _testcapi/pyos.c _testcapi/file.c _testcapi/codec.c _testcapi/immortal.c _testcapi/heaptype_relative.c _testcapi/gc.c _testcapi/sys.c
|
|
@MODULE__TESTCLINIC_TRUE@_testclinic _testclinic.c
|
|
@MODULE__TESTCLINIC_LIMITED_TRUE@_testclinic_limited _testclinic_limited.c
|
|
|
|
# Some testing modules MUST be built as shared libraries.
|
|
*shared*
|
|
@MODULE__TESTIMPORTMULTIPLE_TRUE@_testimportmultiple _testimportmultiple.c
|
|
@MODULE__TESTMULTIPHASE_TRUE@_testmultiphase _testmultiphase.c
|
|
@MODULE__TESTMULTIPHASE_TRUE@_testsinglephase _testsinglephase.c
|
|
@MODULE__CTYPES_TEST_TRUE@_ctypes_test _ctypes/_ctypes_test.c
|
|
|
|
# Limited API template modules; must be built as shared modules.
|
|
@MODULE_XXLIMITED_TRUE@xxlimited xxlimited.c
|
|
@MODULE_XXLIMITED_35_TRUE@xxlimited_35 xxlimited_35.c
|