# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) m4_define([erofs_utils_version], m4_esyscmd_s([scripts/get-version-number])) m4_define([erofs_utils_date], m4_esyscmd([sed -n '2p' VERSION | tr -d '\n'])) AC_INIT([erofs-utils], [erofs_utils_version], [linux-erofs@lists.ozlabs.org]) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR(config) AM_INIT_AUTOMAKE([foreign -Wall]) # Checks for programs. AM_PROG_AR AC_PROG_CC AC_PROG_INSTALL LT_INIT # Test presence of pkg-config AC_MSG_CHECKING([pkg-config m4 macros]) if test m4_ifdef([PKG_CHECK_MODULES], [yes], [no]) = "yes"; then AC_MSG_RESULT([yes]); else AC_MSG_RESULT([no]); AC_MSG_ERROR([pkg-config is required. See pkg-config.freedesktop.org]) fi dnl Check if the flag is supported by compiler dnl CC_CHECK_CFLAGS_SILENT([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [ AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]), [ac_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $1" AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 0; }])], [eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"], [eval "AS_TR_SH([cc_cv_cflags_$1])='no'"]) CFLAGS="$ac_save_CFLAGS" ]) AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], [$2], [$3]) ]) dnl Check if the flag is supported by compiler (cacheable) dnl CC_CHECK_CFLAG([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) AC_DEFUN([CC_CHECK_CFLAG], [ AC_CACHE_CHECK([if $CC supports $1 flag], AS_TR_SH([cc_cv_cflags_$1]), CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! ) AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], [$2], [$3]) ]) dnl CC_CHECK_CFLAGS([FLAG1 FLAG2], [action-if-found], [action-if-not]) AC_DEFUN([CC_CHECK_CFLAGS], [ for flag in $1; do CC_CHECK_CFLAG($flag, [$2], [$3]) done ]) dnl EROFS_UTILS_PARSE_DIRECTORY dnl Input: $1 = a string to a relative or absolute directory dnl Output: $2 = the variable to set with the absolute directory AC_DEFUN([EROFS_UTILS_PARSE_DIRECTORY], [ dnl Check if argument is a directory if test -d $1 ; then dnl Get the absolute path of the directory dnl in case of relative directory. dnl If realpath is not a valid command, dnl an error is produced and we keep the given path. local_tmp=`realpath $1 2>/dev/null` if test "$local_tmp" != "" ; then if test -d "$local_tmp" ; then $2="$local_tmp" else $2=$1 fi else $2=$1 fi dnl Check for space in the directory if test `echo $1|cut -d' ' -f1` != $1 ; then AC_MSG_ERROR($1 directory shall not contain any space.) fi else AC_MSG_ERROR($1 shall be a valid directory) fi ]) AC_ARG_VAR([MAX_BLOCK_SIZE], [The maximum block size which erofs-utils supports]) AC_MSG_CHECKING([whether to enable multi-threading support]) AC_ARG_ENABLE([multithreading], AS_HELP_STRING([--enable-multithreading], [enable multi-threading support (EXPERIMENTAL) @<:@default=no@:>@]), [enable_multithreading="$enableval"], [enable_multithreading="no"]) AC_MSG_RESULT([$enable_multithreading]) AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], [enable debugging mode @<:@default=no@:>@])], [enable_debug="$enableval"], [enable_debug="no"]) AC_ARG_ENABLE([werror], [AS_HELP_STRING([--enable-werror], [enable -Werror @<:@default=no@:>@])], [enable_werror="$enableval"], [enable_werror="no"]) AC_ARG_ENABLE([fuzzing], [AS_HELP_STRING([--enable-fuzzing], [set up fuzzing mode @<:@default=no@:>@])], [enable_fuzzing="$enableval"], [enable_fuzzing="no"]) AC_ARG_ENABLE(lz4, [AS_HELP_STRING([--disable-lz4], [disable LZ4 compression support @<:@default=enabled@:>@])], [enable_lz4="$enableval"], [enable_lz4="yes"]) AC_ARG_ENABLE(lzma, [AS_HELP_STRING([--disable-lzma], [disable LZMA compression support @<:@default=auto@:>@])], [enable_lzma="$enableval"]) AC_ARG_WITH(zlib, [AS_HELP_STRING([--without-zlib], [Ignore presence of zlib inflate support @<:@default=auto@:>@])]) AC_ARG_WITH(libdeflate, [AS_HELP_STRING([--with-libdeflate], [Enable and build with libdeflate inflate support @<:@default=disabled@:>@])], [], [with_libdeflate="no"]) AC_ARG_WITH(libzstd, [AS_HELP_STRING([--with-libzstd], [Enable and build with of libzstd support @<:@default=auto@:>@])]) AC_ARG_WITH(qpl, [AS_HELP_STRING([--with-qpl], [Enable and build with Intel QPL support @<:@default=disabled@:>@])], [], [with_qpl="no"]) AC_ARG_ENABLE(fuse, [AS_HELP_STRING([--enable-fuse], [enable erofsfuse @<:@default=no@:>@])], [enable_fuse="$enableval"], [enable_fuse="no"]) AC_ARG_ENABLE([static-fuse], [AS_HELP_STRING([--enable-static-fuse], [build erofsfuse as a static library @<:@default=no@:>@])], [enable_static_fuse="$enableval"], [enable_static_fuse="no"]) AC_ARG_WITH(uuid, [AS_HELP_STRING([--without-uuid], [Ignore presence of libuuid and disable uuid support @<:@default=enabled@:>@])]) AC_ARG_WITH(selinux, [AS_HELP_STRING([--with-selinux], [enable and build with selinux support @<:@default=no@:>@])], [case "$with_selinux" in yes|no) ;; *) AC_MSG_ERROR([invalid argument to --with-selinux]) ;; esac], [with_selinux=no]) # Checks for libraries. # Use customized LZ4 library path when specified. AC_ARG_WITH(lz4-incdir, [AS_HELP_STRING([--with-lz4-incdir=DIR], [LZ4 include directory])], [ EROFS_UTILS_PARSE_DIRECTORY(["$withval"],[withval])]) AC_ARG_WITH(lz4-libdir, [AS_HELP_STRING([--with-lz4-libdir=DIR], [LZ4 lib directory])], [ EROFS_UTILS_PARSE_DIRECTORY(["$withval"],[withval])]) AC_ARG_VAR([LZ4_CFLAGS], [C compiler flags for lz4]) AC_ARG_VAR([LZ4_LIBS], [linker flags for lz4]) # Checks for header files. AC_CHECK_HEADERS(m4_flatten([ dirent.h execinfo.h fcntl.h getopt.h inttypes.h linux/aufs_type.h linux/falloc.h linux/fs.h linux/types.h linux/xattr.h limits.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/mman.h sys/random.h sys/sendfile.h sys/stat.h sys/statfs.h sys/sysmacros.h sys/time.h unistd.h ])) AC_HEADER_TIOCGWINSZ # Checks for typedefs, structures, and compiler characteristics. AC_C_INLINE AC_TYPE_INT64_T AC_TYPE_SIZE_T AC_TYPE_SSIZE_T AC_CHECK_MEMBERS([struct stat.st_rdev]) AC_CHECK_MEMBERS([struct stat.st_atim]) AC_CHECK_MEMBERS([struct stat.st_atimensec]) AC_TYPE_UINT64_T # # Check to see if llseek() is declared in unistd.h. On some libc's # it is, and on others it isn't..... Thank you glibc developers.... # AC_CHECK_DECL(llseek, [AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1, [Define to 1 if llseek declared in unistd.h])],, [#include ]) # # Check to see if lseek64() is declared in unistd.h. Glibc's header files # are so convoluted that I can't tell whether it will always be defined, # and if it isn't defined while lseek64 is defined in the library, # disaster will strike. # # Warning! Use of --enable-gcc-wall may throw off this test. # AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1, [Define to 1 if lseek64 declared in unistd.h])],, [#define _LARGEFILE_SOURCE #define _LARGEFILE64_SOURCE #include ]) AC_CHECK_DECL(memrchr,[AC_DEFINE(HAVE_MEMRCHR, 1, [Define to 1 if memrchr declared in string.h])],, [#define _GNU_SOURCE #include ]) # Checks for library functions. AC_CHECK_FUNCS(m4_flatten([ backtrace copy_file_range fallocate gettimeofday lgetxattr llistxattr memset realpath lseek64 ftello64 pread64 pwrite64 posix_fadvise fstatfs sendfile strdup strerror strrchr strtoull sysconf tmpfile64 utimensat])) # Detect maximum block size if necessary AS_IF([test "x$MAX_BLOCK_SIZE" = "x"], [ AC_CACHE_CHECK([sysconf (_SC_PAGESIZE)], [erofs_cv_max_block_size], AC_RUN_IFELSE([AC_LANG_PROGRAM( [[ #include #include ]], [[ int result; FILE *f; result = sysconf(_SC_PAGESIZE); if (result < 0) return 1; f = fopen("conftest.out", "w"); if (!f) return 1; fprintf(f, "%d", result); fclose(f); return 0; ]])], [erofs_cv_max_block_size=`cat conftest.out`], [erofs_cv_max_block_size=4096], [erofs_cv_max_block_size=4096])) ], [erofs_cv_max_block_size=$MAX_BLOCK_SIZE]) # Configure multi-threading support AS_IF([test "x$enable_multithreading" != "xno"], [ AC_CHECK_HEADERS([pthread.h]) AC_CHECK_LIB([pthread], [pthread_mutex_lock], [], AC_MSG_ERROR([libpthread is required for multi-threaded build])) AC_DEFINE(EROFS_MT_ENABLED, 1, [Enable multi-threading support]) ], []) # Configure debug mode AS_IF([test "x$enable_debug" != "xno"], [], [ dnl Turn off all assert checking. CPPFLAGS="$CPPFLAGS -DNDEBUG" ]) # Configure -Werror AS_IF([test "x$enable_werror" != "xyes"], [], [ CPPFLAGS="$CPPFLAGS -Werror" ]) # Configure libuuid AS_IF([test "x$with_uuid" != "xno"], [ PKG_CHECK_MODULES([libuuid], [uuid]) # Paranoia: don't trust the result reported by pkgconfig before trying out saved_LIBS="$LIBS" saved_CPPFLAGS=${CPPFLAGS} CPPFLAGS="${libuuid_CFLAGS} ${CPPFLAGS}" LIBS="${libuuid_LIBS} $LIBS" AC_MSG_CHECKING([libuuid usability]) AC_TRY_LINK([ #include ], [ uuid_t tmp; uuid_generate(tmp); return 0; ], [have_uuid="yes" AC_MSG_RESULT([yes])], [ have_uuid="no" AC_MSG_RESULT([no]) AC_MSG_ERROR([libuuid doesn't work properly])]) LIBS="${saved_LIBS}" CPPFLAGS="${saved_CPPFLAGS}"], [have_uuid="no"]) # Configure selinux AS_IF([test "x$with_selinux" != "xno"], [ PKG_CHECK_MODULES([libselinux], [libselinux]) # Paranoia: don't trust the result reported by pkgconfig before trying out saved_LIBS="$LIBS" saved_CPPFLAGS=${CPPFLAGS} CPPFLAGS="${libselinux_CFLAGS} ${CPPFLAGS}" LIBS="${libselinux_LIBS} $LIBS" AC_CHECK_LIB(selinux, selabel_lookup, [ have_selinux="yes" ], [ AC_MSG_ERROR([libselinux doesn't work properly])]) LIBS="${saved_LIBS}" CPPFLAGS="${saved_CPPFLAGS}"], [have_selinux="no"]) # Configure fuse AS_IF([test "x$enable_fuse" != "xno"], [ # Paranoia: don't trust the result reported by pkgconfig before trying out saved_LIBS="$LIBS" saved_CPPFLAGS=${CPPFLAGS} PKG_CHECK_MODULES([libfuse3], [fuse3 >= 3.0], [ PKG_CHECK_MODULES([libfuse3_0], [fuse3 >= 3.0 fuse3 < 3.2], [ AC_DEFINE([FUSE_USE_VERSION], [30], [used FUSE API version]) ], [ PKG_CHECK_MODULES([libfuse3_2], [fuse3 >= 3.2], [ AC_DEFINE([FUSE_USE_VERSION], [32], [used FUSE API version]) ]) ]) CPPFLAGS="${libfuse3_CFLAGS} ${CPPFLAGS}" LIBS="${libfuse3_LIBS} $LIBS" AC_CHECK_LIB(fuse3, fuse_session_new, [], [ AC_MSG_ERROR([libfuse3 (>= 3.0) doesn't work properly for lowlevel api])]) have_fuse="yes" ], [ PKG_CHECK_MODULES([libfuse2], [fuse >= 2.6], [ AC_DEFINE([FUSE_USE_VERSION], [26], [used FUSE API version]) CPPFLAGS="${libfuse2_CFLAGS} ${CPPFLAGS}" LIBS="${libfuse2_LIBS} $LIBS" AC_CHECK_LIB(fuse, fuse_lowlevel_new, [], [ AC_MSG_ERROR([libfuse (>= 2.6) doesn't work properly for lowlevel api])]) have_fuse="yes" ], [have_fuse="no"]) ]) LIBS="${saved_LIBS}" CPPFLAGS="${saved_CPPFLAGS}"], [have_fuse="no"]) # Configure lz4 test -z $LZ4_LIBS && LZ4_LIBS='-llz4' if test "x$enable_lz4" = "xyes"; then test -z "${with_lz4_incdir}" || LZ4_CFLAGS="-I$with_lz4_incdir $LZ4_CFLAGS" saved_CPPFLAGS=${CPPFLAGS} CPPFLAGS="${LZ4_CFLAGS} ${CPPFLAGS}" AC_CHECK_HEADERS([lz4.h],[have_lz4h="yes"], []) if test "x${have_lz4h}" = "xyes" ; then saved_LIBS="$LIBS" saved_LDFLAGS=${LDFLAGS} test -z "${with_lz4_libdir}" || LDFLAGS="-L$with_lz4_libdir ${LDFLAGS}" AC_CHECK_LIB(lz4, LZ4_compress_destSize, [ have_lz4="yes" have_lz4hc="yes" AC_CHECK_LIB(lz4, LZ4_compress_HC_destSize, [], [ AC_CHECK_DECL(LZ4_compress_HC_destSize, [lz4_force_static="yes"], [have_lz4hc="no"], [[ #define LZ4_HC_STATIC_LINKING_ONLY (1) #include ]]) ]) ], [AC_MSG_ERROR([Cannot find proper lz4 version (>= 1.8.0)])]) LDFLAGS=${saved_LDFLAGS} LIBS="${saved_LIBS}" fi CPPFLAGS=${saved_CPPFLAGS} fi # Configure liblzma have_liblzma="no" AS_IF([test "x$enable_lzma" != "xno"], [ saved_CPPFLAGS=${CPPFLAGS} PKG_CHECK_MODULES([liblzma], [liblzma], [ # Paranoia: don't trust the result reported by pkgconfig before trying out saved_LIBS="$LIBS" saved_CPPFLAGS=${CPPFLAGS} CPPFLAGS="${liblzma_CFLAGS} ${CPPFLAGS}" LIBS="${liblzma_LIBS} $LIBS" AC_CHECK_HEADERS([lzma.h],[ AC_CHECK_LIB(lzma, lzma_microlzma_encoder, [ AC_CHECK_DECL(lzma_microlzma_encoder, [have_liblzma="yes"], [], [[ #include ]]) ]) ]) LIBS="${saved_LIBS}" CPPFLAGS="${saved_CPPFLAGS}" ], [[]]) AS_IF([test "x$enable_lzma" = "xyes" -a "x$have_liblzma" != "xyes"], [ AC_MSG_ERROR([Cannot find a proper liblzma version]) ]) ]) # Configure zlib have_zlib="no" AS_IF([test "x$with_zlib" != "xno"], [ PKG_CHECK_MODULES([zlib], [zlib], [ # Paranoia: don't trust the result reported by pkgconfig before trying out saved_LIBS="$LIBS" saved_CPPFLAGS=${CPPFLAGS} CPPFLAGS="${zlib_CFLAGS} ${CPPFLAGS}" LIBS="${zlib_LIBS} $LIBS" AC_CHECK_HEADERS([zlib.h],[ AC_CHECK_LIB(z, inflate, [], [ AC_MSG_ERROR([zlib doesn't work properly])]) AC_CHECK_DECL(inflate, [have_zlib="yes"], [AC_MSG_ERROR([zlib doesn't work properly])], [[ #include ]]) ]) LIBS="${saved_LIBS}" CPPFLAGS="${saved_CPPFLAGS}"], [ AS_IF([test "x$with_zlib" = "xyes"], [ AC_MSG_ERROR([Cannot find proper zlib]) ]) ]) ]) # Configure libdeflate AS_IF([test "x$with_libdeflate" != "xno"], [ PKG_CHECK_MODULES([libdeflate], [libdeflate]) # Paranoia: don't trust the result reported by pkgconfig before trying out saved_LIBS="$LIBS" saved_CPPFLAGS=${CPPFLAGS} CPPFLAGS="${libdeflate_CFLAGS} ${CPPFLAGS}" LIBS="${libdeflate_LIBS} $LIBS" AC_CHECK_LIB(deflate, libdeflate_deflate_decompress, [ have_libdeflate="yes" ], [ AC_MSG_ERROR([libdeflate doesn't work properly])]) LIBS="${saved_LIBS}" CPPFLAGS="${saved_CPPFLAGS}"], [have_libdeflate="no"]) # Configure libzstd have_libzstd="no" AS_IF([test "x$with_libzstd" != "xno"], [ PKG_CHECK_MODULES([libzstd], [libzstd >= 1.4.0], [ # Paranoia: don't trust the result reported by pkgconfig before trying out saved_LIBS="$LIBS" saved_CPPFLAGS=${CPPFLAGS} CPPFLAGS="${libzstd_CFLAGS} ${CPPFLAGS}" LIBS="${libzstd_LIBS} $LIBS" AC_CHECK_HEADERS([zstd.h],[ AC_CHECK_LIB(zstd, ZSTD_compress2, [], [ AC_MSG_ERROR([libzstd doesn't work properly])]) AC_CHECK_DECL(ZSTD_compress2, [have_libzstd="yes"], [AC_MSG_ERROR([libzstd doesn't work properly])], [[ #include ]]) AC_CHECK_FUNCS([ZSTD_getFrameContentSize]) ]) LIBS="${saved_LIBS}" CPPFLAGS="${saved_CPPFLAGS}"], [ AS_IF([test "x$with_libzstd" = "xyes"], [ AC_MSG_ERROR([Cannot find proper libzstd]) ]) ]) ]) # Configure Intel QPL have_qpl="no" AS_IF([test "x$with_qpl" != "xno"], [ PKG_CHECK_MODULES([libqpl], [qpl >= 1.5.0], [ # Paranoia: don't trust the result reported by pkgconfig before trying out saved_LIBS="$LIBS" saved_CPPFLAGS=${CPPFLAGS} CPPFLAGS="${libqpl_CFLAGS} ${CPPFLAGS}" LIBS="${libqpl_LIBS} $LIBS" AC_CHECK_HEADERS([qpl/qpl.h],[ AC_CHECK_LIB(qpl, qpl_execute_job, [], [ AC_MSG_ERROR([libqpl doesn't work properly])]) AC_CHECK_DECL(qpl_execute_job, [have_qpl="yes"], [AC_MSG_ERROR([libqpl doesn't work properly])], [[ #include ]]) ]) LIBS="${saved_LIBS}" CPPFLAGS="${saved_CPPFLAGS}"], [ AS_IF([test "x$with_qpl" = "xyes"], [ AC_MSG_ERROR([Cannot find proper libqpl]) ]) ]) ]) # Enable 64-bit off_t CFLAGS+=" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" # Configure fuzzing mode AS_IF([test "x$enable_fuzzing" != "xyes"], [], [ CC_CHECK_CFLAGS(["-fsanitize=address,fuzzer-no-link"], [ CFLAGS="$CFLAGS -g -O1 -fsanitize=address,fuzzer-no-link" ], [ AC_MSG_ERROR([Compiler doesn't support `-fsanitize=address,fuzzer-no-link`]) ]) ]) AM_CONDITIONAL([ENABLE_FUZZING], [test "x${enable_fuzzing}" = "xyes"]) # Set up needed symbols, conditionals and compiler/linker flags AM_CONDITIONAL([ENABLE_EROFS_MT], [test "x${enable_multithreading}" != "xno"]) AM_CONDITIONAL([ENABLE_LZ4], [test "x${have_lz4}" = "xyes"]) AM_CONDITIONAL([ENABLE_LZ4HC], [test "x${have_lz4hc}" = "xyes"]) AM_CONDITIONAL([ENABLE_FUSE], [test "x${have_fuse}" = "xyes"]) AM_CONDITIONAL([ENABLE_LIBLZMA], [test "x${have_liblzma}" = "xyes"]) AM_CONDITIONAL([ENABLE_LIBDEFLATE], [test "x${have_libdeflate}" = "xyes"]) AM_CONDITIONAL([ENABLE_LIBZSTD], [test "x${have_libzstd}" = "xyes"]) AM_CONDITIONAL([ENABLE_QPL], [test "x${have_qpl}" = "xyes"]) AM_CONDITIONAL([ENABLE_STATIC_FUSE], [test "x${enable_static_fuse}" = "xyes"]) if test "x$have_uuid" = "xyes"; then AC_DEFINE([HAVE_LIBUUID], 1, [Define to 1 if libuuid is found]) fi if test "x$have_selinux" = "xyes"; then AC_DEFINE([HAVE_LIBSELINUX], 1, [Define to 1 if libselinux is found]) fi if test "x${have_lz4}" = "xyes"; then AC_DEFINE([LZ4_ENABLED], [1], [Define to 1 if lz4 is enabled.]) if test "x${have_lz4hc}" = "xyes"; then AC_DEFINE([LZ4HC_ENABLED], [1], [Define to 1 if lz4hc is enabled.]) fi if test "x${lz4_force_static}" = "xyes"; then LZ4_LIBS="-Wl,-Bstatic -Wl,-whole-archive -Xlinker ${LZ4_LIBS} -Wl,-no-whole-archive -Wl,-Bdynamic" test -z "${with_lz4_libdir}" || LZ4_LIBS="-L${with_lz4_libdir} $LZ4_LIBS" else test -z "${with_lz4_libdir}" || LZ4_LIBS="-L${with_lz4_libdir} -R${with_lz4_libdir} $LZ4_LIBS" fi liblz4_LIBS="${LZ4_LIBS}" fi AC_SUBST([liblz4_LIBS]) if test "x${have_liblzma}" = "xyes"; then AC_DEFINE([HAVE_LIBLZMA], [1], [Define to 1 if liblzma is enabled.]) liblzma_LIBS="-llzma" test -z "${with_liblzma_libdir}" || liblzma_LIBS="-L${with_liblzma_libdir} $liblzma_LIBS" test -z "${with_liblzma_incdir}" || liblzma_CFLAGS="-I${with_liblzma_incdir}" AC_SUBST([liblzma_LIBS]) AC_SUBST([liblzma_CFLAGS]) fi if test "x$have_zlib" = "xyes"; then AC_DEFINE([HAVE_ZLIB], 1, [Define to 1 if zlib is found]) fi if test "x$have_libdeflate" = "xyes"; then AC_DEFINE([HAVE_LIBDEFLATE], 1, [Define to 1 if libdeflate is found]) fi if test "x$have_libzstd" = "xyes"; then AC_DEFINE([HAVE_LIBZSTD], 1, [Define to 1 if libzstd is found]) fi if test "x$have_qpl" = "xyes"; then AC_DEFINE([HAVE_QPL], 1, [Define to 1 if qpl is found]) AC_SUBST([libqpl_LIBS]) AC_SUBST([libqpl_CFLAGS]) fi # Dump maximum block size AS_IF([test "x$erofs_cv_max_block_size" = "x"], [$erofs_cv_max_block_size = 4096], []) AC_DEFINE_UNQUOTED([EROFS_MAX_BLOCK_SIZE], [$erofs_cv_max_block_size], [The maximum block size which erofs-utils supports]) AC_CONFIG_FILES([Makefile man/Makefile lib/Makefile mkfs/Makefile dump/Makefile fuse/Makefile fsck/Makefile]) AC_OUTPUT