]> jfr.im git - irc/atheme/atheme.git/commitdiff
configure: reliably test for res_query(3) if building modules/contrib/
authorAaron Jones <redacted>
Sun, 16 Dec 2018 20:27:49 +0000 (20:27 +0000)
committerAaron Jones <redacted>
Sun, 16 Dec 2018 20:27:55 +0000 (20:27 +0000)
This makes building contrib modules on non-Linux platforms possible,
where res_query(3) is in -lc, not -lresolv.

configure
configure.ac
extra.mk.in

index dcf6b34e0b58c9b6f34e770c9dd9808eed97ede7..e7e9a75e3c97730bb0b1c2f8780196bbfed2ea5d 100755 (executable)
--- a/configure
+++ b/configure
@@ -637,6 +637,7 @@ LIBQRENCODE_LIBS
 LIBQRENCODE_CFLAGS
 SSL_LIBS
 CONTRIB_ENABLE
+CONTRIB_LIBS
 LOCALEDIR
 BUILDDIR
 SRCDIR
@@ -745,6 +746,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -841,6 +843,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1093,6 +1096,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1230,7 +1242,7 @@ fi
 for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
                datadir sysconfdir sharedstatedir localstatedir includedir \
                oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-               libdir localedir mandir
+               libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1383,6 +1395,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -8211,7 +8224,119 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CONTRIB" >&5
 $as_echo "$CONTRIB" >&6; }
 
+ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT=""
+
+
+
+
+
 if test "x${CONTRIB}" = "xyes"; then
+
+
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiling and linking a program using res_query(3) works" >&5
+$as_echo_n "checking whether compiling and linking a program using res_query(3) works... " >&6; }
+
+       LIBS_SAVED="${LIBS}"
+
+
+
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+
+                       #include <resolv.h>
+
+int
+main ()
+{
+
+
+                       unsigned char nsbuf[4096];
+                       const int ret = res_query("", ns_c_any, ns_t_mx, nsbuf, sizeof nsbuf);
+
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+               ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT="yes"
+
+else
+
+               ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT="no"
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+
+       if test "x${ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT}" = "xno"; then :
+
+
+               LIBS="-lresolv ${LIBS}"
+
+
+
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+
+                       #include <resolv.h>
+
+int
+main ()
+{
+
+
+                       unsigned char nsbuf[4096];
+                       const int ret = res_query("", ns_c_any, ns_t_mx, nsbuf, sizeof nsbuf);
+
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+               ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT="yes"
+
+else
+
+               ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT="no"
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+
+               if test "x${ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT}" = "xno"; then :
+
+
+                       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                       as_fn_error $? "--enable-contrib needs a functioning res_query(3)" "$LINENO" 5
+
+fi
+
+               if test "x${ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT}" = "xyes"; then :
+
+
+                       CONTRIB_LIBS="-lresolv"
+
+
+fi
+
+fi
+
+       LIBS="${LIBS_SAVED}"
+
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
        CONTRIB_ENABLE="contrib"
 else
        CONTRIB_ENABLE=""
index d2bb5d0205ada13d4106df9041b0863ee4d022f2..9eac4e265d206f4f61887961c82d57ff2fb1efb0 100644 (file)
@@ -276,7 +276,60 @@ AS_HELP_STRING([--enable-contrib],[ Enable contrib modules.]),
 ])
 AC_MSG_RESULT([$CONTRIB])
 
+ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT=""
+
+AC_DEFUN([ATHEME_LIBTEST_CONTRIB_RES_QUERY_DRIVER], [
+
+       AC_LINK_IFELSE([
+               AC_LANG_PROGRAM([[
+
+                       #include <resolv.h>
+               ]], [[
+
+                       unsigned char nsbuf[4096];
+                       const int ret = res_query("", ns_c_any, ns_t_mx, nsbuf, sizeof nsbuf);
+               ]])
+       ], [
+               ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT="yes"
+       ], [
+               ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT="no"
+       ])
+])
+
+AC_DEFUN([ATHEME_LIBTEST_CONTRIB_RES_QUERY], [
+
+       AC_MSG_CHECKING([whether compiling and linking a program using res_query(3) works])
+
+       LIBS_SAVED="${LIBS}"
+
+       ATHEME_LIBTEST_CONTRIB_RES_QUERY_DRIVER
+
+       AS_IF([test "x${ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT}" = "xno"], [
+
+               LIBS="-lresolv ${LIBS}"
+
+               ATHEME_LIBTEST_CONTRIB_RES_QUERY_DRIVER
+
+               AS_IF([test "x${ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT}" = "xno"], [
+
+                       AC_MSG_RESULT([no])
+                       AC_MSG_ERROR([--enable-contrib needs a functioning res_query(3)])
+               ])
+
+               AS_IF([test "x${ATHEME_LIBTEST_CONTRIB_RES_QUERY_RESULT}" = "xyes"], [
+
+                       CONTRIB_LIBS="-lresolv"
+                       AC_SUBST([CONTRIB_LIBS])
+               ])
+       ])
+
+       LIBS="${LIBS_SAVED}"
+
+       AC_MSG_RESULT([yes])
+])
+
 if test "x${CONTRIB}" = "xyes"; then
+       ATHEME_LIBTEST_CONTRIB_RES_QUERY
        CONTRIB_ENABLE="contrib"
 else
        CONTRIB_ENABLE=""
index 6246e07cd3c17d436ba72d54901b4bd962288309..d23ca29625da7c8f98e97fc1d95a5d3e7f64feec 100644 (file)
@@ -124,6 +124,7 @@ CRACKLIB_C ?= @CRACKLIB_C@
 CRACKLIB_LIBS ?= @CRACKLIB_LIBS@
 LIBIDN_LIBS ?= @LIBIDN_LIBS@
 CONTRIB_ENABLE ?= @CONTRIB_ENABLE@
+CONTRIB_LIBS ?= @CONTRIB_LIBS@
 PERL_ENABLE ?= @PERL_ENABLE@
 PERL_CFLAGS ?= @PERL_CFLAGS@
 PERL_LIBS ?= @PERL_LIBS@