configure: move TI-RPC checks into aclocal
authorChuck Lever <chuck.lever@oracle.com>
Mon, 16 Mar 2009 17:28:42 +0000 (13:28 -0400)
committerSteve Dickson <steved@redhat.com>
Mon, 16 Mar 2009 17:28:42 +0000 (13:28 -0400)
Define an aclocal test for TI-RPC headers and library, and move the
TI-RPC checks earlier in our configure script so other feature checks
can use the availability of TI-RPC to decide what to do.

Since bindresvport_sa is required just for IPv6 support, move that
check to the IPv6 feature tests.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
Makefile.am
aclocal/libtirpc.m4 [new file with mode: 0644]
configure.ac

index 88ae210..cfe2d37 100644 (file)
@@ -40,7 +40,8 @@ EXTRA_DIST = \
        aclocal/bsdsignals.m4 \
        aclocal/nfs-utils.m4 \
        aclocal/kerberos5.m4 \
-       aclocal/tcp-wrappers.m4
+       aclocal/tcp-wrappers.m4 \
+       aclocal/libtirpc.m4
 
 ACLOCAL_AMFLAGS = -I aclocal
 
diff --git a/aclocal/libtirpc.m4 b/aclocal/libtirpc.m4
new file mode 100644 (file)
index 0000000..67c4012
--- /dev/null
@@ -0,0 +1,25 @@
+dnl Checks for TI-RPC library and headers
+dnl
+AC_DEFUN([AC_LIBTIRPC], [
+
+  dnl if --enable-tirpc was specifed, the following components
+  dnl must be present, and we set up HAVE_ macros for them.
+
+  if test "$enable_tirpc" = yes; then
+
+    dnl look for the library; add to LIBS if found
+    AC_CHECK_LIB([tirpc], [clnt_tli_create], ,
+                 [AC_MSG_ERROR([libtirpc not found.])])
+
+    dnl also must have the headers installed where we expect
+    AC_CHECK_HEADERS([tirpc/netconfig.h], ,
+                     [AC_MSG_ERROR([libtirpc headers not found.])])
+
+    dnl set up HAVE_FOO for various functions
+    AC_CHECK_FUNCS([getnetconfig \
+                    clnt_create clnt_create_timed \
+                    clnt_vc_create clnt_dg_create xdr_rpcb])
+
+  fi
+
+])dnl
index 97b084b..becbb7c 100644 (file)
@@ -118,6 +118,11 @@ AC_ARG_ENABLE(mount,
        enable_mount=$enableval,
        enable_mount=yes)
        AM_CONDITIONAL(CONFIG_MOUNT, [test "$enable_mount" = "yes"])
+AC_ARG_ENABLE(tirpc,
+       [AC_HELP_STRING([--enable-tirpc],
+                       [enable use of TI-RPC @<:@default=no@:>@])],
+       enable_tirpc=$enableval,
+       enable_tirpc=no)
 AC_ARG_ENABLE(ipv6,
        [AC_HELP_STRING([--enable-ipv6],
                         [enable support for IPv6 @<:@default=no@:>@])],
@@ -131,13 +136,8 @@ AC_ARG_ENABLE(ipv6,
        AC_SUBST(enable_ipv6)
        AM_CONDITIONAL(CONFIG_IPV6, [test "$enable_ipv6" = "yes"])
 
-AC_ARG_ENABLE(tirpc,
-       [AC_HELP_STRING([--enable-tirpc],
-                        [enable use of TI-RPC @<:@default=no@:>@])],
-       enable_tirpc=$enableval,
-       enable_tirpc=no)
-       AC_SUBST(enable_tirpc)
-       AM_CONDITIONAL(CONFIG_TIRPC, [test "$enable_tirpc" = "yes"])
+dnl Check for TI-RPC library and headers
+AC_LIBTIRPC
 
 # Check whether user wants TCP wrappers support
 AC_TCP_WRAPPERS
@@ -262,22 +262,12 @@ AC_CHECK_DECL([AI_ADDRCONFIG],
                          [Define this to 1 if AI_ADDRCONFIG macro is defined]), ,
               [ #include <netdb.h> ] )
 
-if test "$enable_tirpc" = yes; then
-  AC_CHECK_LIB(tirpc, clnt_tli_create, ,
-           AC_MSG_ERROR([libtirpc not found.]))
-  AC_CHECK_HEADERS(tirpc/netconfig.h, ,
-                   AC_MSG_ERROR([libtirpc headers not found.]))
-  AC_CHECK_FUNCS([bindresvport_sa getnetconfig \
-                  clnt_create clnt_create_timed \
-                  clnt_vc_create clnt_dg_create xdr_rpcb])
-fi
-
 if test "$enable_ipv6" = yes; then
   if test "$enable_tirpc" = no; then
     AC_MSG_ERROR('--enable-ipv6' requires '--enable-tirpc'.)
   fi
-  AC_CHECK_FUNC(getnameinfo, , ,
-               AC_MSG_ERROR(Function 'getnameinfo' not found.))
+  AC_CHECK_FUNCS([getnameinfo bindresvport_sa], , ,
+                 [AC_MSG_ERROR([Missing functions needed for IPv6.])])
   AC_CHECK_DECL([AI_ADDRCONFIG], ,
                AC_MSG_ERROR([full getaddrinfo(3) implementation needed for IPv6 support]),
                [ #include <netdb.h> ] )