Makefile.am 28.7 KB
Newer Older
1 2
ACLOCAL_AMFLAGS = -I config

3 4
SUBDIRS = doc

5
DIST_SUBDIRS = doc builds builds/msvc
6 7 8

pkgconfig_DATA = src/libzmq.pc

9 10 11 12 13 14 15
AM_CPPFLAGS = \
	-I$(top_builddir)/include \
	-I$(top_srcdir)/include

#
# libraries/binaries
#
16
lib_LTLIBRARIES = src/libzmq.la
17 18

include_HEADERS = \
Min RK's avatar
Min RK committed
19 20
	include/zmq.h \
	include/zmq_utils.h
21

22
src_libzmq_la_SOURCES = \
23 24 25 26 27 28
	src/address.cpp \
	src/address.hpp \
	src/array.hpp \
	src/atomic_counter.hpp \
	src/atomic_ptr.hpp \
	src/blob.hpp \
29 30
	src/client.cpp \
	src/client.hpp \
31 32 33
	src/clock.cpp \
	src/clock.hpp \
	src/command.hpp \
somdoron's avatar
somdoron committed
34
	src/condition_variable.hpp \
35 36 37 38 39
	src/config.hpp \
	src/ctx.cpp \
	src/ctx.hpp \
	src/curve_client.cpp \
	src/curve_client.hpp \
40
	src/curve_client_tools.hpp \
41 42
	src/curve_mechanism_base.cpp \
	src/curve_mechanism_base.hpp \
43 44 45 46 47 48 49 50
	src/curve_server.cpp \
	src/curve_server.hpp \
	src/dbuffer.hpp \
	src/dealer.cpp \
	src/dealer.hpp \
	src/decoder.hpp \
	src/devpoll.cpp \
	src/devpoll.hpp \
51 52
	src/dgram.cpp \
	src/dgram.hpp \
somdoron's avatar
somdoron committed
53 54
	src/dish.cpp \
	src/dish.hpp \
55 56 57 58 59 60 61 62 63 64
	src/dist.cpp \
	src/dist.hpp \
	src/encoder.hpp \
	src/epoll.cpp \
	src/epoll.hpp \
	src/err.cpp \
	src/err.hpp \
	src/fd.hpp \
	src/fq.cpp \
	src/fq.hpp \
somdoron's avatar
somdoron committed
65 66
	src/gather.cpp \
	src/gather.hpp \
67 68
	src/generic_mtrie.hpp \
	src/generic_mtrie_impl.hpp \
69 70 71 72 73 74 75 76 77
	src/gssapi_mechanism_base.cpp \
	src/gssapi_mechanism_base.hpp \
	src/gssapi_client.cpp \
	src/gssapi_client.hpp \
	src/gssapi_server.cpp \
	src/gssapi_server.hpp \
	src/i_encoder.hpp \
	src/i_engine.hpp \
	src/i_decoder.hpp \
somdoron's avatar
somdoron committed
78
	src/i_mailbox.hpp \
79 80 81 82 83 84 85
	src/i_poll_events.hpp \
	src/io_object.cpp \
	src/io_object.hpp \
	src/io_thread.cpp \
	src/io_thread.hpp \
	src/ip.cpp \
	src/ip.hpp \
86 87
	src/ip_resolver.cpp \
	src/ip_resolver.hpp \
88 89 90 91 92 93 94 95 96 97 98
	src/ipc_address.cpp \
	src/ipc_address.hpp \
	src/ipc_connecter.cpp \
	src/ipc_connecter.hpp \
	src/ipc_listener.cpp \
	src/ipc_listener.hpp \
	src/kqueue.cpp \
	src/kqueue.hpp \
	src/lb.cpp \
	src/lb.hpp \
	src/likely.hpp \
99
	src/macros.hpp \
100 101
	src/mailbox.cpp \
	src/mailbox.hpp \
somdoron's avatar
somdoron committed
102 103
	src/mailbox_safe.cpp \
	src/mailbox_safe.hpp \
104 105
	src/mechanism.cpp \
	src/mechanism.hpp  \
106 107
	src/mechanism_base.cpp \
	src/mechanism_base.hpp  \
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
	src/metadata.cpp \
	src/metadata.hpp \
	src/msg.cpp \
	src/msg.hpp \
	src/mtrie.cpp \
	src/mtrie.hpp \
	src/mutex.hpp \
	src/norm_engine.cpp \
	src/norm_engine.hpp \
	src/null_mechanism.cpp \
	src/null_mechanism.hpp \
	src/object.cpp \
	src/object.hpp \
	src/options.cpp \
	src/options.hpp \
	src/own.cpp \
	src/own.hpp \
	src/pair.cpp \
	src/pair.hpp \
	src/pgm_receiver.cpp \
	src/pgm_receiver.hpp \
	src/pgm_sender.cpp \
	src/pgm_sender.hpp \
	src/pgm_socket.cpp \
	src/pgm_socket.hpp \
	src/pipe.cpp \
	src/pipe.hpp \
	src/plain_client.cpp \
	src/plain_client.hpp \
	src/plain_server.cpp \
	src/plain_server.hpp \
	src/platform.hpp \
	src/poll.cpp \
	src/poll.hpp \
	src/poller.hpp \
	src/poller_base.cpp \
	src/poller_base.hpp \
Laughing's avatar
Laughing committed
145 146
	src/pollset.cpp \
	src/pollset.hpp \
147 148
	src/precompiled.cpp \
	src/precompiled.hpp \
149 150 151 152 153 154 155 156
	src/proxy.cpp \
	src/proxy.hpp \
	src/pub.cpp \
	src/pub.hpp \
	src/pull.cpp \
	src/pull.hpp \
	src/push.cpp \
	src/push.hpp \
somdoron's avatar
somdoron committed
157 158
	src/radio.cpp \
	src/radio.hpp \
