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@xxxxxxxxxx> --- Makefile.am | 3 ++- aclocal/libtirpc.m4 | 25 +++++++++++++++++++++++++ configure.ac | 28 +++++++++------------------- 3 files changed, 36 insertions(+), 20 deletions(-) create mode 100644 aclocal/libtirpc.m4 diff --git a/Makefile.am b/Makefile.am index 88ae210..cfe2d37 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 index 0000000..67c4012 --- /dev/null +++ b/aclocal/libtirpc.m4 @@ -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 diff --git a/configure.ac b/configure.ac index 97b084b..becbb7c 100644 --- a/configure.ac +++ b/configure.ac @@ -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> ] ) -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html