libzmq 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. data/LICENSE +703 -0
  2. data/README.md +31 -0
  3. data/lib/libzmq.rb +17 -0
  4. data/lib/libzmq/ffi-rzmq.rb +3 -0
  5. data/libzmq/Makefile +5 -0
  6. data/libzmq/extconf.rb +24 -0
  7. data/libzmq/zeromq-2.1.7/AUTHORS +92 -0
  8. data/libzmq/zeromq-2.1.7/COPYING +674 -0
  9. data/libzmq/zeromq-2.1.7/COPYING.LESSER +206 -0
  10. data/libzmq/zeromq-2.1.7/ChangeLog +15620 -0
  11. data/libzmq/zeromq-2.1.7/INSTALL +237 -0
  12. data/libzmq/zeromq-2.1.7/MAINTAINERS +56 -0
  13. data/libzmq/zeromq-2.1.7/Makefile.am +42 -0
  14. data/libzmq/zeromq-2.1.7/Makefile.in +779 -0
  15. data/libzmq/zeromq-2.1.7/NEWS +275 -0
  16. data/libzmq/zeromq-2.1.7/README +39 -0
  17. data/libzmq/zeromq-2.1.7/acinclude.m4 +582 -0
  18. data/libzmq/zeromq-2.1.7/aclocal.m4 +1206 -0
  19. data/libzmq/zeromq-2.1.7/autogen.sh +45 -0
  20. data/libzmq/zeromq-2.1.7/builds/msvc/Makefile.am +8 -0
  21. data/libzmq/zeromq-2.1.7/builds/msvc/Makefile.in +390 -0
  22. data/libzmq/zeromq-2.1.7/builds/msvc/c_local_lat/c_local_lat.vcproj +176 -0
  23. data/libzmq/zeromq-2.1.7/builds/msvc/c_local_thr/c_local_thr.vcproj +176 -0
  24. data/libzmq/zeromq-2.1.7/builds/msvc/c_remote_lat/c_remote_lat.vcproj +176 -0
  25. data/libzmq/zeromq-2.1.7/builds/msvc/c_remote_thr/c_remote_thr.vcproj +176 -0
  26. data/libzmq/zeromq-2.1.7/builds/msvc/libzmq/libzmq.vcproj +783 -0
  27. data/libzmq/zeromq-2.1.7/builds/msvc/msvc.sln +89 -0
  28. data/libzmq/zeromq-2.1.7/builds/msvc/platform.hpp +32 -0
  29. data/libzmq/zeromq-2.1.7/builds/redhat/zeromq.spec.in +139 -0
  30. data/libzmq/zeromq-2.1.7/config/compile +143 -0
  31. data/libzmq/zeromq-2.1.7/config/config.guess +1502 -0
  32. data/libzmq/zeromq-2.1.7/config/config.sub +1714 -0
  33. data/libzmq/zeromq-2.1.7/config/depcomp +630 -0
  34. data/libzmq/zeromq-2.1.7/config/install-sh +520 -0
  35. data/libzmq/zeromq-2.1.7/config/libtool.m4 +7377 -0
  36. data/libzmq/zeromq-2.1.7/config/ltmain.sh +8413 -0
  37. data/libzmq/zeromq-2.1.7/config/ltoptions.m4 +368 -0
  38. data/libzmq/zeromq-2.1.7/config/ltsugar.m4 +123 -0
  39. data/libzmq/zeromq-2.1.7/config/ltversion.m4 +23 -0
  40. data/libzmq/zeromq-2.1.7/config/lt~obsolete.m4 +92 -0
  41. data/libzmq/zeromq-2.1.7/config/missing +376 -0
  42. data/libzmq/zeromq-2.1.7/configure +21645 -0
  43. data/libzmq/zeromq-2.1.7/configure.in +380 -0
  44. data/libzmq/zeromq-2.1.7/doc/Makefile.am +46 -0
  45. data/libzmq/zeromq-2.1.7/doc/Makefile.in +546 -0
  46. data/libzmq/zeromq-2.1.7/doc/asciidoc.conf +56 -0
  47. data/libzmq/zeromq-2.1.7/doc/zmq.7 +242 -0
  48. data/libzmq/zeromq-2.1.7/doc/zmq.html +846 -0
  49. data/libzmq/zeromq-2.1.7/doc/zmq.txt +218 -0
  50. data/libzmq/zeromq-2.1.7/doc/zmq_bind.3 +166 -0
  51. data/libzmq/zeromq-2.1.7/doc/zmq_bind.html +746 -0
  52. data/libzmq/zeromq-2.1.7/doc/zmq_bind.txt +91 -0
  53. data/libzmq/zeromq-2.1.7/doc/zmq_close.3 +81 -0
  54. data/libzmq/zeromq-2.1.7/doc/zmq_close.html +645 -0
  55. data/libzmq/zeromq-2.1.7/doc/zmq_close.txt +52 -0
  56. data/libzmq/zeromq-2.1.7/doc/zmq_connect.3 +161 -0
  57. data/libzmq/zeromq-2.1.7/doc/zmq_connect.html +732 -0
  58. data/libzmq/zeromq-2.1.7/doc/zmq_connect.txt +89 -0
  59. data/libzmq/zeromq-2.1.7/doc/zmq_cpp.7 +410 -0
  60. data/libzmq/zeromq-2.1.7/doc/zmq_cpp.html +765 -0
  61. data/libzmq/zeromq-2.1.7/doc/zmq_cpp.txt +212 -0
  62. data/libzmq/zeromq-2.1.7/doc/zmq_device.3 +140 -0
  63. data/libzmq/zeromq-2.1.7/doc/zmq_device.html +736 -0
  64. data/libzmq/zeromq-2.1.7/doc/zmq_device.txt +138 -0
  65. data/libzmq/zeromq-2.1.7/doc/zmq_epgm.7 +209 -0
  66. data/libzmq/zeromq-2.1.7/doc/zmq_epgm.html +749 -0
  67. data/libzmq/zeromq-2.1.7/doc/zmq_epgm.txt +162 -0
  68. data/libzmq/zeromq-2.1.7/doc/zmq_errno.3 +78 -0
  69. data/libzmq/zeromq-2.1.7/doc/zmq_errno.html +634 -0
  70. data/libzmq/zeromq-2.1.7/doc/zmq_errno.txt +50 -0
  71. data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.3 +944 -0
  72. data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.html +1713 -0
  73. data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.txt +407 -0
  74. data/libzmq/zeromq-2.1.7/doc/zmq_init.3 +71 -0
  75. data/libzmq/zeromq-2.1.7/doc/zmq_init.html +635 -0
  76. data/libzmq/zeromq-2.1.7/doc/zmq_init.txt +51 -0
  77. data/libzmq/zeromq-2.1.7/doc/zmq_inproc.7 +115 -0
  78. data/libzmq/zeromq-2.1.7/doc/zmq_inproc.html +669 -0
  79. data/libzmq/zeromq-2.1.7/doc/zmq_inproc.txt +89 -0
  80. data/libzmq/zeromq-2.1.7/doc/zmq_ipc.7 +109 -0
  81. data/libzmq/zeromq-2.1.7/doc/zmq_ipc.html +662 -0
  82. data/libzmq/zeromq-2.1.7/doc/zmq_ipc.txt +80 -0
  83. data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.3 +81 -0
  84. data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.html +647 -0
  85. data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.txt +55 -0
  86. data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.3 +95 -0
  87. data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.html +656 -0
  88. data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.txt +57 -0
  89. data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.3 +76 -0
  90. data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.html +633 -0
  91. data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.txt +48 -0
  92. data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.3 +110 -0
  93. data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.html +656 -0
  94. data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.txt +65 -0
  95. data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.3 +138 -0
  96. data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.html +678 -0
  97. data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.txt +83 -0
  98. data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.3 +97 -0
  99. data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.html +656 -0
  100. data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.txt +58 -0
  101. data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.3 +79 -0
  102. data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.html +645 -0
  103. data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.txt +52 -0
  104. data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.3 +76 -0
  105. data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.html +633 -0
  106. data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.txt +48 -0
  107. data/libzmq/zeromq-2.1.7/doc/zmq_pgm.7 +209 -0
  108. data/libzmq/zeromq-2.1.7/doc/zmq_pgm.html +749 -0
  109. data/libzmq/zeromq-2.1.7/doc/zmq_pgm.txt +162 -0
  110. data/libzmq/zeromq-2.1.7/doc/zmq_poll.3 +204 -0
  111. data/libzmq/zeromq-2.1.7/doc/zmq_poll.html +755 -0
  112. data/libzmq/zeromq-2.1.7/doc/zmq_poll.txt +132 -0
  113. data/libzmq/zeromq-2.1.7/doc/zmq_recv.3 +172 -0
  114. data/libzmq/zeromq-2.1.7/doc/zmq_recv.html +746 -0
  115. data/libzmq/zeromq-2.1.7/doc/zmq_recv.txt +121 -0
  116. data/libzmq/zeromq-2.1.7/doc/zmq_send.3 +185 -0
  117. data/libzmq/zeromq-2.1.7/doc/zmq_send.html +755 -0
  118. data/libzmq/zeromq-2.1.7/doc/zmq_send.txt +120 -0
  119. data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.3 +878 -0
  120. data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.html +1603 -0
  121. data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.txt +382 -0
  122. data/libzmq/zeromq-2.1.7/doc/zmq_socket.3 +779 -0
  123. data/libzmq/zeromq-2.1.7/doc/zmq_socket.html +1424 -0
  124. data/libzmq/zeromq-2.1.7/doc/zmq_socket.txt +342 -0
  125. data/libzmq/zeromq-2.1.7/doc/zmq_strerror.3 +78 -0
  126. data/libzmq/zeromq-2.1.7/doc/zmq_strerror.html +634 -0
  127. data/libzmq/zeromq-2.1.7/doc/zmq_strerror.txt +55 -0
  128. data/libzmq/zeromq-2.1.7/doc/zmq_tcp.7 +244 -0
  129. data/libzmq/zeromq-2.1.7/doc/zmq_tcp.html +755 -0
  130. data/libzmq/zeromq-2.1.7/doc/zmq_tcp.txt +162 -0
  131. data/libzmq/zeromq-2.1.7/doc/zmq_term.3 +135 -0
  132. data/libzmq/zeromq-2.1.7/doc/zmq_term.html +672 -0
  133. data/libzmq/zeromq-2.1.7/doc/zmq_term.txt +65 -0
  134. data/libzmq/zeromq-2.1.7/doc/zmq_version.3 +78 -0
  135. data/libzmq/zeromq-2.1.7/doc/zmq_version.html +632 -0
  136. data/libzmq/zeromq-2.1.7/doc/zmq_version.txt +53 -0
  137. data/libzmq/zeromq-2.1.7/foreign/openpgm/Makefile.am +8 -0
  138. data/libzmq/zeromq-2.1.7/foreign/openpgm/Makefile.in +588 -0
  139. data/libzmq/zeromq-2.1.7/foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz +0 -0
  140. data/libzmq/zeromq-2.1.7/foreign/xmlParser/xmlParser.cpp +2923 -0
  141. data/libzmq/zeromq-2.1.7/foreign/xmlParser/xmlParser.hpp +762 -0
  142. data/libzmq/zeromq-2.1.7/include/zmq.h +269 -0
  143. data/libzmq/zeromq-2.1.7/include/zmq.hpp +301 -0
  144. data/libzmq/zeromq-2.1.7/include/zmq_utils.h +64 -0
  145. data/libzmq/zeromq-2.1.7/perf/Makefile.am +21 -0
  146. data/libzmq/zeromq-2.1.7/perf/Makefile.in +566 -0
  147. data/libzmq/zeromq-2.1.7/perf/inproc_lat.cpp +232 -0
  148. data/libzmq/zeromq-2.1.7/perf/inproc_thr.cpp +246 -0
  149. data/libzmq/zeromq-2.1.7/perf/local_lat.cpp +108 -0
  150. data/libzmq/zeromq-2.1.7/perf/local_thr.cpp +138 -0
  151. data/libzmq/zeromq-2.1.7/perf/remote_lat.cpp +121 -0
  152. data/libzmq/zeromq-2.1.7/perf/remote_thr.cpp +104 -0
  153. data/libzmq/zeromq-2.1.7/src/Makefile.am +155 -0
  154. data/libzmq/zeromq-2.1.7/src/Makefile.in +1320 -0
  155. data/libzmq/zeromq-2.1.7/src/array.hpp +147 -0
  156. data/libzmq/zeromq-2.1.7/src/atomic_counter.hpp +164 -0
  157. data/libzmq/zeromq-2.1.7/src/atomic_ptr.hpp +159 -0
  158. data/libzmq/zeromq-2.1.7/src/blob.hpp +34 -0
  159. data/libzmq/zeromq-2.1.7/src/clock.cpp +118 -0
  160. data/libzmq/zeromq-2.1.7/src/clock.hpp +60 -0
  161. data/libzmq/zeromq-2.1.7/src/command.cpp +39 -0
  162. data/libzmq/zeromq-2.1.7/src/command.hpp +147 -0
  163. data/libzmq/zeromq-2.1.7/src/config.hpp +88 -0
  164. data/libzmq/zeromq-2.1.7/src/connect_session.cpp +119 -0
  165. data/libzmq/zeromq-2.1.7/src/connect_session.hpp +65 -0
  166. data/libzmq/zeromq-2.1.7/src/ctx.cpp +322 -0
  167. data/libzmq/zeromq-2.1.7/src/ctx.hpp +159 -0
  168. data/libzmq/zeromq-2.1.7/src/decoder.cpp +129 -0
  169. data/libzmq/zeromq-2.1.7/src/decoder.hpp +207 -0
  170. data/libzmq/zeromq-2.1.7/src/device.cpp +120 -0
  171. data/libzmq/zeromq-2.1.7/src/device.hpp +32 -0
  172. data/libzmq/zeromq-2.1.7/src/devpoll.cpp +190 -0
  173. data/libzmq/zeromq-2.1.7/src/devpoll.hpp +100 -0
  174. data/libzmq/zeromq-2.1.7/src/dist.cpp +200 -0
  175. data/libzmq/zeromq-2.1.7/src/dist.hpp +90 -0
  176. data/libzmq/zeromq-2.1.7/src/encoder.cpp +90 -0
  177. data/libzmq/zeromq-2.1.7/src/encoder.hpp +184 -0
  178. data/libzmq/zeromq-2.1.7/src/epoll.cpp +177 -0
  179. data/libzmq/zeromq-2.1.7/src/epoll.hpp +96 -0
  180. data/libzmq/zeromq-2.1.7/src/err.cpp +238 -0
  181. data/libzmq/zeromq-2.1.7/src/err.hpp +145 -0
  182. data/libzmq/zeromq-2.1.7/src/fd.hpp +45 -0
  183. data/libzmq/zeromq-2.1.7/src/fq.cpp +164 -0
  184. data/libzmq/zeromq-2.1.7/src/fq.hpp +80 -0
  185. data/libzmq/zeromq-2.1.7/src/i_engine.hpp +53 -0
  186. data/libzmq/zeromq-2.1.7/src/i_inout.hpp +50 -0
  187. data/libzmq/zeromq-2.1.7/src/i_poll_events.hpp +46 -0
  188. data/libzmq/zeromq-2.1.7/src/io_object.cpp +107 -0
  189. data/libzmq/zeromq-2.1.7/src/io_object.hpp +78 -0
  190. data/libzmq/zeromq-2.1.7/src/io_thread.cpp +109 -0
  191. data/libzmq/zeromq-2.1.7/src/io_thread.hpp +88 -0
  192. data/libzmq/zeromq-2.1.7/src/ip.cpp +339 -0
  193. data/libzmq/zeromq-2.1.7/src/ip.hpp +68 -0
  194. data/libzmq/zeromq-2.1.7/src/kqueue.cpp +194 -0
  195. data/libzmq/zeromq-2.1.7/src/kqueue.hpp +103 -0
  196. data/libzmq/zeromq-2.1.7/src/lb.cpp +174 -0
  197. data/libzmq/zeromq-2.1.7/src/lb.hpp +79 -0
  198. data/libzmq/zeromq-2.1.7/src/libzmq.pc.in +10 -0
  199. data/libzmq/zeromq-2.1.7/src/likely.hpp +33 -0
  200. data/libzmq/zeromq-2.1.7/src/mailbox.cpp +382 -0
  201. data/libzmq/zeromq-2.1.7/src/mailbox.hpp +62 -0
  202. data/libzmq/zeromq-2.1.7/src/msg_content.hpp +52 -0
  203. data/libzmq/zeromq-2.1.7/src/mutex.hpp +121 -0
  204. data/libzmq/zeromq-2.1.7/src/named_session.cpp +85 -0
  205. data/libzmq/zeromq-2.1.7/src/named_session.hpp +57 -0
  206. data/libzmq/zeromq-2.1.7/src/object.cpp +467 -0
  207. data/libzmq/zeromq-2.1.7/src/object.hpp +127 -0
  208. data/libzmq/zeromq-2.1.7/src/options.cpp +336 -0
  209. data/libzmq/zeromq-2.1.7/src/options.hpp +87 -0
  210. data/libzmq/zeromq-2.1.7/src/own.cpp +214 -0
  211. data/libzmq/zeromq-2.1.7/src/own.hpp +140 -0
  212. data/libzmq/zeromq-2.1.7/src/pair.cpp +180 -0
  213. data/libzmq/zeromq-2.1.7/src/pair.hpp +76 -0
  214. data/libzmq/zeromq-2.1.7/src/pgm_receiver.cpp +259 -0
  215. data/libzmq/zeromq-2.1.7/src/pgm_receiver.hpp +129 -0
  216. data/libzmq/zeromq-2.1.7/src/pgm_sender.cpp +215 -0
  217. data/libzmq/zeromq-2.1.7/src/pgm_sender.hpp +105 -0
  218. data/libzmq/zeromq-2.1.7/src/pgm_socket.cpp +705 -0
  219. data/libzmq/zeromq-2.1.7/src/pgm_socket.hpp +118 -0
  220. data/libzmq/zeromq-2.1.7/src/pipe.cpp +409 -0
  221. data/libzmq/zeromq-2.1.7/src/pipe.hpp +214 -0
  222. data/libzmq/zeromq-2.1.7/src/platform.hpp.in +228 -0
  223. data/libzmq/zeromq-2.1.7/src/poll.cpp +180 -0
  224. data/libzmq/zeromq-2.1.7/src/poll.hpp +104 -0
  225. data/libzmq/zeromq-2.1.7/src/poller.hpp +73 -0
  226. data/libzmq/zeromq-2.1.7/src/poller_base.cpp +99 -0
  227. data/libzmq/zeromq-2.1.7/src/poller_base.hpp +84 -0
  228. data/libzmq/zeromq-2.1.7/src/pub.cpp +31 -0
  229. data/libzmq/zeromq-2.1.7/src/pub.hpp +44 -0
  230. data/libzmq/zeromq-2.1.7/src/pull.cpp +61 -0
  231. data/libzmq/zeromq-2.1.7/src/pull.hpp +60 -0
  232. data/libzmq/zeromq-2.1.7/src/push.cpp +62 -0
  233. data/libzmq/zeromq-2.1.7/src/push.hpp +59 -0
  234. data/libzmq/zeromq-2.1.7/src/reaper.cpp +121 -0
  235. data/libzmq/zeromq-2.1.7/src/reaper.hpp +77 -0
  236. data/libzmq/zeromq-2.1.7/src/rep.cpp +131 -0
  237. data/libzmq/zeromq-2.1.7/src/rep.hpp +59 -0
  238. data/libzmq/zeromq-2.1.7/src/req.cpp +121 -0
  239. data/libzmq/zeromq-2.1.7/src/req.hpp +58 -0
  240. data/libzmq/zeromq-2.1.7/src/select.cpp +211 -0
  241. data/libzmq/zeromq-2.1.7/src/select.hpp +116 -0
  242. data/libzmq/zeromq-2.1.7/src/semaphore.hpp +189 -0
  243. data/libzmq/zeromq-2.1.7/src/session.cpp +347 -0
  244. data/libzmq/zeromq-2.1.7/src/session.hpp +150 -0
  245. data/libzmq/zeromq-2.1.7/src/socket_base.cpp +811 -0
  246. data/libzmq/zeromq-2.1.7/src/socket_base.hpp +207 -0
  247. data/libzmq/zeromq-2.1.7/src/stdint.hpp +63 -0
  248. data/libzmq/zeromq-2.1.7/src/sub.cpp +75 -0
  249. data/libzmq/zeromq-2.1.7/src/sub.hpp +50 -0
  250. data/libzmq/zeromq-2.1.7/src/swap.cpp +325 -0
  251. data/libzmq/zeromq-2.1.7/src/swap.hpp +123 -0
  252. data/libzmq/zeromq-2.1.7/src/tcp_connecter.cpp +310 -0
  253. data/libzmq/zeromq-2.1.7/src/tcp_connecter.hpp +81 -0
  254. data/libzmq/zeromq-2.1.7/src/tcp_listener.cpp +371 -0
  255. data/libzmq/zeromq-2.1.7/src/tcp_listener.hpp +73 -0
  256. data/libzmq/zeromq-2.1.7/src/tcp_socket.cpp +228 -0
  257. data/libzmq/zeromq-2.1.7/src/tcp_socket.hpp +72 -0
  258. data/libzmq/zeromq-2.1.7/src/thread.cpp +97 -0
  259. data/libzmq/zeromq-2.1.7/src/thread.hpp +78 -0
  260. data/libzmq/zeromq-2.1.7/src/transient_session.cpp +41 -0
  261. data/libzmq/zeromq-2.1.7/src/transient_session.hpp +52 -0
  262. data/libzmq/zeromq-2.1.7/src/trie.cpp +181 -0
  263. data/libzmq/zeromq-2.1.7/src/trie.hpp +59 -0
  264. data/libzmq/zeromq-2.1.7/src/uuid.cpp +233 -0
  265. data/libzmq/zeromq-2.1.7/src/uuid.hpp +111 -0
  266. data/libzmq/zeromq-2.1.7/src/windows.hpp +79 -0
  267. data/libzmq/zeromq-2.1.7/src/wire.hpp +99 -0
  268. data/libzmq/zeromq-2.1.7/src/xpub.cpp +76 -0
  269. data/libzmq/zeromq-2.1.7/src/xpub.hpp +61 -0
  270. data/libzmq/zeromq-2.1.7/src/xrep.cpp +337 -0
  271. data/libzmq/zeromq-2.1.7/src/xrep.hpp +116 -0
  272. data/libzmq/zeromq-2.1.7/src/xreq.cpp +74 -0
  273. data/libzmq/zeromq-2.1.7/src/xreq.hpp +65 -0
  274. data/libzmq/zeromq-2.1.7/src/xsub.cpp +172 -0
  275. data/libzmq/zeromq-2.1.7/src/xsub.hpp +80 -0
  276. data/libzmq/zeromq-2.1.7/src/ypipe.hpp +209 -0
  277. data/libzmq/zeromq-2.1.7/src/yqueue.hpp +198 -0
  278. data/libzmq/zeromq-2.1.7/src/zmq.cpp +798 -0
  279. data/libzmq/zeromq-2.1.7/src/zmq_connecter.cpp +166 -0
  280. data/libzmq/zeromq-2.1.7/src/zmq_connecter.hpp +92 -0
  281. data/libzmq/zeromq-2.1.7/src/zmq_engine.cpp +220 -0
  282. data/libzmq/zeromq-2.1.7/src/zmq_engine.hpp +87 -0
  283. data/libzmq/zeromq-2.1.7/src/zmq_init.cpp +216 -0
  284. data/libzmq/zeromq-2.1.7/src/zmq_init.hpp +93 -0
  285. data/libzmq/zeromq-2.1.7/src/zmq_listener.cpp +78 -0
  286. data/libzmq/zeromq-2.1.7/src/zmq_listener.hpp +67 -0
  287. data/libzmq/zeromq-2.1.7/tests/Makefile.am +30 -0
  288. data/libzmq/zeromq-2.1.7/tests/Makefile.in +713 -0
  289. data/libzmq/zeromq-2.1.7/tests/test_hwm.cpp +68 -0
  290. data/libzmq/zeromq-2.1.7/tests/test_pair_inproc.cpp +31 -0
  291. data/libzmq/zeromq-2.1.7/tests/test_pair_ipc.cpp +31 -0
  292. data/libzmq/zeromq-2.1.7/tests/test_pair_tcp.cpp +31 -0
  293. data/libzmq/zeromq-2.1.7/tests/test_reqrep_inproc.cpp +31 -0
  294. data/libzmq/zeromq-2.1.7/tests/test_reqrep_ipc.cpp +31 -0
  295. data/libzmq/zeromq-2.1.7/tests/test_reqrep_tcp.cpp +31 -0
  296. data/libzmq/zeromq-2.1.7/tests/test_shutdown_stress.cpp +87 -0
  297. data/libzmq/zeromq-2.1.7/tests/testutil.hpp +130 -0
  298. data/libzmq/zeromq-2.1.7/version.sh +21 -0
  299. data/libzmq/zeromq-2.1.7/zeromq.spec +139 -0
  300. metadata +348 -0
