1ACLOCAL_AMFLAGS = -I config
2
3SUBDIRS = doc
4
5DIST_SUBDIRS = doc builds builds/deprecated-msvc
6
7pkgconfig_DATA = src/libzmq.pc
8
9AM_CPPFLAGS = \
10	-I$(top_builddir)/include \
11	-I$(top_srcdir)/include
12
13#
14# libraries/binaries
15#
16lib_LTLIBRARIES = src/libzmq.la
17
18include_HEADERS = \
19	include/zmq.h \
20	include/zmq_utils.h
21
22src_libzmq_la_SOURCES = \
23	src/address.cpp \
24	src/address.hpp \
25	src/array.hpp \
26	src/atomic_counter.hpp \
27	src/atomic_ptr.hpp \
28	src/blob.hpp \
29	src/channel.cpp \
30	src/channel.hpp \
31	src/client.cpp \
32	src/client.hpp \
33	src/clock.cpp \
34	src/clock.hpp \
35	src/command.hpp \
36	src/compat.hpp \
37	src/condition_variable.hpp \
38	src/config.hpp \
39	src/ctx.cpp \
40	src/ctx.hpp \
41	src/curve_client.cpp \
42	src/curve_client.hpp \
43	src/curve_client_tools.hpp \
44	src/curve_mechanism_base.cpp \
45	src/curve_mechanism_base.hpp \
46	src/curve_server.cpp \
47	src/curve_server.hpp \
48	src/dbuffer.hpp \
49	src/dealer.cpp \
50	src/dealer.hpp \
51	src/decoder.hpp \
52	src/devpoll.cpp \
53	src/devpoll.hpp \
54	src/dgram.cpp \
55	src/dgram.hpp \
56	src/dish.cpp \
57	src/dish.hpp \
58	src/dist.cpp \
59	src/dist.hpp \
60	src/encoder.hpp \
61	src/endpoint.hpp \
62	src/endpoint.cpp \
63	src/epoll.cpp \
64	src/epoll.hpp \
65	src/err.cpp \
66	src/err.hpp \
67	src/fd.hpp \
68	src/fq.cpp \
69	src/fq.hpp \
70	src/gather.cpp \
71	src/gather.hpp \
72	src/generic_mtrie.hpp \
73	src/generic_mtrie_impl.hpp \
74	src/gssapi_mechanism_base.cpp \
75	src/gssapi_mechanism_base.hpp \
76	src/gssapi_client.cpp \
77	src/gssapi_client.hpp \
78	src/gssapi_server.cpp \
79	src/gssapi_server.hpp \
80	src/i_encoder.hpp \
81	src/i_engine.hpp \
82	src/i_decoder.hpp \
83	src/i_mailbox.hpp \
84	src/i_poll_events.hpp \
85	src/io_object.cpp \
86	src/io_object.hpp \
87	src/io_thread.cpp \
88	src/io_thread.hpp \
89	src/ip.cpp \
90	src/ip.hpp \
91	src/ip_resolver.cpp \
92	src/ip_resolver.hpp \
93	src/ipc_address.cpp \
94	src/ipc_address.hpp \
95	src/ipc_connecter.cpp \
96	src/ipc_connecter.hpp \
97	src/ipc_listener.cpp \
98	src/ipc_listener.hpp \
99	src/kqueue.cpp \
100	src/kqueue.hpp \
101	src/lb.cpp \
102	src/lb.hpp \
103	src/likely.hpp \
104	src/macros.hpp \
105	src/mailbox.cpp \
106	src/mailbox.hpp \
107	src/mailbox_safe.cpp \
108	src/mailbox_safe.hpp \
109	src/mechanism.cpp \
110	src/mechanism.hpp  \
111	src/mechanism_base.cpp \
112	src/mechanism_base.hpp  \
113	src/metadata.cpp \
114	src/metadata.hpp \
115	src/msg.cpp \
116	src/msg.hpp \
117	src/mtrie.cpp \
118	src/mtrie.hpp \
119	src/mutex.hpp \
120	src/norm_engine.cpp \
121	src/norm_engine.hpp \
122	src/null_mechanism.cpp \
123	src/null_mechanism.hpp \
124	src/object.cpp \
125	src/object.hpp \
126	src/options.cpp \
127	src/options.hpp \
128	src/own.cpp \
129	src/own.hpp \
130	src/pair.cpp \
131	src/pair.hpp \
132	src/peer.cpp \
133	src/peer.hpp \
134	src/pgm_receiver.cpp \
135	src/pgm_receiver.hpp \
136	src/pgm_sender.cpp \
137	src/pgm_sender.hpp \
138	src/pgm_socket.cpp \
139	src/pgm_socket.hpp \
140	src/pipe.cpp \
141	src/pipe.hpp \
142	src/plain_client.cpp \
143	src/plain_client.hpp \
144	src/plain_common.hpp \
145	src/plain_server.cpp \
146	src/plain_server.hpp \
147	src/platform.hpp \
148	src/poll.cpp \
149	src/poll.hpp \
150	src/poller.hpp \
151	src/poller_base.cpp \
152	src/poller_base.hpp \
153	src/polling_util.cpp \
154	src/polling_util.hpp \
155	src/pollset.cpp \
156	src/pollset.hpp \
157	src/precompiled.cpp \
158	src/precompiled.hpp \
159	src/proxy.cpp \
160	src/proxy.hpp \
161	src/pub.cpp \
162	src/pub.hpp \
163	src/pull.cpp \
164	src/pull.hpp \
165	src/push.cpp \
166	src/push.hpp \
167	src/radio.cpp \
168	src/radio.hpp \
169	src/radix_tree.cpp \
170	src/radix_tree.hpp \
171	src/random.cpp \
172	src/random.hpp \
173	src/raw_decoder.cpp \
174	src/raw_decoder.hpp \
175	src/raw_encoder.cpp \
176	src/raw_encoder.hpp \
177	src/raw_engine.cpp \
178	src/raw_engine.hpp \
179	src/reaper.cpp \
180	src/reaper.hpp \
181	src/rep.cpp \
182	src/rep.hpp \
183	src/req.cpp \
184	src/req.hpp \
185	src/router.cpp \
186	src/router.hpp \
187	src/scatter.cpp \
188	src/scatter.hpp \
189	src/secure_allocator.hpp \
190	src/select.cpp \
191	src/select.hpp \
192	src/server.cpp \
193	src/server.hpp \
194	src/session_base.cpp \
195	src/session_base.hpp \
196	src/signaler.cpp \
197	src/signaler.hpp \
198	src/socket_base.cpp \
199	src/socket_base.hpp \
200	src/socks.cpp \
201	src/socks.hpp \
202	src/socks_connecter.cpp \
203	src/socks_connecter.hpp \
204	src/stdint.hpp \
205	src/stream.cpp \
206	src/stream.hpp \
207	src/stream_connecter_base.cpp \
208	src/stream_connecter_base.hpp \
209	src/stream_listener_base.cpp \
210	src/stream_listener_base.hpp \
211	src/stream_engine_base.cpp \
212	src/stream_engine_base.hpp \
213	src/sub.cpp \
214	src/sub.hpp \
215	src/tcp.cpp \
216	src/tcp.hpp \
217	src/tcp_address.cpp \
218	src/tcp_address.hpp \
219	src/tcp_connecter.cpp \
220	src/tcp_connecter.hpp \
221	src/tcp_listener.cpp \
222	src/tcp_listener.hpp \
223	src/thread.cpp \
224	src/thread.hpp \
225	src/timers.cpp \
226	src/timers.hpp \
227	src/tipc_address.cpp \
228	src/tipc_address.hpp \
229	src/tipc_connecter.cpp \
230	src/tipc_connecter.hpp \
231	src/tipc_listener.cpp \
232	src/tipc_listener.hpp \
233	src/trie.cpp \
234	src/trie.hpp \
235	src/udp_address.cpp \
236	src/udp_address.hpp \
237	src/udp_engine.cpp \
238	src/udp_engine.hpp \
239	src/v1_decoder.cpp \
240	src/v1_decoder.hpp \
241	src/v2_decoder.cpp \
242	src/v2_decoder.hpp \
243	src/v1_encoder.cpp \
244	src/v1_encoder.hpp \
245	src/v2_encoder.cpp \
246	src/v2_encoder.hpp \
247	src/v3_1_encoder.cpp \
248	src/v3_1_encoder.hpp \
249	src/v2_protocol.hpp \
250	src/vmci.cpp \
251	src/vmci.hpp \
252	src/vmci_address.cpp \
253	src/vmci_address.hpp \
254	src/vmci_connecter.cpp \
255	src/vmci_connecter.hpp \
256	src/vmci_listener.cpp \
257	src/vmci_listener.hpp \
258	src/windows.hpp \
259	src/wire.hpp \
260	src/xpub.cpp \
261	src/xpub.hpp \
262	src/xsub.cpp \
263	src/xsub.hpp \
264	src/ypipe.hpp \
265	src/ypipe_base.hpp \
266	src/ypipe_conflate.hpp \
267	src/yqueue.hpp \
268	src/zmq.cpp \
269	src/zmq_utils.cpp \
270	src/decoder_allocators.cpp \
271	src/decoder_allocators.hpp \
272	src/socket_poller.cpp \
273	src/socket_poller.hpp \
274	src/zap_client.cpp \
275	src/zap_client.hpp \
276	src/zmtp_engine.cpp \
277	src/zmtp_engine.hpp \
278	src/zmq_draft.h
279
280if USE_WEPOLL
281src_libzmq_la_SOURCES += \
282	external/wepoll/wepoll.c \
283	external/wepoll/wepoll.h
284endif
285
286if USE_TWEETNACL
287src_libzmq_la_SOURCES += \
288	src/tweetnacl.c \
289	src/tweetnacl.h
290endif
291
292if HAVE_WS
293src_libzmq_la_SOURCES += \
294	src/ws_address.cpp \
295	src/ws_address.hpp \
296	src/wss_address.cpp \
297	src/wss_address.hpp \
298	src/ws_connecter.cpp \
299	src/ws_connecter.hpp \
300	src/ws_decoder.cpp \
301	src/ws_decoder.hpp \
302	src/ws_encoder.cpp \
303	src/ws_encoder.hpp \
304	src/ws_engine.cpp \
305	src/ws_engine.hpp \
306	src/ws_listener.cpp \
307	src/ws_listener.hpp \
308	src/ws_protocol.hpp
309endif
310
311if USE_BUILTIN_SHA1
312src_libzmq_la_SOURCES += \
313	external/sha1/sha1.c \
314	external/sha1/sha1.h
315endif
316
317if HAVE_WSS
318src_libzmq_la_SOURCES += \
319	src/wss_engine.cpp \
320	src/wss_engine.hpp
321endif
322
323if ON_MINGW
324src_libzmq_la_LDFLAGS = \
325	-no-undefined \
326	-avoid-version \
327	-version-info @LTVER@ \
328	@LIBZMQ_EXTRA_LDFLAGS@
329else
330if ON_CYGWIN
331src_libzmq_la_LDFLAGS = \
332	-no-undefined \
333	-avoid-version \
334	-version-info @LTVER@ \
335	@LIBZMQ_EXTRA_LDFLAGS@
336else
337if ON_ANDROID
338src_libzmq_la_LDFLAGS = \
339	-avoid-version \
340	-version-info @LTVER@ \
341	@LIBZMQ_EXTRA_LDFLAGS@
342else
343src_libzmq_la_LDFLAGS = \
344	-version-info @LTVER@ \
345	@LIBZMQ_EXTRA_LDFLAGS@
346endif
347endif
348endif
349
350if HAVE_VSCRIPT_COMPLEX
351src_libzmq_la_LDFLAGS += $(VSCRIPT_LDFLAGS),$(srcdir)/src/libzmq.vers
352endif
353
354src_libzmq_la_CPPFLAGS = $(CODE_COVERAGE_CPPFLAGS) $(LIBUNWIND_CFLAGS) $(LIBBSD_CFLAGS)
355src_libzmq_la_CFLAGS = $(CODE_COVERAGE_CFLAGS) $(LIBUNWIND_CFLAGS) $(LIBBSD_CFLAGS)
356src_libzmq_la_CXXFLAGS = @LIBZMQ_EXTRA_CXXFLAGS@ $(CODE_COVERAGE_CXXFLAGS) \
357	$(LIBUNWIND_CFLAGS) $(LIBBSD_CFLAGS)
358src_libzmq_la_LIBADD = $(CODE_COVERAGE_LDFLAGS) $(LIBUNWIND_LIBS) $(LIBBSD_LIBS)
359
360if USE_NSS
361src_libzmq_la_CPPFLAGS += ${NSS3_CFLAGS}
362src_libzmq_la_LIBADD += ${NSS3_LIBS}
363endif
364
365if USE_GNUTLS
366src_libzmq_la_CPPFLAGS += ${GNUTLS_CFLAGS}
367src_libzmq_la_LIBADD += ${GNUTLS_LIBS}
368endif
369
370if USE_LIBSODIUM
371src_libzmq_la_CPPFLAGS += ${sodium_CFLAGS}
372src_libzmq_la_LIBADD += ${sodium_LIBS}
373endif
374
375if HAVE_PGM
376src_libzmq_la_CPPFLAGS += ${pgm_CFLAGS}
377src_libzmq_la_LIBADD += ${pgm_LIBS}
378endif
379
380if HAVE_NORM
381src_libzmq_la_CPPFLAGS += ${norm_CFLAGS}
382src_libzmq_la_LIBADD += ${norm_LIBS}
383endif
384
385if BUILD_GSSAPI
386src_libzmq_la_CPPFLAGS += ${gssapi_krb5_CFLAGS}
387src_libzmq_la_LIBADD += ${gssapi_krb5_LIBS}
388endif
389
390if ENABLE_PERF
391noinst_PROGRAMS = \
392	perf/local_lat \
393	perf/remote_lat \
394	perf/local_thr \
395	perf/remote_thr \
396	perf/inproc_lat \
397	perf/inproc_thr \
398	perf/proxy_thr
399
400perf_local_lat_LDADD = src/libzmq.la
401perf_local_lat_SOURCES = perf/local_lat.cpp
402
403perf_remote_lat_LDADD = src/libzmq.la
404perf_remote_lat_SOURCES = perf/remote_lat.cpp
405
406perf_local_thr_LDADD = src/libzmq.la
407perf_local_thr_SOURCES = perf/local_thr.cpp
408
409perf_remote_thr_LDADD = src/libzmq.la
410perf_remote_thr_SOURCES = perf/remote_thr.cpp
411
412perf_inproc_lat_LDADD = src/libzmq.la
413perf_inproc_lat_SOURCES = perf/inproc_lat.cpp
414
415perf_inproc_thr_LDADD = src/libzmq.la
416perf_inproc_thr_SOURCES = perf/inproc_thr.cpp
417
418perf_proxy_thr_LDADD = src/libzmq.la
419perf_proxy_thr_SOURCES = perf/proxy_thr.cpp
420
421if ENABLE_STATIC
422noinst_PROGRAMS += \
423	perf/benchmark_radix_tree
424
425perf_benchmark_radix_tree_DEPENDENCIES = src/libzmq.la
426perf_benchmark_radix_tree_CPPFLAGS = -I$(top_srcdir)/src
427perf_benchmark_radix_tree_LDADD = $(top_builddir)/src/.libs/libzmq.a \
428	${src_libzmq_la_LIBADD}
429perf_benchmark_radix_tree_SOURCES = perf/benchmark_radix_tree.cpp
430endif
431endif
432
433if ENABLE_CURVE_KEYGEN
434bin_PROGRAMS = tools/curve_keygen
435
436tools_curve_keygen_LDADD = src/libzmq.la
437tools_curve_keygen_SOURCES = tools/curve_keygen.cpp
438endif
439
440#
441# tests
442#
443test_apps = \
444	tests/test_ancillaries \
445	tests/test_system \
446	tests/test_pair_inproc \
447	tests/test_pair_tcp \
448	tests/test_reqrep_inproc \
449	tests/test_reqrep_tcp \
450	tests/test_hwm \
451	tests/test_hwm_pubsub \
452	tests/test_reqrep_device \
453	tests/test_sub_forward \
454	tests/test_invalid_rep \
455	tests/test_msg_flags \
456	tests/test_msg_ffn \
457	tests/test_connect_resolve \
458	tests/test_immediate \
459	tests/test_last_endpoint \
460	tests/test_term_endpoint \
461	tests/test_srcfd \
462	tests/test_monitor \
463	tests/test_router_mandatory \
464	tests/test_router_mandatory_hwm \
465	tests/test_router_handover \
466	tests/test_probe_router \
467	tests/test_stream \
468	tests/test_stream_empty \
469	tests/test_stream_disconnect \
470	tests/test_stream_timeout \
471	tests/test_disconnect_inproc \
472	tests/test_unbind_wildcard \
473	tests/test_ctx_options \
474	tests/test_ctx_destroy \
475        tests/test_security_no_zap_handler \
476        tests/test_security_null \
477	tests/test_security_plain \
478	tests/test_security_zap \
479	tests/test_iov \
480	tests/test_spec_req \
481	tests/test_spec_rep \
482	tests/test_spec_dealer \
483	tests/test_spec_router \
484	tests/test_spec_pushpull \
485	tests/test_req_correlate \
486	tests/test_req_relaxed \
487	tests/test_conflate \
488	tests/test_inproc_connect \
489	tests/test_issue_566 \
490	tests/test_proxy \
491	tests/test_proxy_hwm \
492	tests/test_proxy_single_socket \
493	tests/test_proxy_terminate \
494	tests/test_getsockopt_memset \
495	tests/test_setsockopt \
496	tests/test_diffserv \
497	tests/test_connect_rid \
498	tests/test_bind_src_address \
499	tests/test_metadata \
500	tests/test_capabilities \
501	tests/test_xpub_nodrop \
502	tests/test_xpub_manual \
503	tests/test_xpub_welcome_msg \
504	tests/test_xpub_verbose \
505	tests/test_atomics \
506	tests/test_sockopt_hwm \
507	tests/test_heartbeats \
508	tests/test_stream_exceeds_buffer \
509	tests/test_pub_invert_matching \
510	tests/test_base85 \
511	tests/test_bind_after_connect_tcp \
512	tests/test_sodium \
513	tests/test_reconnect_ivl \
514	tests/test_mock_pub_sub \
515	tests/test_socket_null \
516	tests/test_tcp_accept_filter
517
518UNITY_CPPFLAGS = -I$(top_srcdir)/external/unity -DUNITY_USE_COMMAND_LINE_ARGS -DUNITY_EXCLUDE_FLOAT
519UNITY_LIBS = $(top_builddir)/external/unity/libunity.a
520external_unity_libunity_a_SOURCES = external/unity/unity.c \
521	external/unity/unity.h \
522	external/unity/unity_internals.h
523
524TESTUTIL_CPPFLAGS = ${UNITY_CPPFLAGS}
525TESTUTIL_LIBS = $(top_builddir)/tests/libtestutil.a ${UNITY_LIBS}
526tests_libtestutil_a_SOURCES = \
527        tests/testutil.cpp \
528        tests/testutil.hpp \
529        tests/testutil_monitoring.cpp \
530        tests/testutil_monitoring.hpp \
531        tests/testutil_security.cpp \
532        tests/testutil_security.hpp \
533        tests/testutil_unity.cpp \
534        tests/testutil_unity.hpp
535tests_libtestutil_a_CPPFLAGS = ${UNITY_CPPFLAGS}
536
537noinst_LIBRARIES = external/unity/libunity.a tests/libtestutil.a
538
539tests_test_ancillaries_SOURCES = tests/test_ancillaries.cpp
540tests_test_ancillaries_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
541tests_test_ancillaries_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
542
543tests_test_system_SOURCES = tests/test_system.cpp
544tests_test_system_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
545tests_test_system_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
546
547tests_test_pair_inproc_SOURCES = tests/test_pair_inproc.cpp
548tests_test_pair_inproc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
549tests_test_pair_inproc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
550
551tests_test_pair_tcp_SOURCES = tests/test_pair_tcp.cpp
552tests_test_pair_tcp_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
553tests_test_pair_tcp_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
554
555tests_test_reqrep_inproc_SOURCES = tests/test_reqrep_inproc.cpp
556tests_test_reqrep_inproc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
557tests_test_reqrep_inproc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
558
559tests_test_reqrep_tcp_SOURCES = tests/test_reqrep_tcp.cpp
560tests_test_reqrep_tcp_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
561tests_test_reqrep_tcp_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
562
563tests_test_hwm_SOURCES = tests/test_hwm.cpp
564tests_test_hwm_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
565tests_test_hwm_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
566
567tests_test_hwm_pubsub_SOURCES = tests/test_hwm_pubsub.cpp
568tests_test_hwm_pubsub_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
569tests_test_hwm_pubsub_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
570
571tests_test_reqrep_device_SOURCES = tests/test_reqrep_device.cpp
572tests_test_reqrep_device_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
573tests_test_reqrep_device_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
574
575tests_test_sub_forward_SOURCES = tests/test_sub_forward.cpp
576tests_test_sub_forward_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
577tests_test_sub_forward_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
578
579tests_test_invalid_rep_SOURCES = tests/test_invalid_rep.cpp
580tests_test_invalid_rep_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
581tests_test_invalid_rep_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
582
583tests_test_msg_flags_SOURCES = tests/test_msg_flags.cpp
584tests_test_msg_flags_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
585tests_test_msg_flags_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
586
587tests_test_msg_ffn_SOURCES = tests/test_msg_ffn.cpp
588tests_test_msg_ffn_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
589tests_test_msg_ffn_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
590
591tests_test_connect_resolve_SOURCES = tests/test_connect_resolve.cpp
592tests_test_connect_resolve_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
593tests_test_connect_resolve_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
594
595tests_test_immediate_SOURCES = tests/test_immediate.cpp
596tests_test_immediate_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
597tests_test_immediate_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
598
599tests_test_last_endpoint_SOURCES = tests/test_last_endpoint.cpp
600tests_test_last_endpoint_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
601tests_test_last_endpoint_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
602
603tests_test_term_endpoint_SOURCES = tests/test_term_endpoint.cpp
604tests_test_term_endpoint_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
605tests_test_term_endpoint_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
606
607tests_test_srcfd_SOURCES = tests/test_srcfd.cpp
608tests_test_srcfd_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
609tests_test_srcfd_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
610
611tests_test_monitor_SOURCES = tests/test_monitor.cpp
612tests_test_monitor_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
613tests_test_monitor_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
614
615tests_test_router_mandatory_SOURCES = tests/test_router_mandatory.cpp
616tests_test_router_mandatory_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
617tests_test_router_mandatory_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
618
619tests_test_router_mandatory_hwm_SOURCES = tests/test_router_mandatory_hwm.cpp
620tests_test_router_mandatory_hwm_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
621tests_test_router_mandatory_hwm_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
622
623tests_test_router_handover_SOURCES = tests/test_router_handover.cpp
624tests_test_router_handover_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
625tests_test_router_handover_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
626
627tests_test_probe_router_SOURCES = tests/test_probe_router.cpp
628tests_test_probe_router_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
629tests_test_probe_router_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
630
631tests_test_stream_SOURCES = tests/test_stream.cpp
632tests_test_stream_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
633tests_test_stream_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
634
635tests_test_stream_empty_SOURCES = tests/test_stream_empty.cpp
636tests_test_stream_empty_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
637tests_test_stream_empty_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
638
639tests_test_stream_timeout_SOURCES = tests/test_stream_timeout.cpp
640tests_test_stream_timeout_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
641tests_test_stream_timeout_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
642
643tests_test_stream_disconnect_SOURCES = tests/test_stream_disconnect.cpp
644tests_test_stream_disconnect_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
645tests_test_stream_disconnect_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
646
647tests_test_disconnect_inproc_SOURCES = tests/test_disconnect_inproc.cpp
648tests_test_disconnect_inproc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
649tests_test_disconnect_inproc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
650
651tests_test_unbind_wildcard_SOURCES = tests/test_unbind_wildcard.cpp
652tests_test_unbind_wildcard_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
653tests_test_unbind_wildcard_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
654
655tests_test_ctx_options_SOURCES = tests/test_ctx_options.cpp
656tests_test_ctx_options_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
657tests_test_ctx_options_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
658
659tests_test_iov_SOURCES = tests/test_iov.cpp
660tests_test_iov_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
661tests_test_iov_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
662
663tests_test_ctx_destroy_SOURCES = tests/test_ctx_destroy.cpp
664tests_test_ctx_destroy_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
665tests_test_ctx_destroy_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
666
667tests_test_security_no_zap_handler_SOURCES = tests/test_security_no_zap_handler.cpp
668tests_test_security_no_zap_handler_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
669tests_test_security_no_zap_handler_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
670
671tests_test_security_null_SOURCES = tests/test_security_null.cpp
672tests_test_security_null_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
673tests_test_security_null_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
674
675tests_test_security_plain_SOURCES = tests/test_security_plain.cpp
676tests_test_security_plain_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
677tests_test_security_plain_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
678
679tests_test_security_zap_SOURCES = tests/test_security_zap.cpp
680tests_test_security_zap_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
681tests_test_security_zap_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
682
683tests_test_spec_req_SOURCES = tests/test_spec_req.cpp
684tests_test_spec_req_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
685tests_test_spec_req_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
686
687tests_test_spec_rep_SOURCES = tests/test_spec_rep.cpp
688tests_test_spec_rep_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
689tests_test_spec_rep_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
690
691tests_test_spec_dealer_SOURCES = tests/test_spec_dealer.cpp
692tests_test_spec_dealer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
693tests_test_spec_dealer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
694
695tests_test_spec_router_SOURCES = tests/test_spec_router.cpp
696tests_test_spec_router_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
697tests_test_spec_router_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
698
699tests_test_spec_pushpull_SOURCES = tests/test_spec_pushpull.cpp
700tests_test_spec_pushpull_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
701tests_test_spec_pushpull_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
702
703tests_test_req_correlate_SOURCES = tests/test_req_correlate.cpp
704tests_test_req_correlate_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
705tests_test_req_correlate_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
706
707tests_test_req_relaxed_SOURCES = tests/test_req_relaxed.cpp
708tests_test_req_relaxed_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
709tests_test_req_relaxed_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
710
711tests_test_conflate_SOURCES = tests/test_conflate.cpp
712tests_test_conflate_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
713tests_test_conflate_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
714
715tests_test_inproc_connect_SOURCES = tests/test_inproc_connect.cpp
716tests_test_inproc_connect_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
717tests_test_inproc_connect_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
718
719tests_test_issue_566_SOURCES = tests/test_issue_566.cpp
720tests_test_issue_566_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
721tests_test_issue_566_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
722
723tests_test_proxy_SOURCES = tests/test_proxy.cpp
724tests_test_proxy_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
725tests_test_proxy_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
726
727tests_test_proxy_hwm_SOURCES = tests/test_proxy_hwm.cpp
728tests_test_proxy_hwm_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
729tests_test_proxy_hwm_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
730
731tests_test_proxy_single_socket_SOURCES = tests/test_proxy_single_socket.cpp
732tests_test_proxy_single_socket_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
733tests_test_proxy_single_socket_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
734
735tests_test_proxy_terminate_SOURCES = tests/test_proxy_terminate.cpp
736tests_test_proxy_terminate_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
737tests_test_proxy_terminate_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
738
739tests_test_getsockopt_memset_SOURCES = tests/test_getsockopt_memset.cpp
740tests_test_getsockopt_memset_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
741tests_test_getsockopt_memset_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
742
743tests_test_diffserv_SOURCES = tests/test_diffserv.cpp
744tests_test_diffserv_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
745tests_test_diffserv_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
746
747tests_test_connect_rid_SOURCES = tests/test_connect_rid.cpp
748tests_test_connect_rid_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
749tests_test_connect_rid_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
750
751tests_test_bind_src_address_SOURCES = tests/test_bind_src_address.cpp
752tests_test_bind_src_address_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
753tests_test_bind_src_address_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
754
755tests_test_metadata_SOURCES = tests/test_metadata.cpp
756tests_test_metadata_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
757tests_test_metadata_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
758
759tests_test_capabilities_SOURCES = tests/test_capabilities.cpp
760tests_test_capabilities_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
761tests_test_capabilities_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
762
763tests_test_xpub_nodrop_SOURCES = tests/test_xpub_nodrop.cpp
764tests_test_xpub_nodrop_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
765tests_test_xpub_nodrop_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
766
767tests_test_xpub_manual_SOURCES = tests/test_xpub_manual.cpp
768tests_test_xpub_manual_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
769tests_test_xpub_manual_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
770
771tests_test_xpub_welcome_msg_SOURCES = tests/test_xpub_welcome_msg.cpp
772tests_test_xpub_welcome_msg_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
773tests_test_xpub_welcome_msg_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
774
775tests_test_xpub_verbose_SOURCES = tests/test_xpub_verbose.cpp
776tests_test_xpub_verbose_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
777tests_test_xpub_verbose_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
778
779tests_test_atomics_SOURCES = tests/test_atomics.cpp
780tests_test_atomics_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
781tests_test_atomics_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
782
783tests_test_sockopt_hwm_SOURCES = tests/test_sockopt_hwm.cpp
784tests_test_sockopt_hwm_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
785tests_test_sockopt_hwm_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
786
787tests_test_setsockopt_SOURCES = tests/test_setsockopt.cpp
788tests_test_setsockopt_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
789tests_test_setsockopt_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
790
791tests_test_heartbeats_SOURCES = tests/test_heartbeats.cpp
792tests_test_heartbeats_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
793tests_test_heartbeats_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
794
795tests_test_stream_exceeds_buffer_SOURCES = tests/test_stream_exceeds_buffer.cpp
796tests_test_stream_exceeds_buffer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
797tests_test_stream_exceeds_buffer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
798
799tests_test_pub_invert_matching_SOURCES = tests/test_pub_invert_matching.cpp
800tests_test_pub_invert_matching_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
801tests_test_pub_invert_matching_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
802
803tests_test_bind_after_connect_tcp_SOURCES = tests/test_bind_after_connect_tcp.cpp
804tests_test_bind_after_connect_tcp_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
805tests_test_bind_after_connect_tcp_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
806
807tests_test_base85_SOURCES = tests/test_base85.cpp
808tests_test_base85_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
809tests_test_base85_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
810
811tests_test_sodium_SOURCES = tests/test_sodium.cpp
812tests_test_sodium_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
813tests_test_sodium_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
814
815tests_test_socket_null_SOURCES = tests/test_socket_null.cpp
816tests_test_socket_null_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
817tests_test_socket_null_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
818
819tests_test_reconnect_ivl_SOURCES = tests/test_reconnect_ivl.cpp
820tests_test_reconnect_ivl_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
821tests_test_reconnect_ivl_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
822
823tests_test_mock_pub_sub_SOURCES = tests/test_mock_pub_sub.cpp
824tests_test_mock_pub_sub_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
825tests_test_mock_pub_sub_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
826
827tests_test_tcp_accept_filter_SOURCES = tests/test_tcp_accept_filter.cpp
828tests_test_tcp_accept_filter_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
829tests_test_tcp_accept_filter_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
830
831if HAVE_CURVE
832
833test_apps += \
834	tests/test_security_curve
835
836tests_test_security_curve_SOURCES = \
837	tests/test_security_curve.cpp \
838        src/curve_client_tools.hpp \
839	src/clock.hpp \
840	src/clock.cpp \
841	src/random.hpp \
842	src/random.cpp \
843	src/err.hpp \
844	src/err.cpp
845
846if USE_TWEETNACL
847tests_test_security_curve_SOURCES += \
848	src/tweetnacl.c
849endif
850
851tests_test_security_curve_LDADD = \
852        ${TESTUTIL_LIBS} src/libzmq.la $(LIBUNWIND_LIBS) $(LIBBSD_LIBS)
853tests_test_security_curve_CPPFLAGS = \
854        ${TESTUTIL_CPPFLAGS} \
855	${LIBUNWIND_CFLAGS}  ${LIBBSD_CFLAGS}
856
857if USE_LIBSODIUM
858tests_test_security_curve_CPPFLAGS += \
859	${sodium_CFLAGS}
860tests_test_security_curve_LDADD += \
861	${sodium_LIBS}
862endif
863
864endif
865
866if HAVE_WS
867test_apps += \
868	tests/test_ws_transport
869tests_test_ws_transport_SOURCES = tests/test_ws_transport.cpp
870tests_test_ws_transport_LDADD = ${TESTUTIL_LIBS} src/libzmq.la ${NSS3_LIBS}
871tests_test_ws_transport_CPPFLAGS = ${TESTUTIL_CPPFLAGS} ${NSS3_CFLAGS}
872endif
873
874if HAVE_WSS
875test_apps += \
876	tests/test_wss_transport
877tests_test_wss_transport_SOURCES = tests/test_wss_transport.cpp
878tests_test_wss_transport_LDADD = ${TESTUTIL_LIBS} src/libzmq.la ${GNUTLS_LIBS}
879tests_test_wss_transport_CPPFLAGS = ${TESTUTIL_CPPFLAGS} ${GNUTLS_CFLAGS}
880endif
881
882if !ON_MINGW
883if !ON_CYGWIN
884test_apps += \
885	tests/test_shutdown_stress \
886	tests/test_ipc_wildcard \
887	tests/test_pair_ipc \
888	tests/test_rebind_ipc \
889	tests/test_reqrep_ipc \
890	tests/test_use_fd \
891	tests/test_zmq_poll_fd \
892	tests/test_timeo \
893	tests/test_filter_ipc
894
895tests_test_shutdown_stress_SOURCES = tests/test_shutdown_stress.cpp
896tests_test_shutdown_stress_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
897tests_test_shutdown_stress_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
898
899tests_test_ipc_wildcard_SOURCES = tests/test_ipc_wildcard.cpp
900tests_test_ipc_wildcard_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
901tests_test_ipc_wildcard_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
902
903tests_test_pair_ipc_SOURCES = tests/test_pair_ipc.cpp
904tests_test_pair_ipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
905tests_test_pair_ipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
906
907tests_test_rebind_ipc_SOURCES = tests/test_rebind_ipc.cpp
908tests_test_rebind_ipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
909tests_test_rebind_ipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
910
911tests_test_reqrep_ipc_SOURCES = tests/test_reqrep_ipc.cpp
912tests_test_reqrep_ipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
913tests_test_reqrep_ipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
914
915tests_test_timeo_SOURCES = tests/test_timeo.cpp
916tests_test_timeo_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
917tests_test_timeo_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
918
919tests_test_filter_ipc_SOURCES = tests/test_filter_ipc.cpp
920tests_test_filter_ipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
921tests_test_filter_ipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
922
923tests_test_use_fd_SOURCES = tests/test_use_fd.cpp
924tests_test_use_fd_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
925tests_test_use_fd_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
926
927tests_test_zmq_poll_fd_SOURCES = tests/test_zmq_poll_fd.cpp
928tests_test_zmq_poll_fd_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
929tests_test_zmq_poll_fd_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
930
931if HAVE_FORK
932if !VALGRIND_ENABLED
933test_apps += tests/test_fork
934
935tests_test_fork_SOURCES = tests/test_fork.cpp
936tests_test_fork_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
937tests_test_fork_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
938
939endif
940endif
941endif
942endif
943
944if BUILD_TIPC
945test_apps += \
946	tests/test_connect_delay_tipc \
947	tests/test_pair_tipc \
948	tests/test_reqrep_device_tipc \
949	tests/test_reqrep_tipc \
950	tests/test_router_mandatory_tipc \
951	tests/test_shutdown_stress_tipc \
952	tests/test_sub_forward_tipc \
953	tests/test_term_endpoint_tipc \
954	tests/test_address_tipc
955
956tests_test_connect_delay_tipc_SOURCES = tests/test_connect_delay_tipc.cpp
957tests_test_connect_delay_tipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
958tests_test_connect_delay_tipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
959
960tests_test_pair_tipc_SOURCES = tests/test_pair_tipc.cpp
961tests_test_pair_tipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
962tests_test_pair_tipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
963
964tests_test_reqrep_device_tipc_SOURCES = tests/test_reqrep_device_tipc.cpp
965tests_test_reqrep_device_tipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
966tests_test_reqrep_device_tipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
967
968tests_test_reqrep_tipc_SOURCES = tests/test_reqrep_tipc.cpp
969tests_test_reqrep_tipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
970tests_test_reqrep_tipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
971
972tests_test_router_mandatory_tipc_SOURCES = tests/test_router_mandatory_tipc.cpp
973tests_test_router_mandatory_tipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
974tests_test_router_mandatory_tipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
975
976tests_test_shutdown_stress_tipc_SOURCES = tests/test_shutdown_stress_tipc.cpp
977tests_test_shutdown_stress_tipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
978tests_test_shutdown_stress_tipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
979
980tests_test_sub_forward_tipc_SOURCES = tests/test_sub_forward_tipc.cpp
981tests_test_sub_forward_tipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
982tests_test_sub_forward_tipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
983
984tests_test_term_endpoint_tipc_SOURCES = tests/test_term_endpoint_tipc.cpp
985tests_test_term_endpoint_tipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
986tests_test_term_endpoint_tipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
987
988tests_test_address_tipc_SOURCES = tests/test_address_tipc.cpp
989tests_test_address_tipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
990tests_test_address_tipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
991
992endif
993
994if BUILD_GSSAPI
995test_apps += tests/test_security_gssapi
996
997tests_test_security_gssapi_SOURCES = tests/test_security_gssapi.cpp
998tests_test_security_gssapi_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
999tests_test_security_gssapi_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1000
1001endif
1002
1003if ON_LINUX
1004test_apps += tests/test_abstract_ipc \
1005	tests/test_socks
1006
1007tests_test_abstract_ipc_SOURCES = tests/test_abstract_ipc.cpp
1008tests_test_abstract_ipc_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1009tests_test_abstract_ipc_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1010
1011tests_test_socks_SOURCES = tests/test_socks.cpp
1012tests_test_socks_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1013tests_test_socks_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1014
1015# TODO: enable when https://github.com/zeromq/libzmq/issues/3898 is fixed
1016if !ENABLE_ASAN
1017test_apps += tests/test_many_sockets
1018
1019tests_test_many_sockets_SOURCES = tests/test_many_sockets.cpp
1020tests_test_many_sockets_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1021tests_test_many_sockets_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1022endif
1023
1024endif
1025
1026if HAVE_VMCI
1027test_apps += test_pair_vmci test_reqrep_vmci
1028
1029test_pair_vmci_SOURCES = tests/test_pair_vmci.cpp
1030test_pair_vmci_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1031test_pair_vmci_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1032test_pair_vmci_LDFLAGS = @LIBZMQ_VMCI_LDFLAGS@
1033test_pair_vmci_CXXFLAGS = @LIBZMQ_VMCI_CXXFLAGS@
1034
1035test_reqrep_vmci_SOURCES = tests/test_reqrep_vmci.cpp
1036test_reqrep_vmci_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1037test_reqrep_vmci_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1038test_reqrep_vmci_LDFLAGS = @LIBZMQ_VMCI_LDFLAGS@
1039test_reqrep_vmci_CXXFLAGS = @LIBZMQ_VMCI_CXXFLAGS@
1040
1041endif
1042
1043if ENABLE_DRAFTS
1044test_apps += tests/test_poller \
1045	tests/test_client_server \
1046	tests/test_thread_safe \
1047	tests/test_timers \
1048	tests/test_radio_dish \
1049	tests/test_scatter_gather \
1050	tests/test_dgram \
1051	tests/test_app_meta \
1052	tests/test_xpub_manual_last_value \
1053	tests/test_router_notify \
1054	tests/test_peer \
1055	tests/test_reconnect_options \
1056	tests/test_msg_init \
1057	tests/test_hello_msg \
1058	tests/test_disconnect_msg \
1059	tests/test_channel
1060
1061tests_test_poller_SOURCES = tests/test_poller.cpp
1062tests_test_poller_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1063tests_test_poller_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1064
1065tests_test_client_server_SOURCES = tests/test_client_server.cpp
1066tests_test_client_server_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1067tests_test_client_server_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1068
1069tests_test_thread_safe_SOURCES = tests/test_thread_safe.cpp
1070tests_test_thread_safe_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1071tests_test_thread_safe_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1072
1073tests_test_timers_SOURCES = tests/test_timers.cpp
1074tests_test_timers_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1075tests_test_timers_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1076
1077tests_test_radio_dish_SOURCES = tests/test_radio_dish.cpp
1078tests_test_radio_dish_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1079tests_test_radio_dish_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1080
1081tests_test_scatter_gather_SOURCES = tests/test_scatter_gather.cpp
1082tests_test_scatter_gather_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1083tests_test_scatter_gather_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1084
1085tests_test_dgram_SOURCES = tests/test_dgram.cpp
1086tests_test_dgram_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1087tests_test_dgram_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1088
1089tests_test_xpub_manual_last_value_SOURCES = tests/test_xpub_manual_last_value.cpp
1090tests_test_xpub_manual_last_value_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1091tests_test_xpub_manual_last_value_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1092
1093tests_test_app_meta_SOURCES = tests/test_app_meta.cpp
1094tests_test_app_meta_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1095tests_test_app_meta_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1096
1097tests_test_router_notify_SOURCES = tests/test_router_notify.cpp
1098tests_test_router_notify_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1099tests_test_router_notify_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1100
1101tests_test_peer_SOURCES = tests/test_peer.cpp
1102tests_test_peer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1103tests_test_peer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1104
1105tests_test_reconnect_options_SOURCES = tests/test_reconnect_options.cpp
1106tests_test_reconnect_options_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1107tests_test_reconnect_options_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1108
1109tests_test_msg_init_SOURCES = tests/test_msg_init.cpp
1110tests_test_msg_init_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1111tests_test_msg_init_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1112
1113tests_test_hello_msg_SOURCES = tests/test_hello_msg.cpp
1114tests_test_hello_msg_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1115tests_test_hello_msg_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1116
1117tests_test_disconnect_msg_SOURCES = tests/test_disconnect_msg.cpp
1118tests_test_disconnect_msg_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1119tests_test_disconnect_msg_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1120
1121tests_test_channel_SOURCES = tests/test_channel.cpp
1122tests_test_channel_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1123tests_test_channel_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1124endif
1125
1126if FUZZING_ENGINE_LIB
1127fuzzer_apps = tests/test_bind_null_fuzzer \
1128	tests/test_connect_null_fuzzer \
1129	tests/test_bind_fuzzer \
1130	tests/test_connect_fuzzer \
1131	tests/test_bind_stream_fuzzer \
1132	tests/test_connect_stream_fuzzer \
1133	tests/test_socket_options_fuzzer
1134
1135tests_test_bind_null_fuzzer_DEPENDENCIES = src/libzmq.la
1136tests_test_bind_null_fuzzer_SOURCES = tests/test_bind_null_fuzzer.cpp
1137tests_test_bind_null_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1138		$(top_builddir)/src/.libs/libzmq.a \
1139		${src_libzmq_la_LIBADD}
1140tests_test_bind_null_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1141tests_test_bind_null_fuzzer_CXXFLAGS = -std=c++11
1142
1143tests_test_connect_null_fuzzer_DEPENDENCIES = src/libzmq.la
1144tests_test_connect_null_fuzzer_SOURCES = tests/test_connect_null_fuzzer.cpp
1145tests_test_connect_null_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1146		$(top_builddir)/src/.libs/libzmq.a \
1147		${src_libzmq_la_LIBADD}
1148tests_test_connect_null_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1149tests_test_connect_null_fuzzer_CXXFLAGS = -std=c++11
1150
1151tests_test_bind_fuzzer_DEPENDENCIES = src/libzmq.la
1152tests_test_bind_fuzzer_SOURCES = tests/test_bind_fuzzer.cpp
1153tests_test_bind_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1154		$(top_builddir)/src/.libs/libzmq.a \
1155		${src_libzmq_la_LIBADD}
1156tests_test_bind_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1157tests_test_bind_fuzzer_CXXFLAGS = -std=c++11
1158
1159tests_test_connect_fuzzer_DEPENDENCIES = src/libzmq.la
1160tests_test_connect_fuzzer_SOURCES = tests/test_connect_fuzzer.cpp
1161tests_test_connect_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1162		$(top_builddir)/src/.libs/libzmq.a \
1163		${src_libzmq_la_LIBADD}
1164tests_test_connect_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1165tests_test_connect_fuzzer_CXXFLAGS = -std=c++11
1166
1167tests_test_socket_options_fuzzer_DEPENDENCIES = src/libzmq.la
1168tests_test_socket_options_fuzzer_SOURCES = tests/test_socket_options_fuzzer.cpp
1169tests_test_socket_options_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1170		$(top_builddir)/src/.libs/libzmq.a \
1171		${src_libzmq_la_LIBADD}
1172tests_test_socket_options_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1173tests_test_socket_options_fuzzer_CXXFLAGS = -std=c++11
1174
1175tests_test_bind_stream_fuzzer_DEPENDENCIES = src/libzmq.la
1176tests_test_bind_stream_fuzzer_SOURCES = tests/test_bind_stream_fuzzer.cpp
1177tests_test_bind_stream_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1178		$(top_builddir)/src/.libs/libzmq.a \
1179		${src_libzmq_la_LIBADD}
1180tests_test_bind_stream_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1181tests_test_bind_stream_fuzzer_CXXFLAGS = -std=c++11
1182
1183tests_test_connect_stream_fuzzer_DEPENDENCIES = src/libzmq.la
1184tests_test_connect_stream_fuzzer_SOURCES = tests/test_connect_stream_fuzzer.cpp
1185tests_test_connect_stream_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1186		$(top_builddir)/src/.libs/libzmq.a \
1187		${src_libzmq_la_LIBADD}
1188tests_test_connect_stream_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1189tests_test_connect_stream_fuzzer_CXXFLAGS = -std=c++11
1190
1191if HAVE_CURVE
1192fuzzer_apps += tests/test_bind_curve_fuzzer \
1193	tests/test_connect_curve_fuzzer \
1194	tests/test_z85_decode_fuzzer
1195
1196tests_test_bind_curve_fuzzer_DEPENDENCIES = src/libzmq.la
1197tests_test_bind_curve_fuzzer_SOURCES = tests/test_bind_curve_fuzzer.cpp
1198tests_test_bind_curve_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1199		$(top_builddir)/src/.libs/libzmq.a \
1200		${src_libzmq_la_LIBADD}
1201tests_test_bind_curve_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1202tests_test_bind_curve_fuzzer_CXXFLAGS = -std=c++11
1203
1204tests_test_connect_curve_fuzzer_DEPENDENCIES = src/libzmq.la
1205tests_test_connect_curve_fuzzer_SOURCES = tests/test_connect_curve_fuzzer.cpp
1206tests_test_connect_curve_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1207		$(top_builddir)/src/.libs/libzmq.a \
1208		${src_libzmq_la_LIBADD}
1209tests_test_connect_curve_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1210tests_test_connect_curve_fuzzer_CXXFLAGS = -std=c++11
1211
1212tests_test_z85_decode_fuzzer_DEPENDENCIES = src/libzmq.la
1213tests_test_z85_decode_fuzzer_SOURCES = tests/test_z85_decode_fuzzer.cpp
1214tests_test_z85_decode_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1215		$(top_builddir)/src/.libs/libzmq.a \
1216		${src_libzmq_la_LIBADD}
1217tests_test_z85_decode_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1218tests_test_z85_decode_fuzzer_CXXFLAGS = -std=c++11
1219endif
1220
1221if HAVE_WS
1222fuzzer_apps += tests/test_connect_ws_fuzzer \
1223	tests/test_bind_ws_fuzzer
1224
1225tests_test_connect_ws_fuzzer_DEPENDENCIES = src/libzmq.la
1226tests_test_connect_ws_fuzzer_SOURCES = tests/test_connect_ws_fuzzer.cpp
1227tests_test_connect_ws_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1228		$(top_builddir)/src/.libs/libzmq.a \
1229		${src_libzmq_la_LIBADD}
1230tests_test_connect_ws_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1231tests_test_connect_ws_fuzzer_CXXFLAGS = -std=c++11
1232
1233tests_test_bind_ws_fuzzer_DEPENDENCIES = src/libzmq.la
1234tests_test_bind_ws_fuzzer_SOURCES = tests/test_bind_ws_fuzzer.cpp
1235tests_test_bind_ws_fuzzer_LDADD = ${TESTUTIL_LIBS} ${FUZZING_ENGINE_LIB} \
1236		$(top_builddir)/src/.libs/libzmq.a \
1237		${src_libzmq_la_LIBADD}
1238tests_test_bind_ws_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1239tests_test_bind_ws_fuzzer_CXXFLAGS = -std=c++11
1240endif
1241
1242FUZZINGdir = ${prefix}/${FUZZING_INSTALLDIR}
1243FUZZING_PROGRAMS = ${fuzzer_apps}
1244else
1245test_apps += tests/test_bind_null_fuzzer \
1246	tests/test_connect_null_fuzzer \
1247	tests/test_bind_fuzzer \
1248	tests/test_connect_fuzzer \
1249	tests/test_bind_stream_fuzzer \
1250	tests/test_connect_stream_fuzzer \
1251	tests/test_socket_options_fuzzer
1252
1253tests_test_bind_null_fuzzer_SOURCES = tests/test_bind_null_fuzzer.cpp
1254tests_test_bind_null_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1255tests_test_bind_null_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1256
1257tests_test_connect_null_fuzzer_SOURCES = tests/test_connect_null_fuzzer.cpp
1258tests_test_connect_null_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1259tests_test_connect_null_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1260
1261tests_test_bind_fuzzer_SOURCES = tests/test_bind_fuzzer.cpp
1262tests_test_bind_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1263tests_test_bind_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1264
1265tests_test_connect_fuzzer_SOURCES = tests/test_connect_fuzzer.cpp
1266tests_test_connect_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1267tests_test_connect_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1268
1269tests_test_socket_options_fuzzer_SOURCES = tests/test_socket_options_fuzzer.cpp
1270tests_test_socket_options_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1271tests_test_socket_options_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1272
1273tests_test_bind_stream_fuzzer_SOURCES = tests/test_bind_stream_fuzzer.cpp
1274tests_test_bind_stream_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1275tests_test_bind_stream_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1276
1277tests_test_connect_stream_fuzzer_SOURCES = tests/test_connect_stream_fuzzer.cpp
1278tests_test_connect_stream_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1279tests_test_connect_stream_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1280
1281if HAVE_CURVE
1282test_apps += tests/test_bind_curve_fuzzer \
1283	tests/test_connect_curve_fuzzer \
1284	tests/test_z85_decode_fuzzer
1285
1286tests_test_bind_curve_fuzzer_SOURCES = tests/test_bind_curve_fuzzer.cpp
1287tests_test_bind_curve_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1288tests_test_bind_curve_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1289
1290tests_test_connect_curve_fuzzer_SOURCES = tests/test_connect_curve_fuzzer.cpp
1291tests_test_connect_curve_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1292tests_test_connect_curve_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1293
1294tests_test_z85_decode_fuzzer_SOURCES = tests/test_z85_decode_fuzzer.cpp
1295tests_test_z85_decode_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1296tests_test_z85_decode_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1297endif
1298
1299if HAVE_WS
1300test_apps += tests/test_connect_ws_fuzzer \
1301	tests/test_bind_ws_fuzzer
1302
1303tests_test_connect_ws_fuzzer_SOURCES = tests/test_connect_ws_fuzzer.cpp
1304tests_test_connect_ws_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1305tests_test_connect_ws_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1306
1307tests_test_bind_ws_fuzzer_SOURCES = tests/test_bind_ws_fuzzer.cpp
1308tests_test_bind_ws_fuzzer_LDADD = ${TESTUTIL_LIBS} src/libzmq.la
1309tests_test_bind_ws_fuzzer_CPPFLAGS = ${TESTUTIL_CPPFLAGS}
1310endif
1311endif
1312
1313if ENABLE_STATIC
1314# unit tests - these include individual source files and test the internal functions
1315test_apps += \
1316	unittests/unittest_poller \
1317	unittests/unittest_ypipe \
1318	unittests/unittest_mtrie \
1319	unittests/unittest_ip_resolver \
1320	unittests/unittest_udp_address \
1321	unittests/unittest_radix_tree \
1322	unittests/unittest_curve_encoding
1323
1324unittests_unittest_poller_SOURCES = unittests/unittest_poller.cpp
1325unittests_unittest_poller_CPPFLAGS = -I$(top_srcdir)/src ${TESTUTIL_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
1326unittests_unittest_poller_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
1327unittests_unittest_poller_LDADD = \
1328        ${TESTUTIL_LIBS} \
1329        $(top_builddir)/src/.libs/libzmq.a \
1330        ${src_libzmq_la_LIBADD} \
1331        $(CODE_COVERAGE_LDFLAGS)
1332
1333unittests_unittest_ypipe_SOURCES = unittests/unittest_ypipe.cpp
1334unittests_unittest_ypipe_CPPFLAGS = -I$(top_srcdir)/src ${TESTUTIL_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
1335unittests_unittest_ypipe_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
1336unittests_unittest_ypipe_LDADD = \
1337        ${TESTUTIL_LIBS} \
1338        $(top_builddir)/src/.libs/libzmq.a \
1339        ${src_libzmq_la_LIBADD} \
1340        $(CODE_COVERAGE_LDFLAGS)
1341
1342unittests_unittest_mtrie_SOURCES = unittests/unittest_mtrie.cpp
1343unittests_unittest_mtrie_CPPFLAGS = -I$(top_srcdir)/src ${TESTUTIL_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
1344unittests_unittest_mtrie_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
1345unittests_unittest_mtrie_LDADD = \
1346        ${TESTUTIL_LIBS} \
1347        $(top_builddir)/src/.libs/libzmq.a \
1348        ${src_libzmq_la_LIBADD} \
1349        $(CODE_COVERAGE_LDFLAGS)
1350
1351unittests_unittest_ip_resolver_SOURCES = unittests/unittest_ip_resolver.cpp unittests/unittest_resolver_common.hpp
1352unittests_unittest_ip_resolver_CPPFLAGS = -I$(top_srcdir)/src ${TESTUTIL_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
1353unittests_unittest_ip_resolver_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
1354unittests_unittest_ip_resolver_LDADD = \
1355        ${TESTUTIL_LIBS} \
1356        $(top_builddir)/src/.libs/libzmq.a \
1357        ${src_libzmq_la_LIBADD} \
1358        $(CODE_COVERAGE_LDFLAGS)
1359
1360unittests_unittest_udp_address_SOURCES = unittests/unittest_udp_address.cpp unittests/unittest_resolver_common.hpp
1361unittests_unittest_udp_address_CPPFLAGS = -I$(top_srcdir)/src ${TESTUTIL_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
1362unittests_unittest_udp_address_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
1363unittests_unittest_udp_address_LDADD = \
1364        ${TESTUTIL_LIBS} \
1365        $(top_builddir)/src/.libs/libzmq.a \
1366        ${src_libzmq_la_LIBADD} \
1367        $(CODE_COVERAGE_LDFLAGS)
1368
1369unittests_unittest_radix_tree_SOURCES = unittests/unittest_radix_tree.cpp
1370unittests_unittest_radix_tree_CPPFLAGS = -I$(top_srcdir)/src ${TESTUTIL_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
1371unittests_unittest_radix_tree_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
1372unittests_unittest_radix_tree_LDADD =  \
1373        ${TESTUTIL_LIBS} \
1374        $(top_builddir)/src/.libs/libzmq.a \
1375        ${src_libzmq_la_LIBADD} \
1376        $(CODE_COVERAGE_LDFLAGS)
1377
1378unittests_unittest_curve_encoding_SOURCES = unittests/unittest_curve_encoding.cpp
1379unittests_unittest_curve_encoding_CPPFLAGS = -I$(top_srcdir)/src ${TESTUTIL_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
1380unittests_unittest_curve_encoding_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
1381unittests_unittest_curve_encoding_LDADD =  \
1382        ${TESTUTIL_LIBS} \
1383        $(top_builddir)/src/.libs/libzmq.a \
1384        ${src_libzmq_la_LIBADD} \
1385        $(CODE_COVERAGE_LDFLAGS)
1386endif
1387
1388check_PROGRAMS = ${test_apps}
1389
1390#  Run the test cases
1391TESTS = $(test_apps)
1392XFAIL_TESTS =
1393
1394if !ON_LINUX
1395XFAIL_TESTS += tests/test_abstract_ipc
1396endif
1397
1398#  GNU/Hurd does not support getsockname on IPC, so ZMQ_LAST_ENDPOINT cannot be
1399#  used with IPC, so the following tests will fail
1400if ON_GNU
1401XFAIL_TESTS += tests/test_ipc_wildcard \
1402		tests/test_reqrep_ipc \
1403		tests/test_pair_ipc \
1404		tests/test_term_endpoint
1405endif
1406
1407EXTRA_DIST = \
1408	external/unity/license.txt \
1409	external/unity/version.txt \
1410	external/wepoll/license.txt \
1411	external/wepoll/version.txt \
1412	external/wepoll/README.md \
1413	CMakeLists.txt \
1414	autogen.sh	\
1415	version.sh	\
1416	ci_build.sh \
1417	src/libzmq.vers \
1418	src/version.rc.in \
1419	tests/CMakeLists.txt \
1420        tests/test_pair_tcp_cap_net_admin.cpp \
1421	unittests/CMakeLists.txt \
1422        tools/curve_keygen.cpp
1423
1424MAINTAINERCLEANFILES = \
1425	$(srcdir)/aclocal.m4 \
1426	$(srcdir)/autom4te.cache \
1427	$(srcdir)/configure \
1428	`find "$(srcdir)" -type f -name Makefile.in -print`
1429
1430if WITH_CLANG_FORMAT
1431ALL_SOURCE_FILES = $(wildcard \
1432	$(top_srcdir)/src/*.c \
1433	$(top_srcdir)/src/*.cc \
1434	$(top_srcdir)/src/*.cpp \
1435	$(top_srcdir)/src/*.h \
1436	$(top_srcdir)/src/*.hpp \
1437	$(top_srcdir)/tests/*.c \
1438	$(top_srcdir)/tests/*.cc \
1439	$(top_srcdir)/tests/*.cpp \
1440	$(top_srcdir)/tests/*.h \
1441	$(top_srcdir)/tests/*.hpp \
1442	$(top_srcdir)/perf/*.c \
1443	$(top_srcdir)/perf/*.cc \
1444	$(top_srcdir)/perf/*.cpp \
1445	$(top_srcdir)/perf/*.h \
1446	$(top_srcdir)/perf/*.hpp \
1447	$(top_srcdir)/tools/*.c \
1448	$(top_srcdir)/tools/*.cc \
1449	$(top_srcdir)/tools/*.cpp \
1450	$(top_srcdir)/tools/*.h \
1451	$(top_srcdir)/tools/*.hpp \
1452	$(top_srcdir)/include/*.h \
1453 )
1454
1455# Check if any sources need to be fixed, report the filenames and an error code
1456clang-format-check: $(ALL_SOURCE_FILES)
1457	@FAILED=0 ; IFS=";" ; IDS="`printf '\n\b'`" ; export IFS IDS; \
1458	 for FILE in $(ALL_SOURCE_FILES) ; do \
1459		test -s $$FILE || continue ; \
1460		$(CLANG_FORMAT) -style=file -output-replacements-xml "$$FILE" | grep "<replacement " >/dev/null && \
1461		{ echo "$$FILE is not correctly formatted" >&2 ; FAILED=1; } ; \
1462	 done; \
1463	 if test "$$FAILED" != 0 ; then \
1464		exit 1 ; \
1465	 fi
1466
1467# Change source formatting
1468clang-format: $(ALL_SOURCE_FILES)
1469	$(CLANG_FORMAT) -style=file -i $(ALL_SOURCE_FILES)
1470
1471# Change source formatting AND report the diff
1472clang-format-diff: clang-format
1473	git diff $(ALL_SOURCE_FILES)
1474
1475else
1476clang-format clang-format-check clang-format-diff:
1477	@echo "Install the clang-format program, reconfigure and re-run this request"
1478	@exit 1
1479endif
1480
1481@CODE_COVERAGE_RULES@
1482
1483dist-hook:
1484	-rm $(distdir)/src/platform.hpp
1485	@if test -d "$(srcdir)/.git"; \
1486	then \
1487		echo Creating ChangeLog && \
1488		( cd "$(top_srcdir)" && \
1489		  echo '# Generated by Makefile. Do not edit.'; echo; \
1490		  $(top_srcdir)/config/missing --run git log --stat ) > ChangeLog.tmp \
1491		  && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \
1492		  || ( rm -f ChangeLog.tmp ; \
1493		       echo Failed to generate ChangeLog >&2 ); \
1494	else \
1495		echo A git clone is required to generate a ChangeLog >&2; \
1496	fi
1497
1498maintainer-clean-local:
1499	-rm -rf $(top_srcdir)/config
1500
1501@VALGRIND_CHECK_RULES@
1502
1503VALGRIND_SUPPRESSIONS_FILES = builds/valgrind/valgrind.supp
1504