159 160 161 162 163 164 165 166 167 168 169 170 171 172
	src/random.cpp \
	src/random.hpp \
	src/raw_decoder.cpp \
	src/raw_decoder.hpp \
	src/raw_encoder.cpp \
	src/raw_encoder.hpp \
	src/reaper.cpp \
	src/reaper.hpp \
	src/rep.cpp \
	src/rep.hpp \
	src/req.cpp \
	src/req.hpp \
	src/router.cpp \
	src/router.hpp \
somdoron's avatar
somdoron committed
173 174
	src/scatter.cpp \
	src/scatter.hpp \
175 176
	src/select.cpp \
	src/select.hpp \
177 178
	src/server.cpp \
	src/server.hpp \
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205
	src/session_base.cpp \
	src/session_base.hpp \
	src/signaler.cpp \
	src/signaler.hpp \
	src/socket_base.cpp \
	src/socket_base.hpp \
	src/socks.cpp \
	src/socks.hpp \
	src/socks_connecter.cpp \
	src/socks_connecter.hpp \
	src/stdint.hpp \
	src/stream.cpp \
	src/stream.hpp \
	src/stream_engine.cpp \
	src/stream_engine.hpp \
	src/sub.cpp \
	src/sub.hpp \
	src/tcp.cpp \
	src/tcp.hpp \
	src/tcp_address.cpp \
	src/tcp_address.hpp \
	src/tcp_connecter.cpp \
	src/tcp_connecter.hpp \
	src/tcp_listener.cpp \
	src/tcp_listener.hpp \
	src/thread.cpp \
	src/thread.hpp \
somdoron's avatar
somdoron committed
206 207
	src/timers.cpp \
	src/timers.hpp \
208 209 210 211 212 213 214 215
	src/tipc_address.cpp \
	src/tipc_address.hpp \
	src/tipc_connecter.cpp \
	src/tipc_connecter.hpp \
	src/tipc_listener.cpp \
	src/tipc_listener.hpp \
	src/trie.cpp \
	src/trie.hpp \
216 217 218 219
	src/udp_address.cpp \
	src/udp_address.hpp \
	src/udp_engine.cpp \
	src/udp_engine.hpp \
220 221 222 223 224 225 226 227 228
	src/v1_decoder.cpp \
	src/v1_decoder.hpp \
	src/v2_decoder.cpp \
	src/v2_decoder.hpp \
	src/v1_encoder.cpp \
	src/v1_encoder.hpp \
	src/v2_encoder.cpp \
	src/v2_encoder.hpp \
	src/v2_protocol.hpp \
Ilya Kulakov's avatar
Ilya Kulakov committed
229 230 231 232 233 234 235 236
	src/vmci.cpp \
	src/vmci.hpp \
	src/vmci_address.cpp \
	src/vmci_address.hpp \
	src/vmci_connecter.cpp \
	src/vmci_connecter.hpp \
	src/vmci_listener.cpp \
	src/vmci_listener.hpp \
237 238 239
	src/windows.hpp \
	src/wire.hpp \
	src/xpub.cpp \
240
	src/xpub.hpp \
241 242 243 244 245 246 247
	src/xsub.cpp \
	src/xsub.hpp \
	src/ypipe.hpp \
	src/ypipe_base.hpp \
	src/ypipe_conflate.hpp \
	src/yqueue.hpp \
	src/zmq.cpp \
Jens Auer's avatar
Jens Auer committed
248
	src/zmq_utils.cpp \
249 250 251
	src/decoder_allocators.cpp \
	src/decoder_allocators.hpp \
	src/socket_poller.cpp \
252
	src/socket_poller.hpp \
253 254
	src/zap_client.cpp \
	src/zap_client.hpp \
255
	src/zmq_draft.h
Jens Auer's avatar
Jens Auer committed
256

257 258 259 260 261 262
if USE_TWEETNACL
src_libzmq_la_SOURCES += \
	src/tweetnacl.c \
	src/tweetnacl.h
endif

263
if ON_MINGW
264
src_libzmq_la_LDFLAGS = \
265 266 267 268 269
	-no-undefined \
	-avoid-version \
	-version-info @LTVER@ \
	@LIBZMQ_EXTRA_LDFLAGS@
else
270 271 272 273 274 275 276
if ON_CYGWIN
src_libzmq_la_LDFLAGS = \
	-no-undefined \
	-avoid-version \
	-version-info @LTVER@ \
	@LIBZMQ_EXTRA_LDFLAGS@
else
277
if ON_ANDROID
278
src_libzmq_la_LDFLAGS = \
279 280 281
	-avoid-version \
	-version-info @LTVER@ \
	@LIBZMQ_EXTRA_LDFLAGS@
282
else
283
if ON_LINUX
284
src_libzmq_la_LDFLAGS = \
285 286 287 288
	-version-info @LTVER@ \
	@LIBZMQ_EXTRA_LDFLAGS@ \
	-Wl,--version-script=$(srcdir)/src/libzmq.vers
else
289
src_libzmq_la_LDFLAGS = \
290 291 292 293 294 295
	-version-info @LTVER@ \
	@LIBZMQ_EXTRA_LDFLAGS@ \
	-Wl
endif
endif
endif
296
endif
297

298 299 300 301 302
src_libzmq_la_CPPFLAGS = $(CODE_COVERAGE_CPPFLAGS) $(LIBUNWIND_CFLAGS)
src_libzmq_la_CFLAGS = $(CODE_COVERAGE_CFLAGS) $(LIBUNWIND_CFLAGS)
src_libzmq_la_CXXFLAGS = @LIBZMQ_EXTRA_CXXFLAGS@ $(CODE_COVERAGE_CXXFLAGS) \
	$(LIBUNWIND_CFLAGS)
src_libzmq_la_LIBADD = $(CODE_COVERAGE_LDFLAGS) $(LIBUNWIND_LIBS)
303

304 305 306 307 308
if USE_LIBSODIUM
src_libzmq_la_CPPFLAGS += ${sodium_CFLAGS}
src_libzmq_la_LIBADD += ${sodium_LIBS}
endif

