From: Derick Rethans Date: Thu, 28 Mar 2002 07:56:35 +0000 (+0000) Subject: - Fix build for BSD: BSD_MAKEFILE and resolver functions. (Patch by Melvyn X-Git-Tag: php-4.2.0RC2~22 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=231b8e147f51290b645dec3e51a1b0d85c6219b3;p=php - Fix build for BSD: BSD_MAKEFILE and resolver functions. (Patch by Melvyn Sopacua ) --- diff --git a/configure.in b/configure.in index c668a820f4..06c48f3f9a 100644 --- a/configure.in +++ b/configure.in @@ -94,7 +94,10 @@ case $host_alias in *darwin*|*rhapsody*) CPPFLAGS="$CPPFLAGS -traditional-cpp";; *bsdi*) - BSD_MAKEFILE=yes;; + if test "GNU" != `${MAKE} --version | sed -n -e "s|^GNU.*|GNU|p"`; then + BSD_MAKEFILE=yes + fi + ;; *beos*) beos_threads=1 LIBS="$LIBS -lbe -lroot";; @@ -315,30 +318,73 @@ AC_CHECK_LIB(m, sin) dnl Only include libbind if inet_aton is not found in dnl libresolv. -AC_CHECK_LIB(resolv, inet_aton, [], [ - AC_CHECK_LIB(bind, inet_aton, [], [ - AC_CHECK_LIB(bind, __inet_aton) +dnl As of bind9, a shared libbind requires libisc. +dnl BSDi 4.4 has inet_aton in libc. +dnl 20020327 Reworked this, to give libc precedence. + +AC_MSG_CHECKING([for native inet_aton]) +AC_TRY_LINK([ +#include +#include +#include ], + [struct in_addr in; inet_aton(0, &in); return (0);], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_INET_ATON,1,[ ]) + ], + [ + AC_MSG_RESULT(no) + AC_CHECK_LIB(resolv, inet_aton, [], [ + AC_CHECK_LIB(bind, inet_aton, [], [ + AC_CHECK_LIB(bind, __inet_aton, [ + AC_CHECK_LIB(bind, inet_aton, [ + LIBS="$LIBS -lisc"],[], -lisc) + ]) + ]) + ]) ]) ]) dnl The res_search may be in libsocket as well, and if it is dnl make sure to check for dn_skipname in libresolv, or if res_search dnl is in neither of these libs, still check for dn_skipname in libresolv -AC_CHECK_LIB(socket, res_search, [ - AC_CHECK_LIB(resolv, dn_skipname) - AC_CHECK_LIB(resolv, __dn_skipname) - LIBS="$LIBS -lsocket" - AC_DEFINE(HAVE_LIBSOCKET,1,[ ]) ], [ - AC_CHECK_LIB(resolv, res_search, [ - LIBS="$LIBS -lresolv" - AC_DEFINE(HAVE_LIBRESOLV,1,[ ]) - ], [ - AC_CHECK_LIB(resolv, dn_skipname) - AC_CHECK_LIB(resolv, __dn_skipname) - ]) -]) - +dnl There are systems (BSDi4.x) with a native res_search. Check these +dnl first, so no linking is necessary. +AC_MSG_CHECKING([for native res_search]) +AC_TRY_LINK([ +#include +#include +#include +#include ], + [ +const char host[7]="php.net"; +u_char ans[1024]; +int r; +res_init(); +/* Capture result in r but return 0, since a working nameserver is + * not a requirement for compilation. + */ +r = res_search( host, C_IN, T_MX, (u_char *)&ans, sizeof(ans)); +return 0; +res_close(); + ], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_RES_SEARCH,1,[ ])], + [AC_MSG_RESULT(no) + AC_CHECK_LIB(socket, res_search, [ + AC_CHECK_LIB(resolv, dn_skipname) + AC_CHECK_LIB(resolv, __dn_skipname) + LIBS="$LIBS -lsocket" + AC_DEFINE(HAVE_LIBSOCKET,1,[ ]) ], [ + AC_CHECK_LIB(resolv, res_search, [ + LIBS="$LIBS -lresolv" + AC_DEFINE(HAVE_LIBRESOLV,1,[ ]) + ], [ + AC_CHECK_LIB(resolv, dn_skipname) + AC_CHECK_LIB(resolv, __dn_skipname) + ]) +]) +]) dnl Then headers. dnl -------------------------------------------------------------------------