diff options
author | Yang Tse <yangsita@gmail.com> | 2008-05-18 20:13:13 +0000 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2008-05-18 20:13:13 +0000 |
commit | 560a82aeaf389f66e497996b4cdf76b501752fd9 (patch) | |
tree | d8ed4fc651f4c4253e0dec7dd10d6390d7b19d87 | |
parent | 7358db5c270c1109c5037db63145a83199ecf56b (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.ac | 52 | ||||
-rw-r--r-- | configure.ac | 60 |
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 |