attempt to make work the gethostname function
authorYang Tse <yangsita@gmail.com>
Mon, 22 Sep 2008 00:44:10 +0000 (00:44 +0000)
committerYang Tse <yangsita@gmail.com>
Mon, 22 Sep 2008 00:44:10 +0000 (00:44 +0000)
check for winsock build target configurations

ares/m4/cares-functions.m4
m4/curl-functions.m4

index 8f3fa72..8522cb7 100644 (file)
@@ -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 <windows.h>
+#  ifdef HAVE_WINSOCK2_H
+#    include <winsock2.h>
+#  else
+#    ifdef HAVE_WINSOCK_H
+#      include <winsock.h>
+#    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))
index bb8eef5..09af726 100644 (file)
@@ -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 <windows.h>
+#  ifdef HAVE_WINSOCK2_H
+#    include <winsock2.h>
+#  else
+#    ifdef HAVE_WINSOCK_H
+#      include <winsock.h>
+#    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))