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, ) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy