]> granicus.if.org Git - curl/commitdiff
on winsock systems linking is done using library 'ws2_32' when
authorYang Tse <yangsita@gmail.com>
Sun, 18 May 2008 20:13:13 +0000 (20:13 +0000)
committerYang Tse <yangsita@gmail.com>
Sun, 18 May 2008 20:13:13 +0000 (20:13 +0000)
winsock2.h is available, and library 'winsock' is used when only
winsock.h is available.

ares/configure.ac
configure.ac

index 462e3cd1af83b4f3b346d65609cb4c32d426c636..5689a9e555ecb057a0240f9177b2c0ad6786c8f0 100644 (file)
@@ -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"
index 63bf9bb042539354b9efb92cdf1bddb4d4d841dc..80d91fb6ba34d1c36dba011591f0061e8ee95af7 100644 (file)
@@ -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