Prevent definition of HAVE_WINxxx_H symbols and avoid inclusion of Windows headers...
authorYang Tse <yangsita@gmail.com>
Wed, 5 Jul 2006 23:10:37 +0000 (23:10 +0000)
committerYang Tse <yangsita@gmail.com>
Wed, 5 Jul 2006 23:10:37 +0000 (23:10 +0000)
acinclude.m4
ares/acinclude.m4
ares/ares.h
ares/nameser.h
ares/setup.h
docs/examples/synctime.c
include/curl/multi.h
lib/setup.h
src/setup.h

index adfce1a9155671f8f167e9da448333bed7d75b6d..e13d7cfe4f99aa5ee49dfe1070204f54d784a264 100644 (file)
 # $Id$
 ###########################################################################
 
+
+dnl CURL_CHECK_HEADERS_ONCE
+dnl -------------------------------------------------
+dnl Check for headers if check not already done.
+
+AC_DEFUN(CURL_CHECK_HEADERS_ONCE, [
+  for i in $1; do
+    eval prev_check_res=\$ac_cv_header_$i
+    case "$prev_check_res" in
+      yes | no)
+        ;;
+      *)
+        AC_CHECK_HEADERS($i)
+        ;;
+    esac
+
+  done
+])
+
+
 dnl CURL_CHECK_HEADER_WINDOWS
 dnl -------------------------------------------------
 dnl Check for compilable and valid windows.h header 