309
if HAVE_PGM
310 311
src_libzmq_la_CPPFLAGS += ${pgm_CFLAGS}
src_libzmq_la_LIBADD += ${pgm_LIBS}
312 313
endif

314 315 316 317 318
if HAVE_NORM
src_libzmq_la_CPPFLAGS += ${norm_CFLAGS}
src_libzmq_la_LIBADD += ${norm_LIBS}
endif

319 320 321 322 323
if BUILD_GSSAPI
src_libzmq_la_CPPFLAGS += ${gssapi_krb5_CFLAGS}
src_libzmq_la_LIBADD += ${gssapi_krb5_LIBS}
endif

324
if ENABLE_PERF
325
noinst_PROGRAMS = \
326 327 328 329 330 331
	perf/local_lat \
	perf/remote_lat \
	perf/local_thr \
	perf/remote_thr \
	perf/inproc_lat \
	perf/inproc_thr
332

333 334
perf_local_lat_LDADD = src/libzmq.la
perf_local_lat_SOURCES = perf/local_lat.cpp
335

336 337
perf_remote_lat_LDADD = src/libzmq.la
perf_remote_lat_SOURCES = perf/remote_lat.cpp
338

339 340
perf_local_thr_LDADD = src/libzmq.la
perf_local_thr_SOURCES = perf/local_thr.cpp
341

342 343
perf_remote_thr_LDADD = src/libzmq.la
perf_remote_thr_SOURCES = perf/remote_thr.cpp
344

345 346
perf_inproc_lat_LDADD = src/libzmq.la
perf_inproc_lat_SOURCES = perf/inproc_lat.cpp
347

348 349
perf_inproc_thr_LDADD = src/libzmq.la
perf_inproc_thr_SOURCES = perf/inproc_thr.cpp
350
endif
351

352
if ENABLE_CURVE_KEYGEN
353
bin_PROGRAMS = tools/curve_keygen
354

355 356
tools_curve_keygen_LDADD = src/libzmq.la
tools_curve_keygen_SOURCES = tools/curve_keygen.cpp
357
endif
358

359 360 361
#
# tests
#
362
test_apps = \
363
	tests/test_ancillaries \
364 365 366 367 368 369 370 371 372 373 374
	tests/test_system \
	tests/test_pair_inproc \
	tests/test_pair_tcp \
	tests/test_reqrep_inproc \
	tests/test_reqrep_tcp \
	tests/test_hwm \
	tests/test_hwm_pubsub \
	tests/test_reqrep_device \
	tests/test_sub_forward \
	tests/test_invalid_rep \
	tests/test_msg_flags \
375
	tests/test_msg_ffn \
376 377 378 379 380 381 382 383 384 385 386 387 388 389 390
	tests/test_connect_resolve \
	tests/test_immediate \
	tests/test_last_endpoint \
	tests/test_term_endpoint \
	tests/test_srcfd \
	tests/test_monitor \
	tests/test_router_mandatory \
	tests/test_router_mandatory_hwm \
	tests/test_router_handover \
	tests/test_probe_router \
	tests/test_stream \
	tests/test_stream_empty \
	tests/test_stream_disconnect \
	tests/test_stream_timeout \
	tests/test_disconnect_inproc \
Dylan Cali's avatar
Dylan Cali committed
391 392
	tests/test_unbind_inproc \
	tests/test_unbind_wildcard \
393 394 395 396
	tests/test_ctx_options \
	tests/test_ctx_destroy \
	tests/test_security_null \
	tests/test_security_plain \
397
	tests/test_security_zap \
398 399 400 401 402 403 404 405 406 407 408 409
	tests/test_iov \
	tests/test_spec_req \
	tests/test_spec_rep \
	tests/test_spec_dealer \
	tests/test_spec_router \
	tests/test_spec_pushpull \
	tests/test_req_correlate \
	tests/test_req_relaxed \
	tests/test_conflate \
	tests/test_inproc_connect \
	tests/test_issue_566 \
	tests/test_proxy \
410
	tests/test_proxy_single_socket \
411
	tests/test_proxy_terminate \
412
	tests/test_getsockopt_memset \
413
	tests/test_setsockopt \
414 415 416 417 418
	tests/test_diffserv \
	tests/test_connect_rid \
	tests/test_bind_src_address \
	tests/test_metadata \
	tests/test_capabilities \
419
	tests/test_xpub_nodrop \
somdoron's avatar
somdoron committed
420
	tests/test_xpub_manual \
421
	tests/test_xpub_welcome_msg \
422
	tests/test_xpub_verbose \
423
	tests/test_atomics \
424
	tests/test_sockopt_hwm \
425
	tests/test_heartbeats \
426
	tests/test_stream_exceeds_buffer \
427 428
	tests/test_pub_invert_matching \
	tests/test_base85 \
429
	tests/test_bind_after_connect_tcp \
430
	tests/test_sodium \
431
	tests/test_reconnect_ivl \
432
	tests/test_socket_null
433

434
UNITY_CPPFLAGS = -I$(top_srcdir)/external/unity -DUNITY_USE_COMMAND_LINE_ARGS -DUNITY_EXCLUDE_FLOAT
435 436
UNITY_LIBS = $(top_builddir)/external/unity/libunity.a
noinst_LIBRARIES = external/unity/libunity.a
437 438 439
external_unity_libunity_a_SOURCES = external/unity/unity.c \
	external/unity/unity.h \
	external/unity/unity_internals.h
440

441 442 443
tests_test_ancillaries_SOURCES = tests/test_ancillaries.cpp
tests_test_ancillaries_LDADD = src/libzmq.la

444 445 446 447
tests_test_system_SOURCES = tests/test_system.cpp
tests_test_system_LDADD = src/libzmq.la

tests_test_pair_inproc_SOURCES = \
448 449
	tests/test_pair_inproc.cpp \
	tests/testutil.hpp
