155 lines
5.3 KiB
Makefile
155 lines
5.3 KiB
Makefile
# need this for Doxygen integration
|
|
include $(top_srcdir)/aminclude.am
|
|
|
|
AUTOMAKE_OPTIONS = serial-tests
|
|
|
|
if SOLARIS
|
|
SOLARIS_CPPFLAGS = -D_POSIX_PTHREAD_SEMANTICS
|
|
SOLARIS_LIB_LDFLAGS = -lnsl -lsocket
|
|
endif
|
|
|
|
if WANT_OPENSSL
|
|
OPENSSL_CPPFLAGS = -DHAVE_OPENSSL_H
|
|
OPENSSL_LIB_LDFLAGS = -lssl -lcrypto
|
|
endif
|
|
|
|
AM_CPPFLAGS = -I${srcdir}/include -I${srcdir}/tests -I${srcdir}/generated $(SOLARIS_CPPFLAGS) $(OPENSSL_CPPFLAGS)
|
|
AM_CFLAGS = -Wall -Werror -Wdeclaration-after-statement
|
|
AM_CXXFLAGS = -Wall $(USEIPV6)
|
|
LIB_LDFLAGS = -no-undefined -version-info 2 $(SOLARIS_LIB_LDFLAGS) $(OPENSSL_LIB_LDFLAGS)
|
|
|
|
# Additional flags for coverage testing (if enabled)
|
|
if ENABLEGCOV
|
|
AM_CFLAGS += -fprofile-arcs -ftest-coverage
|
|
AM_LDFLAGS = -lgcov
|
|
endif
|
|
|
|
pkginclude_HEADERS = include/zookeeper.h include/zookeeper_version.h include/zookeeper_log.h include/proto.h include/recordio.h generated/zookeeper.jute.h
|
|
EXTRA_DIST=LICENSE
|
|
|
|
HASHTABLE_SRC = src/hashtable/hashtable_itr.h src/hashtable/hashtable_itr.c \
|
|
src/hashtable/hashtable_private.h src/hashtable/hashtable.h src/hashtable/hashtable.c
|
|
|
|
noinst_LTLIBRARIES = libhashtable.la
|
|
libhashtable_la_SOURCES = $(HASHTABLE_SRC)
|
|
|
|
COMMON_SRC = src/zookeeper.c include/zookeeper.h include/zookeeper_version.h include/zookeeper_log.h\
|
|
src/recordio.c include/recordio.h include/proto.h \
|
|
src/zk_adaptor.h generated/zookeeper.jute.c \
|
|
src/zk_log.c src/zk_hashtable.h src/zk_hashtable.c \
|
|
src/addrvec.h src/addrvec.c
|
|
|
|
# These are the symbols (classes, mostly) we want to export from our library.
|
|
EXPORT_SYMBOLS = '(zoo_|zookeeper_|zhandle|Z|format_log_message|log_message|logLevel|deallocate_|allocate_|zerror|is_unrecoverable)'
|
|
noinst_LTLIBRARIES += libzkst.la
|
|
libzkst_la_SOURCES =$(COMMON_SRC) src/st_adaptor.c
|
|
libzkst_la_LIBADD = -lm $(CLOCK_GETTIME_LIBS)
|
|
|
|
lib_LTLIBRARIES = libzookeeper_st.la
|
|
libzookeeper_st_la_SOURCES =
|
|
libzookeeper_st_la_LIBADD=libzkst.la libhashtable.la
|
|
libzookeeper_st_la_DEPENDENCIES=libzkst.la libhashtable.la
|
|
libzookeeper_st_la_LDFLAGS = $(LIB_LDFLAGS) -export-symbols-regex $(EXPORT_SYMBOLS)
|
|
|
|
if WANT_SYNCAPI
|
|
noinst_LTLIBRARIES += libzkmt.la
|
|
libzkmt_la_SOURCES =$(COMMON_SRC) src/mt_adaptor.c
|
|
libzkmt_la_CFLAGS = -DTHREADED
|
|
libzkmt_la_LIBADD = -lm $(CLOCK_GETTIME_LIBS)
|
|
|
|
lib_LTLIBRARIES += libzookeeper_mt.la
|
|
libzookeeper_mt_la_SOURCES =
|
|
libzookeeper_mt_la_LIBADD=libzkmt.la libhashtable.la -lpthread
|
|
libzookeeper_mt_la_DEPENDENCIES=libzkmt.la libhashtable.la
|
|
libzookeeper_mt_la_LDFLAGS = $(LIB_LDFLAGS) -export-symbols-regex $(EXPORT_SYMBOLS)
|
|
endif
|
|
|
|
bin_PROGRAMS = cli_st
|
|
|
|
cli_st_SOURCES = src/cli.c
|
|
cli_st_LDADD = libzookeeper_st.la
|
|
|
|
if WANT_SYNCAPI
|
|
bin_PROGRAMS += cli_mt load_gen
|
|
|
|
cli_mt_SOURCES = src/cli.c
|
|
cli_mt_LDADD = libzookeeper_mt.la
|
|
cli_mt_CFLAGS = -DTHREADED
|
|
|
|
load_gen_SOURCES = src/load_gen.c
|
|
load_gen_LDADD = libzookeeper_mt.la
|
|
load_gen_CFLAGS = -DTHREADED
|
|
|
|
endif
|
|
|
|
#########################################################################
|
|
# build and run unit tests
|
|
|
|
EXTRA_DIST+=$(wildcard ${srcdir}/tests/*.cc) $(wildcard ${srcdir}/tests/*.h) \
|
|
${srcdir}/tests/wrappers.opt ${srcdir}/tests/wrappers-mt.opt
|
|
|
|
# These tests are ordered in a logical manner such that each builds upon basic
|
|
# functionality tested in prior tests. e.g. the most basic functionality is
|
|
# tested in TestZookeeperInit and TestZookeeperClose and as such should be tested
|
|
# first as a foundation with more complex test suites to follow.
|
|
TEST_SOURCES = \
|
|
tests/TestDriver.cc \
|
|
tests/LibCMocks.cc \
|
|
tests/LibCSymTable.cc \
|
|
tests/MocksBase.cc \
|
|
tests/ZKMocks.cc \
|
|
tests/Util.cc \
|
|
tests/ThreadingUtil.cc \
|
|
tests/TestZookeeperInit.cc \
|
|
tests/TestZookeeperClose.cc \
|
|
tests/TestReconfig.cc \
|
|
tests/TestReconfigServer.cc \
|
|
tests/TestClientRetry.cc \
|
|
tests/TestOperations.cc \
|
|
tests/TestMulti.cc \
|
|
tests/TestWatchers.cc \
|
|
tests/TestClient.cc \
|
|
tests/ZooKeeperQuorumServer.cc \
|
|
tests/ZooKeeperQuorumServer.h \
|
|
tests/TestReadOnlyClient.cc \
|
|
tests/TestLogClientEnv.cc \
|
|
tests/TestServerRequireClientSASLAuth.cc \
|
|
$(NULL)
|
|
|
|
if SOLARIS
|
|
SHELL_SYMBOL_WRAPPERS = cat ${srcdir}/tests/wrappers.opt
|
|
SYMBOL_WRAPPERS=$(SHELL_SYMBOL_WRAPPERS:sh)
|
|
else
|
|
SYMBOL_WRAPPERS=$(shell cat ${srcdir}/tests/wrappers.opt)
|
|
endif
|
|
|
|
check_PROGRAMS = zktest-st
|
|
TESTS_ENVIRONMENT = ZKROOT=${srcdir}/../.. \
|
|
CLASSPATH=$$CLASSPATH:$$CLOVER_HOME/lib/clover*.jar
|
|
nodist_zktest_st_SOURCES = $(TEST_SOURCES)
|
|
zktest_st_LDADD = libzkst.la libhashtable.la $(CPPUNIT_LIBS) $(OPENSSL_LIB_LDFLAGS) -ldl
|
|
zktest_st_CXXFLAGS = -DUSE_STATIC_LIB $(CPPUNIT_CFLAGS) $(USEIPV6) $(SOLARIS_CPPFLAGS)
|
|
zktest_st_LDFLAGS = -shared $(SYMBOL_WRAPPERS) $(SOLARIS_LIB_LDFLAGS)
|
|
|
|
if WANT_SYNCAPI
|
|
check_PROGRAMS += zktest-mt
|
|
nodist_zktest_mt_SOURCES = $(TEST_SOURCES) tests/PthreadMocks.cc
|
|
zktest_mt_LDADD = libzkmt.la libhashtable.la -lpthread $(CPPUNIT_LIBS) $(OPENSSL_LIB_LDFLAGS) -ldl
|
|
zktest_mt_CXXFLAGS = -DUSE_STATIC_LIB -DTHREADED $(CPPUNIT_CFLAGS) $(USEIPV6)
|
|
if SOLARIS
|
|
SHELL_SYMBOL_WRAPPERS_MT = cat ${srcdir}/tests/wrappers-mt.opt
|
|
SYMBOL_WRAPPERS_MT=$(SYMBOL_WRAPPERS) $(SHELL_SYMBOL_WRAPPERS_MT:sh)
|
|
else
|
|
SYMBOL_WRAPPERS_MT=$(SYMBOL_WRAPPERS) $(shell cat ${srcdir}/tests/wrappers-mt.opt)
|
|
endif
|
|
zktest_mt_LDFLAGS = -shared $(SYMBOL_WRAPPERS_MT) $(SOLARIS_LIB_LDFLAGS)
|
|
endif
|
|
|
|
TESTS = $(check_PROGRAMS)
|
|
|
|
clean-local: clean-check
|
|
$(RM) $(DX_CLEANFILES)
|
|
|
|
clean-check:
|
|
$(RM) $(nodist_zktest_st_OBJECTS) $(nodist_zktest_mt_OBJECTS)
|