aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2008-05-18 20:13:13 +0000
committerYang Tse <yangsita@gmail.com>2008-05-18 20:13:13 +0000
commit560a82aeaf389f66e497996b4cdf76b501752fd9 (patch)
treed8ed4fc651f4c4253e0dec7dd10d6390d7b19d87
parent7358db5c270c1109c5037db63145a83199ecf56b (diff)
on winsock systems linking is done using library 'ws2_32' when
winsock2.h is available, and library 'winsock' is used when only winsock.h is available.
-rw-r--r--ares/configure.ac52
-rw-r--r--configure.ac60
2 files changed, 80 insertions, 32 deletions
diff --git a/ares/configure.ac b/ares/configure.ac
index 462e3cd1a..5689a9e55 100644
--- a/ares/configure.ac
+++ b/ares/configure.ac
@@ -226,20 +226,44 @@ fi
if test "$HAVE_GETHOSTBYNAME" != "1"
then
- dnl This is for Msys/Mingw
- AC_MSG_CHECKING([for gethostbyname in ws2_32])
- my_ac_save_LIBS=$LIBS
- LIBS="-lws2_32 $LIBS"
- AC_TRY_LINK([#include <winsock2.h>],
- [gethostbyname("www.dummysite.com");],
- [ dnl worked!
- ws2="yes"
- AC_MSG_RESULT([yes])
- HAVE_GETHOSTBYNAME="1"],
- [ dnl failed, restore LIBS
- LIBS=$my_ac_save_LIBS
- AC_MSG_RESULT(no)]
- )
+ dnl This is for winsock systems
+ if test "$ac_cv_header_windows_h" = "yes"; then
+ if test "$ac_cv_header_winsock_h" = "yes"; then
+ winsock_LIB="-lwinsock"
+ fi
+ if test "$ac_cv_header_winsock2_h" = "yes"; then
+ winsock_LIB="-lws2_32"
+ fi
+ if test ! -z "$winsock_LIB"; then
+ my_ac_save_LIBS=$LIBS
+ LIBS="$winsock_LIB $LIBS"
+ AC_MSG_CHECKING([for gethostbyname in $winsock_LIB])
+ AC_TRY_LINK([
+#ifdef HAVE_WINDOWS_H
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
+#include <windows.h>
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+#endif
+#endif
+ ],[
+ gethostbyname("www.dummysite.com");
+ ],[
+ AC_MSG_RESULT([yes])
+ HAVE_GETHOSTBYNAME="1"
+ ],[
+ AC_MSG_RESULT([no])
+ winsock_LIB=""
+ LIBS=$my_ac_save_LIBS
+ ])
+ fi
+ fi
fi
if test "$HAVE_GETHOSTBYNAME" != "1"
diff --git a/configure.ac b/configure.ac
index 63bf9bb04..80d91fb6b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -503,20 +503,44 @@ fi
if test "$HAVE_GETHOSTBYNAME" != "1"
then
- dnl This is for Msys/Mingw
- AC_MSG_CHECKING([for gethostbyname in ws2_32])
- my_ac_save_LIBS=$LIBS
- LIBS="-lws2_32 $LIBS"
- AC_TRY_LINK([#include <winsock2.h>],
- [gethostbyname("www.dummysite.com");],
- [ dnl worked!
- ws2="yes"
- AC_MSG_RESULT([yes])
- HAVE_GETHOSTBYNAME="1"],
- [ dnl failed, restore LIBS
- LIBS=$my_ac_save_LIBS
- AC_MSG_RESULT(no)]
- )
+ dnl This is for winsock systems
+ if test "$ac_cv_header_windows_h" = "yes"; then
+ if test "$ac_cv_header_winsock_h" = "yes"; then
+ winsock_LIB="-lwinsock"
+ fi
+ if test "$ac_cv_header_winsock2_h" = "yes"; then
+ winsock_LIB="-lws2_32"
+ fi
+ if test ! -z "$winsock_LIB"; then
+ my_ac_save_LIBS=$LIBS
+ LIBS="$winsock_LIB $LIBS"
+ AC_MSG_CHECKING([for gethostbyname in $winsock_LIB])
+ AC_TRY_LINK([
+#ifdef HAVE_WINDOWS_H
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
+#include <windows.h>
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+#endif
+#endif
+ ],[
+ gethostbyname("www.dummysite.com");
+ ],[
+ AC_MSG_RESULT([yes])
+ HAVE_GETHOSTBYNAME="1"
+ ],[
+ AC_MSG_RESULT([no])
+ winsock_LIB=""
+ LIBS=$my_ac_save_LIBS
+ ])
+ fi
+ fi
fi
if test "$HAVE_GETHOSTBYNAME" != "1"
@@ -2039,7 +2063,7 @@ fi
dnl For some reason, the check above doesn't properly detect select() with
dnl Msys/Mingw
if test "$ac_cv_func_select" = "no"; then
- AC_MSG_CHECKING([for select in ws2_32])
+ AC_MSG_CHECKING([for select in $winsock_LIB])
AC_TRY_LINK([
#undef inline
#ifdef HAVE_WINDOWS_H
@@ -2426,15 +2450,15 @@ AC_HELP_STRING([--disable-hidden-symbols],[Leave all symbols with default visibi
)
dnl ************************************************************
-if test "x$ws2" = "xyes"; then
+if test ! -z "$winsock_LIB"; then
dnl If ws2_32 is wanted, make sure it is the _last_ lib in LIBS (makes
dnl things work when built with c-ares). But we can't just move it last
dnl since then other stuff (SSL) won't build. So we simply append it to the
dnl end.
- LIBS="$LIBS -lws2_32"
- TEST_SERVER_LIBS="$TEST_SERVER_LIBS -lws2_32"
+ LIBS="$LIBS $winsock_LIB"
+ TEST_SERVER_LIBS="$TEST_SERVER_LIBS $winsock_LIB"
fi