From 54e49d10d2d47fae72472e27d97891b1de5451ae Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Mon, 22 Sep 2008 00:44:10 +0000 Subject: attempt to make work the gethostname function check for winsock build target configurations --- ares/m4/cares-functions.m4 | 41 +++++++++++++++++++++++++++++++++++++++-- m4/curl-functions.m4 | 41 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 78 insertions(+), 4 deletions(-) diff --git a/ares/m4/cares-functions.m4 b/ares/m4/cares-functions.m4 index 8f3fa72ef..8522cb7b4 100644 --- a/ares/m4/cares-functions.m4 +++ b/ares/m4/cares-functions.m4 @@ -16,7 +16,7 @@ #*************************************************************************** # File version for 'aclocal' use. Keep it a single number. -# serial 5 +# serial 7 dnl CARES_INCLUDES_NETDB @@ -106,6 +106,34 @@ cares_includes_unistd="\ ]) +dnl CARES_INCLUDES_WINSOCK2 +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when winsock(2).h is to be included. + +AC_DEFUN([CARES_INCLUDES_WINSOCK2], [ +cares_includes_winsock2="\ +/* includes start */ +#ifdef HAVE_WINDOWS_H +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include +# ifdef HAVE_WINSOCK2_H +# include +# else +# ifdef HAVE_WINSOCK_H +# include +# endif +# endif +#endif +/* includes end */" + CURL_CHECK_HEADER_WINDOWS + CURL_CHECK_HEADER_WINSOCK + CURL_CHECK_HEADER_WINSOCK2 +]) + + dnl CARES_CHECK_FUNC_GETHOSTNAME dnl ------------------------------------------------- dnl Verify if gethostname is available, prototyped, and @@ -115,6 +143,7 @@ dnl shell variable cares_disallow_gethostname, then dnl HAVE_GETHOSTNAME will be defined. AC_DEFUN([CARES_CHECK_FUNC_GETHOSTNAME], [ + AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl AC_REQUIRE([CARES_INCLUDES_UNISTD])dnl # tst_links_gethostname="unknown" @@ -124,7 +153,13 @@ AC_DEFUN([CARES_CHECK_FUNC_GETHOSTNAME], [ # AC_MSG_CHECKING([if gethostname can be linked]) AC_LINK_IFELSE([ - AC_LANG_FUNC_LINK_TRY([gethostname]) + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_unistd + ]],[[ + if(0 != gethostname(0, 0)) + return 1; + ]]) ],[ AC_MSG_RESULT([yes]) tst_links_gethostname="yes" @@ -136,6 +171,7 @@ AC_DEFUN([CARES_CHECK_FUNC_GETHOSTNAME], [ if test "$tst_links_gethostname" = "yes"; then AC_MSG_CHECKING([if gethostname is prototyped]) AC_EGREP_CPP([gethostname],[ + $cares_includes_winsock2 $cares_includes_unistd ],[ AC_MSG_RESULT([yes]) @@ -150,6 +186,7 @@ AC_DEFUN([CARES_CHECK_FUNC_GETHOSTNAME], [ AC_MSG_CHECKING([if gethostname is compilable]) AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ + $cares_includes_winsock2 $cares_includes_unistd ]],[[ if(0 != gethostname(0, 0)) diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4 index bb8eef542..09af726b4 100644 --- a/m4/curl-functions.m4 +++ b/m4/curl-functions.m4 @@ -22,7 +22,7 @@ #*************************************************************************** # File version for 'aclocal' use. Keep it a single number. -# serial 13 +# serial 20 dnl CURL_INCLUDES_NETDB @@ -204,6 +204,34 @@ curl_includes_unistd="\ ]) +dnl CURL_INCLUDES_WINSOCK2 +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when winsock(2).h is to be included. + +AC_DEFUN([CURL_INCLUDES_WINSOCK2], [ +curl_includes_winsock2="\ +/* includes start */ +#ifdef HAVE_WINDOWS_H +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include +# ifdef HAVE_WINSOCK2_H +# include +# else +# ifdef HAVE_WINSOCK_H +# include +# endif +# endif +#endif +/* includes end */" + CURL_CHECK_HEADER_WINDOWS + CURL_CHECK_HEADER_WINSOCK + CURL_CHECK_HEADER_WINSOCK2 +]) + + dnl CURL_CHECK_FUNC_ALARM dnl ------------------------------------------------- dnl Verify if alarm is available, prototyped, and @@ -752,6 +780,7 @@ dnl shell variable curl_disallow_gethostname, then dnl HAVE_GETHOSTNAME will be defined. AC_DEFUN([CURL_CHECK_FUNC_GETHOSTNAME], [ + AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl # tst_links_gethostname="unknown" @@ -761,7 +790,13 @@ AC_DEFUN([CURL_CHECK_FUNC_GETHOSTNAME], [ # AC_MSG_CHECKING([if gethostname can be linked]) AC_LINK_IFELSE([ - AC_LANG_FUNC_LINK_TRY([gethostname]) + AC_LANG_PROGRAM([[ + $curl_includes_winsock2 + $curl_includes_unistd + ]],[[ + if(0 != gethostname(0, 0)) + return 1; + ]]) ],[ AC_MSG_RESULT([yes]) tst_links_gethostname="yes" @@ -773,6 +808,7 @@ AC_DEFUN([CURL_CHECK_FUNC_GETHOSTNAME], [ if test "$tst_links_gethostname" = "yes"; then AC_MSG_CHECKING([if gethostname is prototyped]) AC_EGREP_CPP([gethostname],[ + $curl_includes_winsock2 $curl_includes_unistd ],[ AC_MSG_RESULT([yes]) @@ -787,6 +823,7 @@ AC_DEFUN([CURL_CHECK_FUNC_GETHOSTNAME], [ AC_MSG_CHECKING([if gethostname is compilable]) AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ + $curl_includes_winsock2 $curl_includes_unistd ]],[[ if(0 != gethostname(0, 0)) -- cgit v1.2.3