diff --git a/.gitignore b/.gitignore index e261d6c9971358..0831c58d367489 100644 --- a/.gitignore +++ b/.gitignore @@ -76,6 +76,7 @@ Misc/python-embed.pc Misc/python-config.sh Modules/Setup.config Modules/Setup.local +Modules/Setup.stdlib Modules/config.c Modules/ld_so_aix Programs/_freeze_module diff --git a/Makefile.pre.in b/Makefile.pre.in index 1535cabdade9c2..798a2000dab662 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -207,6 +207,12 @@ OPENSSL_LIBS=@OPENSSL_LIBS@ OPENSSL_LDFLAGS=@OPENSSL_LDFLAGS@ OPENSSL_RPATH=@OPENSSL_RPATH@ +# Module compiler and linker flags +# MODULE_EGG=yes # yes, missing, disabled, n/a +# MODULE_EGG_CFLAGS= +# MODULE_EGG_LDFLAGS= +@MODULE_BLOCK@ + # Default zoneinfo.TZPATH. Added here to expose it in sysconfig.get_config_var TZPATH=@TZPATH@ @@ -283,6 +289,9 @@ COVERAGE_INFO= $(abs_builddir)/coverage.info COVERAGE_REPORT=$(abs_builddir)/lcov-report COVERAGE_REPORT_OPTIONS=--no-branch-coverage --title "CPython lcov report" +# Internal static libraries +LIBMPDEC_A= Modules/_decimal/libmpdec/libmpdec.a +LIBEXPAT_A= Modules/expat/libexpat.a # === Definitions added by makesetup === @@ -535,8 +544,6 @@ LIBMPDEC_HEADERS= \ $(srcdir)/Modules/_decimal/libmpdec/typearith.h \ $(srcdir)/Modules/_decimal/libmpdec/umodarith.h -LIBMPDEC_A= Modules/_decimal/libmpdec/libmpdec.a - ########################################################################## # pyexpat's expat library @@ -562,8 +569,6 @@ LIBEXPAT_HEADERS= \ Modules/expat/xmltok.h \ Modules/expat/xmltok_impl.h -LIBEXPAT_A= Modules/expat/libexpat.a - ######################################################################### # Rules diff --git a/Modules/Setup b/Modules/Setup index 608866d9cedd53..435517de071525 100644 --- a/Modules/Setup +++ b/Modules/Setup @@ -42,6 +42,15 @@ # You can also use any Make variable that is detected by configure and # defined in Makefile.pre.in, e.g. OpenSSL flags $(OPENSSL_INCLUDES). # +# Rules generated by makesetup use additional variables: +# +# - All source file rules have a dependency on $(PYTHON_HEADERS) and on +# optional variable $(MODULES_{mod_upper}_DEPS). +# - If no and no arguments are given, then makesetup +# defaults to $(MODULES_{mod_upper}_CFLAGS) cppargs and +# $(MODULES_{mod_upper}_LDFLAGS) libraries. The variables are typically +# defined by configure. +# # The build process works like this: # # 1. Build all modules that are declared as static in Modules/Setup, @@ -153,7 +162,7 @@ time timemodule.c #_heapq _heapqmodule.c #_json _json.c #_lsprof _lsprof.c rotatingtree.c -#_multiprocessing -I$(srcdir)/Modules/_multiprocessing _multiprocessing/multiprocessing.c _multiprocessing/semaphore.c +#_multiprocessing _multiprocessing/multiprocessing.c _multiprocessing/semaphore.c #_opcode _opcode.c #_pickle _pickle.c #_queue _queuemodule.c @@ -196,7 +205,7 @@ time timemodule.c # Modules with some UNIX dependencies #_posixsubprocess _posixsubprocess.c -#_posixshmem -I$(srcdir)/Modules/_multiprocessing _multiprocessing/posixshmem.c -lrt +#_posixshmem _multiprocessing/posixshmem.c #fcntl fcntlmodule.c #grp grpmodule.c #ossaudiodev ossaudiodev.c @@ -207,28 +216,29 @@ time timemodule.c # Modules with UNIX dependencies that require external libraries -#_crypt _cryptmodule.c -lcrypt -#nis nismodule.c -I/usr/include/tirpc -lnsl -ltirpc +#_crypt _cryptmodule.c +#nis nismodule.c # Modules that require external libraries. -#_bz2 _bz2module.c -lbz2 -#_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c -ldl -lffi -DHAVE_FFI_PREP_CIF_VAR -DHAVE_FFI_PREP_CLOSURE_LOC -DHAVE_FFI_CLOSURE_ALLOC +#_bz2 _bz2module.c +#_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c # The _dbm module supports NDBM, GDBM with compat module, and Berkeley DB. #_dbm _dbmmodule.c -lgdbm_compat -DUSE_GDBM_COMPAT -#_gdbm _gdbmmodule.c -lgdbm -#_lzma _lzmamodule.c -llzma -#_sqlite3 _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 -lsqlite3 -#_uuid _uuidmodule.c -luuid -#zlib zlibmodule.c -lz +#_gdbm _gdbmmodule.c +#_lzma _lzmamodule.c +#_sqlite3 _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 +#_uuid _uuidmodule.c +#zlib zlibmodule.c # The readline module also supports libeditline (-leditline). # Some systems may require -ltermcap or -ltermlib. -#readline readline.c -lreadline -ltermcap +#readline readline.c +#*shared* # OpenSSL bindings -#_ssl _ssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) $(OPENSSL_LIBS) -#_hashlib _hashopenssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) -lcrypto +#_ssl _ssl.c +#_hashlib _hashopenssl.c # To statically link OpenSSL: # _ssl _ssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) \ @@ -248,8 +258,10 @@ time timemodule.c # done by the shell's "read" command and it may not be implemented on # every system. +#_tkinter _tkinter.c tkappinit.c + # *** Always uncomment this (leave the leading underscore in!): -#_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT $(TCLTK_INCLUDES) $(TCLTK_LIBS) \ +# _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT $(TCLTK_INCLUDES) $(TCLTK_LIBS) \ # *** Uncomment and edit to reflect where your Tcl/Tk libraries are: # -L/usr/local/lib \ # *** Uncomment and edit to reflect where your Tcl/Tk headers are: @@ -279,11 +291,11 @@ time timemodule.c # -lX11 # Some system have -lcurses -#_curses -lncurses -lncursesw -ltermcap _cursesmodule.c -#_curses_panel -lpanel -lncurses _curses_panel.c +#_curses _cursesmodule.c +#_curses_panel _curses_panel.c # macOS specific modules -# _scproxy _scproxy.c -framework SystemConfiguration -framework CoreFoundation +# _scproxy _scproxy.c # Examples diff --git a/Modules/Setup.stdlib.in b/Modules/Setup.stdlib.in new file mode 100644 index 00000000000000..7d898ae090fde0 --- /dev/null +++ b/Modules/Setup.stdlib.in @@ -0,0 +1,190 @@ +# -*- makefile -*- +*shared* + +# Modules that should always be present (POSIX and Windows): + +@MODULE__ASYNCIO_TRUE@_asyncio _asynciomodule.c +@MODULE__BISECT_TRUE@_bisect _bisectmodule.c +@MODULE__CONTEXTVARS_TRUE@_contextvars _contextvarsmodule.c +@MODULE__CSV_TRUE@_csv _csv.c +# datetime needs -lrt for clock_gettime() on some platforms +@MODULE__DATETIME_TRUE@_datetime _datetimemodule.c +# _decimal needs libmpdec +@MODULE__DECIMAL_TRUE@_decimal _decimal/_decimal.c +@MODULE__HEAPQ_TRUE@_heapq _heapqmodule.c +@MODULE__JSON_TRUE@_json _json.c +@MODULE__LSPROF_TRUE@_lsprof _lsprof.c rotatingtree.c +# -I$(srcdir)/Modules/_multiprocessing +@MODULE__MULTIPROCESSING_TRUE@_multiprocessing _multiprocessing/multiprocessing.c _multiprocessing/semaphore.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__SOCKET_TRUE@_socket socketmodule.c +@MODULE__STATISTICS_TRUE@_statistics _statisticsmodule.c +@MODULE__STRUCT_TRUE@_struct _struct.c +@MODULE__TYPING_TRUE@_typing _typingmodule.c +@MODULE__ZONEINFO_TRUE@_zoneinfo _zoneinfo.c +@MODULE_ARRAY_TRUE@array arraymodule.c +@MODULE_AUDIOOP_TRUE@audioop audioop.c +@MODULE_BINASCII_TRUE@binascii binascii.c +@MODULE_CMATH_TRUE@cmath cmathmodule.c +@MODULE_MATH_TRUE@math mathmodule.c +@MODULE_MMAP_TRUE@mmap mmapmodule.c +@MODULE_SELECT_TRUE@select selectmodule.c + +# XML +# pyexpat module uses libexpat +@MODULE_PYEXPAT_TRUE@pyexpat pyexpat.c +# _elementtree module must not be linked with libexpat. It uses libexpat via +# CAPI hook in pyexpat +@MODULE__ELEMENTTREE_TRUE@_elementtree _elementtree.c + +# hashing builtins, can be disabled with --with-builtin-hashlib-hashes +@MODULE__BLAKE2_TRUE@_blake2 _blake2/blake2module.c _blake2/blake2b_impl.c _blake2/blake2s_impl.c +@MODULE__MD5_TRUE@_md5 md5module.c +@MODULE__SHA1_TRUE@_sha1 sha1module.c +@MODULE__SHA256_TRUE@_sha256 sha256module.c +@MODULE__SHA512_TRUE@_sha512 sha512module.c +@MODULE__SHA3_TRUE@_sha3 _sha3/sha3module.c + +# text encodings and unicode +@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__POSIXSUBPROCESS_TRUE@_posixsubprocess _posixsubprocess.c +# -I$(srcdir)/Modules/_multiprocessing -lrt +@MODULE__POSIXSHMEM_TRUE@_posixshmem _multiprocessing/posixshmem.c +# May need libbsd on AIX and BSD platforms +@MODULE_FCNTL_TRUE@fcntl fcntlmodule.c +# grp is not supported on VxWorks +@MODULE_GRP_TRUE@grp grpmodule.c +# needs sys/soundcard.h (Linux, FreeBSD) +@MODULE_OSSAUDIODEV_TRUE@ossaudiodev ossaudiodev.c +@MODULE_RESOURCE_TRUE@resource resource.c +# needs getspnam(), not supported on AIX, macOS +@MODULE_SPWD_TRUE@spwd spwdmodule.c +@MODULE_SYSLOG_TRUE@syslog syslogmodule.c +@MODULE_TERMIOS_TRUE@termios termios.c + +# Modules with UNIX dependencies that require external libraries + +# -lcrypt +#@MODULE__CRYPT_TRUE@_crypt _cryptmodule.c +# -I/usr/include/tirpc -lnsl -ltirpc +#@MODULE_NIS_TRUE@nis nismodule.c -I/usr/include/tirpc -lnsl -ltirpc + +# Modules that require external libraries. + +# compression libraries +# -lbz2 +@MODULE__BZ2_TRUE@_bz2 _bz2module.c +# -llzma +@MODULE__LZMA_TRUE@_lzma _lzmamodule.c +# -lz +@MODULE_ZLIB_TRUE@zlib zlibmodule.c + +# _uuid module requires -luuid on Linux +# BSD has uuid_create() in libc. +@MODULE__UUID_TRUE@_uuid _uuidmodule.c + +#@MODULE__CTYPES_TRUE@_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c -ldl -lffi -DHAVE_FFI_PREP_CIF_VAR -DHAVE_FFI_PREP_CLOSURE_LOC -DHAVE_FFI_CLOSURE_ALLOC +# The _dbm module supports NDBM, GDBM with compat module, and Berkeley DB. +#@MODULE__DBM_TRUE@_dbm _dbmmodule.c -lgdbm_compat -DUSE_GDBM_COMPAT +#@MODULE__GDBM_TRUE@_gdbm _gdbmmodule.c -lgdbm +#@MODULE__SQLITE3_TRUE@_sqlite3 _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 -lsqlite3 + +# Needs -lreadline -or -leditline. +# The readline module also supports libeditline (-leditline). +# Some systems may require -ltermcap or -ltermlib. +@MODULE_READLINE_TRUE@readline readline.c + +# OpenSSL bindings +# need libssl and libcrypto +@MODULE__SSL_TRUE@_ssl _ssl.c +@MODULE__HASHLIB_TRUE@_hashlib _hashopenssl.c + +# To statically link OpenSSL: +# _ssl _ssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) \ +# -l:libssl.a -Wl,--exclude-libs,libssl.a \ +# -l:libcrypto.a -Wl,--exclude-libs,libcrypto.a +# _hashlib _hashopenssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) \ +# -l:libcrypto.a -Wl,--exclude-libs,libcrypto.a + +# The _tkinter module. +# +# The command for _tkinter is long and site specific. Please +# uncomment and/or edit those parts as indicated. If you don't have a +# specific extension (e.g. Tix or BLT), leave the corresponding line +# commented out. (Leave the trailing backslashes in! If you +# experience strange errors, you may want to join all uncommented +# lines and remove the backslashes -- the backslash interpretation is +# done by the shell's "read" command and it may not be implemented on +# every system. + +# *** Always uncomment this (leave the leading underscore in!): +@MODULE__TKINTER_TRUE@_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT $(TCLTK_INCLUDES) $(TCLTK_LIBS) \ +# *** Uncomment and edit to reflect where your Tcl/Tk libraries are: +# -L/usr/local/lib \ +# *** Uncomment and edit to reflect where your Tcl/Tk headers are: +# -I/usr/local/include \ +# *** Uncomment and edit to reflect where your X11 header files are: +# -I/usr/X11R6/include \ +# *** Or uncomment this for Solaris: +# -I/usr/openwin/include \ +# *** Uncomment and edit for Tix extension only: +# -DWITH_TIX -ltix8.1.8.2 \ +# *** Uncomment and edit for BLT extension only: +# -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \ +# *** Uncomment and edit for PIL (TkImaging) extension only: +# (See http://www.pythonware.com/products/pil/ for more info) +# -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \ +# *** Uncomment and edit for TOGL extension only: +# -DWITH_TOGL togl.c \ +# *** Uncomment and edit to reflect where your X11 libraries are: +# -L/usr/X11R6/lib \ +# *** Or uncomment this for Solaris: +# -L/usr/openwin/lib \ +# *** Uncomment these for TOGL extension only: +# -lGL -lGLU -lXext -lXmu \ +# *** Uncomment for AIX: +# -lld \ +# *** Always uncomment this; X11 libraries to link with: +# -lX11 + +# Some system have -lcurses +#@MODULE__CURSES_TRUE@_curses -lncurses -lncursesw -ltermcap _cursesmodule.c +#@MODULE__CURSES_PANEL_TRUE@_curses_panel -lpanel -lncurses _curses_panel.c + +# macOS specific modules +# -framework SystemConfiguration -framework CoreFoundation +@MODULE__SCPROXY_TRUE@_scproxy _scproxy.c + +# Examples + +#@MODULE_XX_TRUE@xx xxmodule.c +@MODULE_XXLIMITED_TRUE@xxlimited xxlimited.c +@MODULE_XXLIMITED_35_TRUE@xxlimited_35 xxlimited_35.c + +# Testing + +@MODULE__XXSUBINTERPRETERS_TRUE@_xxsubinterpreters _xxsubinterpretersmodule.c +@MODULE__XXTESTFUZZ_TRUE@_xxtestfuzz _xxtestfuzz/_xxtestfuzz.c _xxtestfuzz/fuzzer.c +@MODULE__TESTBUFFER_TRUE@_testbuffer _testbuffer.c +@MODULE__TESTINTERNALCAPI_TRUE@_testinternalcapi _testinternalcapi.c + +# Some testing modules MUST be built as shared libraries. + +#*shared* +@MODULE__CTYPES_TEST_TRUE@_ctypes_test _ctypes/_ctypes_test.c +@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c +@MODULE__TESTIMPORTMULTIPLE_TRUE@_testimportmultiple _testimportmultiple.c +@MODULE__TESTMULTIPHASE_TRUE@_testmultiphase _testmultiphase.c diff --git a/Modules/makesetup b/Modules/makesetup index a8817fffb7c84b..2335724e804cc0 100755 --- a/Modules/makesetup +++ b/Modules/makesetup @@ -154,6 +154,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | cpps= libs= mods= + mods_upper= skip= for arg in $line do @@ -194,11 +195,17 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | *.*) echo 1>&2 "bad word $arg in $line" exit 1;; -u) skip=libs; libs="$libs -u";; - [a-zA-Z_]*) mods="$mods $arg";; + [a-zA-Z_]*) + mods="$mods $arg" + mods_upper=$(echo $mods | tr '[a-z]' '[A-Z]');; *) echo 1>&2 "bad word $arg in $line" exit 1;; esac done + if test -z "$cpps" -a -z "$libs"; then + cpps="\$(MODULE_${mods_upper}_CFLAGS)" + libs="\$(MODULE_${mods_upper}_LDFLAGS)" + fi case $doconfig in yes) LIBS="$LIBS $libs" @@ -245,7 +252,6 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | *) cc="$cc \$(PY_BUILTIN_MODULE_CFLAGS)";; esac - mods_upper=$(echo $mods | tr '[a-z]' '[A-Z]') # force rebuild when header file or module build flavor (static/shared) is changed rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(PYTHON_HEADERS) Modules/config.c; $cc $cpps -c $src -o $obj" echo "$rule" >>$rulesf diff --git a/aclocal.m4 b/aclocal.m4 index 2f1bd37528c85d..6a33c0cc9d9e8c 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -619,3 +619,53 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) ])dnl PKG_HAVE_DEFINE_WITH_MODULES +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 2006-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + diff --git a/configure b/configure index 53dc4a23f80631..87c88927a06670 100755 --- a/configure +++ b/configure @@ -623,6 +623,189 @@ ac_includes_default="\ #endif" ac_subst_vars='LTLIBOBJS +MODULE_BLOCK +MODULE_XXLIMITED_35_FALSE +MODULE_XXLIMITED_35_TRUE +MODULE_XXLIMITED_FALSE +MODULE_XXLIMITED_TRUE +MODULE__UUID_FALSE +MODULE__UUID_TRUE +MODULE__TKINTER_FALSE +MODULE__TKINTER_TRUE +MODULE__POSIXSHMEM_FALSE +MODULE__POSIXSHMEM_TRUE +MODULE__MULTIPROCESSING_FALSE +MODULE__MULTIPROCESSING_TRUE +MODULE__CTYPES_TEST_FALSE +MODULE__CTYPES_TEST_TRUE +MODULE__DECIMAL_FALSE +MODULE__DECIMAL_TRUE +MODULE__CODECS_ISO2022_FALSE +MODULE__CODECS_ISO2022_TRUE +MODULE__CODECS_HK_FALSE +MODULE__CODECS_HK_TRUE +MODULE__CODECS_TW_FALSE +MODULE__CODECS_TW_TRUE +MODULE__CODECS_CN_FALSE +MODULE__CODECS_CN_TRUE +MODULE__CODECS_JP_FALSE +MODULE__CODECS_JP_TRUE +MODULE__CODECS_KR_FALSE +MODULE__CODECS_KR_TRUE +MODULE__MULTIBYTECODEC_FALSE +MODULE__MULTIBYTECODEC_TRUE +MODULE__ELEMENTTREE_FALSE +MODULE__ELEMENTTREE_TRUE +MODULE_PYEXPAT_FALSE +MODULE_PYEXPAT_TRUE +MODULE__LZMA_FALSE +MODULE__LZMA_TRUE +MODULE__BZ2_FALSE +MODULE__BZ2_TRUE +MODULE_BINASCII_FALSE +MODULE_BINASCII_TRUE +MODULE_ZLIB_FALSE +MODULE_ZLIB_TRUE +MODULE__SCPROXY_FALSE +MODULE__SCPROXY_TRUE +MODULE_OSSAUDIODEV_FALSE +MODULE_OSSAUDIODEV_TRUE +MODULE_RESOURCE_FALSE +MODULE_RESOURCE_TRUE +MODULE_TERMIOS_FALSE +MODULE_TERMIOS_TRUE +MODULE__SHA3_FALSE +MODULE__SHA3_TRUE +MODULE__BLAKE2_FALSE +MODULE__BLAKE2_TRUE +MODULE__SHA1_FALSE +MODULE__SHA1_TRUE +MODULE__MD5_FALSE +MODULE__MD5_TRUE +MODULE__SHA512_FALSE +MODULE__SHA512_TRUE +MODULE__SHA256_FALSE +MODULE__SHA256_TRUE +MODULE__HASHLIB_FALSE +MODULE__HASHLIB_TRUE +MODULE__SSL_FALSE +MODULE__SSL_TRUE +MODULE__SOCKET_FALSE +MODULE__SOCKET_TRUE +MODULE_READLINE_FALSE +MODULE_READLINE_TRUE +MODULE__XXTESTFUZZ_FALSE +MODULE__XXTESTFUZZ_TRUE +MODULE__TESTMULTIPHASE_FALSE +MODULE__TESTMULTIPHASE_TRUE +MODULE__TESTIMPORTMULTIPLE_FALSE +MODULE__TESTIMPORTMULTIPLE_TRUE +MODULE__TESTBUFFER_FALSE +MODULE__TESTBUFFER_TRUE +MODULE__TESTINTERNALCAPI_FALSE +MODULE__TESTINTERNALCAPI_TRUE +MODULE__TESTCAPI_FALSE +MODULE__TESTCAPI_TRUE +MODULE__POSIXSUBPROCESS_FALSE +MODULE__POSIXSUBPROCESS_TRUE +MODULE__CSV_FALSE +MODULE__CSV_TRUE +MODULE_AUDIOOP_FALSE +MODULE_AUDIOOP_TRUE +MODULE__XXSUBINTERPRETERS_FALSE +MODULE__XXSUBINTERPRETERS_TRUE +MODULE_SYSLOG_FALSE +MODULE_SYSLOG_TRUE +MODULE_MMAP_FALSE +MODULE_MMAP_TRUE +MODULE_SELECT_FALSE +MODULE_SELECT_TRUE +MODULE_SPWD_FALSE +MODULE_SPWD_TRUE +MODULE_GRP_FALSE +MODULE_GRP_TRUE +MODULE_FCNTL_FALSE +MODULE_FCNTL_TRUE +MODULE__TYPING_FALSE +MODULE__TYPING_TRUE +MODULE__STATISTICS_FALSE +MODULE__STATISTICS_TRUE +MODULE__QUEUE_FALSE +MODULE__QUEUE_TRUE +MODULE__ASYNCIO_FALSE +MODULE__ASYNCIO_TRUE +MODULE__OPCODE_FALSE +MODULE__OPCODE_TRUE +MODULE_UNICODEDATA_FALSE +MODULE_UNICODEDATA_TRUE +MODULE__LSPROF_FALSE +MODULE__LSPROF_TRUE +MODULE__JSON_FALSE +MODULE__JSON_TRUE +MODULE__PICKLE_FALSE +MODULE__PICKLE_TRUE +MODULE__HEAPQ_FALSE +MODULE__HEAPQ_TRUE +MODULE__BISECT_FALSE +MODULE__BISECT_TRUE +MODULE__RANDOM_FALSE +MODULE__RANDOM_TRUE +MODULE__ZONEINFO_FALSE +MODULE__ZONEINFO_TRUE +MODULE__DATETIME_FALSE +MODULE__DATETIME_TRUE +MODULE_CMATH_FALSE +MODULE_CMATH_TRUE +MODULE_MATH_FALSE +MODULE_MATH_TRUE +MODULE__CONTEXTVARS_FALSE +MODULE__CONTEXTVARS_TRUE +MODULE_ARRAY_FALSE +MODULE_ARRAY_TRUE +MODULE__STRUCT_FALSE +MODULE__STRUCT_TRUE +MODULE_TIME_FALSE +MODULE_TIME_TRUE +MODULE_PWD_FALSE +MODULE_PWD_TRUE +MODULE_POSIX_FALSE +MODULE_POSIX_TRUE +MODULE_ITERTOOLS_FALSE +MODULE_ITERTOOLS_TRUE +MODULE_FAULTHANDLER_FALSE +MODULE_FAULTHANDLER_TRUE +MODULE_ERRNO_FALSE +MODULE_ERRNO_TRUE +MODULE_ATEXIT_FALSE +MODULE_ATEXIT_TRUE +MODULE__WEAKREF_FALSE +MODULE__WEAKREF_TRUE +MODULE__TRACEMALLOC_FALSE +MODULE__TRACEMALLOC_TRUE +MODULE__THREAD_FALSE +MODULE__THREAD_TRUE +MODULE__SYMTABLE_FALSE +MODULE__SYMTABLE_TRUE +MODULE__STAT_FALSE +MODULE__STAT_TRUE +MODULE__SRE_FALSE +MODULE__SRE_TRUE +MODULE__SIGNAL_FALSE +MODULE__SIGNAL_TRUE +MODULE__OPERATOR_FALSE +MODULE__OPERATOR_TRUE +MODULE__LOCALE_FALSE +MODULE__LOCALE_TRUE +MODULE__IO_FALSE +MODULE__IO_TRUE +MODULE__FUNCTOOLS_FALSE +MODULE__FUNCTOOLS_TRUE +MODULE__CODECS_FALSE +MODULE__CODECS_TRUE +MODULE__ABC_FALSE +MODULE__ABC_TRUE +MODULE__COLLECTIONS_FALSE +MODULE__COLLECTIONS_TRUE TEST_MODULES LIBRARY_DEPS STATIC_LIBPYTHON @@ -8129,7 +8312,7 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h # checks for header files -for ac_header in asm/types.h crypt.h conio.h direct.h dlfcn.h errno.h \ +for ac_header in asm/types.h conio.h direct.h dlfcn.h errno.h \ fcntl.h grp.h \ ieeefp.h io.h langinfo.h libintl.h process.h pthread.h \ sched.h shadow.h signal.h stropts.h termios.h \ @@ -8143,7 +8326,7 @@ sys/times.h sys/types.h sys/uio.h sys/un.h sys/utsname.h sys/wait.h pty.h \ libutil.h sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \ linux/tipc.h linux/random.h spawn.h util.h alloca.h endian.h \ sys/endian.h sys/sysmacros.h linux/memfd.h linux/wait.h sys/memfd.h \ -sys/mman.h sys/eventfd.h +sys/mman.h sys/eventfd.h linux/soundcard.h sys/soundcard.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -10165,63 +10348,17 @@ _ACEOF fi # Dynamic linking for HP-UX -# checks for uuid.h location -for ac_header in uuid/uuid.h uuid.h +# check for libuuid and uuid/uuid.h from util-linux +for ac_header in uuid/uuid.h do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default" +if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe" >&5 -$as_echo_n "checking for uuid_generate_time_safe... " >&6; } -if ${ac_cv_lib_uuid_uuid_generate_time_safe+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - -#ifndef uuid_generate_time_safe -void *x = uuid_generate_time_safe -#endif - - ; - return 0; -} +#define HAVE_UUID_UUID_H 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_lib_uuid_uuid_generate_time_safe=yes -else - ac_cv_lib_uuid_uuid_generate_time_safe=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate_time_safe" >&5 -$as_echo "$ac_cv_lib_uuid_uuid_generate_time_safe" >&6; } -if test "x$ac_cv_lib_uuid_uuid_generate_time_safe" = xyes; then : - - -$as_echo "#define HAVE_UUID_GENERATE_TIME_SAFE 1" >>confdefs.h - - -fi -# check for libuuid from util-linux -save_LIBS=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time in -luuid" >&5 + save_LIBS=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time in -luuid" >&5 $as_echo_n "checking for uuid_generate_time in -luuid... " >&6; } if ${ac_cv_lib_uuid_uuid_generate_time+:} false; then : $as_echo_n "(cached) " >&6 @@ -10266,13 +10403,66 @@ _ACEOF fi -LIBS=$save_LIBS + UUID_CFLAGS= + UUID_LDLAGS=-luuid + LIBS=$save_LIBS + +fi + +done + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe" >&5 +$as_echo_n "checking for uuid_generate_time_safe... " >&6; } +if ${ac_cv_lib_uuid_uuid_generate_time_safe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + +#ifndef uuid_generate_time_safe +void *x = uuid_generate_time_safe +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_lib_uuid_uuid_generate_time_safe=yes +else + ac_cv_lib_uuid_uuid_generate_time_safe=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate_time_safe" >&5 +$as_echo "$ac_cv_lib_uuid_uuid_generate_time_safe" >&6; } +if test "x$ac_cv_lib_uuid_uuid_generate_time_safe" = xyes; then : + + +$as_echo "#define HAVE_UUID_GENERATE_TIME_SAFE 1" >>confdefs.h + + +fi # AIX provides support for RFC4122 (uuid) in libc.a starting with AIX 6.1 (anno 2007) # FreeBSD and OpenBSD provides support in libc as well. # Little-endian FreeBSD, OpenBSD and NetBSD needs encoding into an octet # stream in big-endian byte-order -for ac_func in uuid_create uuid_enc_be +for ac_header in uuid.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "uuid.h" "ac_cv_header_uuid_h" "$ac_includes_default" +if test "x$ac_cv_header_uuid_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UUID_H 1 +_ACEOF + for ac_func in uuid_create uuid_enc_be do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -10285,6 +10475,11 @@ fi done +fi + +done + + # 'Real Time' functions on Solaris # posix4 on Solaris 2.6 # pthread (first!) on Linux @@ -11328,24 +11523,36 @@ $as_echo_n "checking for --with-dbmliborder... " >&6; } # Check whether --with-dbmliborder was given. if test "${with_dbmliborder+set}" = set; then : withval=$with_dbmliborder; -if test x$with_dbmliborder = xyes -then -as_fn_error $? "proper usage is --with-dbmliborder=db1:db2:..." "$LINENO" 5 else - as_save_IFS=$IFS - IFS=: - for db in $with_dbmliborder; do - if test x$db != xndbm && test x$db != xgdbm && test x$db != xbdb - then - as_fn_error $? "proper usage is --with-dbmliborder=db1:db2:..." "$LINENO" 5 - fi - done - IFS=$as_save_IFS + with_dbmliborder=ndbm:gdbm:bdb fi + + +as_save_IFS=$IFS +IFS=: +dbmlibs="" +for db in $with_dbmliborder; do + case $db in #( + ndbm) : + dbmlibs="$dbmlibs ndbm" ;; #( + gdbm) : + dbmlibs="$dbmlibs gdbm_compat" ;; #( + bdb) : + dbmlibs="$dbmlibs db-5.3 db-5 db" ;; #( + *) : + dbmlibs="failed"; break + ;; +esac +done +IFS=$as_save_IFS + +if test "$dbmlibs" = failed; then + as_fn_error $? "proper usage is --with-dbmliborder=db1:db2:..." "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dbmliborder (libs: $dbmlibs)" >&5 +$as_echo "$with_dbmliborder (libs: $dbmlibs)" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dbmliborder" >&5 -$as_echo "$with_dbmliborder" >&6; } # Templates for things AC_DEFINEd more than once. # For a single AC_DEFINE, no template is needed. @@ -12391,7 +12598,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ explicit_memset faccessat fchmod fchmodat fchown fchownat \ fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ futimens futimes gai_strerror getentropy \ - getgrgid_r getgrnam_r \ + getgrgid getgrgid_r getgrnam_r \ getgrouplist getgroups getlogin getloadavg getpeername getpgid getpid \ getpriority getresuid getresgid getpwent getpwnam_r getpwuid_r getspnam getspent getsid getwd \ if_nameindex \ @@ -13483,6 +13690,13 @@ fi done +if test "x$ac_cv_lib_z_gzread" = xyes; then : + + BINASCII_CFLAGS=-DUSE_ZLIB_CRC32 + BINASCII_LDFLAGS=-lz + +fi + for ac_header in bzlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" @@ -14051,13 +14265,18 @@ fi done -# We search for both crypt and crypt_r as one or the other may be defined -# This gets us our -lcrypt in LIBS when required on the target platform. -# Save/restore LIBS to avoid linking libpython with libcrypt. -LIBS_SAVE=$LIBS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 -$as_echo_n "checking for library containing crypt_r... " >&6; } -if ${ac_cv_search_crypt_r+:} false; then : +for ac_header in crypt.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "crypt.h" "ac_cv_header_crypt_h" "$ac_includes_default" +if test "x$ac_cv_header_crypt_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CRYPT_H 1 +_ACEOF + + LIBS_SAVE=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 +$as_echo_n "checking for library containing crypt... " >&6; } +if ${ac_cv_search_crypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -14070,11 +14289,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char crypt_r (); +char crypt (); int main () { -return crypt_r (); +return crypt (); ; return 0; } @@ -14087,34 +14306,34 @@ for ac_lib in '' crypt; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt_r=$ac_res + ac_cv_search_crypt=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_crypt_r+:} false; then : + if ${ac_cv_search_crypt+:} false; then : break fi done -if ${ac_cv_search_crypt_r+:} false; then : +if ${ac_cv_search_crypt+:} false; then : else - ac_cv_search_crypt_r=no + ac_cv_search_crypt=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 -$as_echo "$ac_cv_search_crypt_r" >&6; } -ac_res=$ac_cv_search_crypt_r +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 +$as_echo "$ac_cv_search_crypt" >&6; } +ac_res=$ac_cv_search_crypt if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi -LIBS="$LIBS_SAVE" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 -$as_echo_n "checking for library containing crypt... " >&6; } -if ${ac_cv_search_crypt+:} false; then : + LIBS="$LIBS_SAVE" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 +$as_echo_n "checking for library containing crypt_r... " >&6; } +if ${ac_cv_search_crypt_r+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -14127,11 +14346,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #ifdef __cplusplus extern "C" #endif -char crypt (); +char crypt_r (); int main () { -return crypt (); +return crypt_r (); ; return 0; } @@ -14144,59 +14363,39 @@ for ac_lib in '' crypt; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt=$ac_res + ac_cv_search_crypt_r=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_crypt+:} false; then : + if ${ac_cv_search_crypt_r+:} false; then : break fi done -if ${ac_cv_search_crypt+:} false; then : +if ${ac_cv_search_crypt_r+:} false; then : else - ac_cv_search_crypt=no + ac_cv_search_crypt_r=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 -$as_echo "$ac_cv_search_crypt" >&6; } -ac_res=$ac_cv_search_crypt +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 +$as_echo "$ac_cv_search_crypt_r" >&6; } +ac_res=$ac_cv_search_crypt_r if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -fi - - -ac_fn_c_check_func "$LINENO" "crypt_r" "ac_cv_func_crypt_r" -if test "x$ac_cv_func_crypt_r" = xyes; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ +$as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h -struct crypt_data d; -char *r = crypt_r("", "", &d); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +fi -$as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h + LIBS=$LIBS_SAVE fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi +done -LIBS=$LIBS_SAVE for ac_func in clock_gettime do : @@ -18700,6 +18899,7 @@ if test "$ac_cv_search_shm_open" = "-lrt"; then $as_echo "#define SHM_NEEDS_LIBRT 1" >>confdefs.h + SHM_OPEN_LIB="-lrt" fi for ac_header in sys/mman.h do : @@ -18974,12 +19174,6 @@ $as_echo "$OPENSSL_RPATH" >&6; } # check if OpenSSL libraries work as expected -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL provides required APIs" >&5 -$as_echo_n "checking whether OpenSSL provides required APIs... " >&6; } -if ${ac_cv_working_openssl+:} false; then : - $as_echo_n "(cached) " >&6 -else - save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" save_LDFLAGS="$LDFLAGS" @@ -18987,24 +19181,26 @@ LIBS="$LIBS $OPENSSL_LIBS" CFLAGS="$CFLAGS_NODIST $OPENSSL_INCLUDES" LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL provides required ssl module APIs" >&5 +$as_echo_n "checking whether OpenSSL provides required ssl module APIs... " >&6; } +if ${ac_cv_working_openssl_ssl+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include -#include #include - #if OPENSSL_VERSION_NUMBER < 0x10101000L -#error "OpenSSL >= 1.1.1 is required" + #error "OpenSSL >= 1.1.1 is required" #endif - static void keylog_cb(const SSL *ssl, const char *line) {} int main () { -/* SSL APIs */ SSL_CTX *ctx = SSL_CTX_new(TLS_client_method()); SSL_CTX_set_keylog_callback(ctx, keylog_cb); SSL *ssl = SSL_new(ctx); @@ -19013,32 +19209,69 @@ X509_VERIFY_PARAM_set1_host(param, "python.org", 0); SSL_free(ssl); SSL_CTX_free(ctx); -/* hashlib APIs */ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_working_openssl_ssl=yes +else + ac_cv_working_openssl_ssl=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_openssl_ssl" >&5 +$as_echo "$ac_cv_working_openssl_ssl" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL provides required hashlib module APIs" >&5 +$as_echo_n "checking whether OpenSSL provides required hashlib module APIs... " >&6; } +if ${ac_cv_working_openssl_hashlib+:} false; then : + $as_echo_n "(cached) " >&6 +else + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#if OPENSSL_VERSION_NUMBER < 0x10101000L +#error "OpenSSL >= 1.1.1 is required" +#endif + +int +main () +{ + OBJ_nid2sn(NID_md5); OBJ_nid2sn(NID_sha1); OBJ_nid2sn(NID_sha3_512); OBJ_nid2sn(NID_blake2b512); EVP_PBE_scrypt(NULL, 0, NULL, 0, 2, 8, 1, 0, NULL, 0); + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_openssl=yes + ac_cv_working_openssl_hashlib=yes else - ac_cv_working_openssl=no + ac_cv_working_openssl_hashlib=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_openssl_hashlib" >&5 +$as_echo "$ac_cv_working_openssl_hashlib" >&6; } + LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" LDFLAGS="$save_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_openssl" >&5 -$as_echo "$ac_cv_working_openssl" >&6; } - # ssl module default cipher suite string @@ -19091,115 +19324,2576 @@ $as_echo_n "checking for --with-builtin-hashlib-hashes... " >&6; } # Check whether --with-builtin-hashlib-hashes was given. if test "${with_builtin_hashlib_hashes+set}" = set; then : withval=$with_builtin_hashlib_hashes; -case "$withval" in - yes) - withval=$default_hashlib_hashes - ;; - no) - withval="" - ;; + case $with_builtin_hashlib_hashes in #( + yes) : + with_builtin_hashlib_hashes=$default_hashlib_hashes ;; #( + no) : + with_builtin_hashlib_hashes="" + ;; #( + *) : + ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$withval" >&6; } -cat >>confdefs.h <<_ACEOF -#define PY_BUILTIN_HASHLIB_HASHES "$withval" -_ACEOF - else + with_builtin_hashlib_hashes=$default_hashlib_hashes +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $default_hashlib_hashes" >&5 -$as_echo "$default_hashlib_hashes" >&6; }; -cat >>confdefs.h <<_ACEOF -#define PY_BUILTIN_HASHLIB_HASHES "$default_hashlib_hashes" -_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_builtin_hashlib_hashes" >&5 +$as_echo "$with_builtin_hashlib_hashes" >&6; } +cat >>confdefs.h <<_ACEOF +#define PY_BUILTIN_HASHLIB_HASHES "$with_builtin_hashlib_hashes" +_ACEOF + + +as_save_IFS=$IFS +IFS=, +for builtin_hash in $with_builtin_hashlib_hashes; do + case $builtin_hash in #( + md5) : + with_builtin_md5=yes ;; #( + sha1) : + with_builtin_sha1=yes ;; #( + sha256) : + with_builtin_sha256=yes ;; #( + sha512) : + with_builtin_sha512=yes ;; #( + sha3) : + with_builtin_sha3=yes ;; #( + blake2) : + with_builtin_blake2=yes + ;; #( + *) : + ;; +esac +done +IFS=$as_save_IFS + +# --with-experimental-isolated-subinterpreters + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-experimental-isolated-subinterpreters" >&5 +$as_echo_n "checking for --with-experimental-isolated-subinterpreters... " >&6; } + +# Check whether --with-experimental-isolated-subinterpreters was given. +if test "${with_experimental_isolated_subinterpreters+set}" = set; then : + withval=$with_experimental_isolated_subinterpreters; +if test "$withval" != no +then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; + $as_echo "#define EXPERIMENTAL_ISOLATED_SUBINTERPRETERS 1" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# --with-static-libpython +STATIC_LIBPYTHON=1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-static-libpython" >&5 +$as_echo_n "checking for --with-static-libpython... " >&6; } + +# Check whether --with-static-libpython was given. +if test "${with_static_libpython+set}" = set; then : + withval=$with_static_libpython; +if test "$withval" = no +then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; + STATIC_LIBPYTHON=0 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi + +LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)' +if test "$PY_ENABLE_SHARED" = 1 || test "$enable_framework" ; then + LIBRARY_DEPS="\$(LDLIBRARY) $LIBRARY_DEPS" + if test "$STATIC_LIBPYTHON" = 1; then + LIBRARY_DEPS="\$(LIBRARY) $LIBRARY_DEPS" + fi +else + LIBRARY_DEPS="\$(LIBRARY) $LIBRARY_DEPS" +fi + + + +# Check whether to disable test modules. Once set, setup.py will not build +# test extension modules and "make install" will not install test suites. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --disable-test-modules" >&5 +$as_echo_n "checking for --disable-test-modules... " >&6; } +# Check whether --enable-test-modules was given. +if test "${enable_test_modules+set}" = set; then : + enableval=$enable_test_modules; +fi + +if test "$enable_test_modules" = no; then + TEST_MODULES=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + TEST_MODULES=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +case $ac_sys_system in #( + AIX) : + py_stdlib_not_available="_scproxy spwd" ;; #( + VxWorks*) : + py_stdlib_not_available="_scproxy _crypt termios grp" ;; #( + Darwin) : + py_stdlib_not_available="ossaudiodev spwd" ;; #( + CYGWIN*) : + py_stdlib_not_available="_scproxy nis" ;; #( + QNX*) : + py_stdlib_not_available="_scproxy nis" ;; #( + *) : + py_stdlib_not_available="_scproxy" + ;; +esac + +MODULE_BLOCK= + +# _MODULE_BLOCK_ADD([VAR], [VALUE]) +# internal: adds $1=quote($2) to MODULE_BLOCK + + + + +# Define simple, always enabled stdlib extension module +# PY_STDLIB_MOD_SIMPLE([NAME], [LDFLAGS]) + +# This is what autoupdate's m4 run will expand. It fires +# the warning (with _au_warn_XXX), outputs it into the +# updated configure.ac (with AC_DIAGNOSE), and then outputs +# the replacement expansion. + + +# This is an auxiliary macro that is also run when +# autoupdate runs m4. It simply calls m4_warning, but +# we need a wrapper so that each warning is emitted only +# once. We break the quoting in m4_warning's argument in +# order to expand this macro's arguments, not AU_DEFUN's. + + +# Finally, this is the expansion that is picked up by +# autoconf. It tells the user to run autoupdate, and +# then outputs the replacement expansion. We do not care +# about autoupdate's warning because that contains +# information on what to do *after* running autoupdate. + + +# reuses autoconf check values (ac_cv_*): +# * ac_cv_func and ac_cv_header values are set to "yes" when function or header exists +# * ac_cv_search values are set to "none required" or "-lsomelib" when function exists + + as_fn_append MODULE_BLOCK "MODULE__COLLECTIONS=yes$as_nl" + if true; then + MODULE__COLLECTIONS_TRUE= + MODULE__COLLECTIONS_FALSE='#' +else + MODULE__COLLECTIONS_TRUE='#' + MODULE__COLLECTIONS_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__ABC=yes$as_nl" + if true; then + MODULE__ABC_TRUE= + MODULE__ABC_FALSE='#' +else + MODULE__ABC_TRUE='#' + MODULE__ABC_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__CODECS=yes$as_nl" + if true; then + MODULE__CODECS_TRUE= + MODULE__CODECS_FALSE='#' +else + MODULE__CODECS_TRUE='#' + MODULE__CODECS_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__FUNCTOOLS=yes$as_nl" + if true; then + MODULE__FUNCTOOLS_TRUE= + MODULE__FUNCTOOLS_FALSE='#' +else + MODULE__FUNCTOOLS_TRUE='#' + MODULE__FUNCTOOLS_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__IO=yes$as_nl" + if true; then + MODULE__IO_TRUE= + MODULE__IO_FALSE='#' +else + MODULE__IO_TRUE='#' + MODULE__IO_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__LOCALE=yes$as_nl" + if true; then + MODULE__LOCALE_TRUE= + MODULE__LOCALE_FALSE='#' +else + MODULE__LOCALE_TRUE='#' + MODULE__LOCALE_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__OPERATOR=yes$as_nl" + if true; then + MODULE__OPERATOR_TRUE= + MODULE__OPERATOR_FALSE='#' +else + MODULE__OPERATOR_TRUE='#' + MODULE__OPERATOR_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__SIGNAL=yes$as_nl" + if true; then + MODULE__SIGNAL_TRUE= + MODULE__SIGNAL_FALSE='#' +else + MODULE__SIGNAL_TRUE='#' + MODULE__SIGNAL_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__SRE=yes$as_nl" + if true; then + MODULE__SRE_TRUE= + MODULE__SRE_FALSE='#' +else + MODULE__SRE_TRUE='#' + MODULE__SRE_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__STAT=yes$as_nl" + if true; then + MODULE__STAT_TRUE= + MODULE__STAT_FALSE='#' +else + MODULE__STAT_TRUE='#' + MODULE__STAT_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__SYMTABLE=yes$as_nl" + if true; then + MODULE__SYMTABLE_TRUE= + MODULE__SYMTABLE_FALSE='#' +else + MODULE__SYMTABLE_TRUE='#' + MODULE__SYMTABLE_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__THREAD=yes$as_nl" + if true; then + MODULE__THREAD_TRUE= + MODULE__THREAD_FALSE='#' +else + MODULE__THREAD_TRUE='#' + MODULE__THREAD_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__TRACEMALLOC=yes$as_nl" + if true; then + MODULE__TRACEMALLOC_TRUE= + MODULE__TRACEMALLOC_FALSE='#' +else + MODULE__TRACEMALLOC_TRUE='#' + MODULE__TRACEMALLOC_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__WEAKREF=yes$as_nl" + if true; then + MODULE__WEAKREF_TRUE= + MODULE__WEAKREF_FALSE='#' +else + MODULE__WEAKREF_TRUE='#' + MODULE__WEAKREF_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_ATEXIT=yes$as_nl" + if true; then + MODULE_ATEXIT_TRUE= + MODULE_ATEXIT_FALSE='#' +else + MODULE_ATEXIT_TRUE='#' + MODULE_ATEXIT_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_ERRNO=yes$as_nl" + if true; then + MODULE_ERRNO_TRUE= + MODULE_ERRNO_FALSE='#' +else + MODULE_ERRNO_TRUE='#' + MODULE_ERRNO_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_FAULTHANDLER=yes$as_nl" + if true; then + MODULE_FAULTHANDLER_TRUE= + MODULE_FAULTHANDLER_FALSE='#' +else + MODULE_FAULTHANDLER_TRUE='#' + MODULE_FAULTHANDLER_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_ITERTOOLS=yes$as_nl" + if true; then + MODULE_ITERTOOLS_TRUE= + MODULE_ITERTOOLS_FALSE='#' +else + MODULE_ITERTOOLS_TRUE='#' + MODULE_ITERTOOLS_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_POSIX=yes$as_nl" + if true; then + MODULE_POSIX_TRUE= + MODULE_POSIX_FALSE='#' +else + MODULE_POSIX_TRUE='#' + MODULE_POSIX_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_PWD=yes$as_nl" + if true; then + MODULE_PWD_TRUE= + MODULE_PWD_FALSE='#' +else + MODULE_PWD_TRUE='#' + MODULE_PWD_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_TIME=yes$as_nl" + if true; then + MODULE_TIME_TRUE= + MODULE_TIME_FALSE='#' +else + MODULE_TIME_TRUE='#' + MODULE_TIME_FALSE= +fi + + + + + + as_fn_append MODULE_BLOCK "MODULE__STRUCT=yes$as_nl" + if true; then + MODULE__STRUCT_TRUE= + MODULE__STRUCT_FALSE='#' +else + MODULE__STRUCT_TRUE='#' + MODULE__STRUCT_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_ARRAY=yes$as_nl" + if true; then + MODULE_ARRAY_TRUE= + MODULE_ARRAY_FALSE='#' +else + MODULE_ARRAY_TRUE='#' + MODULE_ARRAY_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__CONTEXTVARS=yes$as_nl" + if true; then + MODULE__CONTEXTVARS_TRUE= + MODULE__CONTEXTVARS_FALSE='#' +else + MODULE__CONTEXTVARS_TRUE='#' + MODULE__CONTEXTVARS_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_MATH=yes$as_nl" + if true; then + MODULE_MATH_TRUE= + MODULE_MATH_FALSE='#' +else + MODULE_MATH_TRUE='#' + MODULE_MATH_FALSE= +fi + + + as_fn_append MODULE_BLOCK "MODULE_MATH_LDFLAGS=-lm$as_nl" + + + + as_fn_append MODULE_BLOCK "MODULE_CMATH=yes$as_nl" + if true; then + MODULE_CMATH_TRUE= + MODULE_CMATH_FALSE='#' +else + MODULE_CMATH_TRUE='#' + MODULE_CMATH_FALSE= +fi + + + as_fn_append MODULE_BLOCK "MODULE_CMATH_LDFLAGS=-lm$as_nl" + + + + as_fn_append MODULE_BLOCK "MODULE_TIME=yes$as_nl" + if true; then + MODULE_TIME_TRUE= + MODULE_TIME_FALSE='#' +else + MODULE_TIME_TRUE='#' + MODULE_TIME_FALSE= +fi + + + as_fn_append MODULE_BLOCK "MODULE_TIME_LDFLAGS=$TIMEMODULE_LIB$as_nl" + + + + as_fn_append MODULE_BLOCK "MODULE__DATETIME=yes$as_nl" + if true; then + MODULE__DATETIME_TRUE= + MODULE__DATETIME_FALSE='#' +else + MODULE__DATETIME_TRUE='#' + MODULE__DATETIME_FALSE= +fi + + + as_fn_append MODULE_BLOCK "MODULE__DATETIME_LDFLAGS=$TIMEMODULE_LIB$as_nl" + + + + as_fn_append MODULE_BLOCK "MODULE__ZONEINFO=yes$as_nl" + if true; then + MODULE__ZONEINFO_TRUE= + MODULE__ZONEINFO_FALSE='#' +else + MODULE__ZONEINFO_TRUE='#' + MODULE__ZONEINFO_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__RANDOM=yes$as_nl" + if true; then + MODULE__RANDOM_TRUE= + MODULE__RANDOM_FALSE='#' +else + MODULE__RANDOM_TRUE='#' + MODULE__RANDOM_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__BISECT=yes$as_nl" + if true; then + MODULE__BISECT_TRUE= + MODULE__BISECT_FALSE='#' +else + MODULE__BISECT_TRUE='#' + MODULE__BISECT_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__HEAPQ=yes$as_nl" + if true; then + MODULE__HEAPQ_TRUE= + MODULE__HEAPQ_FALSE='#' +else + MODULE__HEAPQ_TRUE='#' + MODULE__HEAPQ_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__PICKLE=yes$as_nl" + if true; then + MODULE__PICKLE_TRUE= + MODULE__PICKLE_FALSE='#' +else + MODULE__PICKLE_TRUE='#' + MODULE__PICKLE_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__JSON=yes$as_nl" + if true; then + MODULE__JSON_TRUE= + MODULE__JSON_FALSE='#' +else + MODULE__JSON_TRUE='#' + MODULE__JSON_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__LSPROF=yes$as_nl" + if true; then + MODULE__LSPROF_TRUE= + MODULE__LSPROF_FALSE='#' +else + MODULE__LSPROF_TRUE='#' + MODULE__LSPROF_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_UNICODEDATA=yes$as_nl" + if true; then + MODULE_UNICODEDATA_TRUE= + MODULE_UNICODEDATA_FALSE='#' +else + MODULE_UNICODEDATA_TRUE='#' + MODULE_UNICODEDATA_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__OPCODE=yes$as_nl" + if true; then + MODULE__OPCODE_TRUE= + MODULE__OPCODE_FALSE='#' +else + MODULE__OPCODE_TRUE='#' + MODULE__OPCODE_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__ASYNCIO=yes$as_nl" + if true; then + MODULE__ASYNCIO_TRUE= + MODULE__ASYNCIO_FALSE='#' +else + MODULE__ASYNCIO_TRUE='#' + MODULE__ASYNCIO_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__ABC=yes$as_nl" + if true; then + MODULE__ABC_TRUE= + MODULE__ABC_FALSE='#' +else + MODULE__ABC_TRUE='#' + MODULE__ABC_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__QUEUE=yes$as_nl" + if true; then + MODULE__QUEUE_TRUE= + MODULE__QUEUE_FALSE='#' +else + MODULE__QUEUE_TRUE='#' + MODULE__QUEUE_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__STATISTICS=yes$as_nl" + if true; then + MODULE__STATISTICS_TRUE= + MODULE__STATISTICS_FALSE='#' +else + MODULE__STATISTICS_TRUE='#' + MODULE__STATISTICS_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__TYPING=yes$as_nl" + if true; then + MODULE__TYPING_TRUE= + MODULE__TYPING_FALSE='#' +else + MODULE__TYPING_TRUE='#' + MODULE__TYPING_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_FCNTL=yes$as_nl" + if true; then + MODULE_FCNTL_TRUE= + MODULE_FCNTL_FALSE='#' +else + MODULE_FCNTL_TRUE='#' + MODULE_FCNTL_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_PWD=yes$as_nl" + if true; then + MODULE_PWD_TRUE= + MODULE_PWD_FALSE='#' +else + MODULE_PWD_TRUE='#' + MODULE_PWD_FALSE= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module grp" >&5 +$as_echo_n "checking for stdlib extension module grp... " >&6; } + case $py_stdlib_not_available in #( + *grp*) : + py_cv_module_grp=n/a ;; #( + *) : + if true; then : + if test "$ac_cv_func_getgrgid" = yes -o "$ac_cv_func_getgrgid_r" = yes; then : + py_cv_module_grp=yes +else + py_cv_module_grp=missing +fi +else + py_cv_module_grp=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_GRP=$py_cv_module_grp$as_nl" + if test "x$py_cv_module_grp" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_GRP_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE_GRP_LDFLAGS=$as_nl" + if true; then + MODULE_GRP_TRUE= + MODULE_GRP_FALSE='#' +else + MODULE_GRP_TRUE='#' + MODULE_GRP_FALSE= +fi + + +else + + if false; then + MODULE_GRP_TRUE= + MODULE_GRP_FALSE='#' +else + MODULE_GRP_TRUE='#' + MODULE_GRP_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_grp" >&5 +$as_echo "$py_cv_module_grp" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module spwd" >&5 +$as_echo_n "checking for stdlib extension module spwd... " >&6; } + case $py_stdlib_not_available in #( + *spwd*) : + py_cv_module_spwd=n/a ;; #( + *) : + if true; then : + if test "$ac_cv_func_getspent" = yes; then : + py_cv_module_spwd=yes +else + py_cv_module_spwd=missing +fi +else + py_cv_module_spwd=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_SPWD=$py_cv_module_spwd$as_nl" + if test "x$py_cv_module_spwd" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_SPWD_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE_SPWD_LDFLAGS=$as_nl" + if true; then + MODULE_SPWD_TRUE= + MODULE_SPWD_FALSE='#' +else + MODULE_SPWD_TRUE='#' + MODULE_SPWD_FALSE= +fi + + +else + + if false; then + MODULE_SPWD_TRUE= + MODULE_SPWD_FALSE='#' +else + MODULE_SPWD_TRUE='#' + MODULE_SPWD_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_spwd" >&5 +$as_echo "$py_cv_module_spwd" >&6; } + + + as_fn_append MODULE_BLOCK "MODULE_SELECT=yes$as_nl" + if true; then + MODULE_SELECT_TRUE= + MODULE_SELECT_FALSE='#' +else + MODULE_SELECT_TRUE='#' + MODULE_SELECT_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_MMAP=yes$as_nl" + if true; then + MODULE_MMAP_TRUE= + MODULE_MMAP_FALSE='#' +else + MODULE_MMAP_TRUE='#' + MODULE_MMAP_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE_SYSLOG=yes$as_nl" + if true; then + MODULE_SYSLOG_TRUE= + MODULE_SYSLOG_FALSE='#' +else + MODULE_SYSLOG_TRUE='#' + MODULE_SYSLOG_FALSE= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _xxsubinterpreters" >&5 +$as_echo_n "checking for stdlib extension module _xxsubinterpreters... " >&6; } + case $py_stdlib_not_available in #( + *_xxsubinterpreters*) : + py_cv_module__xxsubinterpreters=n/a ;; #( + *) : + if test "$with_experimental_isolated_subinterpreters" = yes; then : + if true; then : + py_cv_module__xxsubinterpreters=yes +else + py_cv_module__xxsubinterpreters=missing +fi +else + py_cv_module__xxsubinterpreters=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__XXSUBINTERPRETERS=$py_cv_module__xxsubinterpreters$as_nl" + if test "x$py_cv_module__xxsubinterpreters" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__XXSUBINTERPRETERS_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__XXSUBINTERPRETERS_LDFLAGS=$as_nl" + if true; then + MODULE__XXSUBINTERPRETERS_TRUE= + MODULE__XXSUBINTERPRETERS_FALSE='#' +else + MODULE__XXSUBINTERPRETERS_TRUE='#' + MODULE__XXSUBINTERPRETERS_FALSE= +fi + + +else + + if false; then + MODULE__XXSUBINTERPRETERS_TRUE= + MODULE__XXSUBINTERPRETERS_FALSE='#' +else + MODULE__XXSUBINTERPRETERS_TRUE='#' + MODULE__XXSUBINTERPRETERS_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__xxsubinterpreters" >&5 +$as_echo "$py_cv_module__xxsubinterpreters" >&6; } + + + as_fn_append MODULE_BLOCK "MODULE_AUDIOOP=yes$as_nl" + if true; then + MODULE_AUDIOOP_TRUE= + MODULE_AUDIOOP_FALSE='#' +else + MODULE_AUDIOOP_TRUE='#' + MODULE_AUDIOOP_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__CSV=yes$as_nl" + if true; then + MODULE__CSV_TRUE= + MODULE__CSV_FALSE='#' +else + MODULE__CSV_TRUE='#' + MODULE__CSV_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__POSIXSUBPROCESS=yes$as_nl" + if true; then + MODULE__POSIXSUBPROCESS_TRUE= + MODULE__POSIXSUBPROCESS_FALSE='#' +else + MODULE__POSIXSUBPROCESS_TRUE='#' + MODULE__POSIXSUBPROCESS_FALSE= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _testcapi" >&5 +$as_echo_n "checking for stdlib extension module _testcapi... " >&6; } + case $py_stdlib_not_available in #( + *_testcapi*) : + py_cv_module__testcapi=n/a ;; #( + *) : + if test "$TEST_MODULES" = yes; then : + if true; then : + py_cv_module__testcapi=yes +else + py_cv_module__testcapi=missing +fi +else + py_cv_module__testcapi=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__TESTCAPI=$py_cv_module__testcapi$as_nl" + if test "x$py_cv_module__testcapi" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__TESTCAPI_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTCAPI_LDFLAGS=$as_nl" + if true; then + MODULE__TESTCAPI_TRUE= + MODULE__TESTCAPI_FALSE='#' +else + MODULE__TESTCAPI_TRUE='#' + MODULE__TESTCAPI_FALSE= +fi + + +else + + if false; then + MODULE__TESTCAPI_TRUE= + MODULE__TESTCAPI_FALSE='#' +else + MODULE__TESTCAPI_TRUE='#' + MODULE__TESTCAPI_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__testcapi" >&5 +$as_echo "$py_cv_module__testcapi" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _testinternalcapi" >&5 +$as_echo_n "checking for stdlib extension module _testinternalcapi... " >&6; } + case $py_stdlib_not_available in #( + *_testinternalcapi*) : + py_cv_module__testinternalcapi=n/a ;; #( + *) : + if test "$TEST_MODULES" = yes; then : + if true; then : + py_cv_module__testinternalcapi=yes +else + py_cv_module__testinternalcapi=missing +fi +else + py_cv_module__testinternalcapi=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__TESTINTERNALCAPI=$py_cv_module__testinternalcapi$as_nl" + if test "x$py_cv_module__testinternalcapi" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__TESTINTERNALCAPI_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTINTERNALCAPI_LDFLAGS=$as_nl" + if true; then + MODULE__TESTINTERNALCAPI_TRUE= + MODULE__TESTINTERNALCAPI_FALSE='#' +else + MODULE__TESTINTERNALCAPI_TRUE='#' + MODULE__TESTINTERNALCAPI_FALSE= +fi + + +else + + if false; then + MODULE__TESTINTERNALCAPI_TRUE= + MODULE__TESTINTERNALCAPI_FALSE='#' +else + MODULE__TESTINTERNALCAPI_TRUE='#' + MODULE__TESTINTERNALCAPI_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__testinternalcapi" >&5 +$as_echo "$py_cv_module__testinternalcapi" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _testbuffer" >&5 +$as_echo_n "checking for stdlib extension module _testbuffer... " >&6; } + case $py_stdlib_not_available in #( + *_testbuffer*) : + py_cv_module__testbuffer=n/a ;; #( + *) : + if test "$TEST_MODULES" = yes; then : + if true; then : + py_cv_module__testbuffer=yes +else + py_cv_module__testbuffer=missing +fi +else + py_cv_module__testbuffer=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__TESTBUFFER=$py_cv_module__testbuffer$as_nl" + if test "x$py_cv_module__testbuffer" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__TESTBUFFER_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTBUFFER_LDFLAGS=$as_nl" + if true; then + MODULE__TESTBUFFER_TRUE= + MODULE__TESTBUFFER_FALSE='#' +else + MODULE__TESTBUFFER_TRUE='#' + MODULE__TESTBUFFER_FALSE= +fi + + +else + + if false; then + MODULE__TESTBUFFER_TRUE= + MODULE__TESTBUFFER_FALSE='#' +else + MODULE__TESTBUFFER_TRUE='#' + MODULE__TESTBUFFER_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__testbuffer" >&5 +$as_echo "$py_cv_module__testbuffer" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _testimportmultiple" >&5 +$as_echo_n "checking for stdlib extension module _testimportmultiple... " >&6; } + case $py_stdlib_not_available in #( + *_testimportmultiple*) : + py_cv_module__testimportmultiple=n/a ;; #( + *) : + if test "$TEST_MODULES" = yes; then : + if true; then : + py_cv_module__testimportmultiple=yes +else + py_cv_module__testimportmultiple=missing +fi +else + py_cv_module__testimportmultiple=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__TESTIMPORTMULTIPLE=$py_cv_module__testimportmultiple$as_nl" + if test "x$py_cv_module__testimportmultiple" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__TESTIMPORTMULTIPLE_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTIMPORTMULTIPLE_LDFLAGS=$as_nl" + if true; then + MODULE__TESTIMPORTMULTIPLE_TRUE= + MODULE__TESTIMPORTMULTIPLE_FALSE='#' +else + MODULE__TESTIMPORTMULTIPLE_TRUE='#' + MODULE__TESTIMPORTMULTIPLE_FALSE= +fi + + +else + + if false; then + MODULE__TESTIMPORTMULTIPLE_TRUE= + MODULE__TESTIMPORTMULTIPLE_FALSE='#' +else + MODULE__TESTIMPORTMULTIPLE_TRUE='#' + MODULE__TESTIMPORTMULTIPLE_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__testimportmultiple" >&5 +$as_echo "$py_cv_module__testimportmultiple" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _testmultiphase" >&5 +$as_echo_n "checking for stdlib extension module _testmultiphase... " >&6; } + case $py_stdlib_not_available in #( + *_testmultiphase*) : + py_cv_module__testmultiphase=n/a ;; #( + *) : + if test "$TEST_MODULES" = yes; then : + if true; then : + py_cv_module__testmultiphase=yes +else + py_cv_module__testmultiphase=missing +fi +else + py_cv_module__testmultiphase=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__TESTMULTIPHASE=$py_cv_module__testmultiphase$as_nl" + if test "x$py_cv_module__testmultiphase" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__TESTMULTIPHASE_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TESTMULTIPHASE_LDFLAGS=$as_nl" + if true; then + MODULE__TESTMULTIPHASE_TRUE= + MODULE__TESTMULTIPHASE_FALSE='#' +else + MODULE__TESTMULTIPHASE_TRUE='#' + MODULE__TESTMULTIPHASE_FALSE= +fi + + +else + + if false; then + MODULE__TESTMULTIPHASE_TRUE= + MODULE__TESTMULTIPHASE_FALSE='#' +else + MODULE__TESTMULTIPHASE_TRUE='#' + MODULE__TESTMULTIPHASE_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__testmultiphase" >&5 +$as_echo "$py_cv_module__testmultiphase" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _xxtestfuzz" >&5 +$as_echo_n "checking for stdlib extension module _xxtestfuzz... " >&6; } + case $py_stdlib_not_available in #( + *_xxtestfuzz*) : + py_cv_module__xxtestfuzz=n/a ;; #( + *) : + if test "$TEST_MODULES" = yes; then : + if true; then : + py_cv_module__xxtestfuzz=yes +else + py_cv_module__xxtestfuzz=missing +fi +else + py_cv_module__xxtestfuzz=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__XXTESTFUZZ=$py_cv_module__xxtestfuzz$as_nl" + if test "x$py_cv_module__xxtestfuzz" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__XXTESTFUZZ_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__XXTESTFUZZ_LDFLAGS=$as_nl" + if true; then + MODULE__XXTESTFUZZ_TRUE= + MODULE__XXTESTFUZZ_FALSE='#' +else + MODULE__XXTESTFUZZ_TRUE='#' + MODULE__XXTESTFUZZ_FALSE= +fi + + +else + + if false; then + MODULE__XXTESTFUZZ_TRUE= + MODULE__XXTESTFUZZ_FALSE='#' +else + MODULE__XXTESTFUZZ_TRUE='#' + MODULE__XXTESTFUZZ_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__xxtestfuzz" >&5 +$as_echo "$py_cv_module__xxtestfuzz" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module readline" >&5 +$as_echo_n "checking for stdlib extension module readline... " >&6; } + case $py_stdlib_not_available in #( + *readline*) : + py_cv_module_readline=n/a ;; #( + *) : + if true; then : + if test "$py_cv_lib_readline" = yes; then : + py_cv_module_readline=yes +else + py_cv_module_readline=missing +fi +else + py_cv_module_readline=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_READLINE=$py_cv_module_readline$as_nl" + if test "x$py_cv_module_readline" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_READLINE_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE_READLINE_LDFLAGS=$READLINE_LIBS$as_nl" + if true; then + MODULE_READLINE_TRUE= + MODULE_READLINE_FALSE='#' +else + MODULE_READLINE_TRUE='#' + MODULE_READLINE_FALSE= +fi + + +else + + if false; then + MODULE_READLINE_TRUE= + MODULE_READLINE_FALSE='#' +else + MODULE_READLINE_TRUE='#' + MODULE_READLINE_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_readline" >&5 +$as_echo "$py_cv_module_readline" >&6; } + +# TODO: detect curses +#PY_STDLIB_MOD([_curses], [true], [true], [], [-lncurses -lncursesw -ltermcap]) +#PY_STDLIB_MOD([_curses_panel], [true], [true], [], [-lpanel -lncurses]) +# TODO detect presence of libcrypt +#PY_STDLIB_MOD([_crypt], +# [test "$ac_sys_system" != VxWorks], +# [test "$ac_cv_search_crypt_r" != no -o "$ac_cv_search_crypt" != no], +# [], [-lcrypt]) + + as_fn_append MODULE_BLOCK "MODULE__SOCKET=yes$as_nl" + if true; then + MODULE__SOCKET_TRUE= + MODULE__SOCKET_FALSE='#' +else + MODULE__SOCKET_TRUE='#' + MODULE__SOCKET_FALSE= +fi + + + +# TODO: add OPENSSL_RPATH + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _ssl" >&5 +$as_echo_n "checking for stdlib extension module _ssl... " >&6; } + case $py_stdlib_not_available in #( + *_ssl*) : + py_cv_module__ssl=n/a ;; #( + *) : + if true; then : + if test "$ac_cv_working_openssl_ssl" = yes; then : + py_cv_module__ssl=yes +else + py_cv_module__ssl=missing +fi +else + py_cv_module__ssl=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__SSL=$py_cv_module__ssl$as_nl" + if test "x$py_cv_module__ssl" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__SSL_CFLAGS=$OPENSSL_INCLUDES$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SSL_LDFLAGS=$OPENSSL_LIBS $OPENSSL_LDFLAGS$as_nl" + if true; then + MODULE__SSL_TRUE= + MODULE__SSL_FALSE='#' +else + MODULE__SSL_TRUE='#' + MODULE__SSL_FALSE= +fi + + +else + + if false; then + MODULE__SSL_TRUE= + MODULE__SSL_FALSE='#' +else + MODULE__SSL_TRUE='#' + MODULE__SSL_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__ssl" >&5 +$as_echo "$py_cv_module__ssl" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _hashlib" >&5 +$as_echo_n "checking for stdlib extension module _hashlib... " >&6; } + case $py_stdlib_not_available in #( + *_hashlib*) : + py_cv_module__hashlib=n/a ;; #( + *) : + if true; then : + if test "$ac_cv_working_openssl_ssl" = yes; then : + py_cv_module__hashlib=yes +else + py_cv_module__hashlib=missing +fi +else + py_cv_module__hashlib=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__HASHLIB=$py_cv_module__hashlib$as_nl" + if test "x$py_cv_module__hashlib" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__HASHLIB_CFLAGS=$OPENSSL_INCLUDES$as_nl" + as_fn_append MODULE_BLOCK "MODULE__HASHLIB_LDFLAGS=$OPENSSL_LIBS $OPENSSL_LDFLAGS$as_nl" + if true; then + MODULE__HASHLIB_TRUE= + MODULE__HASHLIB_FALSE='#' +else + MODULE__HASHLIB_TRUE='#' + MODULE__HASHLIB_FALSE= +fi + + +else + + if false; then + MODULE__HASHLIB_TRUE= + MODULE__HASHLIB_FALSE='#' +else + MODULE__HASHLIB_TRUE='#' + MODULE__HASHLIB_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__hashlib" >&5 +$as_echo "$py_cv_module__hashlib" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _sha256" >&5 +$as_echo_n "checking for stdlib extension module _sha256... " >&6; } + case $py_stdlib_not_available in #( + *_sha256*) : + py_cv_module__sha256=n/a ;; #( + *) : + if test "$with_builtin_sha256" = yes; then : + if true; then : + py_cv_module__sha256=yes +else + py_cv_module__sha256=missing +fi +else + py_cv_module__sha256=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__SHA256=$py_cv_module__sha256$as_nl" + if test "x$py_cv_module__sha256" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__SHA256_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA256_LDFLAGS=$as_nl" + if true; then + MODULE__SHA256_TRUE= + MODULE__SHA256_FALSE='#' +else + MODULE__SHA256_TRUE='#' + MODULE__SHA256_FALSE= +fi + + +else + + if false; then + MODULE__SHA256_TRUE= + MODULE__SHA256_FALSE='#' +else + MODULE__SHA256_TRUE='#' + MODULE__SHA256_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__sha256" >&5 +$as_echo "$py_cv_module__sha256" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _sha512" >&5 +$as_echo_n "checking for stdlib extension module _sha512... " >&6; } + case $py_stdlib_not_available in #( + *_sha512*) : + py_cv_module__sha512=n/a ;; #( + *) : + if test "$with_builtin_sha512" = yes; then : + if true; then : + py_cv_module__sha512=yes +else + py_cv_module__sha512=missing +fi +else + py_cv_module__sha512=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__SHA512=$py_cv_module__sha512$as_nl" + if test "x$py_cv_module__sha512" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__SHA512_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA512_LDFLAGS=$as_nl" + if true; then + MODULE__SHA512_TRUE= + MODULE__SHA512_FALSE='#' +else + MODULE__SHA512_TRUE='#' + MODULE__SHA512_FALSE= +fi + + +else + + if false; then + MODULE__SHA512_TRUE= + MODULE__SHA512_FALSE='#' +else + MODULE__SHA512_TRUE='#' + MODULE__SHA512_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__sha512" >&5 +$as_echo "$py_cv_module__sha512" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _md5" >&5 +$as_echo_n "checking for stdlib extension module _md5... " >&6; } + case $py_stdlib_not_available in #( + *_md5*) : + py_cv_module__md5=n/a ;; #( + *) : + if test "$with_builtin_md5" = yes; then : + if true; then : + py_cv_module__md5=yes +else + py_cv_module__md5=missing +fi +else + py_cv_module__md5=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__MD5=$py_cv_module__md5$as_nl" + if test "x$py_cv_module__md5" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__MD5_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__MD5_LDFLAGS=$as_nl" + if true; then + MODULE__MD5_TRUE= + MODULE__MD5_FALSE='#' +else + MODULE__MD5_TRUE='#' + MODULE__MD5_FALSE= +fi + + +else + + if false; then + MODULE__MD5_TRUE= + MODULE__MD5_FALSE='#' +else + MODULE__MD5_TRUE='#' + MODULE__MD5_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__md5" >&5 +$as_echo "$py_cv_module__md5" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _sha1" >&5 +$as_echo_n "checking for stdlib extension module _sha1... " >&6; } + case $py_stdlib_not_available in #( + *_sha1*) : + py_cv_module__sha1=n/a ;; #( + *) : + if test "$with_builtin_sha1" = yes; then : + if true; then : + py_cv_module__sha1=yes +else + py_cv_module__sha1=missing +fi +else + py_cv_module__sha1=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__SHA1=$py_cv_module__sha1$as_nl" + if test "x$py_cv_module__sha1" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__SHA1_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA1_LDFLAGS=$as_nl" + if true; then + MODULE__SHA1_TRUE= + MODULE__SHA1_FALSE='#' +else + MODULE__SHA1_TRUE='#' + MODULE__SHA1_FALSE= +fi + + +else + + if false; then + MODULE__SHA1_TRUE= + MODULE__SHA1_FALSE='#' +else + MODULE__SHA1_TRUE='#' + MODULE__SHA1_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__sha1" >&5 +$as_echo "$py_cv_module__sha1" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _blake2" >&5 +$as_echo_n "checking for stdlib extension module _blake2... " >&6; } + case $py_stdlib_not_available in #( + *_blake2*) : + py_cv_module__blake2=n/a ;; #( + *) : + if test "$with_builtin_blake2" = yes; then : + if true; then : + py_cv_module__blake2=yes +else + py_cv_module__blake2=missing +fi +else + py_cv_module__blake2=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__BLAKE2=$py_cv_module__blake2$as_nl" + if test "x$py_cv_module__blake2" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__BLAKE2_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__BLAKE2_LDFLAGS=$as_nl" + if true; then + MODULE__BLAKE2_TRUE= + MODULE__BLAKE2_FALSE='#' +else + MODULE__BLAKE2_TRUE='#' + MODULE__BLAKE2_FALSE= +fi + + +else + + if false; then + MODULE__BLAKE2_TRUE= + MODULE__BLAKE2_FALSE='#' +else + MODULE__BLAKE2_TRUE='#' + MODULE__BLAKE2_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__blake2" >&5 +$as_echo "$py_cv_module__blake2" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _sha3" >&5 +$as_echo_n "checking for stdlib extension module _sha3... " >&6; } + case $py_stdlib_not_available in #( + *_sha3*) : + py_cv_module__sha3=n/a ;; #( + *) : + if test "$with_builtin_sha3" = yes; then : + if true; then : + py_cv_module__sha3=yes +else + py_cv_module__sha3=missing +fi +else + py_cv_module__sha3=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__SHA3=$py_cv_module__sha3$as_nl" + if test "x$py_cv_module__sha3" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__SHA3_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SHA3_LDFLAGS=$as_nl" + if true; then + MODULE__SHA3_TRUE= + MODULE__SHA3_FALSE='#' +else + MODULE__SHA3_TRUE='#' + MODULE__SHA3_FALSE= +fi + + +else + + if false; then + MODULE__SHA3_TRUE= + MODULE__SHA3_FALSE='#' +else + MODULE__SHA3_TRUE='#' + MODULE__SHA3_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__sha3" >&5 +$as_echo "$py_cv_module__sha3" >&6; } + +# TODO: select dbm library +#PY_STDLIB_MOD([_dbm], [true], [true], [-DUSE_GDBM_COMPAT], [-lgdbm_compat]) +# TODO: only build gdbm when it is listed on libdbmorder +#PY_STDLIB_MOD([_gdbm], +# [true], +# [test "$ac_cv_lib_gdbm_gdbm_open" = yes], +# [$GDBM_CFLAGS], [$GDBM_LDFLAGS]) +# TODO: detect sqlite +#PY_STDLIB_MOD([_sqlite3], [true], [true], [], [-lsqlite3]) + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module termios" >&5 +$as_echo_n "checking for stdlib extension module termios... " >&6; } + case $py_stdlib_not_available in #( + *termios*) : + py_cv_module_termios=n/a ;; #( + *) : + if test "$ac_sys_system" != VxWorks; then : + if true; then : + py_cv_module_termios=yes +else + py_cv_module_termios=missing +fi +else + py_cv_module_termios=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_TERMIOS=$py_cv_module_termios$as_nl" + if test "x$py_cv_module_termios" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_TERMIOS_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE_TERMIOS_LDFLAGS=$as_nl" + if true; then + MODULE_TERMIOS_TRUE= + MODULE_TERMIOS_FALSE='#' +else + MODULE_TERMIOS_TRUE='#' + MODULE_TERMIOS_FALSE= +fi + + +else + + if false; then + MODULE_TERMIOS_TRUE= + MODULE_TERMIOS_FALSE='#' +else + MODULE_TERMIOS_TRUE='#' + MODULE_TERMIOS_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_termios" >&5 +$as_echo "$py_cv_module_termios" >&6; } + + + as_fn_append MODULE_BLOCK "MODULE_RESOURCE=yes$as_nl" + if true; then + MODULE_RESOURCE_TRUE= + MODULE_RESOURCE_FALSE='#' +else + MODULE_RESOURCE_TRUE='#' + MODULE_RESOURCE_FALSE= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module ossaudiodev" >&5 +$as_echo_n "checking for stdlib extension module ossaudiodev... " >&6; } + case $py_stdlib_not_available in #( + *ossaudiodev*) : + py_cv_module_ossaudiodev=n/a ;; #( + *) : + if true; then : + if test "$ac_cv_header_linux_soundcard_h" = yes -o "$ac_cv_header_sys_soundcard_h" = yes; then : + py_cv_module_ossaudiodev=yes +else + py_cv_module_ossaudiodev=missing +fi +else + py_cv_module_ossaudiodev=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV=$py_cv_module_ossaudiodev$as_nl" + if test "x$py_cv_module_ossaudiodev" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE_OSSAUDIODEV_LDFLAGS=$as_nl" + if true; then + MODULE_OSSAUDIODEV_TRUE= + MODULE_OSSAUDIODEV_FALSE='#' +else + MODULE_OSSAUDIODEV_TRUE='#' + MODULE_OSSAUDIODEV_FALSE= +fi + + +else + + if false; then + MODULE_OSSAUDIODEV_TRUE= + MODULE_OSSAUDIODEV_FALSE='#' +else + MODULE_OSSAUDIODEV_TRUE='#' + MODULE_OSSAUDIODEV_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_ossaudiodev" >&5 +$as_echo "$py_cv_module_ossaudiodev" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _scproxy" >&5 +$as_echo_n "checking for stdlib extension module _scproxy... " >&6; } + case $py_stdlib_not_available in #( + *_scproxy*) : + py_cv_module__scproxy=n/a ;; #( + *) : + if test "$ac_sys_system" = "Darwin"; then : + if true; then : + py_cv_module__scproxy=yes +else + py_cv_module__scproxy=missing +fi +else + py_cv_module__scproxy=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__SCPROXY=$py_cv_module__scproxy$as_nl" + if test "x$py_cv_module__scproxy" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__SCPROXY_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__SCPROXY_LDFLAGS=-framework SystemConfiguration -framework CoreFoundation$as_nl" + if true; then + MODULE__SCPROXY_TRUE= + MODULE__SCPROXY_FALSE='#' +else + MODULE__SCPROXY_TRUE='#' + MODULE__SCPROXY_FALSE= +fi + + +else + + if false; then + MODULE__SCPROXY_TRUE= + MODULE__SCPROXY_FALSE='#' +else + MODULE__SCPROXY_TRUE='#' + MODULE__SCPROXY_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__scproxy" >&5 +$as_echo "$py_cv_module__scproxy" >&6; } + +# TODO: detect nsl and tirpc +#PY_STDLIB_MOD([nis], [true], [true], [-I/usr/include/tirpc], [-lnsl -ltirpc]) + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module zlib" >&5 +$as_echo_n "checking for stdlib extension module zlib... " >&6; } + case $py_stdlib_not_available in #( + *zlib*) : + py_cv_module_zlib=n/a ;; #( + *) : + if true; then : + if test "$ac_cv_header_zlib_h" = yes -a "$ac_cv_lib_z_gzread" = yes; then : + py_cv_module_zlib=yes +else + py_cv_module_zlib=missing +fi +else + py_cv_module_zlib=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_ZLIB=$py_cv_module_zlib$as_nl" + if test "x$py_cv_module_zlib" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_ZLIB_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE_ZLIB_LDFLAGS=-lz$as_nl" + if true; then + MODULE_ZLIB_TRUE= + MODULE_ZLIB_FALSE='#' +else + MODULE_ZLIB_TRUE='#' + MODULE_ZLIB_FALSE= +fi + + +else + + if false; then + MODULE_ZLIB_TRUE= + MODULE_ZLIB_FALSE='#' +else + MODULE_ZLIB_TRUE='#' + MODULE_ZLIB_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_zlib" >&5 +$as_echo "$py_cv_module_zlib" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module binascii" >&5 +$as_echo_n "checking for stdlib extension module binascii... " >&6; } + case $py_stdlib_not_available in #( + *binascii*) : + py_cv_module_binascii=n/a ;; #( + *) : + if true; then : + if true; then : + py_cv_module_binascii=yes +else + py_cv_module_binascii=missing +fi +else + py_cv_module_binascii=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_BINASCII=$py_cv_module_binascii$as_nl" + if test "x$py_cv_module_binascii" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_BINASCII_CFLAGS=$BINASCII_CFLAGS$as_nl" + as_fn_append MODULE_BLOCK "MODULE_BINASCII_LDFLAGS=$BINASCII_LDFLAGS$as_nl" + if true; then + MODULE_BINASCII_TRUE= + MODULE_BINASCII_FALSE='#' +else + MODULE_BINASCII_TRUE='#' + MODULE_BINASCII_FALSE= +fi + + +else + + if false; then + MODULE_BINASCII_TRUE= + MODULE_BINASCII_FALSE='#' +else + MODULE_BINASCII_TRUE='#' + MODULE_BINASCII_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_binascii" >&5 +$as_echo "$py_cv_module_binascii" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _bz2" >&5 +$as_echo_n "checking for stdlib extension module _bz2... " >&6; } + case $py_stdlib_not_available in #( + *_bz2*) : + py_cv_module__bz2=n/a ;; #( + *) : + if true; then : + if test "$ac_cv_header_bzlib_h" = yes -a "$ac_cv_lib_bz2_BZ2_bzCompress" = yes; then : + py_cv_module__bz2=yes +else + py_cv_module__bz2=missing +fi +else + py_cv_module__bz2=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__BZ2=$py_cv_module__bz2$as_nl" + if test "x$py_cv_module__bz2" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__BZ2_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__BZ2_LDFLAGS=-lbz2$as_nl" + if true; then + MODULE__BZ2_TRUE= + MODULE__BZ2_FALSE='#' +else + MODULE__BZ2_TRUE='#' + MODULE__BZ2_FALSE= +fi + + +else + + if false; then + MODULE__BZ2_TRUE= + MODULE__BZ2_FALSE='#' +else + MODULE__BZ2_TRUE='#' + MODULE__BZ2_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__bz2" >&5 +$as_echo "$py_cv_module__bz2" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _lzma" >&5 +$as_echo_n "checking for stdlib extension module _lzma... " >&6; } + case $py_stdlib_not_available in #( + *_lzma*) : + py_cv_module__lzma=n/a ;; #( + *) : + if true; then : + if test "$ac_cv_header_lzma_h" = yes -a "$ac_cv_lib_lzma_lzma_easy_encoder" = yes; then : + py_cv_module__lzma=yes +else + py_cv_module__lzma=missing +fi +else + py_cv_module__lzma=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__LZMA=$py_cv_module__lzma$as_nl" + if test "x$py_cv_module__lzma" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__LZMA_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__LZMA_LDFLAGS=-llzma$as_nl" + if true; then + MODULE__LZMA_TRUE= + MODULE__LZMA_FALSE='#' +else + MODULE__LZMA_TRUE='#' + MODULE__LZMA_FALSE= +fi + + +else + + if false; then + MODULE__LZMA_TRUE= + MODULE__LZMA_FALSE='#' +else + MODULE__LZMA_TRUE='#' + MODULE__LZMA_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__lzma" >&5 +$as_echo "$py_cv_module__lzma" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module pyexpat" >&5 +$as_echo_n "checking for stdlib extension module pyexpat... " >&6; } + case $py_stdlib_not_available in #( + *pyexpat*) : + py_cv_module_pyexpat=n/a ;; #( + *) : + if true; then : + if true; then : + py_cv_module_pyexpat=yes +else + py_cv_module_pyexpat=missing +fi +else + py_cv_module_pyexpat=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_PYEXPAT=$py_cv_module_pyexpat$as_nl" + if test "x$py_cv_module_pyexpat" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_PYEXPAT_CFLAGS=$LIBEXPAT_CFLAGS$as_nl" + as_fn_append MODULE_BLOCK "MODULE_PYEXPAT_LDFLAGS=$LIBEXPAT_LDFLAGS$as_nl" + if true; then + MODULE_PYEXPAT_TRUE= + MODULE_PYEXPAT_FALSE='#' +else + MODULE_PYEXPAT_TRUE='#' + MODULE_PYEXPAT_FALSE= +fi + + +else + + if false; then + MODULE_PYEXPAT_TRUE= + MODULE_PYEXPAT_FALSE='#' +else + MODULE_PYEXPAT_TRUE='#' + MODULE_PYEXPAT_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_pyexpat" >&5 +$as_echo "$py_cv_module_pyexpat" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _elementtree" >&5 +$as_echo_n "checking for stdlib extension module _elementtree... " >&6; } + case $py_stdlib_not_available in #( + *_elementtree*) : + py_cv_module__elementtree=n/a ;; #( + *) : + if true; then : + if true; then : + py_cv_module__elementtree=yes +else + py_cv_module__elementtree=missing +fi +else + py_cv_module__elementtree=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__ELEMENTTREE=$py_cv_module__elementtree$as_nl" + if test "x$py_cv_module__elementtree" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__ELEMENTTREE_CFLAGS=$LIBEXPAT_CFLAGS$as_nl" + as_fn_append MODULE_BLOCK "MODULE__ELEMENTTREE_LDFLAGS=$as_nl" + if true; then + MODULE__ELEMENTTREE_TRUE= + MODULE__ELEMENTTREE_FALSE='#' +else + MODULE__ELEMENTTREE_TRUE='#' + MODULE__ELEMENTTREE_FALSE= +fi + + +else + + if false; then + MODULE__ELEMENTTREE_TRUE= + MODULE__ELEMENTTREE_FALSE='#' +else + MODULE__ELEMENTTREE_TRUE='#' + MODULE__ELEMENTTREE_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__elementtree" >&5 +$as_echo "$py_cv_module__elementtree" >&6; } + + + as_fn_append MODULE_BLOCK "MODULE__MULTIBYTECODEC=yes$as_nl" + if true; then + MODULE__MULTIBYTECODEC_TRUE= + MODULE__MULTIBYTECODEC_FALSE='#' +else + MODULE__MULTIBYTECODEC_TRUE='#' + MODULE__MULTIBYTECODEC_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__CODECS_KR=yes$as_nl" + if true; then + MODULE__CODECS_KR_TRUE= + MODULE__CODECS_KR_FALSE='#' +else + MODULE__CODECS_KR_TRUE='#' + MODULE__CODECS_KR_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__CODECS_JP=yes$as_nl" + if true; then + MODULE__CODECS_JP_TRUE= + MODULE__CODECS_JP_FALSE='#' +else + MODULE__CODECS_JP_TRUE='#' + MODULE__CODECS_JP_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__CODECS_CN=yes$as_nl" + if true; then + MODULE__CODECS_CN_TRUE= + MODULE__CODECS_CN_FALSE='#' +else + MODULE__CODECS_CN_TRUE='#' + MODULE__CODECS_CN_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__CODECS_TW=yes$as_nl" + if true; then + MODULE__CODECS_TW_TRUE= + MODULE__CODECS_TW_FALSE='#' +else + MODULE__CODECS_TW_TRUE='#' + MODULE__CODECS_TW_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__CODECS_HK=yes$as_nl" + if true; then + MODULE__CODECS_HK_TRUE= + MODULE__CODECS_HK_FALSE='#' +else + MODULE__CODECS_HK_TRUE='#' + MODULE__CODECS_HK_FALSE= +fi + + + + + as_fn_append MODULE_BLOCK "MODULE__CODECS_ISO2022=yes$as_nl" + if true; then + MODULE__CODECS_ISO2022_TRUE= + MODULE__CODECS_ISO2022_FALSE='#' +else + MODULE__CODECS_ISO2022_TRUE='#' + MODULE__CODECS_ISO2022_FALSE= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _decimal" >&5 +$as_echo_n "checking for stdlib extension module _decimal... " >&6; } + case $py_stdlib_not_available in #( + *_decimal*) : + py_cv_module__decimal=n/a ;; #( + *) : + if true; then : + if true; then : + py_cv_module__decimal=yes +else + py_cv_module__decimal=missing +fi +else + py_cv_module__decimal=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__DECIMAL=$py_cv_module__decimal$as_nl" + if test "x$py_cv_module__decimal" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__DECIMAL_CFLAGS=$LIBMPDEC_CFLAGS$as_nl" + as_fn_append MODULE_BLOCK "MODULE__DECIMAL_LDFLAGS=$LIBMPDEC_LDFLAGS$as_nl" + if true; then + MODULE__DECIMAL_TRUE= + MODULE__DECIMAL_FALSE='#' +else + MODULE__DECIMAL_TRUE='#' + MODULE__DECIMAL_FALSE= +fi + + +else + + if false; then + MODULE__DECIMAL_TRUE= + MODULE__DECIMAL_FALSE='#' +else + MODULE__DECIMAL_TRUE='#' + MODULE__DECIMAL_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__decimal" >&5 +$as_echo "$py_cv_module__decimal" >&6; } + +# TODO: handle ffi dependency +#PY_STDLIB_MOD([_ctypes], +# [true], [true], +# [-DHAVE_FFI_PREP_CIF_VAR -DHAVE_FFI_PREP_CLOSURE_LOC -DHAVE_FFI_CLOSURE_ALLOC], +# [-ldl -lffi]) + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _ctypes_test" >&5 +$as_echo_n "checking for stdlib extension module _ctypes_test... " >&6; } + case $py_stdlib_not_available in #( + *_ctypes_test*) : + py_cv_module__ctypes_test=n/a ;; #( + *) : + if test "$TEST_MODULES" = yes; then : + if true; then : + py_cv_module__ctypes_test=yes +else + py_cv_module__ctypes_test=missing +fi +else + py_cv_module__ctypes_test=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST=$py_cv_module__ctypes_test$as_nl" + if test "x$py_cv_module__ctypes_test" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE__CTYPES_TEST_LDFLAGS=-lm$as_nl" + if true; then + MODULE__CTYPES_TEST_TRUE= + MODULE__CTYPES_TEST_FALSE='#' +else + MODULE__CTYPES_TEST_TRUE='#' + MODULE__CTYPES_TEST_FALSE= +fi + + +else + + if false; then + MODULE__CTYPES_TEST_TRUE= + MODULE__CTYPES_TEST_FALSE='#' +else + MODULE__CTYPES_TEST_TRUE='#' + MODULE__CTYPES_TEST_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__ctypes_test" >&5 +$as_echo "$py_cv_module__ctypes_test" >&6; } + +# TODO: include _multiprocessing/semaphore.c conditional + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _multiprocessing" >&5 +$as_echo_n "checking for stdlib extension module _multiprocessing... " >&6; } + case $py_stdlib_not_available in #( + *_multiprocessing*) : + py_cv_module__multiprocessing=n/a ;; #( + *) : + if true; then : + if true; then : + py_cv_module__multiprocessing=yes +else + py_cv_module__multiprocessing=missing +fi +else + py_cv_module__multiprocessing=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__MULTIPROCESSING=$py_cv_module__multiprocessing$as_nl" + if test "x$py_cv_module__multiprocessing" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__MULTIPROCESSING_CFLAGS=-I\$(srcdir)/Modules/_multiprocessing$as_nl" + as_fn_append MODULE_BLOCK "MODULE__MULTIPROCESSING_LDFLAGS=$SHM_OPEN_LIB$as_nl" + if true; then + MODULE__MULTIPROCESSING_TRUE= + MODULE__MULTIPROCESSING_FALSE='#' +else + MODULE__MULTIPROCESSING_TRUE='#' + MODULE__MULTIPROCESSING_FALSE= +fi + + +else + + if false; then + MODULE__MULTIPROCESSING_TRUE= + MODULE__MULTIPROCESSING_FALSE='#' +else + MODULE__MULTIPROCESSING_TRUE='#' + MODULE__MULTIPROCESSING_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__multiprocessing" >&5 +$as_echo "$py_cv_module__multiprocessing" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _posixshmem" >&5 +$as_echo_n "checking for stdlib extension module _posixshmem... " >&6; } + case $py_stdlib_not_available in #( + *_posixshmem*) : + py_cv_module__posixshmem=n/a ;; #( + *) : + if true; then : + if test "$ac_cv_func_shm_open" = yes -a "$ac_cv_func_shm_unlink" = yes; then : + py_cv_module__posixshmem=yes +else + py_cv_module__posixshmem=missing +fi +else + py_cv_module__posixshmem=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__POSIXSHMEM=$py_cv_module__posixshmem$as_nl" + if test "x$py_cv_module__posixshmem" = xyes; then : + as_fn_append MODULE_BLOCK "MODULE__POSIXSHMEM_CFLAGS=-I\$(srcdir)/Modules/_multiprocessing$as_nl" + as_fn_append MODULE_BLOCK "MODULE__POSIXSHMEM_LDFLAGS=$SHM_OPEN_LIB$as_nl" + if true; then + MODULE__POSIXSHMEM_TRUE= + MODULE__POSIXSHMEM_FALSE='#' +else + MODULE__POSIXSHMEM_TRUE='#' + MODULE__POSIXSHMEM_FALSE= fi -# --with-experimental-isolated-subinterpreters +else -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-experimental-isolated-subinterpreters" >&5 -$as_echo_n "checking for --with-experimental-isolated-subinterpreters... " >&6; } + if false; then + MODULE__POSIXSHMEM_TRUE= + MODULE__POSIXSHMEM_FALSE='#' +else + MODULE__POSIXSHMEM_TRUE='#' + MODULE__POSIXSHMEM_FALSE= +fi -# Check whether --with-experimental-isolated-subinterpreters was given. -if test "${with_experimental_isolated_subinterpreters+set}" = set; then : - withval=$with_experimental_isolated_subinterpreters; -if test "$withval" != no -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; - $as_echo "#define EXPERIMENTAL_ISOLATED_SUBINTERPRETERS 1" >>confdefs.h +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__posixshmem" >&5 +$as_echo "$py_cv_module__posixshmem" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _tkinter" >&5 +$as_echo_n "checking for stdlib extension module _tkinter... " >&6; } + case $py_stdlib_not_available in #( + *_tkinter*) : + py_cv_module__tkinter=n/a ;; #( + *) : + if true; then : + if test -n "$TCLTK_LIBS"; then : + py_cv_module__tkinter=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; + py_cv_module__tkinter=missing fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + py_cv_module__tkinter=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__TKINTER=$py_cv_module__tkinter$as_nl" + if test "x$py_cv_module__tkinter" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE__TKINTER_CFLAGS=-DWITH_APPINIT=1$as_nl" + as_fn_append MODULE_BLOCK "MODULE__TKINTER_LDFLAGS=$TCLTK_LIBS$as_nl" + if true; then + MODULE__TKINTER_TRUE= + MODULE__TKINTER_FALSE='#' +else + MODULE__TKINTER_TRUE='#' + MODULE__TKINTER_FALSE= fi -# --with-static-libpython -STATIC_LIBPYTHON=1 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-static-libpython" >&5 -$as_echo_n "checking for --with-static-libpython... " >&6; } +else -# Check whether --with-static-libpython was given. -if test "${with_static_libpython+set}" = set; then : - withval=$with_static_libpython; -if test "$withval" = no -then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; - STATIC_LIBPYTHON=0 + if false; then + MODULE__TKINTER_TRUE= + MODULE__TKINTER_FALSE='#' else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; + MODULE__TKINTER_TRUE='#' + MODULE__TKINTER_FALSE= fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__tkinter" >&5 +$as_echo "$py_cv_module__tkinter" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _uuid" >&5 +$as_echo_n "checking for stdlib extension module _uuid... " >&6; } + case $py_stdlib_not_available in #( + *_uuid*) : + py_cv_module__uuid=n/a ;; #( + *) : + if true; then : + if test "$ac_cv_lib_uuid_uuid_generate_time" = yes -o "$ac_cv_func_uuid_create" = yes; then : + py_cv_module__uuid=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + py_cv_module__uuid=missing fi +else + py_cv_module__uuid=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE__UUID=$py_cv_module__uuid$as_nl" + if test "x$py_cv_module__uuid" = xyes; then : -LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)' -if test "$PY_ENABLE_SHARED" = 1 || test "$enable_framework" ; then - LIBRARY_DEPS="\$(LDLIBRARY) $LIBRARY_DEPS" - if test "$STATIC_LIBPYTHON" = 1; then - LIBRARY_DEPS="\$(LIBRARY) $LIBRARY_DEPS" - fi + as_fn_append MODULE_BLOCK "MODULE__UUID_CFLAGS=$UUID_CFLAGS$as_nl" + as_fn_append MODULE_BLOCK "MODULE__UUID_LDFLAGS=$UUID_LDLAGS$as_nl" + if true; then + MODULE__UUID_TRUE= + MODULE__UUID_FALSE='#' else - LIBRARY_DEPS="\$(LIBRARY) $LIBRARY_DEPS" + MODULE__UUID_TRUE='#' + MODULE__UUID_FALSE= fi +else -# Check whether to disable test modules. Once set, setup.py will not build -# test extension modules and "make install" will not install test suites. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --disable-test-modules" >&5 -$as_echo_n "checking for --disable-test-modules... " >&6; } -# Check whether --enable-test-modules was given. -if test "${enable_test_modules+set}" = set; then : - enableval=$enable_test_modules; + if false; then + MODULE__UUID_TRUE= + MODULE__UUID_FALSE='#' +else + MODULE__UUID_TRUE='#' + MODULE__UUID_FALSE= fi -if test "$enable_test_modules" = no; then - TEST_MODULES=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__uuid" >&5 +$as_echo "$py_cv_module__uuid" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module xxlimited" >&5 +$as_echo_n "checking for stdlib extension module xxlimited... " >&6; } + case $py_stdlib_not_available in #( + *xxlimited*) : + py_cv_module_xxlimited=n/a ;; #( + *) : + if test "$with_trace_refs" != "yes"; then : + if true; then : + py_cv_module_xxlimited=yes else - TEST_MODULES=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + py_cv_module_xxlimited=missing +fi +else + py_cv_module_xxlimited=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_XXLIMITED=$py_cv_module_xxlimited$as_nl" + if test "x$py_cv_module_xxlimited" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_LDFLAGS=$as_nl" + if true; then + MODULE_XXLIMITED_TRUE= + MODULE_XXLIMITED_FALSE='#' +else + MODULE_XXLIMITED_TRUE='#' + MODULE_XXLIMITED_FALSE= +fi + + +else + + if false; then + MODULE_XXLIMITED_TRUE= + MODULE_XXLIMITED_FALSE='#' +else + MODULE_XXLIMITED_TRUE='#' + MODULE_XXLIMITED_FALSE= +fi + + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_xxlimited" >&5 +$as_echo "$py_cv_module_xxlimited" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module xxlimited_35" >&5 +$as_echo_n "checking for stdlib extension module xxlimited_35... " >&6; } + case $py_stdlib_not_available in #( + *xxlimited_35*) : + py_cv_module_xxlimited_35=n/a ;; #( + *) : + if test "$with_trace_refs" != "yes"; then : + if true; then : + py_cv_module_xxlimited_35=yes +else + py_cv_module_xxlimited_35=missing +fi +else + py_cv_module_xxlimited_35=disabled +fi + ;; +esac + as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_35=$py_cv_module_xxlimited_35$as_nl" + if test "x$py_cv_module_xxlimited_35" = xyes; then : + + as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_35_CFLAGS=$as_nl" + as_fn_append MODULE_BLOCK "MODULE_XXLIMITED_35_LDFLAGS=$as_nl" + if true; then + MODULE_XXLIMITED_35_TRUE= + MODULE_XXLIMITED_35_FALSE='#' +else + MODULE_XXLIMITED_35_TRUE='#' + MODULE_XXLIMITED_35_FALSE= +fi + + +else + + if false; then + MODULE_XXLIMITED_35_TRUE= + MODULE_XXLIMITED_35_FALSE='#' +else + MODULE_XXLIMITED_35_TRUE='#' + MODULE_XXLIMITED_35_FALSE= +fi + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module_xxlimited_35" >&5 +$as_echo "$py_cv_module_xxlimited_35" >&6; } + +# substitute multiline block, must come after last PY_STDLIB_MOD() # generate output files ac_config_files="$ac_config_files Makefile.pre Misc/python.pc Misc/python-embed.pc Misc/python-config.sh" +ac_config_files="$ac_config_files Modules/Setup.stdlib" + ac_config_files="$ac_config_files Modules/ld_so_aix" cat >confcache <<\_ACEOF @@ -19312,6 +22006,522 @@ LTLIBOBJS=$ac_ltlibobjs +if test -z "${MODULE__COLLECTIONS_TRUE}" && test -z "${MODULE__COLLECTIONS_FALSE}"; then + as_fn_error $? "conditional \"MODULE__COLLECTIONS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__ABC_TRUE}" && test -z "${MODULE__ABC_FALSE}"; then + as_fn_error $? "conditional \"MODULE__ABC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CODECS_TRUE}" && test -z "${MODULE__CODECS_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CODECS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__FUNCTOOLS_TRUE}" && test -z "${MODULE__FUNCTOOLS_FALSE}"; then + as_fn_error $? "conditional \"MODULE__FUNCTOOLS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__IO_TRUE}" && test -z "${MODULE__IO_FALSE}"; then + as_fn_error $? "conditional \"MODULE__IO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__LOCALE_TRUE}" && test -z "${MODULE__LOCALE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__LOCALE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__OPERATOR_TRUE}" && test -z "${MODULE__OPERATOR_FALSE}"; then + as_fn_error $? "conditional \"MODULE__OPERATOR\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SIGNAL_TRUE}" && test -z "${MODULE__SIGNAL_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SIGNAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SRE_TRUE}" && test -z "${MODULE__SRE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SRE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__STAT_TRUE}" && test -z "${MODULE__STAT_FALSE}"; then + as_fn_error $? "conditional \"MODULE__STAT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SYMTABLE_TRUE}" && test -z "${MODULE__SYMTABLE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SYMTABLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__THREAD_TRUE}" && test -z "${MODULE__THREAD_FALSE}"; then + as_fn_error $? "conditional \"MODULE__THREAD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TRACEMALLOC_TRUE}" && test -z "${MODULE__TRACEMALLOC_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TRACEMALLOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__WEAKREF_TRUE}" && test -z "${MODULE__WEAKREF_FALSE}"; then + as_fn_error $? "conditional \"MODULE__WEAKREF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_ATEXIT_TRUE}" && test -z "${MODULE_ATEXIT_FALSE}"; then + as_fn_error $? "conditional \"MODULE_ATEXIT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_ERRNO_TRUE}" && test -z "${MODULE_ERRNO_FALSE}"; then + as_fn_error $? "conditional \"MODULE_ERRNO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_FAULTHANDLER_TRUE}" && test -z "${MODULE_FAULTHANDLER_FALSE}"; then + as_fn_error $? "conditional \"MODULE_FAULTHANDLER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_ITERTOOLS_TRUE}" && test -z "${MODULE_ITERTOOLS_FALSE}"; then + as_fn_error $? "conditional \"MODULE_ITERTOOLS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_POSIX_TRUE}" && test -z "${MODULE_POSIX_FALSE}"; then + as_fn_error $? "conditional \"MODULE_POSIX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_PWD_TRUE}" && test -z "${MODULE_PWD_FALSE}"; then + as_fn_error $? "conditional \"MODULE_PWD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_TIME_TRUE}" && test -z "${MODULE_TIME_FALSE}"; then + as_fn_error $? "conditional \"MODULE_TIME\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__STRUCT_TRUE}" && test -z "${MODULE__STRUCT_FALSE}"; then + as_fn_error $? "conditional \"MODULE__STRUCT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_ARRAY_TRUE}" && test -z "${MODULE_ARRAY_FALSE}"; then + as_fn_error $? "conditional \"MODULE_ARRAY\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CONTEXTVARS_TRUE}" && test -z "${MODULE__CONTEXTVARS_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CONTEXTVARS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_MATH_TRUE}" && test -z "${MODULE_MATH_FALSE}"; then + as_fn_error $? "conditional \"MODULE_MATH\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_CMATH_TRUE}" && test -z "${MODULE_CMATH_FALSE}"; then + as_fn_error $? "conditional \"MODULE_CMATH\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_TIME_TRUE}" && test -z "${MODULE_TIME_FALSE}"; then + as_fn_error $? "conditional \"MODULE_TIME\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__DATETIME_TRUE}" && test -z "${MODULE__DATETIME_FALSE}"; then + as_fn_error $? "conditional \"MODULE__DATETIME\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__ZONEINFO_TRUE}" && test -z "${MODULE__ZONEINFO_FALSE}"; then + as_fn_error $? "conditional \"MODULE__ZONEINFO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__RANDOM_TRUE}" && test -z "${MODULE__RANDOM_FALSE}"; then + as_fn_error $? "conditional \"MODULE__RANDOM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__BISECT_TRUE}" && test -z "${MODULE__BISECT_FALSE}"; then + as_fn_error $? "conditional \"MODULE__BISECT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__HEAPQ_TRUE}" && test -z "${MODULE__HEAPQ_FALSE}"; then + as_fn_error $? "conditional \"MODULE__HEAPQ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__PICKLE_TRUE}" && test -z "${MODULE__PICKLE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__PICKLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__JSON_TRUE}" && test -z "${MODULE__JSON_FALSE}"; then + as_fn_error $? "conditional \"MODULE__JSON\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__LSPROF_TRUE}" && test -z "${MODULE__LSPROF_FALSE}"; then + as_fn_error $? "conditional \"MODULE__LSPROF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_UNICODEDATA_TRUE}" && test -z "${MODULE_UNICODEDATA_FALSE}"; then + as_fn_error $? "conditional \"MODULE_UNICODEDATA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__OPCODE_TRUE}" && test -z "${MODULE__OPCODE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__OPCODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__ASYNCIO_TRUE}" && test -z "${MODULE__ASYNCIO_FALSE}"; then + as_fn_error $? "conditional \"MODULE__ASYNCIO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__ABC_TRUE}" && test -z "${MODULE__ABC_FALSE}"; then + as_fn_error $? "conditional \"MODULE__ABC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__QUEUE_TRUE}" && test -z "${MODULE__QUEUE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__QUEUE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__STATISTICS_TRUE}" && test -z "${MODULE__STATISTICS_FALSE}"; then + as_fn_error $? "conditional \"MODULE__STATISTICS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TYPING_TRUE}" && test -z "${MODULE__TYPING_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TYPING\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_FCNTL_TRUE}" && test -z "${MODULE_FCNTL_FALSE}"; then + as_fn_error $? "conditional \"MODULE_FCNTL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_PWD_TRUE}" && test -z "${MODULE_PWD_FALSE}"; then + as_fn_error $? "conditional \"MODULE_PWD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_GRP_TRUE}" && test -z "${MODULE_GRP_FALSE}"; then + as_fn_error $? "conditional \"MODULE_GRP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_GRP_TRUE}" && test -z "${MODULE_GRP_FALSE}"; then + as_fn_error $? "conditional \"MODULE_GRP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_SPWD_TRUE}" && test -z "${MODULE_SPWD_FALSE}"; then + as_fn_error $? "conditional \"MODULE_SPWD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_SPWD_TRUE}" && test -z "${MODULE_SPWD_FALSE}"; then + as_fn_error $? "conditional \"MODULE_SPWD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_SELECT_TRUE}" && test -z "${MODULE_SELECT_FALSE}"; then + as_fn_error $? "conditional \"MODULE_SELECT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_MMAP_TRUE}" && test -z "${MODULE_MMAP_FALSE}"; then + as_fn_error $? "conditional \"MODULE_MMAP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_SYSLOG_TRUE}" && test -z "${MODULE_SYSLOG_FALSE}"; then + as_fn_error $? "conditional \"MODULE_SYSLOG\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__XXSUBINTERPRETERS_TRUE}" && test -z "${MODULE__XXSUBINTERPRETERS_FALSE}"; then + as_fn_error $? "conditional \"MODULE__XXSUBINTERPRETERS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__XXSUBINTERPRETERS_TRUE}" && test -z "${MODULE__XXSUBINTERPRETERS_FALSE}"; then + as_fn_error $? "conditional \"MODULE__XXSUBINTERPRETERS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_AUDIOOP_TRUE}" && test -z "${MODULE_AUDIOOP_FALSE}"; then + as_fn_error $? "conditional \"MODULE_AUDIOOP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CSV_TRUE}" && test -z "${MODULE__CSV_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CSV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__POSIXSUBPROCESS_TRUE}" && test -z "${MODULE__POSIXSUBPROCESS_FALSE}"; then + as_fn_error $? "conditional \"MODULE__POSIXSUBPROCESS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TESTCAPI_TRUE}" && test -z "${MODULE__TESTCAPI_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TESTCAPI\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TESTCAPI_TRUE}" && test -z "${MODULE__TESTCAPI_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TESTCAPI\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TESTINTERNALCAPI_TRUE}" && test -z "${MODULE__TESTINTERNALCAPI_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TESTINTERNALCAPI\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TESTINTERNALCAPI_TRUE}" && test -z "${MODULE__TESTINTERNALCAPI_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TESTINTERNALCAPI\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TESTBUFFER_TRUE}" && test -z "${MODULE__TESTBUFFER_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TESTBUFFER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TESTBUFFER_TRUE}" && test -z "${MODULE__TESTBUFFER_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TESTBUFFER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TESTIMPORTMULTIPLE_TRUE}" && test -z "${MODULE__TESTIMPORTMULTIPLE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TESTIMPORTMULTIPLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TESTIMPORTMULTIPLE_TRUE}" && test -z "${MODULE__TESTIMPORTMULTIPLE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TESTIMPORTMULTIPLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TESTMULTIPHASE_TRUE}" && test -z "${MODULE__TESTMULTIPHASE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TESTMULTIPHASE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TESTMULTIPHASE_TRUE}" && test -z "${MODULE__TESTMULTIPHASE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TESTMULTIPHASE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__XXTESTFUZZ_TRUE}" && test -z "${MODULE__XXTESTFUZZ_FALSE}"; then + as_fn_error $? "conditional \"MODULE__XXTESTFUZZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__XXTESTFUZZ_TRUE}" && test -z "${MODULE__XXTESTFUZZ_FALSE}"; then + as_fn_error $? "conditional \"MODULE__XXTESTFUZZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_READLINE_TRUE}" && test -z "${MODULE_READLINE_FALSE}"; then + as_fn_error $? "conditional \"MODULE_READLINE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_READLINE_TRUE}" && test -z "${MODULE_READLINE_FALSE}"; then + as_fn_error $? "conditional \"MODULE_READLINE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SOCKET_TRUE}" && test -z "${MODULE__SOCKET_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SOCKET\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SSL_TRUE}" && test -z "${MODULE__SSL_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SSL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SSL_TRUE}" && test -z "${MODULE__SSL_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SSL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__HASHLIB_TRUE}" && test -z "${MODULE__HASHLIB_FALSE}"; then + as_fn_error $? "conditional \"MODULE__HASHLIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__HASHLIB_TRUE}" && test -z "${MODULE__HASHLIB_FALSE}"; then + as_fn_error $? "conditional \"MODULE__HASHLIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SHA256_TRUE}" && test -z "${MODULE__SHA256_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SHA256\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SHA256_TRUE}" && test -z "${MODULE__SHA256_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SHA256\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SHA512_TRUE}" && test -z "${MODULE__SHA512_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SHA512\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SHA512_TRUE}" && test -z "${MODULE__SHA512_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SHA512\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__MD5_TRUE}" && test -z "${MODULE__MD5_FALSE}"; then + as_fn_error $? "conditional \"MODULE__MD5\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__MD5_TRUE}" && test -z "${MODULE__MD5_FALSE}"; then + as_fn_error $? "conditional \"MODULE__MD5\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SHA1_TRUE}" && test -z "${MODULE__SHA1_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SHA1\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SHA1_TRUE}" && test -z "${MODULE__SHA1_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SHA1\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__BLAKE2_TRUE}" && test -z "${MODULE__BLAKE2_FALSE}"; then + as_fn_error $? "conditional \"MODULE__BLAKE2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__BLAKE2_TRUE}" && test -z "${MODULE__BLAKE2_FALSE}"; then + as_fn_error $? "conditional \"MODULE__BLAKE2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SHA3_TRUE}" && test -z "${MODULE__SHA3_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SHA3\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SHA3_TRUE}" && test -z "${MODULE__SHA3_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SHA3\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_TERMIOS_TRUE}" && test -z "${MODULE_TERMIOS_FALSE}"; then + as_fn_error $? "conditional \"MODULE_TERMIOS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_TERMIOS_TRUE}" && test -z "${MODULE_TERMIOS_FALSE}"; then + as_fn_error $? "conditional \"MODULE_TERMIOS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_RESOURCE_TRUE}" && test -z "${MODULE_RESOURCE_FALSE}"; then + as_fn_error $? "conditional \"MODULE_RESOURCE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_OSSAUDIODEV_TRUE}" && test -z "${MODULE_OSSAUDIODEV_FALSE}"; then + as_fn_error $? "conditional \"MODULE_OSSAUDIODEV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_OSSAUDIODEV_TRUE}" && test -z "${MODULE_OSSAUDIODEV_FALSE}"; then + as_fn_error $? "conditional \"MODULE_OSSAUDIODEV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SCPROXY_TRUE}" && test -z "${MODULE__SCPROXY_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SCPROXY\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__SCPROXY_TRUE}" && test -z "${MODULE__SCPROXY_FALSE}"; then + as_fn_error $? "conditional \"MODULE__SCPROXY\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_ZLIB_TRUE}" && test -z "${MODULE_ZLIB_FALSE}"; then + as_fn_error $? "conditional \"MODULE_ZLIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_ZLIB_TRUE}" && test -z "${MODULE_ZLIB_FALSE}"; then + as_fn_error $? "conditional \"MODULE_ZLIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_BINASCII_TRUE}" && test -z "${MODULE_BINASCII_FALSE}"; then + as_fn_error $? "conditional \"MODULE_BINASCII\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_BINASCII_TRUE}" && test -z "${MODULE_BINASCII_FALSE}"; then + as_fn_error $? "conditional \"MODULE_BINASCII\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__BZ2_TRUE}" && test -z "${MODULE__BZ2_FALSE}"; then + as_fn_error $? "conditional \"MODULE__BZ2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__BZ2_TRUE}" && test -z "${MODULE__BZ2_FALSE}"; then + as_fn_error $? "conditional \"MODULE__BZ2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__LZMA_TRUE}" && test -z "${MODULE__LZMA_FALSE}"; then + as_fn_error $? "conditional \"MODULE__LZMA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__LZMA_TRUE}" && test -z "${MODULE__LZMA_FALSE}"; then + as_fn_error $? "conditional \"MODULE__LZMA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_PYEXPAT_TRUE}" && test -z "${MODULE_PYEXPAT_FALSE}"; then + as_fn_error $? "conditional \"MODULE_PYEXPAT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_PYEXPAT_TRUE}" && test -z "${MODULE_PYEXPAT_FALSE}"; then + as_fn_error $? "conditional \"MODULE_PYEXPAT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__ELEMENTTREE_TRUE}" && test -z "${MODULE__ELEMENTTREE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__ELEMENTTREE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__ELEMENTTREE_TRUE}" && test -z "${MODULE__ELEMENTTREE_FALSE}"; then + as_fn_error $? "conditional \"MODULE__ELEMENTTREE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__MULTIBYTECODEC_TRUE}" && test -z "${MODULE__MULTIBYTECODEC_FALSE}"; then + as_fn_error $? "conditional \"MODULE__MULTIBYTECODEC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CODECS_KR_TRUE}" && test -z "${MODULE__CODECS_KR_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CODECS_KR\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CODECS_JP_TRUE}" && test -z "${MODULE__CODECS_JP_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CODECS_JP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CODECS_CN_TRUE}" && test -z "${MODULE__CODECS_CN_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CODECS_CN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CODECS_TW_TRUE}" && test -z "${MODULE__CODECS_TW_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CODECS_TW\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CODECS_HK_TRUE}" && test -z "${MODULE__CODECS_HK_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CODECS_HK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CODECS_ISO2022_TRUE}" && test -z "${MODULE__CODECS_ISO2022_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CODECS_ISO2022\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__DECIMAL_TRUE}" && test -z "${MODULE__DECIMAL_FALSE}"; then + as_fn_error $? "conditional \"MODULE__DECIMAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__DECIMAL_TRUE}" && test -z "${MODULE__DECIMAL_FALSE}"; then + as_fn_error $? "conditional \"MODULE__DECIMAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CTYPES_TEST_TRUE}" && test -z "${MODULE__CTYPES_TEST_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CTYPES_TEST\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__CTYPES_TEST_TRUE}" && test -z "${MODULE__CTYPES_TEST_FALSE}"; then + as_fn_error $? "conditional \"MODULE__CTYPES_TEST\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__MULTIPROCESSING_TRUE}" && test -z "${MODULE__MULTIPROCESSING_FALSE}"; then + as_fn_error $? "conditional \"MODULE__MULTIPROCESSING\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__MULTIPROCESSING_TRUE}" && test -z "${MODULE__MULTIPROCESSING_FALSE}"; then + as_fn_error $? "conditional \"MODULE__MULTIPROCESSING\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__POSIXSHMEM_TRUE}" && test -z "${MODULE__POSIXSHMEM_FALSE}"; then + as_fn_error $? "conditional \"MODULE__POSIXSHMEM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__POSIXSHMEM_TRUE}" && test -z "${MODULE__POSIXSHMEM_FALSE}"; then + as_fn_error $? "conditional \"MODULE__POSIXSHMEM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TKINTER_TRUE}" && test -z "${MODULE__TKINTER_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TKINTER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__TKINTER_TRUE}" && test -z "${MODULE__TKINTER_FALSE}"; then + as_fn_error $? "conditional \"MODULE__TKINTER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__UUID_TRUE}" && test -z "${MODULE__UUID_FALSE}"; then + as_fn_error $? "conditional \"MODULE__UUID\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE__UUID_TRUE}" && test -z "${MODULE__UUID_FALSE}"; then + as_fn_error $? "conditional \"MODULE__UUID\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_XXLIMITED_TRUE}" && test -z "${MODULE_XXLIMITED_FALSE}"; then + as_fn_error $? "conditional \"MODULE_XXLIMITED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_XXLIMITED_TRUE}" && test -z "${MODULE_XXLIMITED_FALSE}"; then + as_fn_error $? "conditional \"MODULE_XXLIMITED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_XXLIMITED_35_TRUE}" && test -z "${MODULE_XXLIMITED_35_FALSE}"; then + as_fn_error $? "conditional \"MODULE_XXLIMITED_35\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MODULE_XXLIMITED_35_TRUE}" && test -z "${MODULE_XXLIMITED_35_FALSE}"; then + as_fn_error $? "conditional \"MODULE_XXLIMITED_35\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 @@ -19903,6 +23113,7 @@ do "Misc/python.pc") CONFIG_FILES="$CONFIG_FILES Misc/python.pc" ;; "Misc/python-embed.pc") CONFIG_FILES="$CONFIG_FILES Misc/python-embed.pc" ;; "Misc/python-config.sh") CONFIG_FILES="$CONFIG_FILES Misc/python-config.sh" ;; + "Modules/Setup.stdlib") CONFIG_FILES="$CONFIG_FILES Modules/Setup.stdlib" ;; "Modules/ld_so_aix") CONFIG_FILES="$CONFIG_FILES Modules/ld_so_aix" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; diff --git a/configure.ac b/configure.ac index f43030e481068e..a2b9d0db8fc911 100644 --- a/configure.ac +++ b/configure.ac @@ -2148,7 +2148,7 @@ dnl assume C99 compilers provide ANSI C headers AC_DEFINE(STDC_HEADERS, 1, [Define to 1 if you have the ANSI C header files.]) # checks for header files -AC_CHECK_HEADERS(asm/types.h crypt.h conio.h direct.h dlfcn.h errno.h \ +AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \ fcntl.h grp.h \ ieeefp.h io.h langinfo.h libintl.h process.h pthread.h \ sched.h shadow.h signal.h stropts.h termios.h \ @@ -2162,7 +2162,7 @@ sys/times.h sys/types.h sys/uio.h sys/un.h sys/utsname.h sys/wait.h pty.h \ libutil.h sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \ linux/tipc.h linux/random.h spawn.h util.h alloca.h endian.h \ sys/endian.h sys/sysmacros.h linux/memfd.h linux/wait.h sys/memfd.h \ -sys/mman.h sys/eventfd.h) +sys/mman.h sys/eventfd.h linux/soundcard.h sys/soundcard.h) AC_HEADER_DIRENT AC_HEADER_MAJOR @@ -2836,8 +2836,14 @@ AC_CHECK_LIB(sendfile, sendfile) AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX -# checks for uuid.h location -AC_CHECK_HEADERS([uuid/uuid.h uuid.h]) +# check for libuuid and uuid/uuid.h from util-linux +AC_CHECK_HEADERS([uuid/uuid.h], [ + save_LIBS=$LIBS + AC_CHECK_LIB([uuid], [uuid_generate_time]) + UUID_CFLAGS= + UUID_LDLAGS=-luuid + LIBS=$save_LIBS +]) AC_CACHE_CHECK([for uuid_generate_time_safe], [ac_cv_lib_uuid_uuid_generate_time_safe], [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ @@ -2851,16 +2857,13 @@ AS_VAR_IF([ac_cv_lib_uuid_uuid_generate_time_safe], [yes], [ AC_DEFINE(HAVE_UUID_GENERATE_TIME_SAFE, 1, [Define if uuid_generate_time_safe() exists.]) ]) -# check for libuuid from util-linux -save_LIBS=$LIBS -AC_CHECK_LIB([uuid], [uuid_generate_time]) -LIBS=$save_LIBS - # AIX provides support for RFC4122 (uuid) in libc.a starting with AIX 6.1 (anno 2007) # FreeBSD and OpenBSD provides support in libc as well. # Little-endian FreeBSD, OpenBSD and NetBSD needs encoding into an octet # stream in big-endian byte-order -AC_CHECK_FUNCS([uuid_create uuid_enc_be]) +AC_CHECK_HEADERS([uuid.h], + [AC_CHECK_FUNCS([uuid_create uuid_enc_be])] +) # 'Real Time' functions on Solaris # posix4 on Solaris 2.6 @@ -3284,22 +3287,27 @@ AC_CHECK_HEADERS([db.h], [ AC_MSG_CHECKING(for --with-dbmliborder) AC_ARG_WITH(dbmliborder, AS_HELP_STRING([--with-dbmliborder=db1:db2:...], [override order to check db backends for dbm; a valid value is a colon separated string with the backend names `ndbm', `gdbm' and `bdb'.]), -[ -if test x$with_dbmliborder = xyes -then -AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...]) +[], [with_dbmliborder=ndbm:gdbm:bdb]) + +as_save_IFS=$IFS +IFS=: +dbmlibs="" +for db in $with_dbmliborder; do + AS_CASE($db, + [ndbm], [dbmlibs="$dbmlibs ndbm"], + [gdbm], [dbmlibs="$dbmlibs gdbm_compat"], + [bdb], [dbmlibs="$dbmlibs db-5.3 db-5 db"], + [dbmlibs="failed"; break] + ) +done +IFS=$as_save_IFS + +if test "$dbmlibs" = failed; then + AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...]) else - as_save_IFS=$IFS - IFS=: - for db in $with_dbmliborder; do - if test x$db != xndbm && test x$db != xgdbm && test x$db != xbdb - then - AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...]) - fi - done - IFS=$as_save_IFS -fi]) -AC_MSG_RESULT($with_dbmliborder) + AC_MSG_RESULT($with_dbmliborder (libs: $dbmlibs)) +fi + # Templates for things AC_DEFINEd more than once. # For a single AC_DEFINE, no template is needed. @@ -3812,7 +3820,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ explicit_memset faccessat fchmod fchmodat fchown fchownat \ fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ futimens futimes gai_strerror getentropy \ - getgrgid_r getgrnam_r \ + getgrgid getgrgid_r getgrnam_r \ getgrouplist getgroups getlogin getloadavg getpeername getpgid getpid \ getpriority getresuid getresgid getpwent getpwnam_r getpwuid_r getspnam getspent getsid getwd \ if_nameindex \ @@ -4005,6 +4013,12 @@ AC_CHECK_HEADERS([zlib.h], [ LIBS="$save_LIBS" ]) +dnl binascii has optional dependency on zlib +AS_VAR_IF([ac_cv_lib_z_gzread], [yes], [ + BINASCII_CFLAGS=-DUSE_ZLIB_CRC32 + BINASCII_LDFLAGS=-lz +]) + AC_CHECK_HEADERS([bzlib.h], [ save_LIBS="$LIBS" AC_CHECK_LIB([bz2], [BZ2_bzCompress]) @@ -4071,25 +4085,16 @@ AC_CHECK_FUNCS(setpgrp, []) ) -# We search for both crypt and crypt_r as one or the other may be defined -# This gets us our -lcrypt in LIBS when required on the target platform. -# Save/restore LIBS to avoid linking libpython with libcrypt. -LIBS_SAVE=$LIBS -AC_SEARCH_LIBS(crypt_r, crypt) -LIBS="$LIBS_SAVE" -AC_SEARCH_LIBS(crypt, crypt) - -AC_CHECK_FUNC(crypt_r, - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#include -]], [[ -struct crypt_data d; -char *r = crypt_r("", "", &d); -]])], - [AC_DEFINE(HAVE_CRYPT_R, 1, [Define if you have the crypt_r() function.])], - []) -) -LIBS=$LIBS_SAVE +AC_CHECK_HEADERS([crypt.h], [ + LIBS_SAVE=$LIBS + AC_SEARCH_LIBS([crypt], [crypt]) + LIBS="$LIBS_SAVE" + AC_SEARCH_LIBS( + [crypt_r], [crypt], + [AC_DEFINE(HAVE_CRYPT_R, 1, [Define if you have the crypt_r() function.])] + ) + LIBS=$LIBS_SAVE +]) AC_CHECK_FUNCS(clock_gettime, [], [ AC_CHECK_LIB(rt, clock_gettime, [ @@ -5730,6 +5735,7 @@ AC_SEARCH_LIBS(shm_open, rt) if test "$ac_cv_search_shm_open" = "-lrt"; then AC_DEFINE(SHM_NEEDS_LIBRT, 1, [Define to 1 if you must link with -lrt for shm_open().]) + SHM_OPEN_LIB="-lrt" fi AC_CHECK_HEADERS(sys/mman.h) # temporarily override ac_includes_default for AC_CHECK_FUNCS below @@ -5761,7 +5767,7 @@ AC_ARG_WITH(openssl-rpath, [], [with_openssl_rpath=no] ) -AS_CASE($with_openssl_rpath, +AS_CASE([$with_openssl_rpath], [auto|yes],[OPENSSL_RPATH=auto], [no],[OPENSSL_RPATH=], [AS_IF( @@ -5774,7 +5780,6 @@ AC_MSG_RESULT($OPENSSL_RPATH) AC_SUBST([OPENSSL_RPATH]) # check if OpenSSL libraries work as expected -AC_CACHE_CHECK([whether OpenSSL provides required APIs], [ac_cv_working_openssl], [ save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" save_LDFLAGS="$LDFLAGS" @@ -5782,18 +5787,15 @@ LIBS="$LIBS $OPENSSL_LIBS" CFLAGS="$CFLAGS_NODIST $OPENSSL_INCLUDES" LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" +AC_CACHE_CHECK([whether OpenSSL provides required ssl module APIs], [ac_cv_working_openssl_ssl], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include -#include #include - #if OPENSSL_VERSION_NUMBER < 0x10101000L -#error "OpenSSL >= 1.1.1 is required" + #error "OpenSSL >= 1.1.1 is required" #endif - static void keylog_cb(const SSL *ssl, const char *line) {} ]], [[ -/* SSL APIs */ SSL_CTX *ctx = SSL_CTX_new(TLS_client_method()); SSL_CTX_set_keylog_callback(ctx, keylog_cb); SSL *ssl = SSL_new(ctx); @@ -5801,20 +5803,30 @@ X509_VERIFY_PARAM *param = SSL_get0_param(ssl); X509_VERIFY_PARAM_set1_host(param, "python.org", 0); SSL_free(ssl); SSL_CTX_free(ctx); +]] +)], [ac_cv_working_openssl_ssl=yes], [ac_cv_working_openssl_ssl=no]) +]) -/* hashlib APIs */ +AC_CACHE_CHECK([whether OpenSSL provides required hashlib module APIs], [ac_cv_working_openssl_hashlib], [ +AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#include +#include +#if OPENSSL_VERSION_NUMBER < 0x10101000L +#error "OpenSSL >= 1.1.1 is required" +#endif +]], [[ OBJ_nid2sn(NID_md5); OBJ_nid2sn(NID_sha1); OBJ_nid2sn(NID_sha3_512); OBJ_nid2sn(NID_blake2b512); EVP_PBE_scrypt(NULL, 0, NULL, 0, 2, 8, 1, 0, NULL, 0); -]])], - [ac_cv_working_openssl=yes], - [ac_cv_working_openssl=no]) +]] +)], [ac_cv_working_openssl_hashlib=yes], [ac_cv_working_openssl_hashlib=no]) +]) + LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" LDFLAGS="$save_LDFLAGS" -]) # ssl module default cipher suite string AH_TEMPLATE(PY_SSL_DEFAULT_CIPHERS, @@ -5862,21 +5874,28 @@ AC_ARG_WITH(builtin-hashlib-hashes, [builtin hash modules, md5, sha1, sha256, sha512, sha3 (with shake), blake2]), [ -case "$withval" in - yes) - withval=$default_hashlib_hashes - ;; - no) - withval="" - ;; -esac -AC_MSG_RESULT($withval) -AC_DEFINE_UNQUOTED(PY_BUILTIN_HASHLIB_HASHES, "$withval") -], -[ -AC_MSG_RESULT($default_hashlib_hashes); -AC_DEFINE_UNQUOTED(PY_BUILTIN_HASHLIB_HASHES, "$default_hashlib_hashes") -]) + AS_CASE([$with_builtin_hashlib_hashes], + [yes], [with_builtin_hashlib_hashes=$default_hashlib_hashes], + [no], [with_builtin_hashlib_hashes=""] + ) +], [with_builtin_hashlib_hashes=$default_hashlib_hashes]) + +AC_MSG_RESULT($with_builtin_hashlib_hashes) +AC_DEFINE_UNQUOTED(PY_BUILTIN_HASHLIB_HASHES, "$with_builtin_hashlib_hashes") + +as_save_IFS=$IFS +IFS=, +for builtin_hash in $with_builtin_hashlib_hashes; do + AS_CASE($builtin_hash, + [md5], [with_builtin_md5=yes], + [sha1], [with_builtin_sha1=yes], + [sha256], [with_builtin_sha256=yes], + [sha512], [with_builtin_sha512=yes], + [sha3], [with_builtin_sha3=yes], + [blake2], [with_builtin_blake2=yes] + ) +done +IFS=$as_save_IFS # --with-experimental-isolated-subinterpreters AH_TEMPLATE(EXPERIMENTAL_ISOLATED_SUBINTERPRETERS, @@ -5936,9 +5955,238 @@ else fi AC_SUBST(TEST_MODULES) +dnl Modules that are not available on some platforms +dnl AIX has shadow passwords, but access is not via getspent() +dnl VxWorks does not provide crypt() function +AS_CASE([$ac_sys_system], + [AIX], [py_stdlib_not_available="_scproxy spwd"], + [VxWorks*], [py_stdlib_not_available="_scproxy _crypt termios grp"], + [Darwin], [py_stdlib_not_available="ossaudiodev spwd"], + [CYGWIN*], [py_stdlib_not_available="_scproxy nis"], + [QNX*], [py_stdlib_not_available="_scproxy nis"], + [FreeBSD*], [py_stdlib_not_available="_scproxy spwd"], + [py_stdlib_not_available="_scproxy"] +) + +MODULE_BLOCK= + +# _MODULE_BLOCK_ADD([VAR], [VALUE]) +# internal: adds $1=quote($2) to MODULE_BLOCK +AC_DEFUN([_MODULE_BLOCK_ADD], [AS_VAR_APPEND([MODULE_BLOCK], ["$1=_AS_QUOTE([$2])$as_nl"])]) + +dnl Check for stdlib extension modules +dnl PY_STDLIB_MOD([NAME], [ENABLED-TEST], [SUPPORTED-TEST], [CFLAGS], [LDFLAGS]) +dnl sets MODULE_$NAME based on $py_stdlib_not_available, ENABLED-TEST, +dnl and SUPPORTED_TEST: +dnl n/a: $NAME in $py_stdlib_not_available (not available on platform) +dnl yes: enabled and supported +dnl missing: enabled and not supported +dnl disabled: not enabled +AC_DEFUN([PY_STDLIB_MOD], [ + AC_MSG_CHECKING([for stdlib extension module $1]) + m4_pushdef([modcond], [MODULE_]m4_toupper([$1]))dnl + m4_pushdef([modstate], [py_cv_module_$1])dnl + AS_CASE([$py_stdlib_not_available], + [*$1*], [modstate=n/a], + [AS_IF([$2], [AS_IF([$3], [modstate=yes], [modstate=missing])], [modstate=disabled]) + ]) + _MODULE_BLOCK_ADD(modcond, [$modstate]) + AS_VAR_IF([modstate], [yes], [ + _MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_CFLAGS], [$4]) + _MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_LDFLAGS], [$5]) + AM_CONDITIONAL(modcond, [true]) + ], [ + AM_CONDITIONAL(modcond, [false]) + ]) + AC_MSG_RESULT([$modstate]) + m4_popdef([modcond])dnl + m4_popdef([modstate])dnl +]) + +# Define simple, always enabled stdlib extension module +# PY_STDLIB_MOD_SIMPLE([NAME], [LDFLAGS]) +AC_DEFUN([PY_STDLIB_MOD_SIMPLE], [ + m4_pushdef([modcond], [MODULE_]m4_toupper([$1]))dnl + _MODULE_BLOCK_ADD(modcond, [yes]) + AM_CONDITIONAL(modcond, [true]) + m4_ifval([$2], [ + _MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_LDFLAGS], [$2]) + ]) + m4_popdef([modcond])dnl +]) +AU_ALIAS([PY_STDLIB_MOD_STATIC], [PY_STDLIB_MOD_SIMPLE]) + +# reuses autoconf check values (ac_cv_*): +# * ac_cv_func and ac_cv_header values are set to "yes" when function or header exists +# * ac_cv_search values are set to "none required" or "-lsomelib" when function exists +dnl Modules/Setup +PY_STDLIB_MOD_STATIC([_collections]) +PY_STDLIB_MOD_STATIC([_abc]) +PY_STDLIB_MOD_STATIC([_codecs]) +PY_STDLIB_MOD_STATIC([_functools]) +PY_STDLIB_MOD_STATIC([_io]) +PY_STDLIB_MOD_STATIC([_locale]) +PY_STDLIB_MOD_STATIC([_operator]) +PY_STDLIB_MOD_STATIC([_signal]) +PY_STDLIB_MOD_STATIC([_sre]) +PY_STDLIB_MOD_STATIC([_stat]) +PY_STDLIB_MOD_STATIC([_symtable]) +PY_STDLIB_MOD_STATIC([_thread]) +PY_STDLIB_MOD_STATIC([_tracemalloc]) +PY_STDLIB_MOD_STATIC([_weakref]) +PY_STDLIB_MOD_STATIC([atexit]) +PY_STDLIB_MOD_STATIC([errno]) +PY_STDLIB_MOD_STATIC([faulthandler]) +PY_STDLIB_MOD_STATIC([itertools]) +PY_STDLIB_MOD_STATIC([posix]) +PY_STDLIB_MOD_STATIC([pwd]) +PY_STDLIB_MOD_STATIC([time]) + +dnl same order as setup.py +PY_STDLIB_MOD_SIMPLE([_struct]) +PY_STDLIB_MOD_SIMPLE([array]) +PY_STDLIB_MOD_SIMPLE([_contextvars]) +PY_STDLIB_MOD_SIMPLE([math], [-lm]) +PY_STDLIB_MOD_SIMPLE([cmath], [-lm]) +PY_STDLIB_MOD_SIMPLE([time], [$TIMEMODULE_LIB]) +PY_STDLIB_MOD_SIMPLE([_datetime], [$TIMEMODULE_LIB]) +PY_STDLIB_MOD_SIMPLE([_zoneinfo]) +PY_STDLIB_MOD_SIMPLE([_random]) +PY_STDLIB_MOD_SIMPLE([_bisect]) +PY_STDLIB_MOD_SIMPLE([_heapq]) +PY_STDLIB_MOD_SIMPLE([_pickle]) +PY_STDLIB_MOD_SIMPLE([_json]) +PY_STDLIB_MOD_SIMPLE([_lsprof]) +PY_STDLIB_MOD_SIMPLE([unicodedata]) +PY_STDLIB_MOD_SIMPLE([_opcode]) +PY_STDLIB_MOD_SIMPLE([_asyncio]) +PY_STDLIB_MOD_SIMPLE([_abc]) +PY_STDLIB_MOD_SIMPLE([_queue]) +PY_STDLIB_MOD_SIMPLE([_statistics]) +PY_STDLIB_MOD_SIMPLE([_typing]) +PY_STDLIB_MOD_SIMPLE([fcntl]) +PY_STDLIB_MOD_SIMPLE([pwd]) +PY_STDLIB_MOD([grp], [true], [test "$ac_cv_func_getgrgid" = yes -o "$ac_cv_func_getgrgid_r" = yes]) +PY_STDLIB_MOD([spwd], [true], [test "$ac_cv_func_getspent" = yes]) +PY_STDLIB_MOD_SIMPLE([select]) +PY_STDLIB_MOD_SIMPLE([mmap]) +PY_STDLIB_MOD_SIMPLE([syslog]) +PY_STDLIB_MOD([_xxsubinterpreters], [test "$with_experimental_isolated_subinterpreters" = yes], [true]) +PY_STDLIB_MOD_SIMPLE([audioop]) +PY_STDLIB_MOD_SIMPLE([_csv]) +PY_STDLIB_MOD_SIMPLE([_posixsubprocess]) +PY_STDLIB_MOD([_testcapi], [test "$TEST_MODULES" = yes], [true]) +PY_STDLIB_MOD([_testinternalcapi], [test "$TEST_MODULES" = yes], [true]) +PY_STDLIB_MOD([_testbuffer], [test "$TEST_MODULES" = yes], [true]) +PY_STDLIB_MOD([_testimportmultiple], [test "$TEST_MODULES" = yes], [true]) +PY_STDLIB_MOD([_testmultiphase], [test "$TEST_MODULES" = yes], [true]) +PY_STDLIB_MOD([_xxtestfuzz], [test "$TEST_MODULES" = yes], [true]) +PY_STDLIB_MOD([readline], [true], [test "$py_cv_lib_readline" = yes], [], [$READLINE_LIBS]) +# TODO: detect curses +#PY_STDLIB_MOD([_curses], [true], [true], [], [-lncurses -lncursesw -ltermcap]) +#PY_STDLIB_MOD([_curses_panel], [true], [true], [], [-lpanel -lncurses]) +# TODO detect presence of libcrypt +#PY_STDLIB_MOD([_crypt], +# [test "$ac_sys_system" != VxWorks], +# [test "$ac_cv_search_crypt_r" != no -o "$ac_cv_search_crypt" != no], +# [], [-lcrypt]) +PY_STDLIB_MOD_SIMPLE([_socket]) +# TODO: add OPENSSL_RPATH +PY_STDLIB_MOD([_ssl], + [true], + [test "$ac_cv_working_openssl_ssl" = yes], + [$OPENSSL_INCLUDES], [$OPENSSL_LIBS $OPENSSL_LDFLAGS]) +PY_STDLIB_MOD([_hashlib], + [true], + [test "$ac_cv_working_openssl_ssl" = yes], + [$OPENSSL_INCLUDES], [$OPENSSL_LIBS $OPENSSL_LDFLAGS]) +PY_STDLIB_MOD([_sha256], [test "$with_builtin_sha256" = yes], [true]) +PY_STDLIB_MOD([_sha512], [test "$with_builtin_sha512" = yes], [true]) +PY_STDLIB_MOD([_md5], [test "$with_builtin_md5" = yes], [true]) +PY_STDLIB_MOD([_sha1], [test "$with_builtin_sha1" = yes], [true]) +PY_STDLIB_MOD([_blake2], [test "$with_builtin_blake2" = yes], [true]) +PY_STDLIB_MOD([_sha3], [test "$with_builtin_sha3" = yes], [true]) +# TODO: select dbm library +#PY_STDLIB_MOD([_dbm], [true], [true], [-DUSE_GDBM_COMPAT], [-lgdbm_compat]) +# TODO: only build gdbm when it is listed on libdbmorder +#PY_STDLIB_MOD([_gdbm], +# [true], +# [test "$ac_cv_lib_gdbm_gdbm_open" = yes], +# [$GDBM_CFLAGS], [$GDBM_LDFLAGS]) +# TODO: detect sqlite +#PY_STDLIB_MOD([_sqlite3], [true], [true], [], [-lsqlite3]) +PY_STDLIB_MOD([termios], [test "$ac_sys_system" != VxWorks], [true]) +PY_STDLIB_MOD_SIMPLE([resource]) +PY_STDLIB_MOD([ossaudiodev], + [true], + [test "$ac_cv_header_linux_soundcard_h" = yes -o "$ac_cv_header_sys_soundcard_h" = yes]) +PY_STDLIB_MOD([_scproxy], + [test "$ac_sys_system" = "Darwin"], + [true], + [], [-framework SystemConfiguration -framework CoreFoundation]) +# TODO: detect nsl and tirpc +#PY_STDLIB_MOD([nis], [true], [true], [-I/usr/include/tirpc], [-lnsl -ltirpc]) +PY_STDLIB_MOD([zlib], + [true], + [test "$ac_cv_header_zlib_h" = yes -a "$ac_cv_lib_z_gzread" = yes], + [], [-lz]) +PY_STDLIB_MOD([binascii], [true], [true], [$BINASCII_CFLAGS], [$BINASCII_LDFLAGS]) +PY_STDLIB_MOD([_bz2], + [true], + [test "$ac_cv_header_bzlib_h" = yes -a "$ac_cv_lib_bz2_BZ2_bzCompress" = yes], + [], [-lbz2]) +PY_STDLIB_MOD([_lzma], + [true], + [test "$ac_cv_header_lzma_h" = yes -a "$ac_cv_lib_lzma_lzma_easy_encoder" = yes], + [], [-llzma]) +dnl _elementtree loads libexpat via CAPI hook in pyexpat +PY_STDLIB_MOD([pyexpat], [true], [true], [$LIBEXPAT_CFLAGS], [$LIBEXPAT_LDFLAGS]) +PY_STDLIB_MOD([_elementtree], [true], [true], [$LIBEXPAT_CFLAGS], []) +PY_STDLIB_MOD_SIMPLE([_multibytecodec]) +PY_STDLIB_MOD_SIMPLE([_codecs_kr]) +PY_STDLIB_MOD_SIMPLE([_codecs_jp]) +PY_STDLIB_MOD_SIMPLE([_codecs_cn]) +PY_STDLIB_MOD_SIMPLE([_codecs_tw]) +PY_STDLIB_MOD_SIMPLE([_codecs_hk]) +PY_STDLIB_MOD_SIMPLE([_codecs_iso2022]) +PY_STDLIB_MOD([_decimal], + [true], [true], + [$LIBMPDEC_CFLAGS], [$LIBMPDEC_LDFLAGS]) +# TODO: handle ffi dependency +#PY_STDLIB_MOD([_ctypes], +# [true], [true], +# [-DHAVE_FFI_PREP_CIF_VAR -DHAVE_FFI_PREP_CLOSURE_LOC -DHAVE_FFI_CLOSURE_ALLOC], +# [-ldl -lffi]) +PY_STDLIB_MOD([_ctypes_test], [test "$TEST_MODULES" = yes], [true], [], [-lm]) +# TODO: include _multiprocessing/semaphore.c conditional +PY_STDLIB_MOD([_multiprocessing], + [true], [true], + [-I\$(srcdir)/Modules/_multiprocessing], [$SHM_OPEN_LIB]) +dnl shm_open() requires -lrt on some platforms +PY_STDLIB_MOD([_posixshmem], + [true], + [test "$ac_cv_func_shm_open" = yes -a "$ac_cv_func_shm_unlink" = yes], + [-I\$(srcdir)/Modules/_multiprocessing], [$SHM_OPEN_LIB]) +dnl TODO: check for libX11 and libBLT +PY_STDLIB_MOD([_tkinter], + [true], + [test -n "$TCLTK_LIBS"], + [-DWITH_APPINIT=1], [$TCLTK_LIBS]) +PY_STDLIB_MOD([_uuid], + [true], + [test "$ac_cv_lib_uuid_uuid_generate_time" = yes -o "$ac_cv_func_uuid_create" = yes], + [$UUID_CFLAGS], [$UUID_LDLAGS]) +dnl PY_STDLIB_MOD_SIMPLE([xx]) +dnl The limited C API is not compatible with the Py_TRACE_REFS macro. +PY_STDLIB_MOD([xxlimited], [test "$with_trace_refs" != "yes"], [true]) +PY_STDLIB_MOD([xxlimited_35], [test "$with_trace_refs" != "yes"], [true]) + +# substitute multiline block, must come after last PY_STDLIB_MOD() +AC_SUBST([MODULE_BLOCK]) # generate output files AC_CONFIG_FILES(Makefile.pre Misc/python.pc Misc/python-embed.pc Misc/python-config.sh) +AC_CONFIG_FILES([Modules/Setup.stdlib]) AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix]) AC_OUTPUT diff --git a/pyconfig.h.in b/pyconfig.h.in index cbab59b739f31c..a2d6f852b1b2f7 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -441,6 +441,9 @@ /* Define to 1 if you have the `getentropy' function. */ #undef HAVE_GETENTROPY +/* Define to 1 if you have the `getgrgid' function. */ +#undef HAVE_GETGRGID + /* Define to 1 if you have the `getgrgid_r' function. */ #undef HAVE_GETGRGID_R @@ -679,6 +682,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_RANDOM_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_SOUNDCARD_H + /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_TIPC_H @@ -1217,6 +1223,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOUNDCARD_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STATVFS_H diff --git a/setup.py b/setup.py index 915169e68630de..afb77ab4aa28a4 100644 --- a/setup.py +++ b/setup.py @@ -364,57 +364,6 @@ def find_module_file(module, dirlist): return os.path.abspath(os.path.join(dirs[0], module)) -def parse_cflags(flags): - """Parse a string with compiler flags (-I, -D, -U, extra) - - Distutils appends extra args to the compiler arguments. Some flags like - -I must appear earlier. Otherwise the pre-processor picks up files - from system inclue directories. - """ - include_dirs = [] - define_macros = [] - undef_macros = [] - extra_compile_args = [] - if flags is not None: - # shlex.split(None) reads from stdin - for token in shlex.split(flags): - switch = token[0:2] - value = token[2:] - if switch == '-I': - include_dirs.append(value) - elif switch == '-D': - key, _, val = value.partition("=") - if not val: - val = None - define_macros.append((key, val)) - elif switch == '-U': - undef_macros.append(value) - else: - extra_compile_args.append(token) - - return include_dirs, define_macros, undef_macros, extra_compile_args - - -def parse_ldflags(flags): - """Parse a string with linker flags (-L, -l, extra)""" - library_dirs = [] - libraries = [] - extra_link_args = [] - if flags is not None: - # shlex.split(None) reads from stdin - for token in shlex.split(flags): - switch = token[0:2] - value = token[2:] - if switch == '-L': - library_dirs.append(value) - elif switch == '-l': - libraries.append(value) - else: - extra_link_args.append(token) - - return library_dirs, libraries, extra_link_args - - class PyBuildExt(build_ext): def __init__(self, dist): @@ -430,8 +379,22 @@ def __init__(self, dist): if '-j' in os.environ.get('MAKEFLAGS', ''): self.parallel = True - def add(self, ext): - self.extensions.append(ext) + def add(self, ext, *, update_flags=True): + state = sysconfig.get_config_var(f"MODULE_{ext.name.upper()}") + if state == "yes": + if update_flags: + self.update_extension_flags(ext) + self.extensions.append(ext) + elif state == "disabled": + self.disabled_configure.append(ext.name) + elif state == "missing": + self.missing.append(ext.name) + elif state == "n/a": + # not available on current platform + pass + else: + # not migrated yet. + self.extensions.append(ext) def set_srcdir(self): self.srcdir = sysconfig.get_config_var('srcdir') @@ -476,19 +439,72 @@ def update_sources_depends(self): for ext in self.extensions: ext.sources = [ find_module_file(filename, moddirlist) for filename in ext.sources ] - # Update dependencies from Makefile - makedeps = sysconfig.get_config_var(f"MODULE_{ext.name.upper()}_DEPS") - if makedeps: + if ext.depends is not None: + ext.depends = [find_module_file(filename, moddirlist) + for filename in ext.depends] + else: + ext.depends = [] + # Update dependencies from Makefile, file path have correct prefix + deps = sysconfig.get_config_var(f"MODULE_{ext.name.upper()}_DEPS") + if deps: # remove backslashes from line break continuations - ext.depends.extend( - dep for dep in makedeps.split() if dep != "\\" - ) - ext.depends = [ - find_module_file(filename, moddirlist) for filename in ext.depends - ] + deps = deps.replace("\\ ", " ") + ext.depends.extend(shlex.split(deps)) # re-compile extensions if a header file has been changed ext.depends.extend(headers) + def is_extension_enabled(self, ext): + upper_name = ext.name.upper() + return sysconfig.get_config_var(f"MODULE_{upper_name}") == 1 + + def update_extension_flags(self, ext): + """Update extension flags with module CFLAGS and LDFLAGS + + Reads MODULE_{name}_CFLAGS and _LDFLAGS + + Distutils appends extra args to the compiler arguments. Some flags like + -I must appear earlier, otherwise the pre-processor picks up files + from system inclue directories. + """ + upper_name = ext.name.upper() + # Parse compiler flags (-I, -D, -U, extra args) + cflags = sysconfig.get_config_var(f"MODULE_{upper_name}_CFLAGS") + if cflags: + for token in shlex.split(cflags): + switch = token[0:2] + value = token[2:] + if switch == '-I': + ext.include_dirs.append(value) + elif switch == '-D': + key, _, val = value.partition("=") + if not val: + val = None + ext.define_macros.append((key, val)) + elif switch == '-U': + ext.undef_macros.append(value) + else: + ext.extra_compile_args.append(token) + + # Parse linker flags (-L, -l, extra objects, extra args) + ldflags = sysconfig.get_config_var(f"MODULE_{upper_name}_LDFLAGS") + if ldflags: + for token in shlex.split(ldflags): + switch = token[0:2] + value = token[2:] + if switch == '-L': + ext.library_dirs.append(value) + elif switch == '-l': + ext.libraries.append(value) + elif ( + not token.startswith('-') and + token.endswith(('.a', '.o', '.so', '.sl', '.dylib')) + ): + ext.extra_objects.append(token) + else: + ext.extra_link_args.append(token) + + return ext + def handle_configured_extensions(self): # The sysconfig variables built by makesetup that list the already # built modules and the disabled modules as configured by the Setup @@ -1040,16 +1056,9 @@ def detect_simple_extensions(self): # pwd(3) self.add(Extension('pwd', ['pwdmodule.c'])) # grp(3) - if not VXWORKS: - self.add(Extension('grp', ['grpmodule.c'])) + self.add(Extension('grp', ['grpmodule.c'])) # spwd, shadow passwords - if (self.config_h_vars.get('HAVE_GETSPNAM', False) or - self.config_h_vars.get('HAVE_GETSPENT', False)): - self.add(Extension('spwd', ['spwdmodule.c'])) - # AIX has shadow passwords, but access is not via getspent(), etc. - # module support is not expected so it not 'missing' - elif not AIX: - self.missing.append('spwd') + self.add(Extension('spwd', ['spwdmodule.c'])) # select(2); not on ancient System V self.add(Extension('select', ['selectmodule.c'])) @@ -1458,62 +1467,28 @@ def detect_sqlite(self): self.missing.append('_sqlite3') def detect_platform_specific_exts(self): - # Unix-only modules - if not MS_WINDOWS: - if not VXWORKS: - # Steen Lumholt's termios module - self.add(Extension('termios', ['termios.c'])) - # Jeremy Hylton's rlimit interface - self.add(Extension('resource', ['resource.c'])) - else: - self.missing.extend(['resource', 'termios']) - - # Platform-specific libraries - if HOST_PLATFORM.startswith(('linux', 'freebsd', 'gnukfreebsd')): - self.add(Extension('ossaudiodev', ['ossaudiodev.c'])) - elif not AIX: - self.missing.append('ossaudiodev') - - if MACOS: - self.add(Extension('_scproxy', ['_scproxy.c'], - extra_link_args=[ - '-framework', 'SystemConfiguration', - '-framework', 'CoreFoundation'])) + # Steen Lumholt's termios module + self.add(Extension('termios', ['termios.c'])) + # Jeremy Hylton's rlimit interface + self.add(Extension('resource', ['resource.c'])) + # needs sys/soundcard.h + self.add(Extension('ossaudiodev', ['ossaudiodev.c'])) + # macOS-only + self.add(Extension('_scproxy', ['_scproxy.c'])) def detect_compress_exts(self): # Andrew Kuchling's zlib module. - have_zlib = sysconfig.get_config_var("HAVE_LIBZ") - if have_zlib: - self.add(Extension('zlib', ['zlibmodule.c'], - libraries=['z'])) - else: - self.missing.append('zlib') + self.add(Extension('zlib', ['zlibmodule.c'])) # Helper module for various ascii-encoders. Uses zlib for an optimized # crc32 if we have it. Otherwise binascii uses its own. - if have_zlib: - define_macros = [('USE_ZLIB_CRC32', None)] - libraries = ['z'] - else: - define_macros = None - libraries = [] - self.add(Extension('binascii', ['binascii.c'], - define_macros=define_macros, - libraries=libraries)) + self.add(Extension('binascii', ['binascii.c'])) # Gustavo Niemeyer's bz2 module. - if sysconfig.get_config_var("HAVE_LIBBZ2"): - self.add(Extension('_bz2', ['_bz2module.c'], - libraries=['bz2'])) - else: - self.missing.append('_bz2') + self.add(Extension('_bz2', ['_bz2module.c'])) # LZMA compression support. - if sysconfig.get_config_var("HAVE_LIBLZMA"): - self.add(Extension('_lzma', ['_lzmamodule.c'], - libraries=['lzma'])) - else: - self.missing.append('_lzma') + self.add(Extension('_lzma', ['_lzmamodule.c'])) def detect_expat_elementtree(self): # Interface to the Expat XML parser @@ -1527,31 +1502,12 @@ def detect_expat_elementtree(self): # # More information on Expat can be found at www.libexpat.org. # - cflags = parse_cflags(sysconfig.get_config_var("EXPAT_CFLAGS")) - include_dirs, define_macros, undef_macros, extra_compile_args = cflags - # ldflags includes either system libexpat or full path to - # our static libexpat.a. - ldflags = parse_ldflags(sysconfig.get_config_var("EXPAT_LDFLAGS")) - library_dirs, libraries, extra_link_args = ldflags - self.add(Extension('pyexpat', - include_dirs=include_dirs, - define_macros=define_macros, - undef_macros=undef_macros, - extra_compile_args=extra_compile_args, - library_dirs=library_dirs, - libraries=libraries, - extra_link_args=extra_link_args, sources=['pyexpat.c'])) # Fredrik Lundh's cElementTree module. Note that this also # uses expat (via the CAPI hook in pyexpat). self.add(Extension('_elementtree', - include_dirs=include_dirs, - define_macros=define_macros, - undef_macros=undef_macros, - extra_compile_args=extra_compile_args, - # no EXPAT_LDFLAGS sources=['_elementtree.c'])) def detect_multibytecodecs(self): @@ -1575,42 +1531,18 @@ def detect_multiprocessing(self): self.add(Extension('_multiprocessing', multiprocessing_srcs, include_dirs=["Modules/_multiprocessing"])) - if (not MS_WINDOWS and - sysconfig.get_config_var('HAVE_SHM_OPEN') and - sysconfig.get_config_var('HAVE_SHM_UNLINK')): - posixshmem_srcs = ['_multiprocessing/posixshmem.c'] - libs = [] - if sysconfig.get_config_var('SHM_NEEDS_LIBRT'): - # need to link with librt to get shm_open() - libs.append('rt') - self.add(Extension('_posixshmem', posixshmem_srcs, - define_macros={}, - libraries=libs, - include_dirs=["Modules/_multiprocessing"])) - else: - self.missing.append('_posixshmem') + self.add(Extension('_posixshmem', ['_multiprocessing/posixshmem.c'])) def detect_uuid(self): # Build the _uuid module if possible - uuid_h = sysconfig.get_config_var("HAVE_UUID_H") - uuid_uuid_h = sysconfig.get_config_var("HAVE_UUID_UUID_H") - if uuid_h or uuid_uuid_h: - if sysconfig.get_config_var("HAVE_LIBUUID"): - uuid_libs = ["uuid"] - else: - uuid_libs = [] - self.add(Extension('_uuid', ['_uuidmodule.c'], - libraries=uuid_libs)) - else: - self.missing.append('_uuid') + self.add(Extension('_uuid', ['_uuidmodule.c'])) def detect_modules(self): self.configure_compiler() self.init_inc_lib_dirs() self.detect_simple_extensions() - if TEST_EXTENSIONS: - self.detect_test_extensions() + self.detect_test_extensions() self.detect_readline_curses() self.detect_crypt() self.detect_socket() @@ -1989,11 +1921,8 @@ def detect_ctypes(self): libraries=[], sources=sources) self.add(ext) - if TEST_EXTENSIONS: - # function my_sqrt() needs libm for sqrt() - self.add(Extension('_ctypes_test', - sources=['_ctypes/_ctypes_test.c'], - libraries=['m'])) + self.add(Extension('_ctypes_test', + sources=['_ctypes/_ctypes_test.c'])) ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") ffi_lib = None @@ -2048,24 +1977,12 @@ def detect_decimal(self): # Stefan Krah's _decimal module sources = ['_decimal/_decimal.c'] - cflags = parse_cflags(sysconfig.get_config_var("DECIMAL_CFLAGS")) - include_dirs, define_macros, undef_macros, extra_compile_args = cflags - # ldflags includes either system libmpdec or full path to - # our static libmpdec.a. - ldflags = parse_ldflags(sysconfig.get_config_var("DECIMAL_LDFLAGS")) - library_dirs, libraries, extra_link_args = ldflags - + define_macros = [] # Uncomment for extra functionality: #define_macros.append(('EXTRA_FUNCTIONALITY', 1)) self.add(Extension('_decimal', - include_dirs=include_dirs, - define_macros=define_macros, - undef_macros=undef_macros, - extra_compile_args=extra_compile_args, - library_dirs=library_dirs, - libraries=libraries, - extra_link_args=extra_link_args, - sources=sources)) + sources=sources, + define_macros=define_macros)) def detect_openssl_hashlib(self): # Detect SSL support for the socket module (via _ssl) @@ -2091,14 +2008,6 @@ def split_var(name, sep): self.missing.extend(['_ssl', '_hashlib']) return None, None - # Find OpenSSL includes - ssl_incs = find_file( - 'openssl/ssl.h', self.inc_dirs, openssl_includes - ) - if ssl_incs is None: - self.missing.extend(['_ssl', '_hashlib']) - return None, None - if openssl_rpath == 'auto': runtime_library_dirs = openssl_libdirs[:] elif not openssl_rpath: @@ -2107,9 +2016,9 @@ def split_var(name, sep): runtime_library_dirs = [openssl_rpath] openssl_extension_kwargs = dict( - include_dirs=openssl_includes, - library_dirs=openssl_libdirs, - libraries=openssl_libs, + # include_dirs=openssl_includes, + # library_dirs=openssl_libdirs, + # libraries=openssl_libs, runtime_library_dirs=runtime_library_dirs, )