450
tests_test_pair_inproc_LDADD = src/libzmq.la
451

452
tests_test_pair_tcp_SOURCES = \
453 454
	tests/test_pair_tcp.cpp \
	tests/testutil.hpp
455
tests_test_pair_tcp_LDADD = src/libzmq.la
456

457
tests_test_reqrep_inproc_SOURCES = \
458 459
	tests/test_reqrep_inproc.cpp \
	tests/testutil.hpp
460
tests_test_reqrep_inproc_LDADD = src/libzmq.la
461

462
tests_test_reqrep_tcp_SOURCES = \
463 464
	tests/test_reqrep_tcp.cpp \
	tests/testutil.hpp
465 466
tests_test_reqrep_tcp_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_reqrep_tcp_CPPFLAGS = ${UNITY_CPPFLAGS}
467

468 469 470
tests_test_hwm_SOURCES = tests/test_hwm.cpp tests/testutil_unity.hpp
tests_test_hwm_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_hwm_CPPFLAGS = ${UNITY_CPPFLAGS}
471

472 473
tests_test_hwm_pubsub_SOURCES = tests/test_hwm_pubsub.cpp
tests_test_hwm_pubsub_LDADD = src/libzmq.la
474

475 476
tests_test_reqrep_device_SOURCES = tests/test_reqrep_device.cpp
tests_test_reqrep_device_LDADD = src/libzmq.la
477

478 479
tests_test_sub_forward_SOURCES = tests/test_sub_forward.cpp
tests_test_sub_forward_LDADD = src/libzmq.la
480

481 482
tests_test_invalid_rep_SOURCES = tests/test_invalid_rep.cpp
tests_test_invalid_rep_LDADD = src/libzmq.la
483

484 485
tests_test_msg_flags_SOURCES = tests/test_msg_flags.cpp
tests_test_msg_flags_LDADD = src/libzmq.la
486

487 488 489
tests_test_msg_ffn_SOURCES = tests/test_msg_ffn.cpp
tests_test_msg_ffn_LDADD = src/libzmq.la

490
tests_test_connect_resolve_SOURCES = tests/test_connect_resolve.cpp
491 492
tests_test_connect_resolve_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_connect_resolve_CPPFLAGS = ${UNITY_CPPFLAGS}
493

494
tests_test_immediate_SOURCES = tests/test_immediate.cpp
495 496
tests_test_immediate_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_immediate_CPPFLAGS = ${UNITY_CPPFLAGS}
497

498
tests_test_last_endpoint_SOURCES = tests/test_last_endpoint.cpp
499 500
tests_test_last_endpoint_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_last_endpoint_CPPFLAGS = ${UNITY_CPPFLAGS}
501

502 503
tests_test_term_endpoint_SOURCES = tests/test_term_endpoint.cpp
tests_test_term_endpoint_LDADD = src/libzmq.la
504

505 506
tests_test_srcfd_SOURCES = tests/test_srcfd.cpp
tests_test_srcfd_LDADD = src/libzmq.la
507

508 509
tests_test_monitor_SOURCES = tests/test_monitor.cpp
tests_test_monitor_LDADD = src/libzmq.la
510

511 512 513
tests_test_router_mandatory_SOURCES = tests/test_router_mandatory.cpp tests/testutil_unity.hpp
tests_test_router_mandatory_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_router_mandatory_CPPFLAGS = ${UNITY_CPPFLAGS}
514

515 516
tests_test_router_mandatory_hwm_SOURCES = tests/test_router_mandatory_hwm.cpp
tests_test_router_mandatory_hwm_LDADD = src/libzmq.la
517

518
tests_test_router_handover_SOURCES = tests/test_router_handover.cpp
519 520
tests_test_router_handover_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_router_handover_CPPFLAGS = ${UNITY_CPPFLAGS}
521

522 523
tests_test_probe_router_SOURCES = tests/test_probe_router.cpp
tests_test_probe_router_LDADD = src/libzmq.la
524

525 526
tests_test_stream_SOURCES = tests/test_stream.cpp
tests_test_stream_LDADD = src/libzmq.la
527

528 529
tests_test_stream_empty_SOURCES = tests/test_stream_empty.cpp
tests_test_stream_empty_LDADD = src/libzmq.la
530

531 532
tests_test_stream_timeout_SOURCES = tests/test_stream_timeout.cpp
tests_test_stream_timeout_LDADD = src/libzmq.la
533

534 535
tests_test_stream_disconnect_SOURCES = tests/test_stream_disconnect.cpp
tests_test_stream_disconnect_LDADD = src/libzmq.la
536

537 538
tests_test_disconnect_inproc_SOURCES = tests/test_disconnect_inproc.cpp
tests_test_disconnect_inproc_LDADD = src/libzmq.la
539

Dylan Cali's avatar
Dylan Cali committed
540 541 542 543 544 545
tests_test_unbind_inproc_SOURCES = tests/test_unbind_inproc.cpp
tests_test_unbind_inproc_LDADD = src/libzmq.la

tests_test_unbind_wildcard_SOURCES = tests/test_unbind_wildcard.cpp
tests_test_unbind_wildcard_LDADD = src/libzmq.la

546 547
tests_test_ctx_options_SOURCES = tests/test_ctx_options.cpp
tests_test_ctx_options_LDADD = src/libzmq.la
548

549 550
tests_test_iov_SOURCES = tests/test_iov.cpp
tests_test_iov_LDADD = src/libzmq.la
551

552
tests_test_ctx_destroy_SOURCES = tests/test_ctx_destroy.cpp
553 554
tests_test_ctx_destroy_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_ctx_destroy_CPPFLAGS = ${UNITY_CPPFLAGS}
555

556 557
tests_test_security_null_SOURCES = tests/test_security_null.cpp
tests_test_security_null_LDADD = src/libzmq.la
558

559 560
tests_test_security_plain_SOURCES = tests/test_security_plain.cpp
tests_test_security_plain_LDADD = src/libzmq.la
561