@@ -35,7 +55,11 @@ AC_DEFUN([CURL_CHECK_HEADER_WINDOWS], [
 #endif
 #include <windows.h>
       ],[
+#ifdef __CYGWIN__
+        HAVE_WINDOWS_H shall not be defined.
+#else
         int dummy=2*WINVER;
+#endif
       ])
     ],[
       ac_cv_header_windows_h="yes"
@@ -68,7 +92,11 @@ AC_DEFUN([CURL_CHECK_HEADER_WINSOCK], [
 #include <windows.h>
 #include <winsock.h>
       ],[
+#ifdef __CYGWIN__
+        HAVE_WINSOCK_H shall not be defined.
+#else
         int dummy=WSACleanup();
+#endif
       ])
     ],[
       ac_cv_header_winsock_h="yes"
@@ -99,7 +127,11 @@ AC_DEFUN([CURL_CHECK_HEADER_WINSOCK2], [
 #include <windows.h>
 #include <winsock2.h>
       ],[
+#ifdef __CYGWIN__
+        HAVE_WINSOCK2_H shall not be defined.
+#else
         int dummy=2*IPPROTO_ESP;
+#endif
       ])
     ],[
       ac_cv_header_winsock2_h="yes"
@@ -131,7 +163,11 @@ AC_DEFUN([CURL_CHECK_HEADER_WS2TCPIP], [
 #include <winsock2.h>
 #include <ws2tcpip.h>
       ],[
+#ifdef __CYGWIN__
+        HAVE_WS2TCPIP_H shall not be defined.
+#else
         int dummy=2*IP_PKTINFO;
+#endif
       ])
     ],[
       ac_cv_header_ws2tcpip_h="yes"
@@ -566,16 +602,32 @@ dnl and RECV_TYPE_ARG4, defining the type of the function
 dnl return value in RECV_TYPE_RETV.
 
 AC_DEFUN([CURL_CHECK_FUNC_RECV], [
+  AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
+  AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl
   AC_CHECK_HEADERS(sys/types.h sys/socket.h)
   #
   AC_MSG_CHECKING([for recv])
   AC_TRY_LINK([
-#undef inline
+#undef inline 
+#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
+#else
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
+#endif
 #endif
     ],[
       recv(0, 0, 0, 0);
@@ -599,11 +651,25 @@ AC_DEFUN([CURL_CHECK_FUNC_RECV], [
                 AC_COMPILE_IFELSE([
                   AC_LANG_PROGRAM([
 #undef inline 
+#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
+#else
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
+#endif
 #endif
                     extern $recv_retv recv($recv_arg1, $recv_arg2, $recv_arg3, $recv_arg4);
                   ],[
@@ -663,16 +729,32 @@ dnl return value in SEND_TYPE_RETV, and also defining the
 dnl type qualifier of second argument in SEND_QUAL_ARG2.
 
 AC_DEFUN([CURL_CHECK_FUNC_SEND], [
+  AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
+  AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl
   AC_CHECK_HEADERS(sys/types.h sys/socket.h)
   #
   AC_MSG_CHECKING([for send])
   AC_TRY_LINK([
-#undef inline
+#undef inline 
+#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
+#else
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
+#endif
 #endif
     ],[
       send(0, 0, 0, 0);
@@ -696,11 +778,25 @@ AC_DEFUN([CURL_CHECK_FUNC_SEND], [
                 AC_COMPILE_IFELSE([
                   AC_LANG_PROGRAM([
 #undef inline 
+#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
+#else
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
+#endif
 #endif
                     extern $send_retv send($send_arg1, $send_arg2, $send_arg3, $send_arg4);
                   ],[
index b86e2a8a5fc41dd98c9e329f1af260adb7b0ebc3..bf3cf04a490b75c516c4973f77e61e03ec829aa1 100644 (file)
@@ -1,5 +1,24 @@
 
 
+dnl CURL_CHECK_HEADERS_ONCE
+dnl -------------------------------------------------
+dnl Check for headers if check not already done.
+
+AC_DEFUN(CURL_CHECK_HEADERS_ONCE, [
+  for i in $1; do
+    eval prev_check_res=\$ac_cv_header_$i
+    case "$prev_check_res" in
+      yes | no)
+        ;;
+      *)
+        AC_CHECK_HEADERS($i)
+        ;;
+    esac
+
+  done
+])
+
+
 dnl CURL_CHECK_HEADER_WINDOWS
 dnl -------------------------------------------------
 dnl Check for compilable and valid windows.h header 
@@ -14,7 +33,11 @@ AC_DEFUN([CURL_CHECK_HEADER_WINDOWS], [
 #endif
 #include <windows.h>
       ],[
+#ifdef __CYGWIN__
+        HAVE_WINDOWS_H shall not be defined.
+#else
         int dummy=2*WINVER;
+#endif
       ])
     ],[
       ac_cv_header_windows_h="yes"
@@ -47,7 +70,11 @@ AC_DEFUN([CURL_CHECK_HEADER_WINSOCK], [
 #include <windows.h>
 #include <winsock.h>
       ],[
+#ifdef __CYGWIN__
+        HAVE_WINSOCK_H shall not be defined.
+#else
         int dummy=WSACleanup();
+#endif
       ])
     ],[
       ac_cv_header_winsock_h="yes"
@@ -78,7 +105,11 @@ AC_DEFUN([CURL_CHECK_HEADER_WINSOCK2], [
 #include <windows.h>
 #include <winsock2.h>
       ],[
+#ifdef __CYGWIN__
+        HAVE_WINSOCK2_H shall not be defined.
+#else
         int dummy=2*IPPROTO_ESP;
+#endif
       ])
     ],[
       ac_cv_header_winsock2_h="yes"
@@ -110,7 +141,11 @@ AC_DEFUN([CURL_CHECK_HEADER_WS2TCPIP], [
 #include <winsock2.h>
 #include <ws2tcpip.h>
       ],[
+#ifdef __CYGWIN__
+        HAVE_WS2TCPIP_H shall not be defined.
+#else
         int dummy=2*IP_PKTINFO;
+#endif
       ])
     ],[
       ac_cv_header_ws2tcpip_h="yes"
@@ -545,16 +580,32 @@ dnl and RECV_TYPE_ARG4, defining the type of the function
 dnl return value in RECV_TYPE_RETV.
 
 AC_DEFUN([CURL_CHECK_FUNC_RECV], [
+  AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
+  AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl
   AC_CHECK_HEADERS(sys/types.h sys/socket.h)
   #
   AC_MSG_CHECKING([for recv])
   AC_TRY_LINK([
-#undef inline
+#undef inline 
+#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
+#else
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
+#endif
 #endif
     ],[
       recv(0, 0, 0, 0);
@@ -578,11 +629,25 @@ AC_DEFUN([CURL_CHECK_FUNC_RECV], [
                 AC_COMPILE_IFELSE([
                   AC_LANG_PROGRAM([
 #undef inline 
+#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
+#else
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
+#endif
 #endif
                     extern $recv_retv recv($recv_arg1, $recv_arg2, $recv_arg3, $recv_arg4);
                   ],[
@@ -642,16 +707,32 @@ dnl return value in SEND_TYPE_RETV, and also defining the
 dnl type qualifier of second argument in SEND_QUAL_ARG2.
 
 AC_DEFUN([CURL_CHECK_FUNC_SEND], [
+  AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
+  AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl
   AC_CHECK_HEADERS(sys/types.h sys/socket.h)
   #
   AC_MSG_CHECKING([for send])
   AC_TRY_LINK([
-#undef inline
+#undef inline 
+#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
+#else
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
+#endif
 #endif
     ],[
       send(0, 0, 0, 0);
@@ -675,11 +756,25 @@ AC_DEFUN([CURL_CHECK_FUNC_SEND], [
                 AC_COMPILE_IFELSE([
                   AC_LANG_PROGRAM([
 #undef inline 
+#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
+#else
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
+#endif
 #endif
                     extern $send_retv send($send_arg1, $send_arg2, $send_arg3, $send_arg4);
                   ],[
index 9414f9b7898367b7b506c01d3da8914ba91af03c..f4d98c87d6456c7f133c5fe581925132bd515c5a 100644 (file)
@@ -31,7 +31,7 @@
   #include <netinet/in.h>
   #include <sys/socket.h>
   #include <tcp.h>
-#elif defined(WIN32)
+#elif defined(WIN32) && !defined(__CYGWIN__)
   #include <winsock2.h>
   #include <windows.h>
 #else
index 7127c26402a40a0bce9bfe7c9b24d6cf320d34f4..1faeb6ff8fb2a78c765147666ff4c017c5df95ed 100644 (file)
@@ -7,7 +7,9 @@
    port build */
 
 #ifndef NETWARE
+#ifndef __CYGWIN__
 #include <windows.h>
+#endif
 #include <process.h> /* for the _getpid() proto */
 #endif  /* !NETWARE */
 #include <sys/types.h>
index 44261411b37581e0a46c85163181ed0f614f9f83..c6ec2618eed105e7975d88ca0bca5492a2dc1974 100644 (file)
  * Include header files for windows builds before redefining anything.
  * Use this preproessor block only to include or exclude windows.h,
  * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
- * to any other further and independant block.
+ * to any other further and independant block.  Under Cygwin things work
+ * just as under linux (e.g. <sys/socket.h>) and the winsock headers should
+ * never be included when __CYGWIN__ is defined.
  */
 
-#ifdef HAVE_WINDOWS_H
+#if defined(HAVE_WINDOWS_H) && !defined(__CYGWIN__)
 #  ifndef WIN32_LEAN_AND_MEAN
 #    define WIN32_LEAN_AND_MEAN
 #  endif
index 9f3bba0e907d7639cfcb736e3cdf72dd597ba2ea..fc629ee3384936be3f6dc35d093eac25b7f749ef 100644 (file)
@@ -59,7 +59,9 @@
 
 #include <stdio.h>
 #include <time.h>
+#ifndef __CYGWIN__
 #include <windows.h>
+#endif
 #include <curl/curl.h>
 
 
index 6ce68269075b28fb96fc853f97cdae02fc6214fe..4fc70640a84c8b1a3adf69379b5fe31fd0d7484f 100644 (file)
@@ -43,8 +43,8 @@
 #define WIN32 1
 #endif
 
-#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__GNUC__) || \
-  defined(__MINGW32__)
+#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__GNUC__) && \
+  !defined(__CYGWIN__) || defined(__MINGW32__)
 #if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H))
 /* The check above prevents the winsock2 inclusion if winsock.h already was
    included, since they can't co-exist without problems */
index cef40288e0f26e77ba30a8267e51472fcf568f4e..57ac87d5b6c4ec9962b520d9d8622fbe9c5aee2b 100644 (file)
@@ -81,7 +81,7 @@
  * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
  * to any other further and independant block.  Under Cygwin things work
  * just as under linux (e.g. <sys/socket.h>) and the winsock headers should
- * never be included.
+ * never be included when __CYGWIN__ is defined.
  */
 
 #if defined(HAVE_WINDOWS_H) && !defined(__CYGWIN__)
index f07b3a7b7921e8fcba77661590d315a6b8d22ea8..d3814fef4cf5153a6f3d32eea23146cfe1dd4213 100644 (file)
@@ -83,7 +83,7 @@
  * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs 
  * to any other further and independant block.  Under Cygwin things work
  * just as under linux (e.g. <sys/socket.h>) and the winsock headers should
- * never be included.
+ * never be included when __CYGWIN__ is defined.
  */
 
 #if defined(HAVE_WINDOWS_H) && !defined(__CYGWIN__)