Here's some autoconf fu to check for blkid topo support; this changes it to
default to using blkid, optionally disable-able, and disables it automatically
if the topo stuff isn't found (I think ;)
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
test $enable_termcap = yes && libtermcap="-ltermcap",)
AC_SUBST(libtermcap)
+# AC_HAVE_BLKID_TOPO below wil find the library & check for topo support
AC_ARG_ENABLE(blkid,
-[ --enable-blkid=[yes/no] Enable block device id library [default=no]],
- test $enable_blkid = yes && libblkid="-lblkid",)
-AC_SUBST(libblkid)
-AC_SUBST(enable_blkid)
+[ --enable-blkid=[yes/no] Enable block device id library [default=yes]],,
+ enable_blkid=yes)
AC_ARG_ENABLE(lib64,
[ --enable-lib64=[yes/no] Enable lib64 support [default=yes]],,
AC_HAVE_GETMNTENT
AC_HAVE_GETMNTINFO
AC_HAVE_FALLOCATE
+AC_HAVE_BLKID_TOPO($enable_blkid)
AC_TYPE_PSINT
AC_TYPE_PSUNSIGNED
--- /dev/null
+#
+# See if blkid has the topology bits
+#
+
+AC_DEFUN([AC_HAVE_BLKID_TOPO],
+[
+ enable_blkid="$1"
+ if test "$enable_blkid" = "yes"; then
+ AC_SEARCH_LIBS([blkid_probe_all], [blkid])
+ AC_CHECK_FUNCS(blkid_probe_get_topology)
+ if test $ac_cv_func_blkid_probe_get_topology = yes; then
+ libblkid="-lblkid"
+ else
+ libblkd=""
+ enable_blkid="no"
+ AC_SUBST(enable_blkid)
+ fi
+ fi
+ AC_SUBST(libblkid)
+])