562 563 564 565
tests_test_security_zap_SOURCES = \
	tests/test_security_zap.cpp \
	tests/testutil_security.hpp \
	tests/testutil.hpp
566 567
tests_test_security_zap_LDADD = src/libzmq.la

568 569
tests_test_spec_req_SOURCES = tests/test_spec_req.cpp
tests_test_spec_req_LDADD = src/libzmq.la
570

571 572
tests_test_spec_rep_SOURCES = tests/test_spec_rep.cpp
tests_test_spec_rep_LDADD = src/libzmq.la
573

574 575
tests_test_spec_dealer_SOURCES = tests/test_spec_dealer.cpp
tests_test_spec_dealer_LDADD = src/libzmq.la
576

577 578
tests_test_spec_router_SOURCES = tests/test_spec_router.cpp
tests_test_spec_router_LDADD = src/libzmq.la
579

580 581
tests_test_spec_pushpull_SOURCES = tests/test_spec_pushpull.cpp
tests_test_spec_pushpull_LDADD = src/libzmq.la
582

583 584
tests_test_req_correlate_SOURCES = tests/test_req_correlate.cpp
tests_test_req_correlate_LDADD = src/libzmq.la
585

586 587
tests_test_req_relaxed_SOURCES = tests/test_req_relaxed.cpp
tests_test_req_relaxed_LDADD = src/libzmq.la
588

589
tests_test_conflate_SOURCES = tests/test_conflate.cpp
590 591
tests_test_conflate_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_conflate_CPPFLAGS = ${UNITY_CPPFLAGS}
592

593 594
tests_test_inproc_connect_SOURCES = tests/test_inproc_connect.cpp
tests_test_inproc_connect_LDADD = src/libzmq.la
595

596 597
tests_test_issue_566_SOURCES = tests/test_issue_566.cpp
tests_test_issue_566_LDADD = src/libzmq.la
598

599 600
tests_test_proxy_SOURCES = tests/test_proxy.cpp
tests_test_proxy_LDADD = src/libzmq.la
601

602 603 604
tests_test_proxy_single_socket_SOURCES = tests/test_proxy_single_socket.cpp
tests_test_proxy_single_socket_LDADD = src/libzmq.la

605 606 607
tests_test_proxy_terminate_SOURCES = tests/test_proxy_terminate.cpp
tests_test_proxy_terminate_LDADD = src/libzmq.la

608
tests_test_getsockopt_memset_SOURCES = tests/test_getsockopt_memset.cpp
609
tests_test_getsockopt_memset_LDADD = src/libzmq.la
610

611 612
tests_test_many_sockets_SOURCES = tests/test_many_sockets.cpp
tests_test_many_sockets_LDADD = src/libzmq.la
613

614 615
tests_test_diffserv_SOURCES = tests/test_diffserv.cpp
tests_test_diffserv_LDADD = src/libzmq.la
616

617 618
tests_test_connect_rid_SOURCES = tests/test_connect_rid.cpp
tests_test_connect_rid_LDADD = src/libzmq.la
619

620
tests_test_bind_src_address_SOURCES = tests/test_bind_src_address.cpp
621 622
tests_test_bind_src_address_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_bind_src_address_CPPFLAGS = ${UNITY_CPPFLAGS}
623

624 625
tests_test_metadata_SOURCES = tests/test_metadata.cpp
tests_test_metadata_LDADD = src/libzmq.la
626

627 628
tests_test_capabilities_SOURCES = tests/test_capabilities.cpp
tests_test_capabilities_LDADD = src/libzmq.la
629

630 631
tests_test_xpub_nodrop_SOURCES = tests/test_xpub_nodrop.cpp
tests_test_xpub_nodrop_LDADD = src/libzmq.la
632

633 634 635
tests_test_xpub_manual_SOURCES = tests/test_xpub_manual.cpp
tests_test_xpub_manual_LDADD = src/libzmq.la

somdoron's avatar
somdoron committed
636 637 638
tests_test_xpub_welcome_msg_SOURCES = tests/test_xpub_welcome_msg.cpp
tests_test_xpub_welcome_msg_LDADD = src/libzmq.la

639 640 641 642
tests_test_xpub_verbose_SOURCES = tests/test_xpub_verbose.cpp
tests_test_xpub_verbose_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_xpub_verbose_CPPFLAGS = ${UNITY_CPPFLAGS}

643 644 645
tests_test_atomics_SOURCES = tests/test_atomics.cpp
tests_test_atomics_LDADD = src/libzmq.la

646
tests_test_sockopt_hwm_SOURCES = tests/test_sockopt_hwm.cpp
647 648
tests_test_sockopt_hwm_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_sockopt_hwm_CPPFLAGS = ${UNITY_CPPFLAGS}
649

650 651 652
tests_test_setsockopt_SOURCES = tests/test_setsockopt.cpp
tests_test_setsockopt_LDADD = src/libzmq.la

Jonathan Reams's avatar
Jonathan Reams committed
653 654
tests_test_heartbeats_SOURCES = tests/test_heartbeats.cpp
tests_test_heartbeats_LDADD = src/libzmq.la
somdoron's avatar
somdoron committed
655

656 657 658
tests_test_stream_exceeds_buffer_SOURCES = tests/test_stream_exceeds_buffer.cpp
tests_test_stream_exceeds_buffer_LDADD = src/libzmq.la

659 660 661
tests_test_pub_invert_matching_SOURCES = tests/test_pub_invert_matching.cpp
tests_test_pub_invert_matching_LDADD = src/libzmq.la

662
tests_test_bind_after_connect_tcp_SOURCES = tests/test_bind_after_connect_tcp.cpp
663 664
tests_test_bind_after_connect_tcp_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_bind_after_connect_tcp_CPPFLAGS = ${UNITY_CPPFLAGS}
665

666 667 668 669 670 671
tests_test_base85_SOURCES = tests/test_base85.cpp
tests_test_base85_LDADD = src/libzmq.la

