diff --git a/ChangeLog b/ChangeLog index f5b008e41..2d10b7659 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-11-11 Vladimir Serbinenko + + * configure.ac: Check for lzma.h for enabling liblzma and allow + manual disabling. + 2013-11-11 Vladimir Serbinenko Add missing includes of loader.h. diff --git a/configure.ac b/configure.ac index 579acb882..343d5f401 100644 --- a/configure.ac +++ b/configure.ac @@ -1264,10 +1264,32 @@ fi AC_SUBST([LIBGEOM]) +AC_ARG_ENABLE([liblzma], + [AS_HELP_STRING([--enable-liblzma], + [enable liblzma integration (default=guessed)])]) +if test x"$enable_liblzma" = xno ; then + liblzma_excuse="explicitly disabled" +fi + +if test x"$liblzma_excuse" = x ; then AC_CHECK_LIB([lzma], [lzma_code], - [LIBLZMA="-llzma" - AC_DEFINE([HAVE_LIBLZMA], [1], - [Define to 1 if you have the LZMA library.])],) + [],[liblzma_excuse="need lzma library"]) +fi +if test x"$liblzma_excuse" = x ; then +AC_CHECK_HEADER([lzma.h], [], [liblzma_excuse="need lzma header"]) +fi + +if test x"$enable_liblzma" = xyes && test x"$liblzma_excuse" != x ; then + AC_MSG_ERROR([liblzma support was explicitly requested but requirements are not satisfied]) +fi + + +if test x"$liblzma_excuse" = x ; then + LIBLZMA="-llzma" + AC_DEFINE([USE_LIBLZMA], [1], + [Define to 1 if you have the LZMA library.]) +fi + AC_SUBST([LIBLZMA]) AC_ARG_ENABLE([libzfs], @@ -1541,8 +1563,8 @@ else echo Build-time grub-mkfont: No "($grub_build_mkfont_excuse)" echo "Without unifont (no build-time grub-mkfont)" fi -if test "x$LIBLZMA" = x ; then -echo "Without liblzma (no support for XZ-compressed mips images)" +if test x"$liblzma_excuse" != x ; then +echo "Without liblzma (no support for XZ-compressed mips images) ($liblzma_excuse)" else echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)" fi diff --git a/util/mkimage.c b/util/mkimage.c index c71f1fdcc..a5a683b98 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -48,7 +48,7 @@ #define ALIGN_ADDR(x) (ALIGN_UP((x), image_target->voidp_sizeof)) -#ifdef HAVE_LIBLZMA +#ifdef USE_LIBLZMA #include #endif @@ -709,7 +709,7 @@ compress_kernel_lzma (char *kernel_img, size_t kernel_size, grub_util_error ("%s", _("cannot compress the kernel image")); } -#ifdef HAVE_LIBLZMA +#ifdef USE_LIBLZMA static void compress_kernel_xz (char *kernel_img, size_t kernel_size, char **core_img, size_t *core_size) @@ -772,7 +772,7 @@ compress_kernel (const struct grub_install_image_target_desc *image_target, char return; } -#ifdef HAVE_LIBLZMA +#ifdef USE_LIBLZMA if (image_target->flags & PLATFORM_FLAGS_DECOMPRESSORS && (comp == GRUB_COMPRESSION_XZ)) {