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.
- data/LICENSE +703 -0
- data/README.md +31 -0
- data/lib/libzmq.rb +17 -0
- data/lib/libzmq/ffi-rzmq.rb +3 -0
- data/libzmq/Makefile +5 -0
- data/libzmq/extconf.rb +24 -0
- data/libzmq/zeromq-2.1.7/AUTHORS +92 -0
- data/libzmq/zeromq-2.1.7/COPYING +674 -0
- data/libzmq/zeromq-2.1.7/COPYING.LESSER +206 -0
- data/libzmq/zeromq-2.1.7/ChangeLog +15620 -0
- data/libzmq/zeromq-2.1.7/INSTALL +237 -0
- data/libzmq/zeromq-2.1.7/MAINTAINERS +56 -0
- data/libzmq/zeromq-2.1.7/Makefile.am +42 -0
- data/libzmq/zeromq-2.1.7/Makefile.in +779 -0
- data/libzmq/zeromq-2.1.7/NEWS +275 -0
- data/libzmq/zeromq-2.1.7/README +39 -0
- data/libzmq/zeromq-2.1.7/acinclude.m4 +582 -0
- data/libzmq/zeromq-2.1.7/aclocal.m4 +1206 -0
- data/libzmq/zeromq-2.1.7/autogen.sh +45 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/Makefile.am +8 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/Makefile.in +390 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_local_lat/c_local_lat.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_local_thr/c_local_thr.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_remote_lat/c_remote_lat.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_remote_thr/c_remote_thr.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/libzmq/libzmq.vcproj +783 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/msvc.sln +89 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/platform.hpp +32 -0
- data/libzmq/zeromq-2.1.7/builds/redhat/zeromq.spec.in +139 -0
- data/libzmq/zeromq-2.1.7/config/compile +143 -0
- data/libzmq/zeromq-2.1.7/config/config.guess +1502 -0
- data/libzmq/zeromq-2.1.7/config/config.sub +1714 -0
- data/libzmq/zeromq-2.1.7/config/depcomp +630 -0
- data/libzmq/zeromq-2.1.7/config/install-sh +520 -0
- data/libzmq/zeromq-2.1.7/config/libtool.m4 +7377 -0
- data/libzmq/zeromq-2.1.7/config/ltmain.sh +8413 -0
- data/libzmq/zeromq-2.1.7/config/ltoptions.m4 +368 -0
- data/libzmq/zeromq-2.1.7/config/ltsugar.m4 +123 -0
- data/libzmq/zeromq-2.1.7/config/ltversion.m4 +23 -0
- data/libzmq/zeromq-2.1.7/config/lt~obsolete.m4 +92 -0
- data/libzmq/zeromq-2.1.7/config/missing +376 -0
- data/libzmq/zeromq-2.1.7/configure +21645 -0
- data/libzmq/zeromq-2.1.7/configure.in +380 -0
- data/libzmq/zeromq-2.1.7/doc/Makefile.am +46 -0
- data/libzmq/zeromq-2.1.7/doc/Makefile.in +546 -0
- data/libzmq/zeromq-2.1.7/doc/asciidoc.conf +56 -0
- data/libzmq/zeromq-2.1.7/doc/zmq.7 +242 -0
- data/libzmq/zeromq-2.1.7/doc/zmq.html +846 -0
- data/libzmq/zeromq-2.1.7/doc/zmq.txt +218 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_bind.3 +166 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_bind.html +746 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_bind.txt +91 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_close.3 +81 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_close.html +645 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_close.txt +52 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_connect.3 +161 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_connect.html +732 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_connect.txt +89 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_cpp.7 +410 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_cpp.html +765 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_cpp.txt +212 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_device.3 +140 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_device.html +736 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_device.txt +138 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_epgm.7 +209 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_epgm.html +749 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_epgm.txt +162 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_errno.3 +78 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_errno.html +634 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_errno.txt +50 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.3 +944 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.html +1713 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.txt +407 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_init.3 +71 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_init.html +635 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_init.txt +51 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_inproc.7 +115 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_inproc.html +669 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_inproc.txt +89 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_ipc.7 +109 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_ipc.html +662 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_ipc.txt +80 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.3 +81 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.html +647 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.txt +55 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.3 +95 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.html +656 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.txt +57 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.3 +76 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.html +633 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.txt +48 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.3 +110 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.html +656 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.txt +65 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.3 +138 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.html +678 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.txt +83 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.3 +97 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.html +656 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.txt +58 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.3 +79 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.html +645 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.txt +52 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.3 +76 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.html +633 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.txt +48 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_pgm.7 +209 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_pgm.html +749 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_pgm.txt +162 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_poll.3 +204 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_poll.html +755 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_poll.txt +132 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_recv.3 +172 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_recv.html +746 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_recv.txt +121 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_send.3 +185 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_send.html +755 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_send.txt +120 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.3 +878 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.html +1603 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.txt +382 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_socket.3 +779 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_socket.html +1424 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_socket.txt +342 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_strerror.3 +78 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_strerror.html +634 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_strerror.txt +55 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_tcp.7 +244 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_tcp.html +755 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_tcp.txt +162 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_term.3 +135 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_term.html +672 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_term.txt +65 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_version.3 +78 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_version.html +632 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_version.txt +53 -0
- data/libzmq/zeromq-2.1.7/foreign/openpgm/Makefile.am +8 -0
- data/libzmq/zeromq-2.1.7/foreign/openpgm/Makefile.in +588 -0
- data/libzmq/zeromq-2.1.7/foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz +0 -0
- data/libzmq/zeromq-2.1.7/foreign/xmlParser/xmlParser.cpp +2923 -0
- data/libzmq/zeromq-2.1.7/foreign/xmlParser/xmlParser.hpp +762 -0
- data/libzmq/zeromq-2.1.7/include/zmq.h +269 -0
- data/libzmq/zeromq-2.1.7/include/zmq.hpp +301 -0
- data/libzmq/zeromq-2.1.7/include/zmq_utils.h +64 -0
- data/libzmq/zeromq-2.1.7/perf/Makefile.am +21 -0
- data/libzmq/zeromq-2.1.7/perf/Makefile.in +566 -0
- data/libzmq/zeromq-2.1.7/perf/inproc_lat.cpp +232 -0
- data/libzmq/zeromq-2.1.7/perf/inproc_thr.cpp +246 -0
- data/libzmq/zeromq-2.1.7/perf/local_lat.cpp +108 -0
- data/libzmq/zeromq-2.1.7/perf/local_thr.cpp +138 -0
- data/libzmq/zeromq-2.1.7/perf/remote_lat.cpp +121 -0
- data/libzmq/zeromq-2.1.7/perf/remote_thr.cpp +104 -0
- data/libzmq/zeromq-2.1.7/src/Makefile.am +155 -0
- data/libzmq/zeromq-2.1.7/src/Makefile.in +1320 -0
- data/libzmq/zeromq-2.1.7/src/array.hpp +147 -0
- data/libzmq/zeromq-2.1.7/src/atomic_counter.hpp +164 -0
- data/libzmq/zeromq-2.1.7/src/atomic_ptr.hpp +159 -0
- data/libzmq/zeromq-2.1.7/src/blob.hpp +34 -0
- data/libzmq/zeromq-2.1.7/src/clock.cpp +118 -0
- data/libzmq/zeromq-2.1.7/src/clock.hpp +60 -0
- data/libzmq/zeromq-2.1.7/src/command.cpp +39 -0
- data/libzmq/zeromq-2.1.7/src/command.hpp +147 -0
- data/libzmq/zeromq-2.1.7/src/config.hpp +88 -0
- data/libzmq/zeromq-2.1.7/src/connect_session.cpp +119 -0
- data/libzmq/zeromq-2.1.7/src/connect_session.hpp +65 -0
- data/libzmq/zeromq-2.1.7/src/ctx.cpp +322 -0
- data/libzmq/zeromq-2.1.7/src/ctx.hpp +159 -0
- data/libzmq/zeromq-2.1.7/src/decoder.cpp +129 -0
- data/libzmq/zeromq-2.1.7/src/decoder.hpp +207 -0
- data/libzmq/zeromq-2.1.7/src/device.cpp +120 -0
- data/libzmq/zeromq-2.1.7/src/device.hpp +32 -0
- data/libzmq/zeromq-2.1.7/src/devpoll.cpp +190 -0
- data/libzmq/zeromq-2.1.7/src/devpoll.hpp +100 -0
- data/libzmq/zeromq-2.1.7/src/dist.cpp +200 -0
- data/libzmq/zeromq-2.1.7/src/dist.hpp +90 -0
- data/libzmq/zeromq-2.1.7/src/encoder.cpp +90 -0
- data/libzmq/zeromq-2.1.7/src/encoder.hpp +184 -0
- data/libzmq/zeromq-2.1.7/src/epoll.cpp +177 -0
- data/libzmq/zeromq-2.1.7/src/epoll.hpp +96 -0
- data/libzmq/zeromq-2.1.7/src/err.cpp +238 -0
- data/libzmq/zeromq-2.1.7/src/err.hpp +145 -0
- data/libzmq/zeromq-2.1.7/src/fd.hpp +45 -0
- data/libzmq/zeromq-2.1.7/src/fq.cpp +164 -0
- data/libzmq/zeromq-2.1.7/src/fq.hpp +80 -0
- data/libzmq/zeromq-2.1.7/src/i_engine.hpp +53 -0
- data/libzmq/zeromq-2.1.7/src/i_inout.hpp +50 -0
- data/libzmq/zeromq-2.1.7/src/i_poll_events.hpp +46 -0
- data/libzmq/zeromq-2.1.7/src/io_object.cpp +107 -0
- data/libzmq/zeromq-2.1.7/src/io_object.hpp +78 -0
- data/libzmq/zeromq-2.1.7/src/io_thread.cpp +109 -0
- data/libzmq/zeromq-2.1.7/src/io_thread.hpp +88 -0
- data/libzmq/zeromq-2.1.7/src/ip.cpp +339 -0
- data/libzmq/zeromq-2.1.7/src/ip.hpp +68 -0
- data/libzmq/zeromq-2.1.7/src/kqueue.cpp +194 -0
- data/libzmq/zeromq-2.1.7/src/kqueue.hpp +103 -0
- data/libzmq/zeromq-2.1.7/src/lb.cpp +174 -0
- data/libzmq/zeromq-2.1.7/src/lb.hpp +79 -0
- data/libzmq/zeromq-2.1.7/src/libzmq.pc.in +10 -0
- data/libzmq/zeromq-2.1.7/src/likely.hpp +33 -0
- data/libzmq/zeromq-2.1.7/src/mailbox.cpp +382 -0
- data/libzmq/zeromq-2.1.7/src/mailbox.hpp +62 -0
- data/libzmq/zeromq-2.1.7/src/msg_content.hpp +52 -0
- data/libzmq/zeromq-2.1.7/src/mutex.hpp +121 -0
- data/libzmq/zeromq-2.1.7/src/named_session.cpp +85 -0
- data/libzmq/zeromq-2.1.7/src/named_session.hpp +57 -0
- data/libzmq/zeromq-2.1.7/src/object.cpp +467 -0
- data/libzmq/zeromq-2.1.7/src/object.hpp +127 -0
- data/libzmq/zeromq-2.1.7/src/options.cpp +336 -0
- data/libzmq/zeromq-2.1.7/src/options.hpp +87 -0
- data/libzmq/zeromq-2.1.7/src/own.cpp +214 -0
- data/libzmq/zeromq-2.1.7/src/own.hpp +140 -0
- data/libzmq/zeromq-2.1.7/src/pair.cpp +180 -0
- data/libzmq/zeromq-2.1.7/src/pair.hpp +76 -0
- data/libzmq/zeromq-2.1.7/src/pgm_receiver.cpp +259 -0
- data/libzmq/zeromq-2.1.7/src/pgm_receiver.hpp +129 -0
- data/libzmq/zeromq-2.1.7/src/pgm_sender.cpp +215 -0
- data/libzmq/zeromq-2.1.7/src/pgm_sender.hpp +105 -0
- data/libzmq/zeromq-2.1.7/src/pgm_socket.cpp +705 -0
- data/libzmq/zeromq-2.1.7/src/pgm_socket.hpp +118 -0
- data/libzmq/zeromq-2.1.7/src/pipe.cpp +409 -0
- data/libzmq/zeromq-2.1.7/src/pipe.hpp +214 -0
- data/libzmq/zeromq-2.1.7/src/platform.hpp.in +228 -0
- data/libzmq/zeromq-2.1.7/src/poll.cpp +180 -0
- data/libzmq/zeromq-2.1.7/src/poll.hpp +104 -0
- data/libzmq/zeromq-2.1.7/src/poller.hpp +73 -0
- data/libzmq/zeromq-2.1.7/src/poller_base.cpp +99 -0
- data/libzmq/zeromq-2.1.7/src/poller_base.hpp +84 -0
- data/libzmq/zeromq-2.1.7/src/pub.cpp +31 -0
- data/libzmq/zeromq-2.1.7/src/pub.hpp +44 -0
- data/libzmq/zeromq-2.1.7/src/pull.cpp +61 -0
- data/libzmq/zeromq-2.1.7/src/pull.hpp +60 -0
- data/libzmq/zeromq-2.1.7/src/push.cpp +62 -0
- data/libzmq/zeromq-2.1.7/src/push.hpp +59 -0
- data/libzmq/zeromq-2.1.7/src/reaper.cpp +121 -0
- data/libzmq/zeromq-2.1.7/src/reaper.hpp +77 -0
- data/libzmq/zeromq-2.1.7/src/rep.cpp +131 -0
- data/libzmq/zeromq-2.1.7/src/rep.hpp +59 -0
- data/libzmq/zeromq-2.1.7/src/req.cpp +121 -0
- data/libzmq/zeromq-2.1.7/src/req.hpp +58 -0
- data/libzmq/zeromq-2.1.7/src/select.cpp +211 -0
- data/libzmq/zeromq-2.1.7/src/select.hpp +116 -0
- data/libzmq/zeromq-2.1.7/src/semaphore.hpp +189 -0
- data/libzmq/zeromq-2.1.7/src/session.cpp +347 -0
- data/libzmq/zeromq-2.1.7/src/session.hpp +150 -0
- data/libzmq/zeromq-2.1.7/src/socket_base.cpp +811 -0
- data/libzmq/zeromq-2.1.7/src/socket_base.hpp +207 -0
- data/libzmq/zeromq-2.1.7/src/stdint.hpp +63 -0
- data/libzmq/zeromq-2.1.7/src/sub.cpp +75 -0
- data/libzmq/zeromq-2.1.7/src/sub.hpp +50 -0
- data/libzmq/zeromq-2.1.7/src/swap.cpp +325 -0
- data/libzmq/zeromq-2.1.7/src/swap.hpp +123 -0
- data/libzmq/zeromq-2.1.7/src/tcp_connecter.cpp +310 -0
- data/libzmq/zeromq-2.1.7/src/tcp_connecter.hpp +81 -0
- data/libzmq/zeromq-2.1.7/src/tcp_listener.cpp +371 -0
- data/libzmq/zeromq-2.1.7/src/tcp_listener.hpp +73 -0
- data/libzmq/zeromq-2.1.7/src/tcp_socket.cpp +228 -0
- data/libzmq/zeromq-2.1.7/src/tcp_socket.hpp +72 -0
- data/libzmq/zeromq-2.1.7/src/thread.cpp +97 -0
- data/libzmq/zeromq-2.1.7/src/thread.hpp +78 -0
- data/libzmq/zeromq-2.1.7/src/transient_session.cpp +41 -0
- data/libzmq/zeromq-2.1.7/src/transient_session.hpp +52 -0
- data/libzmq/zeromq-2.1.7/src/trie.cpp +181 -0
- data/libzmq/zeromq-2.1.7/src/trie.hpp +59 -0
- data/libzmq/zeromq-2.1.7/src/uuid.cpp +233 -0
- data/libzmq/zeromq-2.1.7/src/uuid.hpp +111 -0
- data/libzmq/zeromq-2.1.7/src/windows.hpp +79 -0
- data/libzmq/zeromq-2.1.7/src/wire.hpp +99 -0
- data/libzmq/zeromq-2.1.7/src/xpub.cpp +76 -0
- data/libzmq/zeromq-2.1.7/src/xpub.hpp +61 -0
- data/libzmq/zeromq-2.1.7/src/xrep.cpp +337 -0
- data/libzmq/zeromq-2.1.7/src/xrep.hpp +116 -0
- data/libzmq/zeromq-2.1.7/src/xreq.cpp +74 -0
- data/libzmq/zeromq-2.1.7/src/xreq.hpp +65 -0
- data/libzmq/zeromq-2.1.7/src/xsub.cpp +172 -0
- data/libzmq/zeromq-2.1.7/src/xsub.hpp +80 -0
- data/libzmq/zeromq-2.1.7/src/ypipe.hpp +209 -0
- data/libzmq/zeromq-2.1.7/src/yqueue.hpp +198 -0
- data/libzmq/zeromq-2.1.7/src/zmq.cpp +798 -0
- data/libzmq/zeromq-2.1.7/src/zmq_connecter.cpp +166 -0
- data/libzmq/zeromq-2.1.7/src/zmq_connecter.hpp +92 -0
- data/libzmq/zeromq-2.1.7/src/zmq_engine.cpp +220 -0
- data/libzmq/zeromq-2.1.7/src/zmq_engine.hpp +87 -0
- data/libzmq/zeromq-2.1.7/src/zmq_init.cpp +216 -0
- data/libzmq/zeromq-2.1.7/src/zmq_init.hpp +93 -0
- data/libzmq/zeromq-2.1.7/src/zmq_listener.cpp +78 -0
- data/libzmq/zeromq-2.1.7/src/zmq_listener.hpp +67 -0
- data/libzmq/zeromq-2.1.7/tests/Makefile.am +30 -0
- data/libzmq/zeromq-2.1.7/tests/Makefile.in +713 -0
- data/libzmq/zeromq-2.1.7/tests/test_hwm.cpp +68 -0
- data/libzmq/zeromq-2.1.7/tests/test_pair_inproc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_pair_ipc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_pair_tcp.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_reqrep_inproc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_reqrep_ipc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_reqrep_tcp.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_shutdown_stress.cpp +87 -0
- data/libzmq/zeromq-2.1.7/tests/testutil.hpp +130 -0
- data/libzmq/zeromq-2.1.7/version.sh +21 -0
- data/libzmq/zeromq-2.1.7/zeromq.spec +139 -0
- 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
|
+
}])
|