tests_test_sodium_SOURCES = tests/test_sodium.cpp
tests_test_sodium_LDADD = src/libzmq.la

672
tests_test_socket_null_SOURCES = tests/test_socket_null.cpp
673 674
tests_test_socket_null_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_socket_null_CPPFLAGS = ${UNITY_CPPFLAGS}
675

676
tests_test_reconnect_ivl_SOURCES = tests/test_reconnect_ivl.cpp
677 678
tests_test_reconnect_ivl_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_reconnect_ivl_CPPFLAGS = ${UNITY_CPPFLAGS}
679

680 681 682 683 684 685 686
if HAVE_CURVE

test_apps += \
	tests/test_security_curve

tests_test_security_curve_SOURCES = \
	tests/test_security_curve.cpp \
687
	tests/testutil_security.hpp \
688 689 690 691 692 693 694 695 696 697 698 699 700 701 702
	tests/testutil.hpp \
	src/curve_client_tools.hpp \
	src/clock.hpp \
	src/clock.cpp \
	src/random.hpp \
	src/random.cpp \
	src/err.hpp \
	src/err.cpp

if USE_TWEETNACL
tests_test_security_curve_SOURCES += \
	src/tweetnacl.c
endif

tests_test_security_curve_LDADD = \
703
	src/libzmq.la ${UNITY_LIBS} $(LIBUNWIND_LIBS)
704
tests_test_security_curve_CPPFLAGS = \
705
	${UNITY_CPPFLAGS} \
706
	${LIBUNWIND_CFLAGS}
707 708

if USE_LIBSODIUM
709 710
tests_test_security_curve_CPPFLAGS += \
	${sodium_CFLAGS}
711 712 713 714 715 716
tests_test_security_curve_LDADD += \
	${sodium_LIBS}
endif

endif

717
if !ON_MINGW
718
if !ON_CYGWIN
719
test_apps += \
720
	tests/test_shutdown_stress \
721
	tests/test_ipc_wildcard \
722
	tests/test_pair_ipc \
723
	tests/test_rebind_ipc \
724
	tests/test_reqrep_ipc \
725 726
	tests/test_use_fd_ipc \
	tests/test_use_fd_tcp \
727
	tests/test_zmq_poll_fd \
728 729
	tests/test_timeo \
	tests/test_filter_ipc
730

731 732
tests_test_shutdown_stress_SOURCES = tests/test_shutdown_stress.cpp
tests_test_shutdown_stress_LDADD = src/libzmq.la
733

734 735 736
tests_test_ipc_wildcard_SOURCES = tests/test_ipc_wildcard.cpp
tests_test_ipc_wildcard_LDADD = src/libzmq.la

737
tests_test_pair_ipc_SOURCES = \
738 739
	tests/test_pair_ipc.cpp \
	tests/testutil.hpp
740
tests_test_pair_ipc_LDADD = src/libzmq.la
741

742 743 744
tests_test_rebind_ipc_SOURCES = tests/test_rebind_ipc.cpp
tests_test_rebind_ipc_LDADD = src/libzmq.la

745
tests_test_reqrep_ipc_SOURCES = \
746 747
	tests/test_reqrep_ipc.cpp \
	tests/testutil.hpp
748
tests_test_reqrep_ipc_LDADD = src/libzmq.la
749

750 751
tests_test_timeo_SOURCES = tests/test_timeo.cpp
tests_test_timeo_LDADD = src/libzmq.la
752

753 754
tests_test_filter_ipc_SOURCES = tests/test_filter_ipc.cpp
tests_test_filter_ipc_LDADD = src/libzmq.la
755

756 757
tests_test_use_fd_ipc_SOURCES = \
	tests/test_use_fd_ipc.cpp \
758
	tests/testutil.hpp
759
tests_test_use_fd_ipc_LDADD = src/libzmq.la
760

761 762
tests_test_use_fd_tcp_SOURCES = \
	tests/test_use_fd_tcp.cpp \
763
	tests/testutil.hpp
764
tests_test_use_fd_tcp_LDADD = src/libzmq.la
765

766 767 768
tests_test_zmq_poll_fd_SOURCES = tests/test_zmq_poll_fd.cpp
tests_test_zmq_poll_fd_LDADD = src/libzmq.la

769
if HAVE_FORK
770
if !VALGRIND_ENABLED
771
test_apps += tests/test_fork
772

773 774
tests_test_fork_SOURCES = tests/test_fork.cpp
tests_test_fork_LDADD = src/libzmq.la
775

776
endif
777
endif
778 779 780 781 782
endif
endif

if BUILD_TIPC
test_apps += \
783 784 785 786 787 788 789
	tests/test_connect_delay_tipc \
	tests/test_pair_tipc \
	tests/test_reqrep_device_tipc \
	tests/test_reqrep_tipc \
	tests/test_router_mandatory_tipc \
	tests/test_shutdown_stress_tipc \
	tests/test_sub_forward_tipc \
790 791
	tests/test_term_endpoint_tipc \
	tests/test_address_tipc
792

793 794
tests_test_connect_delay_tipc_SOURCES = tests/test_connect_delay_tipc.cpp
tests_test_connect_delay_tipc_LDADD = src/libzmq.la
795

796 797
tests_test_pair_tipc_SOURCES = tests/test_pair_tipc.cpp
tests_test_pair_tipc_LDADD = src/libzmq.la
798

799 800
tests_test_reqrep_device_tipc_SOURCES = tests/test_reqrep_device_tipc.cpp
tests_test_reqrep_device_tipc_LDADD = src/libzmq.la
801

802 803
tests_test_reqrep_tipc_SOURCES = tests/test_reqrep_tipc.cpp
tests_test_reqrep_tipc_LDADD = src/libzmq.la
804

805 806
tests_test_router_mandatory_tipc_SOURCES = tests/test_router_mandatory_tipc.cpp
tests_test_router_mandatory_tipc_LDADD = src/libzmq.la
807

