ceph/src/Makefile.am
Sage Weil a351f7a1f4 Merge remote-tracking branch 'gh/wip_backfill_full2'
Conflicts:
	src/include/ceph_features.h
2012-09-27 13:21:23 -07:00

1839 lines
56 KiB
Makefile

AUTOMAKE_OPTIONS = gnu
SUBDIRS = ocf
DIST_SUBDIRS = gtest ocf leveldb libs3
EXTRA_DIST = \
libs3/COPYING \
libs3/ChangeLog \
libs3/GNUmakefile \
libs3/GNUmakefile.mingw \
libs3/GNUmakefile.osx \
libs3/INSTALL \
libs3/LICENSE \
libs3/README \
libs3/TODO \
libs3/archlinux \
libs3/debian \
libs3/doxyfile \
libs3/inc \
libs3/libs3.spec \
libs3/mswin \
libs3/src \
libs3/test
CLEANFILES =
bin_PROGRAMS =
# like bin_PROGRAMS, but these targets are only built for debug builds
bin_DEBUGPROGRAMS =
sbin_PROGRAMS =
sbin_SCRIPTS = \
ceph-disk-prepare \
ceph-disk-activate \
ceph-create-keys
bin_SCRIPTS = ceph-run $(srcdir)/ceph-clsinfo ceph-debugpack ceph-rbdnamer
dist_bin_SCRIPTS =
# C/C++ tests to build will be appended to this
check_PROGRAMS =
# tests to actually run on "make check"; if you need extra, non-test,
# executables built, you need to replace this with manual assignments
# target by target
TESTS = $(check_PROGRAMS)
check-local:
$(srcdir)/test/encoding/check-generated.sh
$(srcdir)/test/encoding/readable.sh ../ceph-object-corpus
EXTRALIBS = -luuid
if FREEBSD
EXTRALIBS += -lexecinfo
endif
if LINUX
EXTRALIBS += -lrt
endif
if WITH_PROFILER
EXTRALIBS += -lprofiler
endif
LIBGLOBAL_LDA = libglobal.la $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
LIBOS_LDA = libos.a
if WITH_LIBAIO
LIBOS_LDA += -laio
endif
if WITH_SYSTEM_LEVELDB
LIBOS_LDA += -lleveldb -lsnappy
LEVELDB_INCLUDE =
else
LIBOS_LDA += leveldb/libleveldb.a
SUBDIRS += leveldb
LEVELDB_INCLUDE = -I$(top_srcdir)/src/leveldb/include
endif
# monitor
ceph_mon_SOURCES = ceph_mon.cc
ceph_mon_LDFLAGS = $(AM_LDFLAGS)
ceph_mon_LDADD = libmon.a $(LIBGLOBAL_LDA)
ceph_mon_CXXFLAGS = ${AM_CXXFLAGS}
bin_PROGRAMS += ceph-mon
# osd
ceph_osd_SOURCES = ceph_osd.cc objclass/class_debug.cc \
objclass/class_api.cc
ceph_osd_LDADD = libosd.a $(LIBOS_LDA) $(LIBGLOBAL_LDA)
ceph_osd_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS} $(LEVELDB_INCLUDE)
bin_PROGRAMS += ceph-osd
if LINUX
ceph_osd_LDADD += -ldl
endif
# mds
ceph_mds_SOURCES = ceph_mds.cc
ceph_mds_LDADD = libmds.a libosdc.la $(LIBGLOBAL_LDA)
bin_PROGRAMS += ceph-mds
ceph_mds_CXXFLAGS = ${AM_CXXFLAGS}
# admin tools
ceph_SOURCES = \
tools/ceph.cc \
tools/common.cc \
mon/PGMap.cc
ceph_LDADD = $(LIBGLOBAL_LDA) $(LIBEDIT_LIBS)
ceph_CXXFLAGS = ${AM_CXXFLAGS}
ceph_conf_SOURCES = ceph_conf.cc
ceph_conf_LDADD = $(LIBGLOBAL_LDA)
ceph_authtool_SOURCES = ceph_authtool.cc
ceph_authtool_LDADD = $(LIBGLOBAL_LDA)
bin_PROGRAMS += ceph ceph-conf ceph-authtool
monmaptool_SOURCES = monmaptool.cc
monmaptool_LDADD = $(LIBGLOBAL_LDA)
crushtool_SOURCES = crushtool.cc
crushtool_LDADD = $(LIBGLOBAL_LDA)
osdmaptool_SOURCES = osdmaptool.cc
osdmaptool_LDADD = $(LIBGLOBAL_LDA)
bin_PROGRAMS += monmaptool crushtool osdmaptool
rgw_dencoder_src = rgw/rgw_dencoder.cc \
rgw/rgw_acl.cc
ceph_dencoder_SOURCES = test/encoding/ceph_dencoder.cc ${rgw_dencoder_src}
ceph_dencoder_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
ceph_dencoder_LDADD = $(LIBGLOBAL_LDA) libcls_lock_client.a libcls_rgw_client.a libosd.a libmds.a $(LIBOS_LDA) libmon.a
bin_PROGRAMS += ceph-dencoder
mount_ceph_SOURCES = mount/mount.ceph.c common/armor.c common/safe_io.c common/secret.c include/addr_parsing.c
mount_ceph_LDADD = -lkeyutils
if LINUX
sbin_PROGRAMS += mount.ceph
endif
# user tools
cephfs_SOURCES = cephfs.cc
cephfs_LDADD = libcommon.la
bin_PROGRAMS += cephfs
librados_config_SOURCES = librados-config.cc
librados_config_LDADD = libglobal.la librados.la $(EXTRALIBS) $(CRYPTO_LIBS)
bin_PROGRAMS += librados-config
# synthetic client
ceph_syn_SOURCES = ceph_syn.cc client/SyntheticClient.cc
ceph_syn_LDADD = libclient.la libosdc.la $(LIBGLOBAL_LDA)
bin_PROGRAMS += ceph-syn
base: ceph-mon ceph-osd ceph-mds \
ceph cephfs \
ceph-syn \
rados radosgw librados-config \
ceph-conf monmaptool osdmaptool crushtool ceph-authtool \
init-ceph mkcephfs
# fuse targets?
if WITH_FUSE
ceph_fuse_SOURCES = ceph_fuse.cc client/fuse_ll.cc
ceph_fuse_LDADD = -lfuse libclient.la libosdc.la $(LIBGLOBAL_LDA)
ceph_fuse_CXXFLAGS = ${AM_CXXFLAGS}
bin_PROGRAMS += ceph-fuse
endif
# tcmalloc?
if WITH_TCMALLOC
tcmalloc_safety_flags = -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free
ceph_osd_LDADD += -ltcmalloc
ceph_osd_CXXFLAGS += ${tcmalloc_safety_flags}
ceph_osd_SOURCES += perfglue/heap_profiler.cc
ceph_mds_LDADD += -ltcmalloc
ceph_mds_CXXFLAGS += ${tcmalloc_safety_flags}
ceph_mds_SOURCES += perfglue/heap_profiler.cc
ceph_mon_LDADD += -ltcmalloc
ceph_mon_CXXFLAGS += ${tcmalloc_safety_flags}
ceph_mon_SOURCES += perfglue/heap_profiler.cc
if WITH_FUSE
ceph_fuse_LDADD += -ltcmalloc
ceph_fuse_CXXFLAGS += ${tcmalloc_safety_flags}
endif #WITH_FUSE
else
ceph_osd_SOURCES += perfglue/disabled_heap_profiler.cc
ceph_mds_SOURCES += perfglue/disabled_heap_profiler.cc
ceph_mon_SOURCES += perfglue/disabled_heap_profiler.cc
endif # WITH_TCMALLOC
# debug targets
psim_SOURCES = psim.cc
psim_LDADD = $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += psim
test_mutate_SOURCES = test/test_mutate.cc
test_mutate_LDADD = libglobal.la librados.la $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
bin_DEBUGPROGRAMS += test_mutate
test_rewrite_latency_SOURCES = test/test_rewrite_latency.cc
test_rewrite_latency_LDADD = libcommon.la $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
bin_DEBUGPROGRAMS += test_rewrite_latency
testmsgr_SOURCES = testmsgr.cc
testmsgr_LDADD = $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += testmsgr
test_ioctls_SOURCES = client/test_ioctls.c
bin_DEBUGPROGRAMS += test_ioctls
dupstore_SOURCES = dupstore.cc
dupstore_LDADD = $(LIBOS_LDA) $(LIBGLOBAL_LDA)
streamtest_SOURCES = streamtest.cc
streamtest_LDADD = $(LIBOS_LDA) $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += dupstore streamtest
test_trans_SOURCES = test_trans.cc
test_trans_LDADD = $(LIBOS_LDA) $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += test_trans
testrados_SOURCES = test/osd/TestRados.cc test/osd/TestOpStat.cc test/osd/Object.cc test/osd/RadosModel.cc
testrados_LDADD = librados.la $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += testrados
omapbench_SOURCES = test/omap_bench.cc
omapbench_LDADD = librados.la $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += omapbench
kvstorebench_SOURCES = test/kv_store_bench.cc key_value_store/kv_flat_btree_async.cc
kvstorebench_LDADD = librados.la $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += kvstorebench
multi_stress_watch_SOURCES = test/multi_stress_watch.cc test/rados-api/test.cc
multi_stress_watch_LDADD = librados.la $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += multi_stress_watch
if WITH_BUILD_TESTS
test_libcommon_build_SOURCES = test/test_libcommon_build.cc $(libcommon_files)
test_libcommon_build_LDADD = $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
bin_DEBUGPROGRAMS += test_libcommon_build
test_librados_build_SOURCES = test/test_libcommon_build.cc $(libcommon_files) $(librados_SOURCES)
test_librados_build_LDADD = $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
test_librados_build_CXXFLAGS = $(AM_CXXFLAGS)
bin_DEBUGPROGRAMS += test_librados_build
test_librgw_build_SOURCES = test/test_libcommon_build.cc $(libcommon_files) \
$(librados_SOURCES) $(librgw_la_SOURCES)
test_librgw_build_LDADD = -lexpat $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
test_librgw_build_CXXFLAGS = $(AM_CXXFLAGS)
bin_DEBUGPROGRAMS += test_librgw_build
test_libcephfs_build_SOURCES = test/test_libcommon_build.cc $(libcommon_files) \
$(libcephfs_la_SOURCES) $(libosdc_la_SOURCES)
test_libcephfs_build_LDADD = -lexpat $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
test_libcephfs_build_CXXFLAGS = $(AM_CXXFLAGS)
bin_DEBUGPROGRAMS += test_libcephfs_build
endif
if WITH_HADOOPCLIENT
test_libhadoopcephfs_build_SOURCES = test/test_libcommon_build.cc \
$(libhadoopcephfs_la_SOURCES) $(libcephfs_la_SOURCES) \
$(libosdc_la_SOURCES) $(libcommon_files)
test_libhadoopcephfs_build_LDADD = -lexpat $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
test_libhadoopcephfs_build_CXXFLAGS = $(AM_CXXFLAGS)
bin_DEBUGPROGRAMS += test_libhadoopcephfs_build
endif
##########
BUILT_SOURCES =
lib_LTLIBRARIES =
noinst_LTLIBRARIES =
noinst_LIBRARIES =
# libcephfs
libcephfs_la_SOURCES = \
libcephfs.cc \
client/Client.cc \
client/Inode.cc \
client/MetaRequest.cc
libcephfs_la_CFLAGS= ${CRYPTO_CFLAGS} ${AM_CFLAGS}
libcephfs_la_CXXFLAGS= ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
libcephfs_la_LIBADD = libosdc.la
libcephfs_la_LDFLAGS = $(PTHREAD_LIBS) $(CRYPTO_LIBS) $(EXTRALIBS) \
${AM_LDFLAGS} -version-info 1:0:0 -export-symbols-regex '^ceph_.*'
lib_LTLIBRARIES += libcephfs.la
testceph_SOURCES = client/testceph.cc
testceph_LDADD = libcephfs.la $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
bin_DEBUGPROGRAMS += testceph
testtimers_SOURCES = test/TestTimers.cc
testtimers_LDADD = $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += testtimers
testsignal_handlers_SOURCES = test/TestSignalHandlers.cc
testsignal_handlers_LDADD = $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += testsignal_handlers
# librados
librados_SOURCES = \
librados/librados.cc \
librados/RadosClient.cc \
librados/IoCtxImpl.cc \
osdc/Objecter.cc
librados_la_SOURCES = ${librados_SOURCES}
librados_la_CFLAGS = ${CRYPTO_CFLAGS} ${AM_CFLAGS}
librados_la_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
librados_la_LIBADD = libcommon.la $(PTHREAD_LIBS) $(CRYPTO_LIBS) $(EXTRALIBS)
librados_la_LDFLAGS = ${AM_LDFLAGS} -version-info 2:0:0 -export-symbols-regex '^rados_.*'
lib_LTLIBRARIES += librados.la
if WITH_RADOSGW
# rgw
librgw_a_SOURCES = \
rgw/librgw.cc \
rgw/rgw_acl.cc \
rgw/rgw_acl_s3.cc \
rgw/rgw_acl_swift.cc \
rgw/rgw_xml.cc \
rgw/rgw_user.cc \
rgw/rgw_tools.cc \
rgw/rgw_rados.cc \
rgw/rgw_op.cc \
rgw/rgw_common.cc \
rgw/rgw_cache.cc \
rgw/rgw_formats.cc \
rgw/rgw_log.cc \
rgw/rgw_multi.cc \
rgw/rgw_gc.cc \
rgw/rgw_multi_del.cc \
rgw/rgw_env.cc
librgw_a_CFLAGS = ${CRYPTO_CFLAGS} ${AM_CFLAGS}
librgw_a_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
noinst_LIBRARIES += librgw.a
my_radosgw_ldadd = \
libglobal.la librgw.a librados.la libcls_rgw_client.a \
libcls_lock_client.a libcls_refcount_client.a -lcurl -lexpat \
$(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
radosgw_SOURCES = \
rgw/rgw_rest.cc \
rgw/rgw_rest_swift.cc \
rgw/rgw_rest_s3.cc \
rgw/rgw_swift.cc \
rgw/rgw_swift_auth.cc \
rgw/rgw_main.cc
radosgw_LDADD = $(my_radosgw_ldadd) -lfcgi
radosgw_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
bin_PROGRAMS += radosgw
radosgw_admin_SOURCES = rgw/rgw_admin.cc
radosgw_admin_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
radosgw_admin_LDADD = $(my_radosgw_ldadd)
bin_PROGRAMS += radosgw-admin
rgw_multiparser_SOURCES = rgw/rgw_multiparser.cc
rgw_multiparser_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
rgw_multiparser_LDADD = $(my_radosgw_ldadd)
bin_DEBUGPROGRAMS += rgw_multiparser
endif
# librbd
librbd_la_SOURCES = \
librbd/librbd.cc \
librbd/AioCompletion.cc \
librbd/AioRequest.cc \
librbd/cls_rbd_client.cc \
librbd/ImageCtx.cc \
librbd/internal.cc \
librbd/LibrbdWriteback.cc \
librbd/WatchCtx.cc \
osdc/ObjectCacher.cc \
cls/lock/cls_lock_client.cc \
cls/lock/cls_lock_types.cc \
cls/lock/cls_lock_ops.cc
librbd_la_CFLAGS = ${AM_CFLAGS}
librbd_la_CXXFLAGS = ${AM_CXXFLAGS}
librbd_la_LIBADD = librados.la
librbd_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0 \
-export-symbols-regex '^rbd_.*' $(PTHREAD_LIBS) $(EXTRALIBS)
lib_LTLIBRARIES += librbd.la
rados_SOURCES = rados.cc rados_import.cc rados_export.cc rados_sync.cc common/obj_bencher.cc
rados_LDADD = libglobal.la libcls_lock_client.a librados.la $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
bin_PROGRAMS += rados
if WITH_REST_BENCH
rest_bench_SOURCES = tools/rest_bench.cc common/obj_bencher.cc
rest_bench_LDADD = libglobal.la $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
rest_bench_CXXFLAGS = ${AM_CXXFLAGS}
bin_PROGRAMS += rest-bench
if WITH_SYSTEM_LIBS3
rest_bench_LDADD += -ls3
else
rest_bench_LDADD += libs3/build/lib/libs3.a -lcurl -lxml2
rest_bench_CXXFLAGS += -I$(top_srcdir)/src/libs3/inc
SUBDIRS += libs3
endif
endif
scratchtool_SOURCES = scratchtool.c
scratchtool_LDADD = librados.la $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
scratchtoolpp_SOURCES = scratchtoolpp.cc
scratchtoolpp_LDADD = librados.la $(PTHREAD_LIBS) -lm
radosacl_SOURCES = radosacl.cc
radosacl_LDADD = librados.la $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
bin_DEBUGPROGRAMS += scratchtool scratchtoolpp radosacl
rbd_SOURCES = rbd.cc common/fiemap.cc common/secret.c
rbd_CXXFLAGS = ${AM_CXXFLAGS}
rbd_LDADD = libglobal.la librbd.la librados.la $(PTHREAD_LIBS) -lm -lkeyutils $(CRYPTO_LIBS) $(EXTRALIBS)
if LINUX
bin_PROGRAMS += rbd
endif
testcrypto_SOURCES = testcrypto.cc
testcrypto_LDADD = $(LIBGLOBAL_LDA)
testcrypto_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
bin_DEBUGPROGRAMS += testcrypto
testkeys_SOURCES = testkeys.cc
testkeys_LDADD = libmon.a $(LIBGLOBAL_LDA)
testkeys_CXXFLAGS = ${AM_CXXFLAGS}
bin_DEBUGPROGRAMS += testkeys
if WITH_TCMALLOC
testkeys_LDADD += -ltcmalloc
testkeys_CXXFLAGS += ${tcmalloc_safety_flags}
testkeys_SOURCES += perfglue/heap_profiler.cc
endif
## rados object classes
# rbd: rados block device class
libcls_rbd_la_SOURCES = cls_rbd.cc
libcls_rbd_la_CFLAGS = ${AM_CFLAGS}
libcls_rbd_la_CXXFLAGS= ${AM_CXXFLAGS}
libcls_rbd_la_LIBADD = $(PTHREAD_LIBS) $(EXTRALIBS)
libcls_rbd_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0 -export-symbols-regex '.*__cls_.*'
radoslibdir = $(libdir)/rados-classes
radoslib_LTLIBRARIES = libcls_rbd.la
# lock class
libcls_lock_la_SOURCES = cls/lock/cls_lock.cc
libcls_lock_la_CFLAGS = ${AM_CFLAGS}
libcls_lock_la_CXXFLAGS= ${AM_CXXFLAGS}
libcls_lock_la_LIBADD = $(PTHREAD_LIBS) $(EXTRALIBS)
libcls_lock_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0 -export-symbols-regex '.*__cls_.*'
radoslib_LTLIBRARIES += libcls_lock.la
# refcount class
libcls_refcount_la_SOURCES = cls/refcount/cls_refcount.cc
libcls_refcount_la_CFLAGS = ${AM_CFLAGS}
libcls_refcount_la_CXXFLAGS= ${AM_CXXFLAGS}
libcls_refcount_la_LIBADD = $(PTHREAD_LIBS) $(EXTRALIBS)
libcls_refcount_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0 -export-symbols-regex '.*__cls_.*'
radoslib_LTLIBRARIES += libcls_refcount.la
if WITH_RADOSGW
# rgw: rados gateway
libcls_rgw_la_SOURCES = cls/rgw/cls_rgw.cc
libcls_rgw_la_CFLAGS = ${AM_CFLAGS}
libcls_rgw_la_CXXFLAGS= ${AM_CXXFLAGS}
libcls_rgw_la_LIBADD = $(PTHREAD_LIBS) $(EXTRALIBS)
libcls_rgw_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0 -export-symbols-regex '.*__cls_.*'
radoslib_LTLIBRARIES += libcls_rgw.la
endif
libcls_lock_client_a_SOURCES = \
cls/lock/cls_lock_client.cc \
cls/lock/cls_lock_types.cc \
cls/lock/cls_lock_ops.cc
noinst_LIBRARIES += libcls_lock_client.a
libcls_refcount_client_a_SOURCES = \
cls/refcount/cls_refcount_client.cc
noinst_LIBRARIES += libcls_refcount_client.a
libcls_rgw_client_a_SOURCES = \
cls/rgw/cls_rgw_client.cc \
cls/rgw/cls_rgw_types.cc \
cls/rgw/cls_rgw_ops.cc
noinst_LIBRARIES += libcls_rgw_client.a
## hadoop client
if WITH_HADOOPCLIENT
JAVA_BASE = /usr/lib/jvm/java-6-sun
libhadoopcephfs_la_SOURCES = client/hadoop/CephFSInterface.cc
libhadoopcephfs_la_LIBADD = libcephfs.la
libhadoopcephfs_la_CFLAGS = ${AM_CFLAGS}
libhadoopcephfs_la_CXXFLAGS = ${AM_CXXFLAGS}
libhadoopcephfs_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0 -export-symbols-regex 'hadoopcephfs_.*'
lib_LTLIBRARIES += libhadoopcephfs.la
endif
## key_value_store classes
# key_value_store: key value store class
libcls_kvs_la_SOURCES = key_value_store/cls_kvs.cc
libcls_kvs_la_CFLAGS = ${AM_CFLAGS}
libcls_kvs_la_CXXFLAGS= ${AM_CXXFLAGS}
libcls_kvs_la_LIBADD = $(PTHREAD_LIBS) $(EXTRALIBS)
libcls_kvs_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0 -export-symbols-regex '.*__cls_.*'
radoslib_LTLIBRARIES += libcls_kvs.la
## System tests
libsystest_la_SOURCES = \
test/system/cross_process_sem.cc \
test/system/systest_runnable.cc \
test/system/systest_settings.cc
libsystest_la_LIBADD = libglobal.la
noinst_LTLIBRARIES += libsystest.la
testrados_list_parallel_SOURCES = \
test/system/rados_list_parallel.cc \
test/system/st_rados_create_pool.cc \
test/system/st_rados_list_objects.cc
testrados_list_parallel_LDADD = libsystest.la librados.la
bin_DEBUGPROGRAMS += testrados_list_parallel
testrados_open_pools_parallel_SOURCES = \
test/system/rados_open_pools_parallel.cc \
test/system/st_rados_create_pool.cc
testrados_open_pools_parallel_LDADD = libsystest.la librados.la
bin_DEBUGPROGRAMS += testrados_open_pools_parallel
testrados_delete_pools_parallel_SOURCES = \
test/system/rados_delete_pools_parallel.cc \
test/system/st_rados_create_pool.cc \
test/system/st_rados_delete_pool.cc \
test/system/st_rados_list_objects.cc
testrados_delete_pools_parallel_LDADD = libsystest.la librados.la
bin_DEBUGPROGRAMS += testrados_delete_pools_parallel
testrados_watch_notify_SOURCES = \
test/system/rados_watch_notify.cc \
test/system/st_rados_create_pool.cc \
test/system/st_rados_delete_pool.cc \
test/system/st_rados_delete_objs.cc \
test/system/st_rados_watch.cc \
test/system/st_rados_notify.cc
testrados_watch_notify_LDADD = libsystest.la librados.la
bin_DEBUGPROGRAMS += testrados_watch_notify
bench_log_SOURCES = \
test/bench_log.cc
bench_log_LDADD = libcommon.la libglobal.la $(PTHREAD_LIBS) -lm $(CRYPTO_LIBS) $(EXTRALIBS)
bin_DEBUGPROGRAMS += bench_log
## unit tests
# target to build but not run the unit tests
unittests:: $(check_PROGRAMS)
UNITTEST_CXXFLAGS = \
-I$(top_srcdir)/src/gtest/include \
-I$(top_builddir)/src/gtest/include
UNITTEST_STATIC_LDADD = \
$(top_builddir)/src/gtest/lib/libgtest.a \
$(top_builddir)/src/gtest/lib/libgtest_main.a \
$(PTHREAD_LIBS)
UNITTEST_LDADD = ${UNITTEST_STATIC_LDADD}
unittest_encoding_SOURCES = test/encoding.cc
unittest_encoding_LDADD = libcephfs.la librados.la $(PTHREAD_LIBS) -lm \
${UNITTEST_LDADD}
unittest_encoding_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} \
-fno-strict-aliasing
check_PROGRAMS += unittest_encoding
unittest_addrs_SOURCES = test/test_addrs.cc
unittest_addrs_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
unittest_addrs_LDADD = libglobal.la $(PTHREAD_LIBS) -lm ${UNITTEST_LDADD} $(CRYPTO_LIBS) $(EXTRALIBS)
check_PROGRAMS += unittest_addrs
unittest_workqueue_SOURCES = test/test_workqueue.cc
unittest_workqueue_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
unittest_workqueue_LDADD = libglobal.la $(PTHREAD_LIBS) -lm ${UNITTEST_LDADD} $(CRYPTO_LIBS) $(EXTRALIBS)
check_PROGRAMS += unittest_workqueue
unittest_prebufferedstreambuf_SOURCES = test/test_prebufferedstreambuf.cc common/PrebufferedStreambuf.cc
unittest_prebufferedstreambuf_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
unittest_prebufferedstreambuf_LDADD = ${UNITTEST_LDADD} $(EXTRALIBS)
check_PROGRAMS += unittest_prebufferedstreambuf
unittest_str_list_SOURCES = test/test_str_list.cc
unittest_str_list_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
unittest_str_list_LDADD = libglobal.la $(PTHREAD_LIBS) -lm ${UNITTEST_LDADD} $(CRYPTO_LIBS) $(EXTRALIBS)
check_PROGRAMS += unittest_str_list
unittest_log_SOURCES = log/test.cc common/PrebufferedStreambuf.cc
unittest_log_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_log_LDADD = libcommon.la ${UNITTEST_LDADD}
unittest_log_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} -O2
check_PROGRAMS += unittest_log
unittest_base64_SOURCES = test/base64.cc
unittest_base64_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_base64_LDADD = libcephfs.la -lm ${UNITTEST_LDADD}
unittest_base64_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_base64
unittest_ceph_argparse_SOURCES = test/ceph_argparse.cc
unittest_ceph_argparse_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_ceph_argparse_LDADD = libglobal.la ${UNITTEST_LDADD}
unittest_ceph_argparse_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_ceph_argparse
unittest_osd_types_SOURCES = test/test_osd_types.cc
unittest_osd_types_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
unittest_osd_types_LDADD = libglobal.la libcommon.la $(PTHREAD_LIBS) -lm ${UNITTEST_LDADD} $(CRYPTO_LIBS) $(EXTRALIBS)
check_PROGRAMS += unittest_osd_types
unittest_gather_SOURCES = test/gather.cc
unittest_gather_LDADD = ${LIBGLOBAL_LDA} ${UNITTEST_LDADD}
unittest_gather_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_gather
unittest_run_cmd_SOURCES = test/run_cmd.cc
unittest_run_cmd_LDADD = libcephfs.la ${UNITTEST_LDADD}
unittest_run_cmd_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_run_cmd
unittest_signals_SOURCES = test/signals.cc
unittest_signals_LDADD = ${LIBGLOBAL_LDA} ${UNITTEST_LDADD}
unittest_signals_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_signals
unittest_simple_spin_SOURCES = test/simple_spin.cc
unittest_simple_spin_LDADD = libcephfs.la ${UNITTEST_LDADD}
unittest_simple_spin_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_simple_spin
unittest_librados_SOURCES = test/librados.cc
unittest_librados_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_librados_LDADD = librados.la ${UNITTEST_LDADD}
unittest_librados_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_librados
unittest_bufferlist_SOURCES = test/bufferlist.cc
unittest_bufferlist_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
unittest_bufferlist_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_bufferlist
unittest_crypto_SOURCES = test/crypto.cc
unittest_crypto_LDFLAGS = ${CRYPTO_LDFLAGS} ${AM_LDFLAGS}
unittest_crypto_LDADD = ${LIBGLOBAL_LDA} ${UNITTEST_LDADD}
unittest_crypto_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_crypto
unittest_perf_counters_SOURCES = test/perf_counters.cc
unittest_perf_counters_LDFLAGS = ${AM_LDFLAGS}
unittest_perf_counters_LDADD = ${LIBGLOBAL_LDA} ${UNITTEST_LDADD}
unittest_perf_counters_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_perf_counters
unittest_admin_socket_SOURCES = test/admin_socket.cc
unittest_admin_socket_LDFLAGS = ${AM_LDFLAGS}
unittest_admin_socket_LDADD = ${LIBGLOBAL_LDA} ${UNITTEST_LDADD} libcommon.la
unittest_admin_socket_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_admin_socket
unittest_ceph_crypto_SOURCES = test/ceph_crypto.cc
unittest_ceph_crypto_LDFLAGS = ${CRYPTO_LDFLAGS} ${AM_LDFLAGS}
unittest_ceph_crypto_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
unittest_ceph_crypto_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_ceph_crypto
unittest_utf8_SOURCES = test/utf8.cc
unittest_utf8_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_utf8_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
unittest_utf8_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_utf8
unittest_mime_SOURCES = test/mime.cc
unittest_mime_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_mime_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
unittest_mime_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_mime
unittest_escape_SOURCES = test/escape.cc
unittest_escape_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_escape_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
unittest_escape_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_escape
unittest_strtol_SOURCES = test/strtol.cc
unittest_strtol_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_strtol_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
unittest_strtol_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_strtol
unittest_confutils_SOURCES = test/confutils.cc
unittest_confutils_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_confutils_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
unittest_confutils_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_confutils
unittest_heartbeatmap_SOURCES = test/heartbeat_map.cc common/HeartbeatMap.cc
unittest_heartbeatmap_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_heartbeatmap_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
unittest_heartbeatmap_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_heartbeatmap
unittest_formatter_SOURCES = test/formatter.cc rgw/rgw_formats.cc
unittest_formatter_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_formatter_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
unittest_formatter_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_formatter
unittest_libcephfs_config_SOURCES = test/libcephfs_config.cc
unittest_libcephfs_config_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_libcephfs_config_LDADD = libcephfs.la ${UNITTEST_LDADD}
unittest_libcephfs_config_CXXFLAGS = ${CRYPTO_CFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_libcephfs_config
unittest_librados_config_SOURCES = test/librados_config.cc
unittest_librados_config_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_librados_config_LDADD = librados.la ${UNITTEST_LDADD}
unittest_librados_config_CXXFLAGS = ${CRYPTO_CFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_librados_config
#unittest_librgw_link_SOURCES = test/librgw_link.cc
#unittest_librgw_link_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
#unittest_librgw_link_LDADD = librgw.la ${UNITTEST_LDADD}
#unittest_librgw_link_CXXFLAGS = ${CRYPTO_CFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
#check_PROGRAMS += unittest_librgw_link
unittest_daemon_config_SOURCES = test/daemon_config.cc
unittest_daemon_config_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_daemon_config_LDADD = ${UNITTEST_LDADD} ${LIBGLOBAL_LDA}
unittest_daemon_config_CXXFLAGS = ${CRYPTO_CFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_daemon_config
unittest_osd_osdcap_SOURCES = test/osd/osdcap.cc
unittest_osd_osdcap_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
unittest_osd_osdcap_LDADD = ${UNITTEST_LDADD} ${LIBGLOBAL_LDA} libosd.a
unittest_osd_osdcap_CXXFLAGS = ${CRYPTO_CFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_osd_osdcap
#if WITH_RADOSGW
#unittest_librgw_SOURCES = test/librgw.cc
#unittest_librgw_LDFLAGS = -lrt $(PTHREAD_CFLAGS) -lcurl ${AM_LDFLAGS}
#unittest_librgw_LDADD = librgw.la librados.la ${UNITTEST_LDADD} -lexpat $(LIBGLOBAL_LDA)
#unittest_librgw_CXXFLAGS = ${CRYPTO_CFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
#check_PROGRAMS += unittest_librgw
#endif
unittest_ipaddr_SOURCES = test/test_ipaddr.cc
unittest_ipaddr_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
unittest_ipaddr_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
check_PROGRAMS += unittest_ipaddr
test_librbd_SOURCES = test/test_librbd.cc test/rados-api/test.cc
test_librbd_LDADD = librbd.la librados.la ${UNITTEST_STATIC_LDADD}
test_librbd_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_librbd
test_librbd_fsx_SOURCES = test/rbd/fsx.c
test_librbd_fsx_LDADD = librbd.la librados.la -lm
test_librbd_fsx_CFLAGS = ${AM_CFLAGS} -Wno-format
bin_DEBUGPROGRAMS += test_librbd_fsx
test_cls_rbd_SOURCES = test/rbd/test_cls_rbd.cc \
test/rados-api/test.cc \
librbd/cls_rbd_client.cc \
cls/lock/cls_lock_client.cc \
cls/lock/cls_lock_types.cc \
cls/lock/cls_lock_ops.cc
test_cls_rbd_LDADD = librados.la ${UNITTEST_STATIC_LDADD}
test_cls_rbd_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_cls_rbd
test_cls_refcount_SOURCES = test/cls_refcount/test_cls_refcount.cc \
test/rados-api/test.cc
test_cls_refcount_LDADD = librados.la libcls_refcount_client.a ${UNITTEST_STATIC_LDADD}
test_cls_refcount_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_cls_refcount
test_cls_lock_SOURCES = test/rados-api/cls_lock.cc test/rados-api/test.cc
test_cls_lock_LDFLAGS = ${AM_LDFLAGS}
test_cls_lock_LDADD = libcls_lock_client.a librados.la ${UNITTEST_STATIC_LDADD}
test_cls_lock_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_cls_lock
if WITH_RADOSGW
test_cls_rgw_SOURCES = test/rgw/test_cls_rgw.cc \
test/rados-api/test.cc
test_cls_rgw_LDADD = librados.la libcls_rgw_client.a ${UNITTEST_STATIC_LDADD}
test_cls_rgw_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_cls_rgw
endif
test_rados_api_io_SOURCES = test/rados-api/io.cc test/rados-api/test.cc
test_rados_api_io_LDFLAGS = ${AM_LDFLAGS}
test_rados_api_io_LDADD = librados.la ${UNITTEST_STATIC_LDADD}
test_rados_api_io_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_rados_api_io
test_rados_api_aio_SOURCES = test/rados-api/aio.cc test/rados-api/test.cc
test_rados_api_aio_LDFLAGS = ${AM_LDFLAGS}
test_rados_api_aio_LDADD = librados.la ${UNITTEST_STATIC_LDADD}
test_rados_api_aio_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_rados_api_aio
test_rados_api_list_SOURCES = test/rados-api/list.cc test/rados-api/test.cc
test_rados_api_list_LDFLAGS = ${AM_LDFLAGS}
test_rados_api_list_LDADD = librados.la ${UNITTEST_STATIC_LDADD}
test_rados_api_list_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_rados_api_list
test_rados_api_pool_SOURCES = test/rados-api/pool.cc test/rados-api/test.cc
test_rados_api_pool_LDFLAGS = ${AM_LDFLAGS}
test_rados_api_pool_LDADD = librados.la ${UNITTEST_STATIC_LDADD}
test_rados_api_pool_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_rados_api_pool
test_rados_api_stat_SOURCES = test/rados-api/stat.cc test/rados-api/test.cc
test_rados_api_stat_LDFLAGS = ${AM_LDFLAGS}
test_rados_api_stat_LDADD = librados.la ${UNITTEST_STATIC_LDADD}
test_rados_api_stat_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_rados_api_stat
test_rados_api_watch_notify_SOURCES = test/rados-api/watch_notify.cc test/rados-api/test.cc
test_rados_api_watch_notify_LDFLAGS = ${AM_LDFLAGS}
test_rados_api_watch_notify_LDADD = librados.la ${UNITTEST_STATIC_LDADD}
test_rados_api_watch_notify_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_rados_api_watch_notify
test_rados_api_snapshots_SOURCES = test/rados-api/snapshots.cc test/rados-api/test.cc
test_rados_api_snapshots_LDFLAGS = ${AM_LDFLAGS}
test_rados_api_snapshots_LDADD = librados.la ${UNITTEST_STATIC_LDADD}
test_rados_api_snapshots_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_rados_api_snapshots
test_rados_api_misc_SOURCES = test/rados-api/misc.cc test/rados-api/test.cc
test_rados_api_misc_LDFLAGS = ${AM_LDFLAGS}
test_rados_api_misc_LDADD = librados.la ${UNITTEST_STATIC_LDADD}
test_rados_api_misc_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_rados_api_misc
test_libcephfs_SOURCES = test/libcephfs/test.cc test/libcephfs/readdir_r_cb.cc
test_libcephfs_LDFLAGS = $(PTHREAD_CFLAGS) ${AM_LDFLAGS}
test_libcephfs_LDADD = ${UNITTEST_STATIC_LDADD} libcephfs.la
test_libcephfs_CXXFLAGS = $(AM_CXXFLAGS) ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_libcephfs
test_filestore_SOURCES = test/filestore/store_test.cc
test_filestore_LDFLAGS = ${AM_LDFLAGS}
test_filestore_LDADD = ${UNITTEST_STATIC_LDADD} $(LIBOS_LDA) $(LIBGLOBAL_LDA)
test_filestore_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} $(LEVELDB_INCLUDE)
bin_DEBUGPROGRAMS += test_filestore
test_filestore_workloadgen_SOURCES = \
test/filestore/workload_generator.cc \
test/filestore/TestFileStoreState.cc
test_filestore_workloadgen_LDFLAGS = ${AM_LDFLAGS}
test_filestore_workloadgen_LDADD = $(LIBOS_LDA) $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += test_filestore_workloadgen
test_filestore_idempotent_SOURCES = test/filestore/test_idempotent.cc test/filestore/FileStoreTracker.cc test/common/ObjectContents.cc
test_filestore_idempotent_LDADD = $(LIBOS_LDA) $(LIBGLOBAL_LDA)
test_filestore_idempotent_CXXFLAGS = $(LEVELDB_INCLUDE)
bin_DEBUGPROGRAMS += test_filestore_idempotent
test_filestore_idempotent_sequence_SOURCES = \
test/filestore/test_idempotent_sequence.cc \
test/filestore/DeterministicOpSequence.cc \
test/filestore/TestFileStoreState.cc \
test/filestore/FileStoreDiff.cc
test_filestore_idempotent_sequence_LDADD = $(LIBOS_LDA) $(LIBGLOBAL_LDA)
bin_DEBUGPROGRAMS += test_filestore_idempotent_sequence
xattr_bench_SOURCES = test/xattr_bench.cc
xattr_bench_LDFLAGS = ${AM_LDFLAGS}
xattr_bench_LDADD = ${UNITTEST_STATIC_LDADD} $(LIBOS_LDA) $(LIBGLOBAL_LDA)
xattr_bench_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} $(LEVELDB_INCLUDE)
bin_DEBUGPROGRAMS += xattr_bench
test_filejournal_SOURCES = test/test_filejournal.cc
test_filejournal_LDFLAGS = ${AM_LDFLAGS}
test_filejournal_LDADD = ${UNITTEST_STATIC_LDADD} $(LIBOS_LDA) $(LIBGLOBAL_LDA)
test_filejournal_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_filejournal
test_stress_watch_SOURCES = test/test_stress_watch.cc test/rados-api/test.cc
test_stress_watch_LDFLAGS = ${AM_LDFLAGS}
test_stress_watch_LDADD = librados.la ${UNITTEST_STATIC_LDADD}
test_stress_watch_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
bin_DEBUGPROGRAMS += test_stress_watch
test_object_map_SOURCES = test/ObjectMap/test_object_map.cc test/ObjectMap/KeyValueDBMemory.cc os/DBObjectMap.cc os/LevelDBStore.cc
test_object_map_LDFLAGS = ${AM_LDFLAGS}
test_object_map_LDADD = ${UNITTEST_STATIC_LDADD} $(LIBOS_LDA) $(LIBGLOBAL_LDA)
test_object_map_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} $(LEVELDB_INCLUDE)
bin_DEBUGPROGRAMS += test_object_map
test_keyvaluedb_atomicity_SOURCES = test/ObjectMap/test_keyvaluedb_atomicity.cc os/LevelDBStore.cc
test_keyvaluedb_atomicity_LDFLAGS = ${AM_LDFLAGS}
test_keyvaluedb_atomicity_LDADD = ${UNITTEST_STATIC_LDADD} $(LIBOS_LDA) $(LIBGLOBAL_LDA)
test_keyvaluedb_atomicity_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} $(LEVELDB_INCLUDE)
bin_DEBUGPROGRAMS += test_keyvaluedb_atomicity
test_keyvaluedb_iterators_SOURCES = test/ObjectMap/test_keyvaluedb_iterators.cc \
test/ObjectMap/KeyValueDBMemory.cc \
os/LevelDBStore.cc
test_keyvaluedb_iterators_LDFLAGS = ${AM_LDFLAGS}
test_keyvaluedb_iterators_LDADD = ${UNITTEST_STATIC_LDADD} $(LIBOS_LDA) $(LIBGLOBAL_LDA)
test_keyvaluedb_iterators_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} $(LEVELDB_INCLUDE)
bin_DEBUGPROGRAMS += test_keyvaluedb_iterators
# shell scripts
editpaths = sed \
-e 's|@bindir[@]|$(bindir)|g' \
-e 's|@libdir[@]|$(libdir)|g' \
-e 's|@sysconfdir[@]|$(sysconfdir)|g' \
-e 's|@datadir[@]|$(pkgdatadir)|g' \
-e 's|@prefix[@]|$(prefix)|g' \
-e 's|@@GCOV_PREFIX_STRIP[@][@]|$(GCOV_PREFIX_STRIP)|g'
shell_scripts = init-ceph mkcephfs ceph-debugpack ceph-coverage
$(shell_scripts): Makefile
$(shell_scripts): %: %.in
rm -f $@ $@.tmp
$(editpaths) '$(srcdir)/$@.in' >$@.tmp
chmod +x $@.tmp
chmod a-w $@.tmp
mv $@.tmp $@
BUILT_SOURCES += init-ceph
sbin_SCRIPTS += mkcephfs
bin_SCRIPTS += ceph-coverage
CLEANFILES += $(shell_scripts)
CLEANFILES += ceph_ver.h sample.fetch_config
##
AM_COMMON_FLAGS = -Wall -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT \
-D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -rdynamic \
${WARN_TYPE_LIMITS} ${WARN_IGNORED_QUALIFIERS} -Winit-self -Wpointer-arith \
-fno-strict-aliasing
AM_CFLAGS = $(AM_COMMON_FLAGS)
AM_CXXFLAGS = $(AM_COMMON_FLAGS) \
-DCEPH_LIBDIR=\"${libdir}\" \
-Wnon-virtual-dtor \
-Wno-invalid-offsetof \
-Wstrict-null-sentinel
# note: this is position dependant, it affects the -l options that
# come after it on the command line. when you use ${AM_LDFLAGS} in
# later rules, take care where you place it. for more information, see
# http://blog.flameeyes.eu/2008/11/19/relationship-between-as-needed-and-no-undefined-part-1-what-do-they-do
# http://blog.flameeyes.eu/2008/11/20/misguided-link-and-as-needed
# http://www.gentoo.org/proj/en/qa/asneeded.xml
# http://gcc.gnu.org/ml/gcc-help/2010-12/msg00338.html
# http://sigquit.wordpress.com/2011/02/16/why-asneeded-doesnt-work-as-expected-for-your-libraries-on-your-autotools-project/
AM_LDFLAGS = -Wl,--as-needed
if USE_BOOST_SPIRIT_OLD_HDR
AM_CXXFLAGS += -DUSE_BOOST_SPIRIT_OLD_HDR
endif
if WITH_LIBATOMIC
AM_LDFLAGS += -latomic_ops
endif
if ENABLE_COVERAGE
AM_CFLAGS += -fprofile-arcs -ftest-coverage
AM_CXXFLAGS += -fprofile-arcs -ftest-coverage -O0
EXTRALIBS += -lgcov
endif
# extra bits
EXTRA_DIST += \
$(srcdir)/verify-mds-journal.sh $(srcdir)/vstart.sh $(srcdir)/stop.sh \
ceph-run $(srcdir)/ceph_common.sh \
$(srcdir)/init-radosgw \
$(srcdir)/ceph-clsinfo $(srcdir)/make_version $(srcdir)/check_version \
$(srcdir)/.git_version \
$(srcdir)/ceph-rbdnamer \
$(ceph_tool_gui_DATA) \
$(srcdir)/test/encoding/readable.sh \
$(srcdir)/test/encoding/check-generated.sh \
$(srcdir)/upstart/ceph-mon.conf \
$(srcdir)/upstart/ceph-mon-all.conf \
$(srcdir)/upstart/ceph-mon-all-starter.conf \
$(srcdir)/upstart/ceph-create-keys.conf \
$(srcdir)/upstart/ceph-osd.conf \
$(srcdir)/upstart/ceph-hotplug.conf \
$(srcdir)/upstart/ceph-mds.conf \
$(srcdir)/upstart/ceph-mds-all.conf \
$(srcdir)/upstart/ceph-mds-all-starter.conf \
$(srcdir)/upstart/radosgw.conf \
$(srcdir)/upstart/radosgw-all.conf \
$(srcdir)/upstart/radosgw-all-starter.conf \
ceph-disk-prepare \
ceph-disk-activate \
ceph-create-keys
EXTRA_DIST += $(srcdir)/$(shell_scripts:%=%.in)
# work around old versions of automake that don't define $docdir
# NOTE: this won't work on suse, where docdir is /usr/share/doc/packages/$package.
docdir ?= ${datadir}/doc/ceph
doc_DATA = $(srcdir)/sample.ceph.conf sample.fetch_config
sample.fetch_config: fetch_config
cp -f $(srcdir)/fetch_config ./sample.fetch_config
shell_commondir = $(libdir)/ceph
shell_common_SCRIPTS = ceph_common.sh
bash_completiondir = $(sysconfdir)/bash_completion.d
bash_completion_DATA = $(srcdir)/bash_completion/ceph \
$(srcdir)/bash_completion/rados \
$(srcdir)/bash_completion/rbd \
$(srcdir)/bash_completion/radosgw-admin
libcephfs_includedir = $(includedir)/cephfs
libcephfs_include_DATA = $(srcdir)/include/cephfs/libcephfs.h
librbd_includedir = $(includedir)/rbd
librbd_include_DATA = \
$(srcdir)/include/rbd/features.h \
$(srcdir)/include/rbd/librbd.h \
$(srcdir)/include/rbd/librbd.hpp
rados_includedir = $(includedir)/rados
rados_include_DATA = \
$(srcdir)/include/rados/librados.h \
$(srcdir)/include/rados/librados.hpp \
$(srcdir)/include/buffer.h \
$(srcdir)/include/page.h \
$(srcdir)/include/crc32c.h
#crush_includedir = $(includedir)/crush
#crush_include_DATA = \
# $(srcdir)/crush/hash.h \
# $(srcdir)/crush/crush.h \
# $(srcdir)/crush/mapper.h \
# $(srcdir)/crush/types.h
FORCE:
.git_version: FORCE
$(srcdir)/check_version $(srcdir)/.git_version
ceph_ver.h: .git_version
$(srcdir)/make_version $(srcdir)/.git_version ./ceph_ver.h
ceph_ver.c: ./ceph_ver.h
common/version.cc: ./ceph_ver.h
test/encoding/ceph_dencoder.cc: ./ceph_ver.h
# cleaning
clean-local:
-rm *.so *.gcno *.gcda
# libs
libcommon_la_SOURCES = $(libcommon_files)
libcommon_la_CFLAGS= ${CRYPTO_CFLAGS} ${AM_CFLAGS}
libcommon_la_CXXFLAGS= ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
libcommon_la_LDFLAGS = -lrt
noinst_LTLIBRARIES += libcommon.la
libglobal_la_SOURCES = \
global/global_context.cc \
global/global_init.cc \
global/pidfile.cc \
global/signal_handler.cc
libglobal_la_CFLAGS= ${CRYPTO_CFLAGS} ${AM_CFLAGS}
libglobal_la_CXXFLAGS= ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
libglobal_la_LIBADD= libcommon.la
noinst_LTLIBRARIES += libglobal.la
crush_files = \
crush/builder.c \
crush/mapper.c \
crush/crush.c \
crush/hash.c \
crush/CrushWrapper.cc \
crush/CrushCompiler.cc \
crush/CrushTester.cc
# this list ommits the ceph_ver.c file
libcommon_files = \
./ceph_ver.c \
auth/AuthAuthorizeHandler.cc \
auth/AuthClientHandler.cc \
auth/AuthMethodList.cc \
auth/cephx/CephxAuthorizeHandler.cc \
auth/cephx/CephxClientHandler.cc \
auth/cephx/CephxProtocol.cc \
auth/none/AuthNoneAuthorizeHandler.cc \
auth/Crypto.cc \
auth/KeyRing.cc \
auth/RotatingKeyRing.cc \
common/LogClient.cc \
common/LogEntry.cc \
common/PrebufferedStreambuf.cc \
common/BackTrace.cc \
common/perf_counters.cc \
common/admin_socket.cc \
common/admin_socket_client.cc \
common/escape.c \
common/Clock.cc \
common/Throttle.cc \
common/Timer.cc \
common/Finisher.cc \
common/environment.cc\
common/sctp_crc32.c\
common/assert.cc \
common/run_cmd.cc \
common/WorkQueue.cc \
common/ConfUtils.cc \
common/MemoryModel.cc \
common/armor.c \
common/fd.cc \
common/xattr.c \
common/safe_io.c \
common/snap_types.cc \
common/str_list.cc \
common/errno.cc \
json_spirit/json_spirit_reader.cpp \
json_spirit/json_spirit_writer.cpp \
json_spirit/json_spirit_value.cpp \
log/Log.cc \
log/SubsystemMap.cc \
mon/MonCaps.cc \
mon/MonClient.cc \
mon/MonMap.cc \
msg/Accepter.cc \
msg/DispatchQueue.cc \
msg/Message.cc \
msg/Messenger.cc \
msg/Pipe.cc \
msg/SimpleMessenger.cc \
msg/msg_types.cc \
os/hobject.cc \
osd/OSDMap.cc \
osd/osd_types.cc \
mds/MDSMap.cc \
common/blkdev.cc \
common/common_init.cc \
common/pipe.c \
common/ceph_argparse.cc \
common/ceph_context.cc \
common/buffer.cc \
common/code_environment.cc \
common/dout.cc \
common/signal.cc \
common/simple_spin.cc \
common/Thread.cc \
common/Formatter.cc \
common/HeartbeatMap.cc \
include/ceph_fs.cc \
include/ceph_hash.cc \
include/ceph_strings.cc \
include/ceph_frag.cc \
common/config.cc \
common/utf8.c \
common/mime.c \
common/strtol.cc \
common/page.cc \
common/lockdep.cc \
common/version.cc \
common/hex.cc \
common/entity_name.cc \
common/ceph_crypto.cc \
common/ipaddr.cc \
common/pick_address.cc \
include/addr_parsing.c \
$(crush_files)
if WITH_PROFILER
libcommon_files += perfglue/cpu_profiler.cc
else
libcommon_files += perfglue/disabled_stubs.cc
endif
libmon_a_SOURCES = \
auth/cephx/CephxKeyServer.cc \
auth/cephx/CephxServiceHandler.cc \
auth/AuthServiceHandler.cc \
mon/Monitor.cc \
mon/Paxos.cc \
mon/PaxosService.cc \
mon/OSDMonitor.cc \
mon/MDSMonitor.cc \
mon/MonmapMonitor.cc \
mon/PGMonitor.cc \
mon/PGMap.cc \
mon/LogMonitor.cc \
mon/AuthMonitor.cc \
mon/Elector.cc \
mon/MonitorStore.cc
libmon_a_CXXFLAGS= ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
noinst_LIBRARIES += libmon.a
libmds_a_SOURCES = \
mds/Dumper.cc \
mds/Resetter.cc \
mds/MDS.cc \
mds/flock.cc \
mds/locks.c \
mds/journal.cc \
mds/Server.cc \
mds/Mutation.cc \
mds/MDCache.cc \
mds/Locker.cc \
mds/Migrator.cc \
mds/MDBalancer.cc \
mds/CDentry.cc \
mds/CDir.cc \
mds/CInode.cc \
mds/LogEvent.cc \
mds/MDSTable.cc \
mds/InoTable.cc \
mds/MDSTableClient.cc \
mds/MDSTableServer.cc \
mds/AnchorServer.cc \
mds/AnchorClient.cc \
mds/SnapServer.cc \
mds/snap.cc \
mds/SessionMap.cc \
mds/MDLog.cc \
osdc/Journaler.cc
noinst_LIBRARIES += libmds.a
libos_a_SOURCES = \
os/FileJournal.cc \
os/FileStore.cc \
os/ObjectStore.cc \
os/JournalingObjectStore.cc \
os/LFNIndex.cc \
os/HashIndex.cc \
os/IndexManager.cc \
os/FlatIndex.cc \
os/DBObjectMap.cc \
os/LevelDBStore.cc
libos_a_CXXFLAGS= ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS} $(LEVELDB_INCLUDE)
noinst_LIBRARIES += libos.a
libosd_a_SOURCES = \
osd/PG.cc \
osd/ReplicatedPG.cc \
osd/Ager.cc \
osd/OSD.cc \
osd/OSDCap.cc \
osd/Watch.cc \
osd/ClassHandler.cc \
osd/OpRequest.cc
libosd_a_CXXFLAGS= ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
noinst_LIBRARIES += libosd.a
libosdc_la_SOURCES = \
osdc/Objecter.cc \
osdc/ObjectCacher.cc \
osdc/Filer.cc
libosdc_la_CXXFLAGS= ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
libosdc_la_LIBADD = libcommon.la
noinst_LTLIBRARIES += libosdc.la
libclient_la_SOURCES = \
client/Client.cc \
client/Inode.cc \
client/MetaRequest.cc \
client/Trace.cc
libclient_la_LIBADD = libosdc.la $(LIBEDIT_LIBS)
noinst_LTLIBRARIES += libclient.la
dist-hook:
$(srcdir)/check_version $(srcdir)/.git_version
python_PYTHON = pybind/rados.py \
pybind/rbd.py
# headers... and everything else we want to include in a 'make dist'
# that autotools doesn't magically identify.
noinst_HEADERS = \
rados_sync.h \
auth/cephx/CephxAuthorizeHandler.h\
auth/cephx/CephxKeyServer.h\
auth/cephx/CephxProtocol.h\
auth/cephx/CephxClientHandler.h\
auth/cephx/CephxServiceHandler.h\
auth/none/AuthNoneAuthorizeHandler.h\
auth/none/AuthNoneClientHandler.h\
auth/none/AuthNoneServiceHandler.h\
auth/none/AuthNoneProtocol.h\
auth/Auth.h\
auth/AuthMethodList.h\
auth/AuthClientHandler.h\
auth/AuthServiceHandler.h\
auth/AuthAuthorizeHandler.h\
auth/KeyRing.h\
auth/RotatingKeyRing.h\
auth/Crypto.h\
bash_completion/ceph\
bash_completion/rados\
bash_completion/rbd\
bash_completion/radosgw-admin\
client/Client.h\
client/Dentry.h\
client/Dir.h\
client/Fh.h\
client/Inode.h\
client/MetaRequest.h\
client/MetaSession.h\
client/SnapRealm.h\
client/SyntheticClient.h\
client/Trace.h\
client/fuse_ll.h\
client/ioctl.h\
client/hadoop/CephFSInterface.h\
client/ObjecterWriteback.h\
cls_acl.cc\
cls_crypto.cc\
cls/lock/cls_lock_types.h\
cls/lock/cls_lock_ops.h\
cls/lock/cls_lock_client.h\
cls/refcount/cls_refcount_ops.h\
cls/refcount/cls_refcount_client.h\
cls/rgw/cls_rgw_client.h\
cls/rgw/cls_rgw_ops.h\
cls/rgw/cls_rgw_types.h\
common/BackTrace.h\
common/RefCountedObj.h\
common/HeartbeatMap.h\
common/LogClient.h\
common/LogEntry.h\
common/WorkQueue.h\
common/ceph_argparse.h\
common/ceph_context.h\
common/xattr.h\
common/blkdev.h\
common/compiler_extensions.h\
common/debug.h\
common/dout.h\
common/escape.h\
common/fd.h\
common/version.h\
common/hex.h\
common/entity_name.h\
common/errno.h\
common/environment.h\
common/likely.h\
common/lockdep.h\
common/obj_bencher.h\
common/snap_types.h\
common/Clock.h\
common/Cond.h\
common/ConfUtils.h\
common/DecayCounter.h\
common/Finisher.h\
common/Formatter.h\
common/perf_counters.h\
common/admin_socket.h \
common/admin_socket_client.h \
common/shared_cache.hpp \
common/simple_cache.hpp \
common/sharedptr_registry.hpp \
common/MemoryModel.h\
common/Mutex.h\
common/PrebufferedStreambuf.h\
common/RWLock.h\
common/Semaphore.h\
common/Thread.h\
common/Throttle.h\
common/Timer.h\
common/TrackedOp.h\
common/arch.h\
common/armor.h\
global/global_init.h \
global/global_context.h \
common/common_init.h\
common/pipe.h\
common/code_environment.h \
common/signal.h\
global/signal_handler.h\
common/simple_spin.h\
common/run_cmd.h\
common/safe_io.h\
common/config.h\
common/config_obs.h\
common/config_opts.h\
common/ceph_crypto.h\
common/utf8.h\
common/mime.h\
common/pick_address.h\
common/secret.h\
common/strtol.h\
common/static_assert.h\
common/AsyncReserver.h\
crush/CrushCompiler.h\
crush/CrushTester.h\
crush/CrushWrapper.h\
crush/CrushWrapper.i\
crush/builder.h\
crush/crush.h\
crush/grammar.h\
crush/hash.h\
crush/mapper.h\
crush/sample.txt\
crush/types.h\
fetch_config\
include/bloom_filter.hpp\
include/Context.h\
include/CompatSet.h\
include/Distribution.h\
include/addr_parsing.h\
include/assert.h\
include/atomic.h\
include/bitmapper.h\
include/blobhash.h\
include/buffer.h\
include/byteorder.h\
include/cephfs/libcephfs.h\
include/ceph_features.h\
include/ceph_frag.h\
include/ceph_fs.h\
include/ceph_hash.h\
include/cmp.h\
include/color.h\
include/compat.h\
include/crc32c.h\
include/encoding.h\
include/err.h\
include/error.h\
include/fiemap.h\
include/filepath.h\
include/frag.h\
include/hash.h\
include/intarith.h\
include/interval_set.h\
include/inttypes.h\
include/ipaddr.h\
include/linux_fiemap.h\
include/lru.h\
include/msgr.h\
include/object.h\
include/page.h\
include/rangeset.h\
include/rados.h\
include/rbd_types.h\
include/statlite.h\
include/str_list.h\
include/stringify.h\
include/triple.h\
include/types.h\
include/utime.h\
include/dlist.h\
include/elist.h\
include/uuid.h\
include/xlist.h\
include/rados/librados.h\
include/rados/librados.hpp\
include/rados/librgw.h\
include/rados/page.h\
include/rados/crc32c.h\
include/rados/buffer.h\
include/rbd/features.h\
include/rbd/librbd.h\
include/rbd/librbd.hpp\
librados/AioCompletionImpl.h\
librados/IoCtxImpl.h\
librados/PoolAsyncCompletionImpl.h\
librados/RadosClient.h\
librbd/AioCompletion.h\
librbd/AioRequest.h\
librbd/cls_rbd.h\
librbd/cls_rbd_client.h\
librbd/ImageCtx.h\
librbd/internal.h\
librbd/LibrbdWriteback.h\
librbd/parent_types.h\
librbd/SnapInfo.h\
librbd/WatchCtx.h\
logrotate.conf\
json_spirit/json_spirit.h\
json_spirit/json_spirit_error_position.h\
json_spirit/json_spirit_reader.h\
json_spirit/json_spirit_reader_template.h\
json_spirit/json_spirit_stream_reader.h\
json_spirit/json_spirit_utils.h\
json_spirit/json_spirit_value.h\
json_spirit/json_spirit_writer.h\
json_spirit/json_spirit_writer_options.h\
json_spirit/json_spirit_writer_template.h\
key_value_store/key_value_structure.h\
key_value_store/kv_flat_btree_async.h\
key_value_store/kvs_arg_types.h\
log/Entry.h\
log/EntryQueue.h\
log/Log.h\
log/SubsystemMap.h\
mds/inode_backtrace.h\
mds/flock.h\
mds/locks.c\
mds/locks.h\
mds/Anchor.h\
mds/AnchorClient.h\
mds/AnchorServer.h\
mds/CDentry.h\
mds/CDir.h\
mds/CInode.h\
mds/Capability.h\
mds/Dumper.h\
mds/InoTable.h\
mds/LocalLock.h\
mds/Locker.h\
mds/LogEvent.h\
mds/LogSegment.h\
mds/MDBalancer.h\
mds/MDCache.h\
mds/MDLog.h\
mds/MDS.h\
mds/MDSMap.h\
mds/MDSTable.h\
mds/MDSTableServer.h\
mds/MDSTableClient.h\
mds/Mutation.h\
mds/Migrator.h\
mds/Resetter.h\
mds/ScatterLock.h\
mds/Server.h\
mds/SessionMap.h\
mds/SimpleLock.h\
mds/SnapClient.h\
mds/SnapServer.h\
mds/events/ECommitted.h\
mds/events/EExport.h\
mds/events/EFragment.h\
mds/events/EImportFinish.h\
mds/events/EImportStart.h\
mds/events/EMetaBlob.h\
mds/events/EOpen.h\
mds/events/EResetJournal.h\
mds/events/ESession.h\
mds/events/ESessions.h\
mds/events/ESlaveUpdate.h\
mds/events/EString.h\
mds/events/ESubtreeMap.h\
mds/events/ETableClient.h\
mds/events/ETableServer.h\
mds/events/EUpdate.h\
mds/mds_table_types.h\
mds/mdstypes.h\
mds/snap.h\
messages/MAuth.h\
messages/MAuthReply.h\
messages/MCacheExpire.h\
messages/MClientCaps.h\
messages/MClientCapRelease.h\
messages/MClientLease.h\
messages/MClientReconnect.h\
messages/MClientReply.h\
messages/MClientRequest.h\
messages/MClientRequestForward.h\
messages/MClientSession.h\
messages/MClientSnap.h\
messages/MCommand.h\
messages/MCommandReply.h\
messages/MDentryLink.h\
messages/MDentryUnlink.h\
messages/MDirUpdate.h\
messages/MDiscover.h\
messages/MDiscoverReply.h\
messages/MExportCaps.h\
messages/MExportCapsAck.h\
messages/MExportDir.h\
messages/MExportDirAck.h\
messages/MExportDirCancel.h\
messages/MExportDirDiscover.h\
messages/MExportDirDiscoverAck.h\
messages/MExportDirFinish.h\
messages/MExportDirNotify.h\
messages/MExportDirNotifyAck.h\
messages/MExportDirPrep.h\
messages/MExportDirPrepAck.h\
messages/MGenericMessage.h\
messages/MGetPoolStats.h\
messages/MGetPoolStatsReply.h\
messages/MHeartbeat.h\
messages/MInodeFileCaps.h\
messages/MLock.h\
messages/MLog.h\
messages/MLogAck.h\
messages/MMDSBeacon.h\
messages/MMDSCacheRejoin.h\
messages/MMDSLoadTargets.h\
messages/MMDSFindIno.h\
messages/MMDSFindInoReply.h\
messages/MMDSFragmentNotify.h\
messages/MMDSMap.h\
messages/MMDSResolve.h\
messages/MMDSResolveAck.h\
messages/MMDSSlaveRequest.h\
messages/MMDSTableRequest.h\
messages/MMonCommand.h\
messages/MMonCommandAck.h\
messages/MMonElection.h\
messages/MMonGetMap.h\
messages/MMonGetVersion.h\
messages/MMonGetVersionReply.h\
messages/MMonGlobalID.h\
messages/MMonJoin.h\
messages/MMonMap.h\
messages/MMonPaxos.h\
messages/MMonProbe.h\
messages/MMonSubscribe.h\
messages/MMonSubscribeAck.h\
messages/MOSDAlive.h\
messages/MOSDBoot.h\
messages/MOSDFailure.h\
messages/MOSDMap.h\
messages/MOSDOp.h\
messages/MOSDOpReply.h\
messages/MOSDPGBackfill.h\
messages/MOSDPGCreate.h\
messages/MOSDPGInfo.h\
messages/MOSDPGLog.h\
messages/MOSDPGMissing.h\
messages/MOSDPGNotify.h\
messages/MOSDPGQuery.h\
messages/MOSDPGRemove.h\
messages/MOSDPGScan.h\
messages/MBackfillReserve.h\
messages/MOSDPGTemp.h\
messages/MOSDPGTrim.h\
messages/MOSDPing.h\
messages/MOSDRepScrub.h\
messages/MOSDScrub.h\
messages/MOSDSubOp.h\
messages/MOSDSubOpReply.h\
messages/MPGStats.h\
messages/MPGStatsAck.h\
messages/MPing.h\
messages/MPoolOp.h\
messages/MPoolOpReply.h\
messages/MRemoveSnaps.h\
messages/MRoute.h\
messages/MForward.h\
messages/MStatfs.h\
messages/MStatfsReply.h\
messages/MWatchNotify.h\
messages/PaxosServiceMessage.h\
mon/AuthMonitor.h\
mon/Elector.h\
mon/LogMonitor.h\
mon/MDSMonitor.h\
mon/MonmapMonitor.h\
mon/MonCaps.h\
mon/MonClient.h\
mon/MonMap.h\
mon/Monitor.h\
mon/MonitorStore.h\
mon/OSDMonitor.h\
mon/PGMap.h\
mon/PGMonitor.h\
mon/Paxos.h\
mon/PaxosService.h\
mon/Session.h\
mon/mon_types.h\
mount/canonicalize.c\
mount/mtab.c\
msg/Accepter.h\
msg/DispatchQueue.h\
msg/Dispatcher.h\
msg/Message.h\
msg/Messenger.h\
msg/Pipe.h\
msg/SimpleMessenger.h\
msg/msg_types.h\
objclass/objclass.h\
os/btrfs_ioctl.h\
os/hobject.h \
os/CollectionIndex.h\
os/FileJournal.h\
os/FileStore.h\
os/FlatIndex.h\
os/HashIndex.h\
os/IndexManager.h\
os/Journal.h\
os/JournalingObjectStore.h\
os/LFNIndex.h\
os/ObjectStore.h\
os/SequencerPosition.h\
osd/Ager.h\
osd/ClassHandler.h\
osd/OSD.h\
osd/OSDCap.h\
osd/OSDMap.h\
osd/ObjectVersioner.h\
osd/OpRequest.h\
osd/PG.h\
osd/ReplicatedPG.h\
osd/Watch.h\
osd/osd_types.h\
osdc/Blinker.h\
osdc/Filer.h\
osdc/Journaler.h\
osdc/ObjectCacher.h\
osdc/Objecter.h\
osdc/WritebackHandler.h\
perfglue/cpu_profiler.h\
perfglue/heap_profiler.h\
rgw/rgw_acl.h\
rgw/rgw_acl_s3.h\
rgw/rgw_acl_swift.h\
rgw/rgw_xml.h\
rgw/rgw_cache.h\
rgw/rgw_common.h\
rgw/rgw_formats.h\
rgw/rgw_html_errors.h\
rgw/rgw_log.h\
rgw/rgw_multi.h\
rgw/rgw_gc.h\
rgw/rgw_multi_del.h\
rgw/rgw_op.h\
rgw/rgw_swift.h\
rgw/rgw_swift_auth.h\
rgw/rgw_rados.h\
rgw/rgw_rest.h\
rgw/rgw_rest_swift.h\
rgw/rgw_rest_s3.h\
rgw/rgw_tools.h\
rgw/rgw_user.h\
sample.ceph.conf\
tools/common.h\
test/osd/RadosModel.h\
test/osd/Object.h\
test/osd/TestOpStat.h\
global/pidfile.h\
common/sync_filesystem.h \
test/encoding/types.h \
test/kv_store_bench.h \
test/omap_bench.h \
test/system/cross_process_sem.h \
test/system/st_rados_create_pool.h \
test/system/st_rados_list_objects.h \
test/system/st_rados_delete_objs.h \
test/system/st_rados_delete_pool.h \
test/system/st_rados_notify.h \
test/system/st_rados_watch.h \
test/system/systest_runnable.h \
test/system/systest_settings.h \
test/rados-api/test.h \
test/unit.h \
os/ObjectMap.h \
os/DBObjectMap.h \
os/KeyValueDB.h \
os/LevelDBStore.h
if ENABLE_COVERAGE
COV_DIR = $(DESTDIR)$(libdir)/ceph/coverage
COV_FILES = $(srcdir)/*.gcno
COV_LIB_FILES = $(srcdir)/.libs/*.gcno
endif
install-coverage:
if ENABLE_COVERAGE
-mkdir -p $(COV_DIR)/.libs
-$(INSTALL_DATA) $(COV_FILES) $(COV_DIR)
-$(INSTALL_DATA) $(COV_LIB_FILES) $(COV_DIR)/.libs
endif
uninstall-coverage:
if ENABLE_COVERAGE
-rm $(COV_DIR)/*.gcno
-rm $(COV_DIR)/.libs/*.gcno
-rmdir -p $(COV_DIR)/.libs
-rmdir -p $(COV_DIR)
endif
check-coverage:
if ENABLE_COVERAGE
-test/coverage.sh -d $(srcdir) -o check-coverage make check
endif
install-data-local: install-coverage
-mkdir -p $(DESTDIR)$(sysconfdir)/ceph
-mkdir -p $(DESTDIR)$(localstatedir)/log/ceph
-mkdir -p $(DESTDIR)$(localstatedir)/lib/ceph/tmp
uninstall-local: uninstall-coverage
-rmdir -p $(DESTDIR)$(sysconfdir)/ceph/
-rmdir -p $(DESTDIR)$(localstatedir)/log/ceph
-rmdir -p $(DESTDIR)$(localstatedir)/lib/ceph/tmp
# if we are doing a debug build, tell make to actually build the debug
# targets
if WITH_DEBUG
bin_PROGRAMS += $(bin_DEBUGPROGRAMS)
endif
#
# coverity rules expect:
# - cov-build to be in the path
# - password in ~/coverity.build.pass.txt
# - ability to scp into the ceph.com directory
#
project.tgz: clean
rm -rf cov-int
cov-build --dir cov-int make
echo Sage Weil sage@newdream.net ceph >> README
tar czvf project.tgz README cov-int
rm -f README
coverity-submit:
scp project.tgz ceph.com:/home/ceph_site/ceph.com/coverity/`git describe`.tgz
curl --data "project=ceph&password=`cat ~/coverity.build.pass.txt`&email=sage@newdream.net&url=http://ceph.com/coverity/`git describe`.tgz" http://scan5.coverity.com/cgi-bin/submit_build.py