bpo-45847: Port compression libs to PY_STDLIB_MOD (GH-29702)

This commit is contained in:
Christian Heimes 2021-11-22 15:52:29 +02:00 committed by GitHub
parent b451673f93
commit d9cedabeba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 804 additions and 80 deletions

View file

@ -4054,24 +4054,55 @@ if test "$ac_cv_have_lchflags" = yes ; then
fi
dnl Check for compression libraries
AC_CHECK_HEADERS([zlib.h], [
save_LIBS="$LIBS"
AC_CHECK_LIB([z], [gzread])
LIBS="$save_LIBS"
AC_CHECK_LIB([z], [inflateCopy], [AC_DEFINE(HAVE_ZLIB_COPY, 1, [Define if the zlib library has inflateCopy])])
LIBS="$save_LIBS"
AH_TEMPLATE([HAVE_ZLIB_COPY], [Define if the zlib library has inflateCopy])
PKG_CHECK_MODULES([ZLIB], [zlib >= 1.2.0], [
have_zlib=yes
dnl zlib 1.2.0 (2003) added inflateCopy
AC_DEFINE([HAVE_ZLIB_COPY], [1])
], [
AC_CHECK_HEADERS([zlib.h], [
WITH_SAVE_ENV([
AC_CHECK_LIB([z], [gzread], [
have_zlib=yes
ZLIB_CFLAGS=
ZLIB_LIBS=-lz
AC_CHECK_LIB([z], [inflateCopy], [AC_DEFINE([HAVE_ZLIB_COPY], [1])])
], [
have_zlib=no
])
])
], [have_zlib=no])
])
AC_CHECK_HEADERS([bzlib.h], [
save_LIBS="$LIBS"
AC_CHECK_LIB([bz2], [BZ2_bzCompress])
LIBS="$save_LIBS"
dnl binascii can use zlib for optimized crc32.
AS_VAR_IF([have_zlib], [yes], [
BINASCII_CFLAGS="-DUSE_ZLIB_CRC32 $ZLIB_CFLAGS"
BINASCII_LIBS="$ZLIB_LIBS"
])
AC_CHECK_HEADERS([lzma.h], [
save_LIBS="$LIBS"
AC_CHECK_LIB([lzma], [lzma_easy_encoder])
LIBS="$save_LIBS"
PKG_CHECK_MODULES([BZIP2], [bzip2], [have_bzip2=yes], [
AC_CHECK_HEADERS([bzlib.h], [
WITH_SAVE_ENV([
AC_CHECK_LIB([bz2], [BZ2_bzCompress], [
have_bzip2=yes
BZIP2_CFLAGS=
BZIP2_LIBS=-lbz2
], [have_bzip2=no])
])
], [have_bzip2=no])
])
PKG_CHECK_MODULES([LIBLZMA], [liblzma], [have_liblzma=yes], [
AC_CHECK_HEADERS([lzma.h], [
WITH_SAVE_ENV([
AC_CHECK_LIB([lzma], [lzma_easy_encoder], [
have_liblzma=yes
LIBLZMA_CFLAGS=
LIBLZMA_LIBS=-llzma
], [have_liblzma=no])
])
], [have_liblzma=no])
])
PY_CHECK_FUNC([hstrerror], [#include <netdb.h>])
@ -6140,6 +6171,16 @@ PY_STDLIB_MOD([_sqlite3],
[test "$have_supported_sqlite3" = "yes"],
[$LIBSQLITE3_CFLAGS], [$LIBSQLITE3_LIBS])
dnl compression libs
PY_STDLIB_MOD([zlib], [], [test "$have_zlib" = yes],
[$ZLIB_CFLAGS], [$ZLIB_LIBS])
dnl binascii can use zlib for optimized crc32.
PY_STDLIB_MOD_SIMPLE([binascii], [$BINASCII_CFLAGS], [$BINASCII_LIBS])
PY_STDLIB_MOD([_bz2], [], [test "$have_bzip2" = yes],
[$BZIP2_CFLAGS], [$BZIP2_LIBS])
PY_STDLIB_MOD([_lzma], [], [test "$have_liblzma" = yes],
[$LIBLZMA_CFLAGS], [$LIBLZMA_LIBS])
dnl test modules
PY_STDLIB_MOD([_testcapi], [test "$TEST_MODULES" = yes])
PY_STDLIB_MOD([_testinternalcapi], [test "$TEST_MODULES" = yes])