Better detection of the resolver library

Initial
Stephane Bortzmeyer 20 years ago
parent 91f44dc0aa
commit 17609d6fe5

@ -187,7 +187,7 @@ sysconfdir = @sysconfdir@
target_alias = @target_alias@ target_alias = @target_alias@
@DNSBUILD_TRUE@pkglib_LTLIBRARIES = dns.la @DNSBUILD_TRUE@pkglib_LTLIBRARIES = dns.la
@DNSBUILD_TRUE@dns_la_SOURCES = dns.c @DNSBUILD_TRUE@dns_la_SOURCES = dns.c
@DNSBUILD_TRUE@dns_la_LDFLAGS = -module -lresolv @DNSBUILD_TRUE@dns_la_LDFLAGS = -module
all: config.h all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-am $(MAKE) $(AM_MAKEFLAGS) all-am

@ -6,18 +6,21 @@
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H #undef HAVE_INTTYPES_H
/* Define to 1 if you have the `bind' library (-lbind). */
#undef HAVE_LIBBIND
/* Define to 1 if you have the `popt' library (-lpopt). */ /* Define to 1 if you have the `popt' library (-lpopt). */
#undef HAVE_LIBPOPT #undef HAVE_LIBPOPT
/* Define to 1 if you have the `resolv' library (-lresolv). */
#undef HAVE_LIBRESOLV
/* Define to 1 if you have the <memory.h> header file. */ /* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H #undef HAVE_MEMORY_H
/* Define to 1 if you have the `poptGetContext' function. */ /* Define to 1 if you have the `poptGetContext' function. */
#undef HAVE_POPTGETCONTEXT #undef HAVE_POPTGETCONTEXT
/* Define to 1 if you have the `res_init' function. */
#undef HAVE_RES_INIT
/* Define to 1 if you have the <stdint.h> header file. */ /* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H #undef HAVE_STDINT_H

@ -18986,13 +18986,9 @@ fi
done done
if test "$DNS_BUILD" != "0"; then if test "$DNS_BUILD" != "0"; then
echo "$as_me:$LINENO: checking for res_mkquery" >&5
for ac_func in res_init echo $ECHO_N "checking for res_mkquery... $ECHO_C" >&6
do if test "${ac_cv_func_res_mkquery+set}" = set; then
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6
else else
cat >conftest.$ac_ext <<_ACEOF cat >conftest.$ac_ext <<_ACEOF
@ -19001,12 +18997,12 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */ /* end confdefs.h. */
/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. /* Define res_mkquery to an innocuous variant, in case <limits.h> declares res_mkquery.
For example, HP-UX 11i <limits.h> declares gettimeofday. */ For example, HP-UX 11i <limits.h> declares gettimeofday. */
#define $ac_func innocuous_$ac_func #define res_mkquery innocuous_res_mkquery
/* System header to define __stub macros and hopefully few prototypes, /* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below. which can conflict with char res_mkquery (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */ <limits.h> exists even on freestanding compilers. */
@ -19016,7 +19012,7 @@ cat >>conftest.$ac_ext <<_ACEOF
# include <assert.h> # include <assert.h>
#endif #endif
#undef $ac_func #undef res_mkquery
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus #ifdef __cplusplus
@ -19025,14 +19021,14 @@ extern "C"
#endif #endif
/* We use char because int might match the return type of a gcc2 /* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */ builtin and then its argument prototype would still apply. */
char $ac_func (); char res_mkquery ();
/* The GNU C library defines this for functions which it implements /* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */ something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func) #if defined (__stub_res_mkquery) || defined (__stub___res_mkquery)
choke me choke me
#else #else
char (*f) () = $ac_func; char (*f) () = res_mkquery;
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
} }
@ -19041,7 +19037,7 @@ char (*f) () = $ac_func;
int int
main () main ()
{ {
return f != $ac_func; return f != res_mkquery;
; ;
return 0; return 0;
} }
@ -19067,38 +19063,119 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$? ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then (exit $ac_status); }; }; then
eval "$as_ac_var=yes" ac_cv_func_res_mkquery=yes
else else
echo "$as_me: failed program was:" >&5 echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5 sed 's/^/| /' conftest.$ac_ext >&5
eval "$as_ac_var=no" ac_cv_func_res_mkquery=no
fi fi
rm -f conftest.err conftest.$ac_objext \ rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext conftest$ac_exeext conftest.$ac_ext
fi fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "$as_me:$LINENO: result: $ac_cv_func_res_mkquery" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 echo "${ECHO_T}$ac_cv_func_res_mkquery" >&6
if test `eval echo '${'$as_ac_var'}'` = yes; then if test $ac_cv_func_res_mkquery = yes; then
:
else
echo "$as_me:$LINENO: checking for res_mkquery in -lbind" >&5
echo $ECHO_N "checking for res_mkquery in -lbind... $ECHO_C" >&6
if test "${ac_cv_lib_bind_res_mkquery+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbind $LIBS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char res_mkquery ();
int
main ()
{
res_mkquery ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_bind_res_mkquery=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_bind_res_mkquery=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_bind_res_mkquery" >&5
echo "${ECHO_T}$ac_cv_lib_bind_res_mkquery" >&6
if test $ac_cv_lib_bind_res_mkquery = yes; then
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 #define HAVE_LIBBIND 1
_ACEOF _ACEOF
LIBS="-lbind $LIBS"
else else
echo "$as_me:$LINENO: checking $ac_func again by including <resolv.h>" >&5
echo $ECHO_N "checking $ac_func again by including <resolv.h>... $ECHO_C" >&6 echo "$as_me:$LINENO: checking for res_mkquery in -lresolv" >&5
LIBS=-lresolv cat >conftest.$ac_ext <<_ACEOF echo $ECHO_N "checking for res_mkquery in -lresolv... $ECHO_C" >&6
if test "${ac_cv_lib_resolv_res_mkquery+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lresolv $LIBS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */ /* confdefs.h. */
_ACEOF _ACEOF
cat confdefs.h >>conftest.$ac_ext cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */ /* end confdefs.h. */
#include <resolv.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char res_mkquery ();
int int
main () main ()
{ {
$ac_func(); res_mkquery ();
; ;
return 0; return 0;
} }
@ -19124,20 +19201,35 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$? ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then (exit $ac_status); }; }; then
echo "$as_me:$LINENO: result: yes" >&5 ac_cv_lib_resolv_res_mkquery=yes
echo "${ECHO_T}yes" >&6
else else
echo "$as_me: failed program was:" >&5 echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5 sed 's/^/| /' conftest.$ac_ext >&5
{ echo "$as_me:$LINENO: WARNING: No DNS resolver development environment found, not building this plugin" >&5 ac_cv_lib_resolv_res_mkquery=no
echo "$as_me: WARNING: No DNS resolver development environment found, not building this plugin" >&2;} && DNS_BUILD=0
fi fi
rm -f conftest.err conftest.$ac_objext \ rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_res_mkquery" >&5
echo "${ECHO_T}$ac_cv_lib_resolv_res_mkquery" >&6
if test $ac_cv_lib_resolv_res_mkquery = yes; then
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBRESOLV 1
_ACEOF
LIBS="-lresolv $LIBS"
else
{ { echo "$as_me:$LINENO: error: No DNS resolver development environment found, not building this plugin" >&5
echo "$as_me: error: No DNS resolver development environment found, not building this plugin" >&2;}
{ (exit 1); exit 1; }; } && DNS_BUILD=0
fi
fi
fi fi
done
fi fi

