Commit 3daeff27 authored by malosek's avatar malosek

mingw port

parent de2e439a
...@@ -54,14 +54,16 @@ case "${host_os}" in ...@@ -54,14 +54,16 @@ case "${host_os}" in
's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" "/' 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" "/'
mv libtool-2 libtool mv libtool-2 libtool
chmod 755 libtool chmod 755 libtool
AC_CHECK_LIB(uuid, main, , [AC_MSG_ERROR([Could not link with libuuid, install develop version.])]) AC_CHECK_LIB(uuid, main, ,
[AC_MSG_ERROR([Could not link with libuuid, install develop version.])])
;; ;;
*solaris*) *solaris*)
AC_DEFINE(ZMQ_HAVE_SOLARIS, 1, [Have Solaris OS]) AC_DEFINE(ZMQ_HAVE_SOLARIS, 1, [Have Solaris OS])
AC_CHECK_LIB(socket, main) AC_CHECK_LIB(socket, main)
AC_CHECK_LIB(nsl, main) AC_CHECK_LIB(nsl, main)
AC_CHECK_LIB(rt, main) AC_CHECK_LIB(rt, main)
AC_CHECK_LIB(uuid, main) AC_CHECK_LIB(uuid, main, ,
[AC_MSG_ERROR([Could not link with libuuid, install develop version.])])
CPPFLAGS="-D_REENTRANT -D_PTHREADS $CPPFLAGS" CPPFLAGS="-D_REENTRANT -D_PTHREADS $CPPFLAGS"
AC_MSG_CHECKING([wheter atomic operations can be used]) AC_MSG_CHECKING([wheter atomic operations can be used])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM( AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
...@@ -118,12 +120,13 @@ case "${host_os}" in ...@@ -118,12 +120,13 @@ case "${host_os}" in
chmod 755 libtool chmod 755 libtool
;; ;;
*mingw32*) *mingw32*)
pedantic="no"
AC_DEFINE(ZMQ_HAVE_WINDOWS, 1, [Have Windows OS]) AC_DEFINE(ZMQ_HAVE_WINDOWS, 1, [Have Windows OS])
AC_DEFINE(ZMQ_HAVE_MINGW32, 1, [Have MinGW32]) AC_DEFINE(ZMQ_HAVE_MINGW32, 1, [Have MinGW32])
AC_CHECK_HEADERS(windows.h) AC_CHECK_HEADERS(windows.h)
LIBS="-lwsock32 -lws2_32 -no-undefined" AC_CHECK_LIB(Rpcrt4, main, ,
CFLAGS="-std=c99" [AC_MSG_ERROR([Could not link with Rpcrt4.dll.])])
LIBS="${LIBS} -lwsock32 -lws2_32"
CFLAGS="${CFLAGS} -std=c99"
;; ;;
*) *)
AC_MSG_ERROR([Not supported os: $host.]) AC_MSG_ERROR([Not supported os: $host.])
......
...@@ -28,8 +28,8 @@ ...@@ -28,8 +28,8 @@
namespace zmq namespace zmq
{ {
#ifdef _MSC_VER #ifdef ZMQ_HAVE_WINDOWS
#if (_MSC_VER <= 1400) #if defined _MSC_VER &&_MSC_VER <= 1400
typedef UINT_PTR fd_t; typedef UINT_PTR fd_t;
enum {retired_fd = (fd_t)(~0)} enum {retired_fd = (fd_t)(~0)}
#else #else
......
...@@ -30,6 +30,9 @@ ...@@ -30,6 +30,9 @@
/* Define to 1 if you have the `pthread' library (-lpthread). */ /* Define to 1 if you have the `pthread' library (-lpthread). */
#undef HAVE_LIBPTHREAD #undef HAVE_LIBPTHREAD
/* Define to 1 if you have the `Rpcrt4' library (-lRpcrt4). */
#undef HAVE_LIBRPCRT4
/* Define to 1 if you have the `rt' library (-lrt). */ /* Define to 1 if you have the `rt' library (-lrt). */
#undef HAVE_LIBRT #undef HAVE_LIBRT
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
#include <uuid.h> #include <uuid.h>
#elif defined ZMQ_HAVE_LINUX || defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_OSX #elif defined ZMQ_HAVE_LINUX || defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_OSX
#include <uuid/uuid.h> #include <uuid/uuid.h>
#elif defined ZMQ_HAVE_WINDOWS
#include <Rpc.h>
#endif #endif
namespace zmq namespace zmq
...@@ -53,7 +55,10 @@ namespace zmq ...@@ -53,7 +55,10 @@ namespace zmq
enum { uuid_string_len = 36 }; enum { uuid_string_len = 36 };
#if defined ZMQ_HAVE_WINDOWS #if defined ZMQ_HAVE_WINDOWS
::UUID uuid; #ifdef ZMQ_HAVE_MINGW32
typedef unsigned char* RPC_CSTR;
#endif
::UUID uuid;
RPC_CSTR uuid_str; RPC_CSTR uuid_str;
#elif defined ZMQ_HAVE_FREEBSD #elif defined ZMQ_HAVE_FREEBSD
::uuid_t uuid; ::uuid_t uuid;
......
...@@ -39,6 +39,12 @@ ...@@ -39,6 +39,12 @@
#define NOSOUND #define NOSOUND
#endif #endif
#ifdef ZMQ_HAVE_MINGW32
#ifndef WINVER
#define WINVER 0x0501
#endif
#endif
#include <windows.h> #include <windows.h>
// Enable winsock (not included when WIN32_LEAN_AND_MEAN is defined). // Enable winsock (not included when WIN32_LEAN_AND_MEAN is defined).
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment