mirror of
https://github.com/zeromq/libzmq.git
synced 2025-01-21 02:00:36 +01:00
0MQ compilable on winXP mingw with --with-pgm2 option
This commit is contained in:
parent
ac83175ef0
commit
7afc61ae7c
12
configure.in
12
configure.in
@ -43,6 +43,9 @@ pedantic="yes"
|
|||||||
#By default compiling with -Werror except OSX.
|
#By default compiling with -Werror except OSX.
|
||||||
werror="yes"
|
werror="yes"
|
||||||
|
|
||||||
|
#Whether we are on mingw or not.
|
||||||
|
on_mingw32="no"
|
||||||
|
|
||||||
# Host speciffic checks
|
# Host speciffic checks
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
|
|
||||||
@ -125,8 +128,11 @@ case "${host_os}" in
|
|||||||
AC_CHECK_HEADERS(windows.h)
|
AC_CHECK_HEADERS(windows.h)
|
||||||
AC_CHECK_LIB(Rpcrt4, main, ,
|
AC_CHECK_LIB(Rpcrt4, main, ,
|
||||||
[AC_MSG_ERROR([Could not link with Rpcrt4.dll.])])
|
[AC_MSG_ERROR([Could not link with Rpcrt4.dll.])])
|
||||||
|
AC_CHECK_LIB(Iphlpapi, main, ,
|
||||||
|
[AC_MSG_ERROR([Could not link with Iphlpapi.dll.])])
|
||||||
LIBS="${LIBS} -lwsock32 -lws2_32"
|
LIBS="${LIBS} -lwsock32 -lws2_32"
|
||||||
CFLAGS="${CFLAGS} -std=c99"
|
CFLAGS="${CFLAGS} -std=c99"
|
||||||
|
on_mingw32="yes"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
AC_MSG_ERROR([Not supported os: $host.])
|
AC_MSG_ERROR([Not supported os: $host.])
|
||||||
@ -393,8 +399,6 @@ if test "x$with_pgm1_ext" != "xno"; then
|
|||||||
*linux*)
|
*linux*)
|
||||||
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Wno-variadic-macros -Wno-long-long "
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Wno-variadic-macros -Wno-long-long "
|
||||||
;;
|
;;
|
||||||
*solaris*)
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
AC_MSG_ERROR([PGM extesion is not supported on this platform $host.])
|
AC_MSG_ERROR([PGM extesion is not supported on this platform $host.])
|
||||||
;;
|
;;
|
||||||
@ -487,7 +491,8 @@ if test "x$with_pgm2_ext" != "xno"; then
|
|||||||
*linux*)
|
*linux*)
|
||||||
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Wno-variadic-macros -Wno-long-long "
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Wno-variadic-macros -Wno-long-long "
|
||||||
;;
|
;;
|
||||||
*solaris*)
|
*mingw32*)
|
||||||
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Wno-variadic-macros -Wno-long-long "
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
AC_MSG_ERROR([PGM extesion is not supported on this platform $host.])
|
AC_MSG_ERROR([PGM extesion is not supported on this platform $host.])
|
||||||
@ -570,6 +575,7 @@ AM_CONDITIONAL(BUILD_PGM2, test "x$pgm2_ext" = "xyes")
|
|||||||
AM_CONDITIONAL(BUILD_NO_PGM, test "x$pgm2_ext" = "xno" -a "x$pgm1_ext" = "xno")
|
AM_CONDITIONAL(BUILD_NO_PGM, test "x$pgm2_ext" = "xno" -a "x$pgm1_ext" = "xno")
|
||||||
AM_CONDITIONAL(BUILD_FORWARDER, test "x$forwarder" = "xyes")
|
AM_CONDITIONAL(BUILD_FORWARDER, test "x$forwarder" = "xyes")
|
||||||
AM_CONDITIONAL(BUILD_PERF, test "x$perf" = "xyes")
|
AM_CONDITIONAL(BUILD_PERF, test "x$perf" = "xyes")
|
||||||
|
AM_CONDITIONAL(ON_MINGW, test "x$on_mingw32" = "xyes")
|
||||||
|
|
||||||
AC_SUBST(stdint)
|
AC_SUBST(stdint)
|
||||||
AC_SUBST(inttypes)
|
AC_SUBST(inttypes)
|
||||||
|
@ -217,6 +217,39 @@ endif
|
|||||||
|
|
||||||
if BUILD_PGM2
|
if BUILD_PGM2
|
||||||
libzmq_la_CXXFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ -Wall @LIBZMQ_EXTRA_CXXFLAGS@
|
libzmq_la_CXXFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ -Wall @LIBZMQ_EXTRA_CXXFLAGS@
|
||||||
|
|
||||||
|
if ON_MINGW
|
||||||
|
libpgm_diff_flags = \
|
||||||
|
-D_WIN32_WINNT=0x0501 \
|
||||||
|
-DCONFIG_HAVE_IFR_NETMASK \
|
||||||
|
-DCONFIG_BIND_INADDR_ANY \
|
||||||
|
-DCONFIG_GALOIS_MUL_LUT \
|
||||||
|
-DGETTEXT_PACKAGE='"pgm"' \
|
||||||
|
-DG_LOG_DOMAIN='"Pgm"'
|
||||||
|
|
||||||
|
else
|
||||||
|
libpgm_diff_flags = \
|
||||||
|
-D__need_IOV_MAX \
|
||||||
|
-DCONFIG_HAVE_PSELECT \
|
||||||
|
-DCONFIG_HAVE_POLL \
|
||||||
|
-DCONFIG_HAVE_PPOLL \
|
||||||
|
-DCONFIG_HAVE_EPOLL \
|
||||||
|
-DCONFIG_HAVE_CLOCK_GETTIME \
|
||||||
|
-DCONFIG_HAVE_CLOCK_NANOSLEEP \
|
||||||
|
-DCONFIG_HAVE_NANOSLEEP \
|
||||||
|
-DCONFIG_HAVE_USLEEP \
|
||||||
|
-DCONFIG_HAVE_RTC \
|
||||||
|
-DCONFIG_HAVE_TSC \
|
||||||
|
-DCONFIG_HAVE_IFR_NETMASK \
|
||||||
|
-DCONFIG_HAVE_GETIFADDRS \
|
||||||
|
-DCONFIG_HAVE_GETHOSTBYNAME2 \
|
||||||
|
-DCONFIG_HAVE_GETPROTOBYNAME_R \
|
||||||
|
-DCONFIG_BIND_INADDR_ANY \
|
||||||
|
-DCONFIG_GALOIS_MUL_LUT \
|
||||||
|
-DGETTEXT_PACKAGE='"pgm"' \
|
||||||
|
-DG_LOG_DOMAIN='"Pgm"'
|
||||||
|
endif
|
||||||
|
|
||||||
libzmq_la_CFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ @LIBZMQ_EXTRA_CXXFLAGS@ \
|
libzmq_la_CFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ @LIBZMQ_EXTRA_CXXFLAGS@ \
|
||||||
-pipe \
|
-pipe \
|
||||||
-Wall \
|
-Wall \
|
||||||
@ -244,25 +277,7 @@ libzmq_la_CFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/in
|
|||||||
--param max-inline-insns-single=600 \
|
--param max-inline-insns-single=600 \
|
||||||
-D_REENTRANT \
|
-D_REENTRANT \
|
||||||
-D_GNU_SOURCE \
|
-D_GNU_SOURCE \
|
||||||
-D__need_IOV_MAX \
|
${libpgm_diff_flags}
|
||||||
-DCONFIG_HAVE_PSELECT \
|
|
||||||
-DCONFIG_HAVE_POLL \
|
|
||||||
-DCONFIG_HAVE_PPOLL \
|
|
||||||
-DCONFIG_HAVE_EPOLL \
|
|
||||||
-DCONFIG_HAVE_CLOCK_GETTIME \
|
|
||||||
-DCONFIG_HAVE_CLOCK_NANOSLEEP \
|
|
||||||
-DCONFIG_HAVE_NANOSLEEP \
|
|
||||||
-DCONFIG_HAVE_USLEEP \
|
|
||||||
-DCONFIG_HAVE_RTC \
|
|
||||||
-DCONFIG_HAVE_TSC \
|
|
||||||
-DCONFIG_HAVE_IFR_NETMASK \
|
|
||||||
-DCONFIG_HAVE_GETIFADDRS \
|
|
||||||
-DCONFIG_HAVE_GETHOSTBYNAME2 \
|
|
||||||
-DCONFIG_HAVE_GETPROTOBYNAME_R \
|
|
||||||
-DCONFIG_BIND_INADDR_ANY \
|
|
||||||
-DCONFIG_GALOIS_MUL_LUT \
|
|
||||||
-DGETTEXT_PACKAGE='"pgm"' \
|
|
||||||
-DG_LOG_DOMAIN='"Pgm"'
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if BUILD_NO_PGM
|
if BUILD_NO_PGM
|
||||||
|
@ -21,6 +21,11 @@
|
|||||||
|
|
||||||
#if defined ZMQ_HAVE_OPENPGM
|
#if defined ZMQ_HAVE_OPENPGM
|
||||||
|
|
||||||
|
#ifdef ZMQ_HAVE_WINDOWS
|
||||||
|
#include "windows.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <pgm/pgm.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include "pgm_receiver.hpp"
|
#include "pgm_receiver.hpp"
|
||||||
|
@ -24,13 +24,19 @@
|
|||||||
|
|
||||||
#if defined ZMQ_HAVE_OPENPGM
|
#if defined ZMQ_HAVE_OPENPGM
|
||||||
|
|
||||||
|
#ifdef ZMQ_HAVE_WINDOWS
|
||||||
|
#include "windows.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <map>
|
||||||
|
#include <pgm/pgm.h>
|
||||||
|
|
||||||
#include "io_object.hpp"
|
#include "io_object.hpp"
|
||||||
#include "i_engine.hpp"
|
#include "i_engine.hpp"
|
||||||
#include "options.hpp"
|
#include "options.hpp"
|
||||||
#include "zmq_decoder.hpp"
|
#include "zmq_decoder.hpp"
|
||||||
#include "pgm_socket.hpp"
|
#include "pgm_socket.hpp"
|
||||||
|
|
||||||
#include <map>
|
|
||||||
|
|
||||||
namespace zmq
|
namespace zmq
|
||||||
{
|
{
|
||||||
|
@ -21,6 +21,10 @@
|
|||||||
|
|
||||||
#if defined ZMQ_HAVE_OPENPGM
|
#if defined ZMQ_HAVE_OPENPGM
|
||||||
|
|
||||||
|
#ifdef ZMQ_HAVE_WINDOWS
|
||||||
|
#include "windows.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include "io_thread.hpp"
|
#include "io_thread.hpp"
|
||||||
@ -42,7 +46,6 @@
|
|||||||
{ printf (__VA_ARGS__);}} while (0)
|
{ printf (__VA_ARGS__);}} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ZMQ_HAVE_LINUX
|
|
||||||
zmq::pgm_sender_t::pgm_sender_t (io_thread_t *parent_,
|
zmq::pgm_sender_t::pgm_sender_t (io_thread_t *parent_,
|
||||||
const options_t &options_, const char *session_name_) :
|
const options_t &options_, const char *session_name_) :
|
||||||
io_object_t (parent_),
|
io_object_t (parent_),
|
||||||
@ -213,4 +216,3 @@ size_t zmq::pgm_sender_t::write_one_pkt_with_offset (unsigned char *data_,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -24,6 +24,10 @@
|
|||||||
|
|
||||||
#if defined ZMQ_HAVE_OPENPGM
|
#if defined ZMQ_HAVE_OPENPGM
|
||||||
|
|
||||||
|
#ifdef ZMQ_HAVE_WINDOWS
|
||||||
|
#include "windows.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "stdint.hpp"
|
#include "stdint.hpp"
|
||||||
#include "io_object.hpp"
|
#include "io_object.hpp"
|
||||||
#include "i_engine.hpp"
|
#include "i_engine.hpp"
|
||||||
|
@ -21,13 +21,17 @@
|
|||||||
|
|
||||||
#ifdef ZMQ_HAVE_OPENPGM
|
#ifdef ZMQ_HAVE_OPENPGM
|
||||||
|
|
||||||
#ifdef ZMQ_HAVE_LINUX
|
#ifdef ZMQ_HAVE_WINDOWS
|
||||||
// TODO: needed for pgm - add this into platform.hpp?
|
#include "windows.hpp"
|
||||||
#define CONFIG_HAVE_POLL
|
|
||||||
|
|
||||||
#include <pgm/pgm.h>
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ZMQ_HAVE_LINUX
|
||||||
|
#include <poll.h>
|
||||||
|
// Has to be defined befiore including pgm/pgm.h
|
||||||
|
#define CONFIG_HAVE_POLL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <pgm/pgm.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
@ -51,8 +55,6 @@
|
|||||||
{ printf (__VA_ARGS__);}} while (0)
|
{ printf (__VA_ARGS__);}} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ZMQ_HAVE_LINUX
|
|
||||||
|
|
||||||
zmq::pgm_socket_t::pgm_socket_t (bool receiver_, const options_t &options_) :
|
zmq::pgm_socket_t::pgm_socket_t (bool receiver_, const options_t &options_) :
|
||||||
g_transport (NULL),
|
g_transport (NULL),
|
||||||
options (options_),
|
options (options_),
|
||||||
@ -480,7 +482,9 @@ void zmq::pgm_socket_t::close_transport (void)
|
|||||||
int zmq::pgm_socket_t::get_receiver_fds (int *recv_fd_,
|
int zmq::pgm_socket_t::get_receiver_fds (int *recv_fd_,
|
||||||
int *waiting_pipe_fd_)
|
int *waiting_pipe_fd_)
|
||||||
{
|
{
|
||||||
|
#ifdef ZMQ_HAVE_WINDOWS
|
||||||
|
zmq_assert (false);
|
||||||
|
#else
|
||||||
// For POLLIN there are 2 pollfds in pgm_transport.
|
// For POLLIN there are 2 pollfds in pgm_transport.
|
||||||
int fds_array_size = pgm_receiver_fd_count;
|
int fds_array_size = pgm_receiver_fd_count;
|
||||||
pollfd *fds = new pollfd [fds_array_size];
|
pollfd *fds = new pollfd [fds_array_size];
|
||||||
@ -500,7 +504,7 @@ int zmq::pgm_socket_t::get_receiver_fds (int *recv_fd_,
|
|||||||
*waiting_pipe_fd_ = fds [1].fd;
|
*waiting_pipe_fd_ = fds [1].fd;
|
||||||
|
|
||||||
delete [] fds;
|
delete [] fds;
|
||||||
|
#endif
|
||||||
return pgm_receiver_fd_count;
|
return pgm_receiver_fd_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -520,6 +524,9 @@ int zmq::pgm_socket_t::get_sender_fds (int *send_fd_, int *receive_fd_,
|
|||||||
zmq_assert (rdata_notify_fd_);
|
zmq_assert (rdata_notify_fd_);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ZMQ_HAVE_WINDOWS
|
||||||
|
zmq_assert (false);
|
||||||
|
#else
|
||||||
// Preallocate pollfds array.
|
// Preallocate pollfds array.
|
||||||
int fds_array_size = pgm_sender_fd_count;
|
int fds_array_size = pgm_sender_fd_count;
|
||||||
pollfd *fds = new pollfd [fds_array_size];
|
pollfd *fds = new pollfd [fds_array_size];
|
||||||
@ -546,6 +553,7 @@ int zmq::pgm_socket_t::get_sender_fds (int *send_fd_, int *receive_fd_,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
delete [] fds;
|
delete [] fds;
|
||||||
|
#endif
|
||||||
|
|
||||||
return pgm_sender_fd_count;
|
return pgm_sender_fd_count;
|
||||||
}
|
}
|
||||||
@ -855,4 +863,3 @@ void zmq::pgm_socket_t::process_upstream (void)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -24,13 +24,12 @@
|
|||||||
|
|
||||||
#if defined ZMQ_HAVE_OPENPGM
|
#if defined ZMQ_HAVE_OPENPGM
|
||||||
|
|
||||||
#ifdef ZMQ_HAVE_LINUX
|
#ifdef ZMQ_HAVE_WINDOWS
|
||||||
#include <glib.h>
|
#include "windows.hpp"
|
||||||
#include <pgm/pgm.h>
|
|
||||||
#else
|
|
||||||
#include <Winsock2.h>
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <pgm/pgm.h>
|
||||||
|
|
||||||
#include "stdint.hpp"
|
#include "stdint.hpp"
|
||||||
#include "options.hpp"
|
#include "options.hpp"
|
||||||
|
|
||||||
@ -40,8 +39,6 @@ namespace zmq
|
|||||||
class pgm_socket_t
|
class pgm_socket_t
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifdef ZMQ_HAVE_LINUX
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// If receiver_ is true PGM transport is not generating SPM packets.
|
// If receiver_ is true PGM transport is not generating SPM packets.
|
||||||
// interface format: iface;mcast_group:port for raw PGM socket
|
// interface format: iface;mcast_group:port for raw PGM socket
|
||||||
@ -148,9 +145,9 @@ namespace zmq
|
|||||||
|
|
||||||
// Receiver transport uses 2 fd.
|
// Receiver transport uses 2 fd.
|
||||||
enum {pgm_receiver_fd_count = 2};
|
enum {pgm_receiver_fd_count = 2};
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -24,6 +24,9 @@
|
|||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
#undef HAVE_INTTYPES_H
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `Iphlpapi' library (-lIphlpapi). */
|
||||||
|
#undef HAVE_LIBIPHLPAPI
|
||||||
|
|
||||||
/* Define to 1 if you have the `nsl' library (-lnsl). */
|
/* Define to 1 if you have the `nsl' library (-lnsl). */
|
||||||
#undef HAVE_LIBNSL
|
#undef HAVE_LIBNSL
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user