@ -10,19 +10,10 @@ DNS_BUILD=1
AC_CHECK_FUNCS(poptGetContext,, AC_CHECK_FUNCS(poptGetContext,,
[AC_CHECK_LIB(popt,poptGetContext,,[AC_MSG_WARN([No popt development environment found, not building this plugin]) && DNS_BUILD=0])]) [AC_CHECK_LIB(popt,poptGetContext,,[AC_MSG_WARN([No popt development environment found, not building this plugin]) && DNS_BUILD=0])])
if test "$DNS_BUILD" != "0"; then if test "$DNS_BUILD" != "0"; then
AC_CHECK_FUNCS(res_init, , AC_CHECK_FUNC(res_mkquery, ,
dnl Some Unices has res_init but has it renamed in libc as something else so we [AC_CHECK_LIB(bind, res_mkquery, ,
dnl must include <resolv.h> to get the redefinition. (Stolen from rsync) [AC_CHECK_LIB(resolv, res_mkquery, ,
dnl autoconf AC_CHECK_FUNCS does not allow headers to be easily included :-( [AC_MSG_ERROR([No DNS resolver development environment found, not building this plugin]) && DNS_BUILD=0])])])
[AC_MSG_CHECKING([$ac_func again by including <resolv.h>])
AC_TRY_LINK([#include <resolv.h>
],
[$ac_func();],
[AC_MSG_RESULT([yes])],
[AC_MSG_CHECKING([$ac_func again by using -lresolv])
LIBS=-lresolv AC_CHECK_FUNCS($ac_func,,
[AC_MSG_WARN([No DNS resolver development environment found, not building this plugin]) && DNS_BUILD=0])]
)])
fi fi
AM_CONDITIONAL(DNSBUILD, test "$DNS_BUILD" = 1) AM_CONDITIONAL(DNSBUILD, test "$DNS_BUILD" = 1)

Loading…
Cancel
Save