X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=configure.ac;h=2b0650f888c497adb8bdbc2c31770666d53fe657;hp=69412c1723120ab3a4e4b9ed05be0a97c1319d25;hb=HEAD;hpb=6c04f143b1c136e475bf3945bda2d9d18edad0b6 diff --git a/configure.ac b/configure.ac index 69412c17..21fec5bf 100644 --- a/configure.ac +++ b/configure.ac @@ -1,13 +1,16 @@ ############################################################################### -AC_INIT([wimlib], [1.8.2-BETA], [ebiggers3@gmail.com]) +AC_INIT([wimlib], m4_esyscmd_s([tools/get-version-number.sh]), + [https://wimlib.net/forums/]) AC_CONFIG_SRCDIR([src/wim.c]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([-Wall -Werror subdir-objects foreign]) +AM_SILENT_RULES([yes]) AC_C_BIGENDIAN m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) LT_INIT +PKG_PROG_PKG_CONFIG AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile] [doc/Doxyfile] [wimlib.pc]) @@ -33,7 +36,8 @@ case "$host_os" in mingw*) # Native Windows WINDOWS_NATIVE_BUILD="yes" - PLATFORM_CPPFLAGS="-D_POSIX -D_POSIX_THREAD_SAFE_FUNCTIONS -DUNICODE -D_UNICODE -D_CRT_NON_CONFORMING_SWPRINTFS" + # -D__MINGW_USE_VC2005_COMPAT: make time_t 64-bit on 32-bit Windows. + PLATFORM_CPPFLAGS="-D_POSIX -D_POSIX_THREAD_SAFE_FUNCTIONS -DUNICODE -D_UNICODE -D_CRT_NON_CONFORMING_SWPRINTFS -D__MINGW_USE_VC2005_COMPAT -D_WIN32_WINNT=0x0600" PLATFORM_CFLAGS="-municode -mno-ms-bitfields" PLATFORM_LDFLAGS="-no-undefined" WITH_NTFS_3G_DEFAULT="no" @@ -58,12 +62,12 @@ AM_CONDITIONAL([WINDOWS_NATIVE_BUILD], [test "$WINDOWS_NATIVE_BUILD" = "yes"]) # Useful functions which we can do without. AC_CHECK_FUNCS([futimens utimensat flock mempcpy \ - openat fstatat readlinkat fdopendir]) + openat fstatat readlinkat fdopendir posix_fallocate \ + llistxattr lgetxattr fsetxattr lsetxattr getopt_long_only]) # Header checks, most of which are only here to satisfy conditional includes # made by the libntfs-3g headers. AC_CHECK_HEADERS([alloca.h \ - attr/xattr.h \ byteswap.h \ endian.h \ errno.h \ @@ -75,9 +79,10 @@ AC_CHECK_HEADERS([alloca.h \ sys/byteorder.h \ sys/endian.h \ sys/file.h \ - sys/param.h \ + sys/syscall.h \ sys/sysctl.h \ sys/times.h \ + sys/xattr.h \ time.h \ utime.h]) @@ -95,20 +100,8 @@ AC_CHECK_MEMBER([struct stat.st_mtim], ############################################################################### # ------------------------------ pthreads ------------------------------------- -AX_PTHREAD([], [AC_MSG_ERROR(["cannot find pthreads library"])]) - -# ------------------------------ libxml2 -------------------------------------- -PKG_CHECK_MODULES([LIBXML2], [libxml-2.0]) -PKGCONFIG_PRIVATE_REQUIRES="$PKGCONFIG_PRIVATE_REQUIRES libxml-2.0" - -# ------------------------------ libiconv ------------------------------------- -AM_ICONV -if test "$am_cv_func_iconv" != "yes"; then - AC_MSG_ERROR([Cannot find the iconv() function. iconv() is used to - convert between encodings of WIM filenames and XML data. - wimlib cannot be compiled without it. iconv() is - available in the latest version of glibc and sometimes in - other libraries.]) +if test "$WINDOWS_NATIVE_BUILD" != "yes"; then + AX_PTHREAD([], [AC_MSG_ERROR(["cannot find pthreads library"])]) fi ############################################################################### @@ -135,9 +128,11 @@ if test "$WITH_NTFS_3G" = "yes"; then NTFS volume while preserving NTFS-specific data such as security descriptors and named data streams. Either install libntfs-3g, or configure --without-ntfs-3g to disable this - feature.])]) + feature. If your operating system packages development files + separately, the package you need to install may be called + ntfs-3g-dev, ntfs-3g-devel, or similar.])]) PKGCONFIG_PRIVATE_REQUIRES="$PKGCONFIG_PRIVATE_REQUIRES libntfs-3g" - AC_DEFINE([WITH_NTFS_3G], [1], [Define to 1 if using NTFS-3g support]) + AC_DEFINE([WITH_NTFS_3G], [1], [Define to 1 if using NTFS-3G support]) fi AM_CONDITIONAL([WITH_NTFS_3G], [test "$WITH_NTFS_3G" = "yes"]) @@ -146,7 +141,7 @@ AM_CONDITIONAL([WITH_NTFS_3G], [test "$WITH_NTFS_3G" = "yes"]) AC_MSG_CHECKING([whether to include support for mounting WIMs]) AC_ARG_WITH([fuse], [AS_HELP_STRING([--without-fuse], - [build without libfuse. This will disable the + [build without libfuse3. This will disable the ability to mount WIM images.])], [WITH_FUSE=$withval], [WITH_FUSE=$WITH_FUSE_DEFAULT]) @@ -154,11 +149,13 @@ AC_MSG_RESULT([$WITH_FUSE]) if test "$WITH_FUSE" = "yes"; then - PKG_CHECK_MODULES([LIBFUSE], [fuse], [], - [AC_MSG_ERROR([Cannot find libfuse! - Without libfuse, wimlib cannot include support for mounting WIM - images. Either install libfuse, or configure --without-fuse to - disable this feature.])]) + PKG_CHECK_MODULES([LIBFUSE], [fuse3], [], + [AC_MSG_ERROR([Cannot find libfuse3! + Without libfuse3, wimlib cannot include support for mounting WIM + images. Either install libfuse3, or configure --without-fuse to + disable this feature. If your operating system packages + development files separately, the package you need to install + may be called libfuse3-dev, fuse-devel, or similar.])]) PKGCONFIG_PRIVATE_REQUIRES="$PKGCONFIG_PRIVATE_REQUIRES fuse" AC_DEFINE([WITH_FUSE], [1], [Define to 1 if using FUSE support]) @@ -169,104 +166,32 @@ if test "$WITH_FUSE" = "yes"; then versions of glibc include this library. Either install this library, or configure --without-fuse to disable support for mounting WIM images.])]) - AC_CHECK_LIB([attr], [getxattr], [], - [AC_MSG_ERROR([Cannot find libattr! - wimlib needs this for the extended attribute functions, which are used - in the code for mounting WIM images. Either install this library, or - configure --without-fuse to disable support for mounting WIM images.])]) - PKGCONFIG_PRIVATE_LIBS="$PKGCONFIG_PRIVATE_LIBS -lrt" AC_SUBST([LIBRT_LIBS], [-lrt]) fi AM_CONDITIONAL([WITH_FUSE], [test "$WITH_FUSE" = "yes"]) -# ------------------------ SHA-1 implementation --------------------------------- - -AC_MSG_CHECKING([whether to use SSSE3-accelerated SHA-1]) -AC_ARG_ENABLE([ssse3-sha1], - [AS_HELP_STRING([--enable-ssse3-sha1], - [Include SSSE3-accelerated SHA-1 implementation by - Intel. This implies --without-libcrypto.])], - [ENABLE_SSSE3_SHA1=$enableval], - [ENABLE_SSSE3_SHA1=no]) -AC_MSG_RESULT([$ENABLE_SSSE3_SHA1]) - -if test "$ENABLE_SSSE3_SHA1" = "yes" ; then - AC_DEFINE([ENABLE_SSSE3_SHA1], [1], - [Define to 1 if using SSSE3 implementation of SHA-1]) - AC_PROG_NASM - NASM_SYMBOL_PREFIX="" - NASM_PLATFORM_FLAGS="" - if test "$WINDOWS_NATIVE_BUILD" = "yes"; then - NASM_PLATFORM_FLAGS="-DWIN_ABI" - fi - case "$host_os" in - darwin* | rhapsody* | nextstep* | openstep* | macos*) - NASM_SYMBOL_PREFIX="_" - ;; - esac - AC_SUBST([NASM_PLATFORM_FLAGS], [$NASM_PLATFORM_FLAGS]) - AC_SUBST([NASM_SYMBOL_PREFIX], [$NASM_SYMBOL_PREFIX]) -else - AC_MSG_CHECKING([whether to use SHA-1 implementation from system libcrypto]) - AC_ARG_WITH([libcrypto], - [AS_HELP_STRING([--without-libcrypto], - [build in the SHA-1 algorithm, rather than - use external libcrypto from OpenSSL - (default is autodetect)])], - [WITH_LIBCRYPTO=$withval], - [WITH_LIBCRYPTO=auto]) - AC_MSG_RESULT([$WITH_LIBCRYPTO]) - if test "$WITH_LIBCRYPTO" != "no"; then - PKG_CHECK_MODULES([LIBCRYPTO], [libcrypto], [ - PKGCONFIG_PRIVATE_REQUIRES="$PKGCONFIG_PRIVATE_REQUIRES libcrypto" - AC_DEFINE([WITH_LIBCRYPTO], [1], - [Define to 1 if using libcrypto SHA-1]) - ], [AC_MSG_WARN([Cannot find libcrypto: using stand-alone SHA-1 code instead])]) - fi -fi -AM_CONDITIONAL([ENABLE_SSSE3_SHA1], [test "$ENABLE_SSSE3_SHA1" = "yes"]) - # ----------------------------- Other options --------------------------------- -AC_MSG_CHECKING([whether to include error messages]) -AC_ARG_ENABLE([error_messages], - AS_HELP_STRING([--disable-error-messages], [do not compile in error messsages]), - [ENABLE_ERROR_MESSAGES=$enableval], - [ENABLE_ERROR_MESSAGES=yes]) -AC_MSG_RESULT([$ENABLE_ERROR_MESSAGES]) -if test "$ENABLE_ERROR_MESSAGES" = "yes"; then - AC_DEFINE([ENABLE_ERROR_MESSAGES], [1], [Define to 1 if including error messages]) -fi - -AC_MSG_CHECKING([whether to include assertions]) -AC_ARG_ENABLE([assertions], - AS_HELP_STRING([--disable-assertions], [do not include assertions]), - [ENABLE_ASSERTIONS=$enableval], - [ENABLE_ASSERTIONS=yes]) -AC_MSG_RESULT([$ENABLE_ASSERTIONS]) -if test "$ENABLE_ASSERTIONS" = "yes"; then - AC_DEFINE([ENABLE_ASSERTIONS], [1], [Define to 1 if including assertions]) -fi - -AC_MSG_CHECKING([whether to include support for multi-threaded compression]) -AC_ARG_ENABLE([multithreaded-compression], - AS_HELP_STRING([--disable-multithreaded-compression], - [disable support for multithreaded compression]), - [ENABLE_MULTITHREADED_COMPRESSION=$enableval], - [ENABLE_MULTITHREADED_COMPRESSION=yes]) -AC_MSG_RESULT([$ENABLE_MULTITHREADED_COMPRESSION]) -if test "$ENABLE_MULTITHREADED_COMPRESSION" = "yes"; then - AC_DEFINE([ENABLE_MULTITHREADED_COMPRESSION], [1], - [Define to 1 to support multithreaded compression]) -fi - AC_ARG_WITH(pkgconfigdir, [ --with-pkgconfigdir=DIR pkgconfig file in DIR @<:@LIBDIR/pkgconfig@:>@], [pkgconfigdir=$withval], [pkgconfigdir='${libdir}/pkgconfig']) AC_SUBST(pkgconfigdir) +AC_MSG_CHECKING([whether to enable supporting code for tests]) +AC_ARG_ENABLE([test-support], + [AS_HELP_STRING([--enable-test-support], + [Enable supporting code for tests (developers only)])], + [ENABLE_TEST_SUPPORT=$enableval], + [ENABLE_TEST_SUPPORT=no]) +AC_MSG_RESULT([$ENABLE_TEST_SUPPORT]) +if test "$ENABLE_TEST_SUPPORT" = "yes" ; then + AC_DEFINE([ENABLE_TEST_SUPPORT], [1], + [Define to 1 to enable supporting code for tests]) +fi +AM_CONDITIONAL([ENABLE_TEST_SUPPORT], [test "$ENABLE_TEST_SUPPORT" = "yes"]) + ############################################################################### AC_SUBST([PKGCONFIG_PRIVATE_REQUIRES], [$PKGCONFIG_PRIVATE_REQUIRES])