]> git.proxmox.com Git - mirror_zfs.git/blobdiff - config/user-libtirpc.m4
config: better libtirpc detection
[mirror_zfs.git] / config / user-libtirpc.m4
index 5f929061f3184b2fa2cc8bbee412e0e5e905880d..19c02c9d546869a0b1e6fbd1c9221d65d9042797 100644 (file)
@@ -4,27 +4,27 @@ dnl #
 AC_DEFUN([ZFS_AC_CONFIG_USER_LIBTIRPC], [
        AC_ARG_WITH([tirpc],
            [AS_HELP_STRING([--with-tirpc],
-               [use tirpc for xdr encoding @<:@default=check@:>@])],
+               [use tirpc for xdr encoding @<:@default=check@:>@])],
            [],
            [with_tirpc=check])
 
-       LIBTIRPC=
-       LIBTIRPC_CFLAGS=
+       have_xdr=
 
-       AS_IF([test "x$with_tirpc" != xno],
-           [AC_CHECK_LIB([tirpc], [xdrmem_create],
-               [AC_SUBST([LIBTIRPC], [-ltirpc])
-                AC_SUBST([LIBTIRPC_CFLAGS], [-I/usr/include/tirpc])
-                AC_DEFINE([HAVE_LIBTIRPC], [1], [Define if you have libtirpc])
-               ],
-               [if test "x$with_tirpc" != xcheck; then
-                   AC_MSG_FAILURE(
-                       [--with-tirpc was given, but test for tirpc failed])
-                fi
-               AC_SEARCH_LIBS([xdrmem_create], [tirpc], [], [
-                   AC_MSG_FAILURE([xdrmem_create() requires tirpc or libc])])
-               ])],
-           [AC_SEARCH_LIBS([xdrmem_create], [tirpc], [], [
-               AC_MSG_FAILURE([xdrmem_create() requires libc])])
+        AS_IF([test "x$with_tirpc" != "xyes"], [
+           AC_SEARCH_LIBS([xdrmem_create], [], [have_xdr=1], [
+               AS_IF([test "x$with_tirpc" = "xno"], [
+                   AC_MSG_FAILURE([xdrmem_create() requires sunrpc support in libc if not using libtirpc])
+               ])
            ])
+        ])
+
+       AS_IF([test "x$have_xdr" = "x"], [
+            FIND_SYSTEM_LIBRARY(LIBTIRPC, [libtirpc], [rpc/xdr.h], [tirpc], [tirpc], [xdrmem_create], [], [
+               AS_IF([test "x$with_tirpc" = "xyes"], [
+                   AC_MSG_FAILURE([--with-tirpc was given, but libtirpc is not available, try installing libtirpc-devel])
+               ],[dnl ELSE
+                   AC_MSG_FAILURE([neither libc sunrpc support nor libtirpc is available, try installing libtirpc-devel])
+               ])
+           ])
+       ])
 ])