1dnl config.m4 for extension zstd 2 3dnl Check PHP version: 4AC_MSG_CHECKING(PHP version) 5if test ! -z "$phpincludedir"; then 6 PHP_VERSION=`grep 'PHP_VERSION ' $phpincludedir/main/php_version.h | sed -e 's/.*"\([[0-9\.]]*\)".*/\1/g' 2>/dev/null` 7elif test ! -z "$PHP_CONFIG"; then 8 PHP_VERSION=`$PHP_CONFIG --version 2>/dev/null` 9fi 10 11if test x"$PHP_VERSION" = "x"; then 12 AC_MSG_WARN([none]) 13else 14 PHP_MAJOR_VERSION=`echo $PHP_VERSION | sed -e 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/g' 2>/dev/null` 15 PHP_MINOR_VERSION=`echo $PHP_VERSION | sed -e 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/g' 2>/dev/null` 16 PHP_RELEASE_VERSION=`echo $PHP_VERSION | sed -e 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/g' 2>/dev/null` 17 AC_MSG_RESULT([$PHP_VERSION]) 18fi 19 20if test $PHP_MAJOR_VERSION -lt 5; then 21 AC_MSG_ERROR([need at least PHP 5 or newer]) 22fi 23 24PHP_ARG_ENABLE(zstd, whether to enable zstd support, 25[ --enable-zstd Enable zstd support]) 26 27PHP_ARG_WITH(libzstd, whether to use system zstd library, 28[ --with-libzstd Use system zstd library], no, no) 29 30if test "$PHP_ZSTD" != "no"; then 31 32 if test "$PHP_LIBZSTD" != "no"; then 33 AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 34 35 AC_MSG_CHECKING(for libzstd) 36 if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libzstd; then 37 if $PKG_CONFIG libzstd --atleast-version 1; then 38 LIBZSTD_CFLAGS=`$PKG_CONFIG libzstd --cflags` 39 LIBZSTD_LIBDIR=`$PKG_CONFIG libzstd --libs` 40 LIBZSTD_VERSON=`$PKG_CONFIG libzstd --modversion` 41 AC_MSG_RESULT(from pkgconfig: version $LIBZSTD_VERSON) 42 else 43 AC_MSG_ERROR(system libzstd is too old) 44 fi 45 else 46 AC_MSG_ERROR(pkg-config not found) 47 fi 48 PHP_EVAL_LIBLINE($LIBZSTD_LIBDIR, ZSTD_SHARED_LIBADD) 49 PHP_EVAL_INCLINE($LIBZSTD_CFLAGS) 50 else 51 ZSTD_COMMON_SOURCES=" 52 zstd/lib/common/debug.c 53 zstd/lib/common/entropy_common.c 54 zstd/lib/common/error_private.c 55 zstd/lib/common/fse_decompress.c 56 zstd/lib/common/pool.c 57 zstd/lib/common/threading.c 58 zstd/lib/common/xxhash.c 59 zstd/lib/common/zstd_common.c 60 " 61 ZSTD_COMPRESS_SOURCES=" 62 zstd/lib/compress/fse_compress.c 63 zstd/lib/compress/hist.c 64 zstd/lib/compress/huf_compress.c 65 zstd/lib/compress/zstd_compress.c 66 zstd/lib/compress/zstd_compress_literals.c 67 zstd/lib/compress/zstd_compress_sequences.c 68 zstd/lib/compress/zstd_compress_superblock.c 69 zstd/lib/compress/zstd_double_fast.c 70 zstd/lib/compress/zstd_fast.c 71 zstd/lib/compress/zstd_lazy.c 72 zstd/lib/compress/zstd_ldm.c 73 zstd/lib/compress/zstd_opt.c 74 zstd/lib/compress/zstdmt_compress.c 75 " 76 ZSTD_DECOMPRESS_SOURCES=" 77 zstd/lib/decompress/huf_decompress.c 78 zstd/lib/decompress/zstd_ddict.c 79 zstd/lib/decompress/zstd_decompress.c 80 zstd/lib/decompress/zstd_decompress_block.c 81 " 82 83 PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/zstd/lib/common) 84 PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/zstd/lib) 85 fi 86 PHP_NEW_EXTENSION(zstd, zstd.c $ZSTD_COMMON_SOURCES $ZSTD_COMPRESS_SOURCES $ZSTD_DECOMPRESS_SOURCES, $ext_shared) 87 PHP_SUBST(ZSTD_SHARED_LIBADD) 88 89 if test "$PHP_LIBZSTD" = "no"; then 90 PHP_ADD_BUILD_DIR($ext_builddir/zstd/lib/common) 91 PHP_ADD_BUILD_DIR($ext_builddir/zstd/lib/compress) 92 PHP_ADD_BUILD_DIR($ext_builddir/zstd/lib/decompress) 93 fi 94 95 ifdef([PHP_INSTALL_HEADERS], 96 [ 97 PHP_INSTALL_HEADERS([ext/zstd/], [php_zstd.h]) 98 ], [ 99 PHP_ADD_MAKEFILE_FRAGMENT 100 ]) 101fi 102 103dnl coverage 104PHP_ARG_ENABLE(coverage, whether to enable coverage support, 105[ --enable-coverage Enable coverage support], no, no) 106 107if test "$PHP_COVERAGE" != "no"; then 108 EXTRA_CFLAGS="--coverage" 109 PHP_SUBST(EXTRA_CFLAGS) 110fi 111