@@ -0,0 +1,275 @@
1
+ 0MQ version 2.1.7 (Stable), released on 2011/05/12
2
+ ==================================================
3
+
4
+ Bug fixes
5
+ ---------
6
+
7
+ * Fixed issue 191, message atomicity issue with PUB sockets (an old issue).
8
+
9
+ * Fixed issue 199 (affected ROUTER/XREP sockets, an old issue).
10
+
11
+ * Fixed issue 206, assertion failure in zmq.cpp:223, affected all sockets
12
+ (bug was introduced in 2.1.6 as part of message validity checking).
13
+
14
+ * Fixed issue 211, REP socket asserted if sent malformed envelope (old issue
15
+ due to abuse of assertions for error checking).
16
+
17
+ * Fixed issue 212, reconnect failing after resume from sleep on Windows
18
+ (due to not handling WSAENETDOWN).
19
+
20
+ * Properly handle WSAENETUNREACH on Windows (e.g. if client connects
21
+ before server binds).
22
+
23
+ Changes
24
+ -------
25
+
26
+ * Runtime checking of socket and context validity, to catch e.g. using a
27
+ socket after closing it, or passing an invalid pointer to context/socket
28
+ methods.
29
+
30
+ * Test cases moved off port 5555, which conflicts with other services.
31
+
32
+ * Clarified zmq_poll man page that the resolution of the timeout is 1msec.
33
+
34
+
35
+ 0MQ version 2.1.6 (Stable), released on 2011/04/26
36
+ ==================================================
37
+
38
+ Bug fixes
39
+ ---------
40
+
41
+ * Fixed memory leak with threads on Windows.
42
+
43
+ * Assert during SUB socket termination fixed.
44
+
45
+ Changes
46
+ -------
47
+
48
+ * Checks zmq_msg_t validity at each operation.
49
+
50
+ * Inproc performance tests now work on Windows.
51
+
52
+ * PGM wire format specification improved in zmq_pgm(7)
53
+
54
+ * Added thread latency/throughput performance examples.
55
+
56
+ * Added "--with-system-pgm" configure option to use already installed
57
+ OpenPGM.
58
+
59
+
60
+ 0MQ version 2.1.5 (Broken), released on 2011/04/20
61
+ ==================================================
62
+
63
+ Note that this version contained a malformed patch and is not usable.
64
+ It is not available for download, but is available in the git via the
65
+ 2.1.5 tag.
66
+
67
+
68
+ 0MQ version 2.1.4 (Stable), released on 2011/03/30
69
+ ==================================================
70
+
71
+ Bug fixes
72
+ ---------
73
+
74
+ * Fix to OpenPGM which was asserting on small messages (Steven McCoy).
75
+
76
+ Changes
77
+ -------
78
+
79
+ * Upgraded OpenPGM to version 5.1.115 (Pieter Hintjens).
80
+
81
+ * OpenPGM build changed to not install OpenPGM artifacts.
82
+
83
+
84
+ 0MQ version 2.1.3 (Stable), released on 2011/03/21
85
+ ==================================================
86
+
87
+ Bug fixes
88
+ ---------
89
+
90
+ * Fix to PUSH sockets, which would sometimes deliver tail frames of a
91
+ multipart message to new subscribers (Martin Sustrik).
92
+
93
+ * Fix to PUB sockets, which would sometimes deliver tail frames of a
94
+ multipart message to new subscribers (Martin Sustrik).
95
+
96
+ * Windows build was broken due to EPROTONOSUPPORT not being defined. This
97
+ has now been fixed (Martin Sustrik).
98
+
99
+ * Various fixes to make OpenVMS port work (Brett Cameron).
100
+
101
+ * Corrected Reference Manual to note that ZMQ_LINGER socket option may be
102
+ set at any time, not just before connecting/binding (Pieter Hintjens).
103
+
104
+ * Fix to C++ binding to properly close sockets (Guido Goldstein).
105
+
106
+ * Removed obsolete assert from pgm_socket.cpp (Martin Sustrik).
107
+
108
+ Changes
109
+ -------
110
+
111
+ * Removed stand-alone devices (/devices subdirectory) from distribution.
112
+ These undocumented programs remain available in older packages (Pieter
113
+ Hintjens).
114
+
115
+ * OpenPGM default rate raised to 40mbps by default (Steven McCoy).
116
+
117
+ * ZMQ_DEALER and ZMQ_ROUTER macros provided to ease upgrade to 0MQ/3.0.
118
+ These are scheduled to replace ZMQ_XREQ and ZMQ_XREP (Pieter Hintjens).
119
+
120
+ * Added man page for zmq_device(3) which was hereto undocumented (Pieter
121
+ Hintjens).
122
+
123
+ * Removed zmq_queue(3), zmq_forwarder(3), zmq_streamer(3) man pages
124
+ (Pieter Hintjens).
125
+
126
+ OpenPGM Integration
127
+ -------------------
128
+
129
+ * Upgraded OpenPGM to version 5.1.114 (Steven McCoy, Mikko Koppanen).
130
+
131
+ * Build system now calls OpenPGM build process directly, allowing easier
132
+ future upgrades of OpenPGM (Mikko Koppanen).
133
+
134
+ * Build system allows configuration with arbitrary versions of OpenPGM
135
+ (./configure --with-pgm=libpgm-x.y.z) (Mikko Koppanen).
136
+
137
+ * OpenPGM uses new PGM_ODATA_MAX_RTE controlling original data instead of
138
+ PGM_TXW_MAX_RTE covering entire channel (Steven McCoy).
139
+
140
+ Building
141
+ --------
142
+
143
+ * 0MQ builds properly on FreeBSD (Mikko Koppanen).
144
+
145
+
146
+ 0MQ version 2.1.2 (rc2), released on 2011/03/06
147
+ ===============================================
148
+
149
+ Bug fixes
150
+ ---------
151
+
152
+ * 0MQ now correctly handles durable inproc sockets; previously it ignored
153
+ explicit identities on inproc sockets.
154
+
155
+ * Various memory leaks were fixed.
156
+
157
+ * OpenPGM sender/receiver creation fixed.
158
+
159
+
160
+ 0MQ version 2.1.1 (rc1), released on 2011/02/23
161
+ ===============================================
162
+
163
+ New functionality
164
+ -----------------
165
+
166
+ * New socket option ZMQ_RECONNECT_IVL_MAX added, allows for exponential
167
+ back-off strategy when reconnecting.
168
+
169
+ * New socket option ZMQ_RECOVERY_IVL_MSEC added, as a fine-grained
170
+ counterpart to ZMQ_RECOVERY_IVL (for multicast transports).
171
+
172
+ * If memory is exhausted, 0MQ warns with an explicit message before
173
+ aborting the process.
174
+
175
+ * Size of inproc HWM and SWAP is sum of peers' HWMs and SWAPs (Douglas
176
+ Greager, Martin Sustrik).
177
+
178
+ Bug fixes
179
+ ---------
180
+
181
+ * 0MQ no longer asserts in mailbox.cpp when multiple peers connect with
182
+ the same identity.
183
+
184
+ * 0MQ no longer asserts when rejecting an oversized message.
185
+
186
+ * 0MQ no longer asserts in pipe.cpp when the swap fills up.
187
+
188
+ * zmq_poll now works correctly with an empty poll set.
189
+
190
+ * Many more.
191
+
192
+ Building
193
+ --------
194
+
195
+ * 0MQ now builds correctly on CentOS, Debian 6, and SunOS/gcc3.
196
+
197
+ * Added WithOpenPGM configuration into MSVC builds.
198
+
199
+ Known issues
200
+ ------------
201
+
202
+ * OpenPGM integration is still not fully stable.
203
+
204
+
205
+ 0MQ version 2.1.0 (Beta), released on 2010/12/01
206
+ ================================================
207
+
208
+ New functionality
209
+ -----------------
210
+
211
+ * New semantics for zmq_close () and zmq_term () ensure that all messages
212
+ are sent before the application terminates. This behaviour may be
213
+ modified using the new ZMQ_LINGER socket option; for further details
214
+ refer to the reference manual.
215
+
216
+ * The new socket options ZMQ_FD and ZMQ_EVENTS provide a way to integrate
217
+ 0MQ sockets into existing poll/event loops.
218
+
219
+ * Sockets may now be migrated between OS threads, as long as the
220
+ application ensures that a full memory barrier is issued.
221
+
222
+ * The 0MQ ABI exported by libzmq.so has been formalised; DSO symbol
223
+ visibility is used on supported platforms to ensure that only public ABI
224
+ symbols are exported. The library ABI version has been set to 1.0.0 for
225
+ this release.
226
+
227
+ * OpenPGM has been updated to version 5.0.92. This version no longer
228
+ depends on GLIB, and integration with 0MQ should be much improved.
229
+
230
+ * zmq_poll() now honors timeouts precisely, and no longer returns if no
231
+ events are signaled.
232
+
233
+ * Blocking calls now return EINTR if interrupted by the delivery of a
234
+ signal; this also means that language bindings which previously had
235
+ problems with handling SIGINT/^C should now work correctly.
236
+
237
+ * The ZMQ_TYPE socket option was added; this allows retrieval of the socket
238
+ type after creation.
239
+
240
+ * Added a ZMQ_VERSION macro to zmq.h for compile-time API version
241
+ detection.
242
+
243
+ * The ZMQ_RECONNECT_IVL and ZMQ_BACKLOG socket options have been added.
244
+
245
+ Bug fixes
246
+ ---------
247
+
248
+ * Forwarder and streamer devices now handle multi-part messages correctly.
249
+
250
+ * 0MQ no longer asserts when malformed data is received on the wire.
251
+
252
+ * 0MQ internal timers now work correctly if the TSC jumps backwards.
253
+
254
+ * The internal signalling functionality (mailbox) has been improved
255
+ to automatically resize socket buffers on POSIX systems.
256
+
257
+ * Many more.
258
+
259
+ Building
260
+ --------
261
+
262
+ * 0MQ now builds correctly with many more non-GCC compilers (Sun Studio,
263
+ Intel ICC, CLang).
264
+
265
+ * AIX and HP-UX builds should work now.
266
+
267
+ * FD_SETSIZE has been set to 1024 by default for MSVC builds.
268
+
269
+ * Windows builds using GCC (MinGW) now work out of the box.
270
+
271
+ Distribution
272
+ ------------
273
+
274
+ * A simple framework for regression tests has been added, along with a few
275
+ basic self-tests. The tests can be run using "make check".
@@ -0,0 +1,39 @@
1
+ Welcome
2
+ -------
3
+
4
+ The 0MQ lightweight messaging kernel is a library which extends the
5
+ standard socket interfaces with features traditionally provided by
6
+ specialised messaging middleware products. 0MQ sockets provide an
7
+ abstraction of asynchronous message queues, multiple messaging patterns,
8
+ message filtering (subscriptions), seamless access to multiple transport
9
+ protocols and more.
10
+
11
+
12
+ Building and installation
13
+ -------------------------
14
+
15
+ See the INSTALL file included with the distribution.
16
+
17
+
18
+ Resources
19
+ ---------
20
+
21
+ A reference manual is provided with the distribution. Refer to "man zmq"
22
+ after you have installed 0MQ on your system, or see http://api.zeromq.org.
23
+
24
+ Website: http://www.zeromq.org/
25
+
26
+ Development mailing list: zeromq-dev@lists.zeromq.org
27
+ Announcements mailing list: zeromq-announce@lists.zeromq.org
28
+
29
+ Git repository: http://github.com/zeromq/libzmq
30
+
31
+ 0MQ developers can also be found on the IRC channel #zeromq, on the
32
+ Freenode network (irc.freenode.net).
33
+
34
+ Copying
35
+ -------
36
+
37
+ Free use of this software is granted under the terms of the GNU Lesser General
38
+ Public License (LGPL). For details see the files `COPYING` and `COPYING.LESSER`
39
+ included with the 0MQ distribution.
@@ -0,0 +1,582 @@
1
+ dnl ##############################################################################
2
+ dnl # LIBZMQ_CONFIG_LIBTOOL #
3
+ dnl # Configure libtool. Requires AC_CANONICAL_HOST #
4
+ dnl ##############################################################################
5
+ AC_DEFUN([LIBZMQ_CONFIG_LIBTOOL], [{
6
+ AC_REQUIRE([AC_CANONICAL_HOST])
7
+
8
+ # Libtool configuration for different targets
9
+ case "${host_os}" in
10
+ *mingw32*|*cygwin*)
11
+ # Disable static build by default
12
+ AC_DISABLE_STATIC
13
+ ;;
14
+ *)
15
+ # Everything else with static enabled
16
+ AC_ENABLE_STATIC
17
+ ;;
18
+ esac
19
+ }])
20
+
21
+ dnl ##############################################################################
22
+ dnl # LIBZMQ_CHECK_LANG_ICC([action-if-found], [action-if-not-found]) #
23
+ dnl # Check if the current language is compiled using ICC #
24
+ dnl # Adapted from http://software.intel.com/en-us/forums/showthread.php?t=67984 #
25
+ dnl ##############################################################################
26
+ AC_DEFUN([LIBZMQ_CHECK_LANG_ICC],
27
+ [AC_CACHE_CHECK([whether we are using Intel _AC_LANG compiler],
28
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler],
29
+ [_AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
30
+ [[#ifndef __INTEL_COMPILER
31
+ error if not ICC
32
+ #endif
33
+ ]])],
34
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler="yes" ; $1],
35
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler="no" ; $2])
36
+ ])])
37
+
38
+ dnl ##############################################################################
39
+ dnl # LIBZMQ_CHECK_LANG_SUN_STUDIO([action-if-found], [action-if-not-found]) #
40
+ dnl # Check if the current language is compiled using Sun Studio #
41
+ dnl ##############################################################################
42
+ AC_DEFUN([LIBZMQ_CHECK_LANG_SUN_STUDIO],
43
+ [AC_CACHE_CHECK([whether we are using Sun Studio _AC_LANG compiler],
44
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_sun_studio_compiler],
45
+ [_AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
46
+ [[#if !defined(__SUNPRO_CC) && !defined(__SUNPRO_C)
47
+ error if not sun studio
48
+ #endif
49
+ ]])],
50
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_sun_studio_compiler="yes" ; $1],
51
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_sun_studio_compiler="no" ; $2])
52
+ ])])
53
+
54
+ dnl ##############################################################################
55
+ dnl # LIBZMQ_CHECK_LANG_CLANG([action-if-found], [action-if-not-found]) #
56
+ dnl # Check if the current language is compiled using clang #
57
+ dnl ##############################################################################
58
+ AC_DEFUN([LIBZMQ_CHECK_LANG_CLANG],
59
+ [AC_CACHE_CHECK([whether we are using clang _AC_LANG compiler],
60
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_clang_compiler],
61
+ [_AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
62
+ [[#ifndef __clang__
63
+ error if not clang
64
+ #endif
65
+ ]])],
66
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_clang_compiler="yes" ; $1],
67
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_clang_compiler="no" ; $2])
68
+ ])])
69
+
70
+ dnl ##############################################################################
71
+ dnl # LIBZMQ_CHECK_LANG_GCC4([action-if-found], [action-if-not-found]) #
72
+ dnl # Check if the current language is compiled using clang #
73
+ dnl ##############################################################################
74
+ AC_DEFUN([LIBZMQ_CHECK_LANG_GCC4],
75
+ [AC_CACHE_CHECK([whether we are using gcc >= 4 _AC_LANG compiler],
76
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_gcc4_compiler],
77
+ [_AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
78
+ [[#if (!defined __GNUC__ || __GNUC__ < 4)
79
+ error if not gcc4 or higher
80
+ #endif
81
+ ]])],
82
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_gcc4_compiler="yes" ; $1],
83
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_gcc4_compiler="no" ; $2])
84
+ ])])
85
+
86
+ dnl ##############################################################################
87
+ dnl # LIBZMQ_CHECK_DOC_BUILD #
88
+ dnl # Check whether to build documentation and install man-pages #
89
+ dnl ##############################################################################
90
+ AC_DEFUN([LIBZMQ_CHECK_DOC_BUILD], [{
91
+ # Allow user to disable doc build
92
+ AC_ARG_WITH([documentation], [AS_HELP_STRING([--without-documentation],
93
+ [disable documentation build even if asciidoc and xmlto are present [default=no]])])
94
+
95
+ if test "x$with_documentation" = "xno"; then
96
+ libzmq_build_doc="no"
97
+ libzmq_install_man="no"
98
+ else
99
+ # Determine whether or not documentation should be built and installed.
100
+ libzmq_build_doc="yes"
101
+ libzmq_install_man="yes"
102
+ # Check for asciidoc and xmlto and don't build the docs if these are not installed.
103
+ AC_CHECK_PROG(libzmq_have_asciidoc, asciidoc, yes, no)
104
+ AC_CHECK_PROG(libzmq_have_xmlto, xmlto, yes, no)
105
+ if test "x$libzmq_have_asciidoc" = "xno" -o "x$libzmq_have_xmlto" = "xno"; then
106
+ libzmq_build_doc="no"
107
+ # Tarballs built with 'make dist' ship with prebuilt documentation.
108
+ if ! test -f doc/zmq.7; then
109
+ libzmq_install_man="no"
110
+ AC_MSG_WARN([You are building an unreleased version of 0MQ and asciidoc or xmlto are not installed.])
111
+ AC_MSG_WARN([Documentation will not be built and manual pages will not be installed.])
112
+ fi
113
+ fi
114
+
115
+ # Do not install man pages if on mingw
116
+ if test "x$libzmq_on_mingw32" = "xyes"; then
117
+ libzmq_install_man="no"
118
+ fi
119
+ fi
120
+
121
+ AC_MSG_CHECKING([whether to build documentation])
122
+ AC_MSG_RESULT([$libzmq_build_doc])
123
+
124
+ AC_MSG_CHECKING([whether to install manpages])
125
+ AC_MSG_RESULT([$libzmq_install_man])
126
+
127
+ AM_CONDITIONAL(BUILD_DOC, test "x$libzmq_build_doc" = "xyes")
128
+ AM_CONDITIONAL(INSTALL_MAN, test "x$libzmq_install_man" = "xyes")
129
+ }])
130
+
131
+ dnl ##############################################################################
132
+ dnl # LIBZMQ_CHECK_LANG_COMPILER([action-if-found], [action-if-not-found]) #
133
+ dnl # Check that compiler for the current language actually works #
134
+ dnl ##############################################################################
135
+ AC_DEFUN([LIBZMQ_CHECK_LANG_COMPILER], [{
136
+ # Test that compiler for the current language actually works
137
+ AC_CACHE_CHECK([whether the _AC_LANG compiler works],
138
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_compiler_works],
139
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
140
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_compiler_works="yes" ; $1],
141
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_compiler_works="no" ; $2])
142
+ ])
143
+
144
+ if test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_compiler_works" != "xyes"; then
145
+ AC_MSG_ERROR([Unable to find a working _AC_LANG compiler])
146
+ fi
147
+ }])
148
+
149
+ dnl ##############################################################################
150
+ dnl # LIBZMQ_CHECK_COMPILERS #
151
+ dnl # Check compiler characteristics. This is so that we can AC_REQUIRE checks #
152
+ dnl ##############################################################################
153
+ AC_DEFUN([LIBZMQ_CHECK_COMPILERS], [{
154
+ # For that the compiler works and try to come up with the type
155
+ AC_LANG_PUSH([C])
156
+ LIBZMQ_CHECK_LANG_COMPILER
157
+
158
+ LIBZMQ_CHECK_LANG_ICC
159
+ LIBZMQ_CHECK_LANG_SUN_STUDIO
160
+ LIBZMQ_CHECK_LANG_CLANG
161
+ LIBZMQ_CHECK_LANG_GCC4
162
+ AC_LANG_POP([C])
163
+
164
+ AC_LANG_PUSH(C++)
165
+ LIBZMQ_CHECK_LANG_COMPILER
166
+
167
+ LIBZMQ_CHECK_LANG_ICC
168
+ LIBZMQ_CHECK_LANG_SUN_STUDIO
169
+ LIBZMQ_CHECK_LANG_CLANG
170
+ LIBZMQ_CHECK_LANG_GCC4
171
+ AC_LANG_POP([C++])
172
+
173
+ # Set GCC and GXX variables correctly
174
+ if test "x$GCC" = "xyes"; then
175
+ if test "xyes" = "x$libzmq_cv_c_intel_compiler"; then
176
+ GCC="no"
177
+ fi
178
+ fi
179
+
180
+ if test "x$GXX" = "xyes"; then
181
+ if test "xyes" = "x$libzmq_cv_cxx_intel_compiler"; then
182
+ GXX="no"
183
+ fi
184
+ fi
185
+ }])
186
+
187
+ dnl ############################################################################
188
+ dnl # LIBZMQ_CHECK_LANG_FLAG([flag], [action-if-found], [action-if-not-found]) #
189
+ dnl # Check if the compiler supports given flag. Works for C and C++ #
190
+ dnl # Sets libzmq_cv_[]_AC_LANG_ABBREV[]_supports_flag_[FLAG]=yes/no #
191
+ dnl ############################################################################
192
+ AC_DEFUN([LIBZMQ_CHECK_LANG_FLAG], [{
193
+
194
+ AC_REQUIRE([AC_PROG_GREP])
195
+
196
+ AC_MSG_CHECKING([whether _AC_LANG compiler supports $1])
197
+
198
+ libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag_save=$ac_[]_AC_LANG_ABBREV[]_werror_flag
199
+ ac_[]_AC_LANG_ABBREV[]_werror_flag="yes"
200
+
201
+ case "x[]_AC_LANG_ABBREV" in
202
+ xc)
203
+ libzmq_cv_check_lang_flag_save_CFLAGS="$CFLAGS"
204
+ CFLAGS="$CFLAGS $1"
205
+ ;;
206
+ xcxx)
207
+ libzmq_cv_check_lang_flag_save_CPPFLAGS="$CPPFLAGS"
208
+ CPPFLAGS="$CPPFLAGS $1"
209
+ ;;
210
+ *)
211
+ AC_MSG_WARN([testing compiler characteristic on an unknown language])
212
+ ;;
213
+ esac
214
+
215
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
216
+ # This hack exist for ICC, which outputs unknown options as remarks
217
+ # Remarks are not turned into errors even with -Werror on
218
+ [if ($GREP 'ignoring unknown' conftest.err ||
219
+ $GREP 'not supported' conftest.err) >/dev/null 2>&1; then
220
+ eval AS_TR_SH(libzmq_cv_[]_AC_LANG_ABBREV[]_supports_flag_$1)="no"
221
+ else
222
+ eval AS_TR_SH(libzmq_cv_[]_AC_LANG_ABBREV[]_supports_flag_$1)="yes"
223
+ fi],
224
+ [eval AS_TR_SH(libzmq_cv_[]_AC_LANG_ABBREV[]_supports_flag_$1)="no"])
225
+
226
+ case "x[]_AC_LANG_ABBREV" in
227
+ xc)
228
+ CFLAGS="$libzmq_cv_check_lang_flag_save_CFLAGS"
229
+ ;;
230
+ xcxx)
231
+ CPPFLAGS="$libzmq_cv_check_lang_flag_save_CPPFLAGS"
232
+ ;;
233
+ *)
234
+ # nothing to restore
235
+ ;;
236
+ esac
237
+
238
+ # Restore the werror flag
239
+ ac_[]_AC_LANG_ABBREV[]_werror_flag=$libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag_save
240
+
241
+ # Call the action as the flags are restored
242
+ AS_IF([eval test x$]AS_TR_SH(libzmq_cv_[]_AC_LANG_ABBREV[]_supports_flag_$1)[ = "xyes"],
243
+ [AC_MSG_RESULT(yes) ; $2], [AC_MSG_RESULT(no) ; $3])
244
+
245
+ }])
246
+
247
+ dnl ####################################################################################
248
+ dnl # LIBZMQ_CHECK_LANG_FLAG_PREPEND([flag], [action-if-found], [action-if-not-found]) #
249
+ dnl # Check if the compiler supports given flag. Works for C and C++ #
250
+ dnl # This macro prepends the flag to CFLAGS or CPPFLAGS accordingly #
251
+ dnl # Sets libzmq_cv_[]_AC_LANG_ABBREV[]_supports_flag_[FLAG]=yes/no #
252
+ dnl ####################################################################################
253
+ AC_DEFUN([LIBZMQ_CHECK_LANG_FLAG_PREPEND], [{
254
+ LIBZMQ_CHECK_LANG_FLAG([$1])
255
+ case "x[]_AC_LANG_ABBREV" in
256
+ xc)
257
+ AS_IF([eval test x$]AS_TR_SH(libzmq_cv_[]_AC_LANG_ABBREV[]_supports_flag_$1)[ = "xyes"],
258
+ [CFLAGS="$1 $CFLAGS"; $2], $3)
259
+ ;;
260
+ xcxx)
261
+ AS_IF([eval test x$]AS_TR_SH(libzmq_cv_[]_AC_LANG_ABBREV[]_supports_flag_$1)[ = "xyes"],
262
+ [CPPFLAGS="$1 $CPPFLAGS"; $2], $3)
263
+ ;;
264
+ esac
265
+ }])
266
+
267
+ dnl ##############################################################################
268
+ dnl # LIBZMQ_CHECK_ENABLE_DEBUG([action-if-found], [action-if-not-found]) #
269
+ dnl # Check whether to enable debug build and set compiler flags accordingly #
270
+ dnl ##############################################################################
271
+ AC_DEFUN([LIBZMQ_CHECK_ENABLE_DEBUG], [{
272
+
273
+ # Require compiler specifics
274
+ AC_REQUIRE([LIBZMQ_CHECK_COMPILERS])
275
+
276
+ # This flag is checked also in
277
+ AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],
278
+ [Enable debugging information [default=no]])])
279
+
280
+ AC_MSG_CHECKING(whether to enable debugging information)
281
+
282
+ if test "x$enable_debug" = "xyes"; then
283
+
284
+ # GCC, clang and ICC
285
+ if test "x$GCC" = "xyes" -o \
286
+ "x$libzmq_cv_c_intel_compiler" = "xyes" -o \
287
+ "x$libzmq_cv_c_clang_compiler" = "xyes"; then
288
+ CFLAGS="-g -O0 "
289
+ elif test "x$libzmq_cv_c_sun_studio_compiler" = "xyes"; then
290
+ CFLAGS="-g0 "
291
+ fi
292
+
293
+ # GCC, clang and ICC
294
+ if test "x$GXX" = "xyes" -o \
295
+ "x$libzmq_cv_cxx_intel_compiler" = "xyes" -o \
296
+ "x$libzmq_cv_cxx_clang_compiler" = "xyes"; then
297
+ CPPFLAGS="-g -O0 "
298
+ CXXFLAGS="-g -O0 "
299
+ # Sun studio
300
+ elif test "x$libzmq_cv_cxx_sun_studio_compiler" = "xyes"; then
301
+ CPPFLAGS="-g0 "
302
+ CXXFLAGS="-g0 "
303
+ fi
304
+
305
+ if test "x$ZMQ_ORIG_CFLAGS" != "xnone"; then
306
+ CFLAGS="${CFLAGS} ${ZMQ_ORIG_CFLAGS}"
307
+ fi
308
+ if test "x$ZMQ_ORIG_CPPFLAGS" != "xnone"; then
309
+ CPPFLAGS="${CPPFLAGS} ${ZMQ_ORIG_CPPFLAGS}"
310
+ fi
311
+ if test "x$ZMQ_ORIG_CXXFLAGS" != "xnone"; then
312
+ CXXFLAGS="${CXXFLAGS} ${ZMQ_ORIG_CXXFLAGS}"
313
+ fi
314
+ AC_MSG_RESULT(yes)
315
+ else
316
+ AC_MSG_RESULT(no)
317
+ fi
318
+ }])
319
+
320
+ dnl ##############################################################################
321
+ dnl # LIBZMQ_WITH_GCOV([action-if-found], [action-if-not-found]) #
322
+ dnl # Check whether to build with code coverage #
323
+ dnl ##############################################################################
324
+ AC_DEFUN([LIBZMQ_WITH_GCOV], [{
325
+ # Require compiler specifics
326
+ AC_REQUIRE([LIBZMQ_CHECK_COMPILERS])
327
+
328
+ AC_ARG_WITH(gcov, [AS_HELP_STRING([--with-gcov=yes/no],
329
+ [With GCC Code Coverage reporting.])],
330
+ [ZMQ_GCOV="$withval"])
331
+
332
+ AC_MSG_CHECKING(whether to enable code coverage)
333
+
334
+ if test "x$ZMQ_GCOV" = "xyes"; then
335
+
336
+ if test "x$GXX" != "xyes"; then
337
+ AC_MSG_ERROR([--with-gcov=yes works only with GCC])
338
+ fi
339
+
340
+ CFLAGS="-g -O0 -fprofile-arcs -ftest-coverage"
341
+ if test "x${ZMQ_ORIG_CPPFLAGS}" != "xnone"; then
342
+ CFLAGS="${CFLAGS} ${ZMQ_ORIG_CFLAGS}"
343
+ fi
344
+
345
+ CPPFLAGS="-g -O0 -fprofile-arcs -ftest-coverage"
346
+ if test "x${ZMQ_ORIG_CPPFLAGS}" != "xnone"; then
347
+ CPPFLAGS="${CPPFLAGS} ${ZMQ_ORIG_CPPFLAGS}"
348
+ fi
349
+
350
+ CXXFLAGS="-fprofile-arcs"
351
+ if test "x${ZMQ_ORIG_CXXFLAGS}" != "xnone"; then
352
+ CXXFLAGS="${CXXFLAGS} ${ZMQ_ORIG_CXXFLAGS}"
353
+ fi
354
+
355
+ LIBS="-lgcov ${LIBS}"
356
+ fi
357
+
358
+ AS_IF([test "x$ZMQ_GCOV" = "xyes"],
359
+ [AC_MSG_RESULT(yes) ; $1], [AC_MSG_RESULT(no) ; $2])
360
+ }])
361
+
362
+ dnl ##############################################################################
363
+ dnl # AC_ZMQ_CHECK_WITH_FLAG([flags], [macro]) #
364
+ dnl # Runs a normal autoconf check with compiler flags #
365
+ dnl ##############################################################################
366
+ AC_DEFUN([LIBZMQ_CHECK_WITH_FLAG], [{
367
+ libzmq_check_with_flag_save_CFLAGS="$CFLAGS"
368
+ libzmq_check_with_flag_save_CPPFLAGS="$CPPFLAGS"
369
+
370
+ CFLAGS="$CFLAGS $1"
371
+ CPPFLAGS="$CPPFLAGS $1"
372
+
373
+ # Execute the macro
374
+ $2
375
+
376
+ CFLAGS="$libzmq_check_with_flag_save_CFLAGS"
377
+ CPPFLAGS="$libzmq_check_with_flag_save_CPPFLAGS"
378
+ }])
379
+
380
+ dnl ##############################################################################
381
+ dnl # LIBZMQ_LANG_WALL([action-if-found], [action-if-not-found]) #
382
+ dnl # How to define -Wall for the current compiler #
383
+ dnl # Sets libzmq_cv_[]_AC_LANG_ABBREV[]__wall_flag variable to found style #
384
+ dnl ##############################################################################
385
+ AC_DEFUN([LIBZMQ_LANG_WALL], [{
386
+
387
+ AC_MSG_CHECKING([how to enable additional warnings for _AC_LANG compiler])
388
+
389
+ libzmq_cv_[]_AC_LANG_ABBREV[]_wall_flag=""
390
+
391
+ # C compilers
392
+ case "x[]_AC_LANG_ABBREV" in
393
+ xc)
394
+ # GCC, clang and ICC
395
+ if test "x$GCC" = "xyes" -o \
396
+ "x$libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler" = "xyes" -o \
397
+ "x$libzmq_cv_[]_AC_LANG_ABBREV[]_clang_compiler" = "xyes"; then
398
+ libzmq_cv_[]_AC_LANG_ABBREV[]_wall_flag="-Wall"
399
+ # Sun studio
400
+ elif test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_sun_studio_compiler" = "xyes"; then
401
+ libzmq_cv_[]_AC_LANG_ABBREV[]_wall_flag="-v"
402
+ fi
403
+ ;;
404
+ xcxx)
405
+ # GCC, clang and ICC
406
+ if test "x$GXX" = "xyes" -o \
407
+ "x$libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler" = "xyes" -o \
408
+ "x$libzmq_cv_[]_AC_LANG_ABBREV[]_clang_compiler" = "xyes"; then
409
+ libzmq_cv_[]_AC_LANG_ABBREV[]_wall_flag="-Wall"
410
+ # Sun studio
411
+ elif test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_sun_studio_compiler" = "xyes"; then
412
+ libzmq_cv_[]_AC_LANG_ABBREV[]_wall_flag="+w"
413
+ fi
414
+ ;;
415
+ *)
416
+ ;;
417
+ esac
418
+
419
+ # Call the action
420
+ if test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_wall_flag" != "x"; then
421
+ AC_MSG_RESULT([$libzmq_cv_[]_AC_LANG_ABBREV[]_wall_flag])
422
+ $1
423
+ else
424
+ AC_MSG_RESULT([not found])
425
+ $2
426
+ fi
427
+ }])
428
+
429
+ dnl ####################################################################
430
+ dnl # LIBZMQ_LANG_STRICT([action-if-found], [action-if-not-found]) #
431
+ dnl # Check how to turn on strict standards compliance #
432
+ dnl ####################################################################
433
+ AC_DEFUN([LIBZMQ_LANG_STRICT], [{
434
+ AC_MSG_CHECKING([how to enable strict standards compliance in _AC_LANG compiler])
435
+
436
+ libzmq_cv_[]_AC_LANG_ABBREV[]_strict_flag=""
437
+
438
+ # C compilers
439
+ case "x[]_AC_LANG_ABBREV" in
440
+ xc)
441
+ # GCC, clang and ICC
442
+ if test "x$GCC" = "xyes" -o "x$libzmq_cv_[]_AC_LANG_ABBREV[]_clang_compiler" = "xyes"; then
443
+ libzmq_cv_[]_AC_LANG_ABBREV[]_strict_flag="-pedantic"
444
+ elif test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler" = "xyes"; then
445
+ libzmq_cv_[]_AC_LANG_ABBREV[]_strict_flag="-strict-ansi"
446
+ # Sun studio
447
+ elif test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_sun_studio_compiler" = "xyes"; then
448
+ libzmq_cv_[]_AC_LANG_ABBREV[]_strict_flag="-Xc"
449
+ fi
450
+ ;;
451
+ xcxx)
452
+ # GCC, clang and ICC
453
+ if test "x$GXX" = "xyes" -o "x$libzmq_cv_[]_AC_LANG_ABBREV[]_clang_compiler" = "xyes"; then
454
+ libzmq_cv_[]_AC_LANG_ABBREV[]_strict_flag="-pedantic"
455
+ elif test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler" = "xyes"; then
456
+ libzmq_cv_[]_AC_LANG_ABBREV[]_strict_flag="-strict-ansi"
457
+ # Sun studio
458
+ elif test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_sun_studio_compiler" = "xyes"; then
459
+ libzmq_cv_[]_AC_LANG_ABBREV[]_strict_flag="-compat=5"
460
+ fi
461
+ ;;
462
+ *)
463
+ ;;
464
+ esac
465
+
466
+ # Call the action
467
+ if test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_strict_flag" != "x"; then
468
+ AC_MSG_RESULT([$libzmq_cv_[]_AC_LANG_ABBREV[]_strict_flag])
469
+ $1
470
+ else
471
+ AC_MSG_RESULT([not found])
472
+ $2
473
+ fi
474
+ }])
475
+
476
+ dnl ########################################################################
477
+ dnl # LIBZMQ_LANG_WERROR([action-if-found], [action-if-not-found]) #
478
+ dnl # Check how to turn warnings to errors #
479
+ dnl ########################################################################
480
+ AC_DEFUN([LIBZMQ_LANG_WERROR], [{
481
+ AC_MSG_CHECKING([how to turn warnings to errors in _AC_LANG compiler])
482
+
483
+ libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag=""
484
+
485
+ # C compilers
486
+ case "x[]_AC_LANG_ABBREV" in
487
+ xc)
488
+ # GCC, clang and ICC
489
+ if test "x$GCC" = "xyes" -o "x$libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler" = "xyes"; then
490
+ libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag="-Werror"
491
+ # Sun studio
492
+ elif test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_sun_studio_compiler" = "xyes"; then
493
+ libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag="-errwarn=%all"
494
+ fi
495
+ ;;
496
+ xcxx)
497
+ # GCC, clang and ICC
498
+ if test "x$GXX" = "xyes" -o "x$libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler" = "xyes"; then
499
+ libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag="-Werror"
500
+ # Sun studio
501
+ elif test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_sun_studio_compiler" = "xyes"; then
502
+ libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag="-errwarn=%all"
503
+ fi
504
+ ;;
505
+ *)
506
+ ;;
507
+ esac
508
+
509
+ # Call the action
510
+ if test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag" != "x"; then
511
+ AC_MSG_RESULT([$libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag])
512
+ $1
513
+ else
514
+ AC_MSG_RESULT([not found])
515
+ $2
516
+ fi
517
+ }])
518
+
519
+ dnl ################################################################################
520
+ dnl # LIBZMQ_CHECK_LANG_PRAGMA([pragma], [action-if-found], [action-if-not-found]) #
521
+ dnl # Check if the compiler supports given pragma #
522
+ dnl ################################################################################
523
+ AC_DEFUN([LIBZMQ_CHECK_LANG_PRAGMA], [{
524
+ # Need to know how to enable all warnings
525
+ LIBZMQ_LANG_WALL
526
+
527
+ AC_MSG_CHECKING([whether _AC_LANG compiler supports pragma $1])
528
+
529
+ # Save flags
530
+ libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag_save=$ac_[]_AC_LANG_ABBREV[]_werror_flag
531
+ ac_[]_AC_LANG_ABBREV[]_werror_flag="yes"
532
+
533
+ if test "x[]_AC_LANG_ABBREV" = "xc"; then
534
+ libzmq_cv_check_lang_pragma_save_CFLAGS="$CFLAGS"
535
+ CFLAGS="$CFLAGS $libzmq_cv_[]_AC_LANG_ABBREV[]_wall_flag"
536
+ elif test "x[]_AC_LANG_ABBREV" = "xcxx"; then
537
+ libzmq_cv_check_lang_pragma_save_CPPFLAGS="$CPPFLAGS"
538
+ CPPFLAGS="$CPPFLAGS $libzmq_cv_[]_AC_LANG_ABBREV[]_wall_flag"
539
+ else
540
+ AC_MSG_WARN([testing compiler characteristic on an unknown language])
541
+ fi
542
+
543
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[#pragma $1]])],
544
+ [eval AS_TR_SH(libzmq_cv_[]_AC_LANG_ABBREV[]_supports_pragma_$1)="yes" ; AC_MSG_RESULT(yes)],
545
+ [eval AS_TR_SH(libzmq_cv_[]_AC_LANG_ABBREV[]_supports_pragma_$1)="no" ; AC_MSG_RESULT(no)])
546
+
547
+ if test "x[]_AC_LANG_ABBREV" = "xc"; then
548
+ CFLAGS="$libzmq_cv_check_lang_pragma_save_CFLAGS"
549
+ elif test "x[]_AC_LANG_ABBREV" = "xcxx"; then
550
+ CPPFLAGS="$libzmq_cv_check_lang_pragma_save_CPPFLAGS"
551
+ fi
552
+
553
+ ac_[]_AC_LANG_ABBREV[]_werror_flag=$libzmq_cv_[]_AC_LANG_ABBREV[]_werror_flag_save
554
+
555
+ # Call the action as the flags are restored
556
+ AS_IF([eval test x$]AS_TR_SH(libzmq_cv_[]_AC_LANG_ABBREV[]_supports_pragma_$1)[ = "xyes"],
557
+ [$2], [$3])
558
+ }])
559
+
560
+ dnl ################################################################################
561
+ dnl # LIBZMQ_CHECK_LANG_VISIBILITY([action-if-found], [action-if-not-found]) #
562
+ dnl # Check if the compiler supports dso visibility #
563
+ dnl ################################################################################
564
+ AC_DEFUN([LIBZMQ_CHECK_LANG_VISIBILITY], [{
565
+
566
+ libzmq_cv_[]_AC_LANG_ABBREV[]_visibility_flag=""
567
+
568
+ if test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler" = "xyes" -o \
569
+ "x$libzmq_cv_[]_AC_LANG_ABBREV[]_clang_compiler" = "xyes" -o \
570
+ "x$libzmq_cv_[]_AC_LANG_ABBREV[]_gcc4_compiler" = "xyes"; then
571
+ LIBZMQ_CHECK_LANG_FLAG([-fvisibility=hidden],
572
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_visibility_flag="-fvisibility=hidden"])
573
+ elif test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_sun_studio_compiler" = "xyes"; then
574
+ LIBZMQ_CHECK_LANG_FLAG([-xldscope=hidden],
575
+ [libzmq_cv_[]_AC_LANG_ABBREV[]_visibility_flag="-xldscope=hidden"])
576
+ fi
577
+
578
+ AC_MSG_CHECKING(whether _AC_LANG compiler supports dso visibility)
579
+
580
+ AS_IF([test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_visibility_flag" != "x"],
581
+ [AC_MSG_RESULT(yes) ; $1], [AC_MSG_RESULT(no) ; $2])
582
+ }])