2012/2/25 Vladimir 'φ-coder/phcoder' Serbinenko <phco...@gmail.com>:
> On 25.02.2012 19:44, Mike Gilbert wrote:
>>
>> +if test x"$libzfs_excuse" = x ; then
>> +  # Only check for system headers if libzfs support has not been
>> disabled.
>> +  AC_CHECK_HEADERS(libzfs.h libnvpair.h)
>> +fi
>
> You should set excuse here if the headers aren't found.

I left that out intentionally. If the system headers are not found,
include/grub/util/libzfs.h declares the necessary functions itself.

This is actually very common since the libzfs headers are currently
installed outside of the default include search path by the ZfsOnLinux
package. Ideally, a pkgconfig file should be provided by ZfsOnLinux
and we could use that to retrieve appropriate pre-processor flags.

However, this is outside the scope of this patch.

> Also it should fail if libzfs is explicitly enable but unavailable

Done. Updated patch attached.

+if test x"$enable_libzfs" = xyes && test x"$libzfs_excuse" != x ; then
+  AC_MSG_ERROR([libzfs support was explicitly requested but
requirements are not satisfied])
+fi
+

Thanks again.
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: flop...@gentoo.org-20120225195531-u5c2ef5djna30c1q
# target_branch: file:///home/floppym/src/grub/trunk/
# testament_sha1: 7b8dd95f57bdf0f8712dde5ec776133958a59b96
# timestamp: 2012-02-25 14:56:56 -0500
# base_revision_id: phco...@gmail.com-20120225001529-hupo18shmta14v1b
# 
# Begin patch
=== modified file 'ChangeLog'
--- ChangeLog	2012-02-25 00:15:29 +0000
+++ ChangeLog	2012-02-25 18:36:53 +0000
@@ -1,3 +1,9 @@
+2012-02-25  Mike Gilbert  <flop...@gentoo.org>
+
+	Add configure flag to control libzfs integration.
+
+	* configure.ac: Add AC_ARG_ENABLE(libzfs ...) and associated logic.
+
 2012-02-25  Vladimir Serbinenko  <phco...@gmail.com>
 
 	Convert grub-emu to argp.

=== modified file 'configure.ac'
--- configure.ac	2012-02-24 11:30:32 +0000
+++ configure.ac	2012-02-25 19:55:31 +0000
@@ -302,7 +302,7 @@
 
 # Check for functions and headers.
 AC_CHECK_FUNCS(posix_memalign memalign asprintf vasprintf getextmntent)
-AC_CHECK_HEADERS(libzfs.h libnvpair.h sys/param.h sys/mount.h sys/mnttab.h sys/mkdev.h limits.h)
+AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h sys/mkdev.h limits.h)
 
 AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$ac_includes_default
 #include <sys/param.h>
@@ -1006,16 +1006,45 @@
                         [Define to 1 if you have the LZMA library.])],)
 AC_SUBST([LIBLZMA])
 
-AC_CHECK_LIB([zfs], [libzfs_init],
-             [LIBZFS="-lzfs"
-              AC_DEFINE([HAVE_LIBZFS], [1],
-                        [Define to 1 if you have the ZFS library.])],)
+AC_ARG_ENABLE([libzfs],
+              [AS_HELP_STRING([--enable-libzfs],
+                              [enable libzfs integration (default=guessed)])])
+if test x"$enable_libzfs" = xno ; then
+  libzfs_excuse="explicitly disabled"
+fi
+
+if test x"$libzfs_excuse" = x ; then
+  # Only check for system headers if libzfs support has not been disabled.
+  AC_CHECK_HEADERS(libzfs.h libnvpair.h)
+fi
+
+if test x"$libzfs_excuse" = x ; then
+  AC_CHECK_LIB([zfs], [libzfs_init],
+               [],
+               [libzfs_excuse="need zfs library"])
+fi
+
+if test x"$libzfs_excuse" = x ; then
+  AC_CHECK_LIB([nvpair], [nvlist_print],
+               [],
+               [libzfs_excuse="need nvpair library"])
+fi
+
+if test x"$enable_libzfs" = xyes && test x"$libzfs_excuse" != x ; then
+  AC_MSG_ERROR([libzfs support was explicitly requested but requirements are not satisfied])
+fi
+
+if test x"$libzfs_excuse" = x ; then
+  # We need both libzfs and libnvpair for a successful build.
+  LIBZFS="-lzfs"
+  AC_DEFINE([HAVE_LIBZFS], [1],
+            [Define to 1 if you have the ZFS library.])
+  LIBNVPAIR="-lnvpair"
+  AC_DEFINE([HAVE_LIBNVPAIR], [1],
+            [Define to 1 if you have the NVPAIR library.])
+fi
+
 AC_SUBST([LIBZFS])
-
-AC_CHECK_LIB([nvpair], [nvlist_print],
-             [LIBNVPAIR="-lnvpair"
-              AC_DEFINE([HAVE_LIBNVPAIR], [1],
-                        [Define to 1 if you have the NVPAIR library.])],)
 AC_SUBST([LIBNVPAIR])
 
 LIBS=""
@@ -1169,5 +1198,10 @@
 else
 echo starfield theme: No "($starfield_excuse)"
 fi
+if [ x"$libzfs_excuse" = x ]; then
+echo With libzfs support: Yes
+else
+echo With libzfs support: No "($libzfs_excuse)"
+fi
 echo "*******************************************************"
 ]

# Begin bundle
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
guQZJTYLGRsNIpPgXckU4UJBZyoBAA==
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to