808 809
tests_test_shutdown_stress_tipc_SOURCES = tests/test_shutdown_stress_tipc.cpp
tests_test_shutdown_stress_tipc_LDADD = src/libzmq.la
810

811 812
tests_test_sub_forward_tipc_SOURCES = tests/test_sub_forward_tipc.cpp
tests_test_sub_forward_tipc_LDADD = src/libzmq.la
813

814 815
tests_test_term_endpoint_tipc_SOURCES = tests/test_term_endpoint_tipc.cpp
tests_test_term_endpoint_tipc_LDADD = src/libzmq.la
816

817 818 819 820
tests_test_address_tipc_SOURCES = tests/test_address_tipc.cpp
tests_test_address_tipc_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_address_tipc_CPPFLAGS = ${UNITY_CPPFLAGS}

821 822
endif

823 824 825 826 827 828 829 830
if BUILD_GSSAPI
test_apps += tests/test_security_gssapi

tests_test_security_gssapi_SOURCES = tests/test_security_gssapi.cpp
tests_test_security_gssapi_LDADD = src/libzmq.la

endif

831
if ON_LINUX
832 833
test_apps += tests/test_abstract_ipc \
		tests/test_many_sockets
834

835 836
tests_test_abstract_ipc_SOURCES = tests/test_abstract_ipc.cpp
tests_test_abstract_ipc_LDADD = src/libzmq.la
837

838 839
endif

Ilya Kulakov's avatar
Ilya Kulakov committed
840 841 842 843 844 845 846 847 848 849 850 851 852 853 854
if HAVE_VMCI
test_apps += test_pair_vmci test_reqrep_vmci

test_pair_vmci_SOURCES = tests/test_pair_vmci.cpp
test_pair_vmci_LDADD = libzmq.la
test_pair_vmci_LDFLAGS = @LIBZMQ_VMCI_LDFLAGS@
test_pair_vmci_CXXFLAGS = @LIBZMQ_VMCI_CXXFLAGS@

test_reqrep_vmci_SOURCES = tests/test_reqrep_vmci.cpp
test_reqrep_vmci_LDADD = libzmq.la
test_reqrep_vmci_LDFLAGS = @LIBZMQ_VMCI_LDFLAGS@
test_reqrep_vmci_CXXFLAGS = @LIBZMQ_VMCI_CXXFLAGS@

endif

855
if ENABLE_DRAFTS
856 857
test_apps += tests/test_poller \
	tests/test_client_server \
858
	tests/test_thread_safe \
859 860
	tests/test_timers \
	tests/test_radio_dish \
Bitiquinho's avatar
Bitiquinho committed
861
	tests/test_scatter_gather \
862 863
	tests/test_dgram \
	tests/test_app_meta
864

865
tests_test_poller_SOURCES = tests/test_poller.cpp
866 867
tests_test_poller_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_poller_CPPFLAGS = ${UNITY_CPPFLAGS}
868

869
tests_test_client_server_SOURCES = tests/test_client_server.cpp
870 871
tests_test_client_server_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_client_server_CPPFLAGS = ${UNITY_CPPFLAGS}
872 873

tests_test_thread_safe_SOURCES = tests/test_thread_safe.cpp
874 875
tests_test_thread_safe_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_thread_safe_CPPFLAGS = ${UNITY_CPPFLAGS}
876 877 878

tests_test_timers_SOURCES = tests/test_timers.cpp
tests_test_timers_LDADD = src/libzmq.la
879 880

tests_test_radio_dish_SOURCES = tests/test_radio_dish.cpp
881 882
tests_test_radio_dish_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_radio_dish_CPPFLAGS = ${UNITY_CPPFLAGS}
883

884 885
tests_test_scatter_gather_SOURCES = tests/test_scatter_gather.cpp
tests_test_scatter_gather_LDADD = src/libzmq.la
Bitiquinho's avatar
Bitiquinho committed
886 887 888

tests_test_dgram_SOURCES = tests/test_dgram.cpp
tests_test_dgram_LDADD = src/libzmq.la
889 890 891 892

tests_test_app_meta_SOURCES = tests/test_app_meta.cpp
tests_test_app_meta_LDADD = src/libzmq.la ${UNITY_LIBS}
tests_test_app_meta_CPPFLAGS = ${UNITY_CPPFLAGS}
893 894
endif

895 896 897 898
if ENABLE_STATIC
# unit tests - these include individual source files and test the internal functions
test_apps += \
	unittests/unittest_poller \
899
	unittests/unittest_ypipe \
900
	unittests/unittest_mtrie \
901 902
	unittests/unittest_ip_resolver \
	unittests/unittest_udp_address
903 904

