diff --git a/configure.in b/configure.in index ac46000c..8e45f89c 100644 --- a/configure.in +++ b/configure.in @@ -211,7 +211,14 @@ case "${host_os}" in install_man="no" ;; *cygwin*) + # Define on Cygwin to enable all library features + CPPFLAGS="-D_GNU_SOURCE $CPPFLAGS" AC_DEFINE(ZMQ_HAVE_CYGWIN, 1, [Have Cygwin]) + # Cygwin provides libuuid as part of the e2fsprogs package, and somewhat + # uselessly installs the library in /usr/lib/e2fsprogs + LDFLAGS="${LDFLAGS} -L/usr/lib/e2fsprogs" + AC_CHECK_LIB(uuid, uuid_generate, , + [AC_MSG_ERROR([cannot link with -luuid, install the e2fsprogs package.])]) ;; *) AC_MSG_ERROR([unsupported system: ${host_os}.]) diff --git a/src/uuid.cpp b/src/uuid.cpp index 7332f1fe..5991bfb6 100644 --- a/src/uuid.cpp +++ b/src/uuid.cpp @@ -75,7 +75,8 @@ const char *zmq::uuid_t::to_string () return string_buf; } -#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 || defined ZMQ_HAVE_CYGWIN #include diff --git a/src/uuid.hpp b/src/uuid.hpp index dfaef010..d24ef2ca 100644 --- a/src/uuid.hpp +++ b/src/uuid.hpp @@ -25,7 +25,8 @@ #if defined ZMQ_HAVE_FREEBSD || defined ZMQ_HAVE_NETBSD #include -#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 || defined ZMQ_HAVE_CYGWIN #include #elif defined ZMQ_HAVE_WINDOWS #include @@ -75,7 +76,8 @@ namespace zmq #elif defined ZMQ_HAVE_FREEBSD || defined ZMQ_HAVE_NETBSD ::uuid_t uuid; char *string_buf; -#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 || defined ZMQ_HAVE_CYGWIN ::uuid_t uuid; char string_buf [uuid_string_len + 1]; #else