unittests_unittest_poller_SOURCES = unittests/unittest_poller.cpp
905 906
unittests_unittest_poller_CPPFLAGS = -I$(top_srcdir)/src ${UNITY_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
unittests_unittest_poller_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
907 908
unittests_unittest_poller_LDADD = $(top_builddir)/src/.libs/libzmq.a \
	${src_libzmq_la_LIBADD} \
909 910
	${UNITY_LIBS} \
	$(CODE_COVERAGE_LDFLAGS)
911 912

unittests_unittest_ypipe_SOURCES = unittests/unittest_ypipe.cpp
913 914
unittests_unittest_ypipe_CPPFLAGS = -I$(top_srcdir)/src ${UNITY_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
unittests_unittest_ypipe_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
915 916
unittests_unittest_ypipe_LDADD = $(top_builddir)/src/.libs/libzmq.a \
	${src_libzmq_la_LIBADD} \
917 918
	${UNITY_LIBS} \
	$(CODE_COVERAGE_LDFLAGS)
919 920

unittests_unittest_mtrie_SOURCES = unittests/unittest_mtrie.cpp
921 922
unittests_unittest_mtrie_CPPFLAGS = -I$(top_srcdir)/src ${UNITY_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
unittests_unittest_mtrie_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
923 924
unittests_unittest_mtrie_LDADD = $(top_builddir)/src/.libs/libzmq.a \
	${src_libzmq_la_LIBADD} \
925 926
	${UNITY_LIBS} \
	$(CODE_COVERAGE_LDFLAGS)
927

928
unittests_unittest_ip_resolver_SOURCES = unittests/unittest_ip_resolver.cpp unittests/unittest_resolver_common.hpp
929 930 931 932 933 934
unittests_unittest_ip_resolver_CPPFLAGS = -I$(top_srcdir)/src ${UNITY_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
unittests_unittest_ip_resolver_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
unittests_unittest_ip_resolver_LDADD = $(top_builddir)/src/.libs/libzmq.a \
	${src_libzmq_la_LIBADD} \
	${UNITY_LIBS} \
	$(CODE_COVERAGE_LDFLAGS)
935

936
unittests_unittest_udp_address_SOURCES = unittests/unittest_udp_address.cpp unittests/unittest_resolver_common.hpp
937 938 939 940 941 942
unittests_unittest_udp_address_CPPFLAGS = -I$(top_srcdir)/src ${UNITY_CPPFLAGS} $(CODE_COVERAGE_CPPFLAGS)
unittests_unittest_udp_address_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS)
unittests_unittest_udp_address_LDADD = $(top_builddir)/src/.libs/libzmq.a \
	${src_libzmq_la_LIBADD} \
	${UNITY_LIBS} \
	$(CODE_COVERAGE_LDFLAGS)
943 944
endif

945 946 947 948
check_PROGRAMS = ${test_apps}

#  Run the test cases
TESTS = $(test_apps)
949
XFAIL_TESTS =
950 951

if !ON_LINUX
952
XFAIL_TESTS += tests/test_abstract_ipc
953
endif
954

955 956 957 958 959
if ON_GNU
XFAIL_TESTS += test_ipc_wildcard \
		test_term_endpoint
endif

960
EXTRA_DIST = \
961 962
	external/unity/license.txt \
	external/unity/version.txt \
963
	CMakeLists.txt \
964 965
	autogen.sh	\
	version.sh	\
966
	src/libzmq.pc.cmake.in \
967
	ci_build.sh \
968
	src/libzmq.vers \
969 970
	src/version.rc.in \
	tests/CMakeLists.txt \
971
	unittests/CMakeLists.txt \
972
	tools/curve_keygen.cpp
973

974
MAINTAINERCLEANFILES = \
975 976 977
	$(srcdir)/aclocal.m4 \
	$(srcdir)/autom4te.cache \
	$(srcdir)/configure \
978
	`find "$(srcdir)" -type f -name Makefile.in -print`
malosek's avatar
malosek committed
979

980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030
if WITH_CLANG_FORMAT
ALL_SOURCE_FILES = $(wildcard \
	$(top_srcdir)/src/*.c \
	$(top_srcdir)/src/*.cc \
	$(top_srcdir)/src/*.cpp \
	$(top_srcdir)/src/*.h \
	$(top_srcdir)/src/*.hpp \
	$(top_srcdir)/tests/*.c \
	$(top_srcdir)/tests/*.cc \
	$(top_srcdir)/tests/*.cpp \
	$(top_srcdir)/tests/*.h \
	$(top_srcdir)/tests/*.hpp \
	$(top_srcdir)/perf/*.c \
	$(top_srcdir)/perf/*.cc \
	$(top_srcdir)/perf/*.cpp \
	$(top_srcdir)/perf/*.h \
	$(top_srcdir)/perf/*.hpp \
	$(top_srcdir)/tools/*.c \
	$(top_srcdir)/tools/*.cc \
	$(top_srcdir)/tools/*.cpp \
	$(top_srcdir)/tools/*.h \
	$(top_srcdir)/tools/*.hpp \
	$(top_srcdir)/include/*.h \
 )

# Check if any sources need to be fixed, report the filenames and an error code
clang-format-check: $(ALL_SOURCE_FILES)
	@FAILED=0 ; IFS=";" ; IDS="`printf '\n\b'`" ; export IFS IDS; \
	 for FILE in $(ALL_SOURCE_FILES) ; do \
		test -s $$FILE || continue ; \
		$(CLANG_FORMAT) -style=file -output-replacements-xml "$$FILE" | grep "<replacement " >/dev/null && \
		{ echo "$$FILE is not correctly formatted" >&2 ; FAILED=1; } ; \
	 done; \
	 if test "$$FAILED" != 0 ; then \
		exit 1 ; \
	 fi

# Change source formatting
clang-format: $(ALL_SOURCE_FILES)
	$(CLANG_FORMAT) -style=file -i $(ALL_SOURCE_FILES)

# Change source formatting AND report the diff
clang-format-diff: clang-format
	git diff $(ALL_SOURCE_FILES)

else
clang-format clang-format-check clang-format-diff:
	@echo "Install the clang-format program, reconfigure and re-run this request"
	@exit 1
endif

1031 1032
@CODE_COVERAGE_RULES@

1033
dist-hook:
1034
	-rm $(distdir)/src/platform.hpp
1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046
	@if test -d "$(srcdir)/.git"; \
	then \
		echo Creating ChangeLog && \
		( cd "$(top_srcdir)" && \
		  echo '# Generated by Makefile. Do not edit.'; echo; \
		  $(top_srcdir)/config/missing --run git log --stat ) > ChangeLog.tmp \
		  && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \
		  || ( rm -f ChangeLog.tmp ; \
		       echo Failed to generate ChangeLog >&2 ); \
	else \
		echo A git clone is required to generate a ChangeLog >&2; \
	fi
1047

1048 1049
maintainer-clean-local:
	-rm -rf $(top_srcdir)/config
1050 1051

@VALGRIND_CHECK_RULES@
1052 1053

VALGRIND_SUPPRESSIONS_FILES = builds/valgrind/valgrind.supp