From c38e3cbb6f7c6221209f2b512cba18c564c895a4 Mon Sep 17 00:00:00 2001 From: Matt Benjamin Date: Thu, 28 Jan 2016 12:37:03 -0500 Subject: [PATCH] librgw/rgw: reorganize autotools linkage Adds the RGW-NFS library to the radosgw build, with unit tests. Adds -fPIC to compile flags to satisfy the linker, but should have been evident to automake/libtool. Signed-off-by: Matt Benjamin --- src/CMakeLists.txt | 2 +- src/cls/Makefile-client.am | 28 ++++---- src/common/Makefile.am | 2 + src/global/Makefile.am | 1 + src/rgw/Makefile.am | 137 ++++++++++++++++++++---------------- src/test/Makefile-client.am | 58 +++++++++++---- 6 files changed, 139 insertions(+), 89 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8a25e0ad98dad..1eb37d75604ca 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1233,7 +1233,7 @@ if(${WITH_RADOSGW}) curl expat global resolv ${TCMALLOC_LIBS}) - set_target_properties(rgw PROPERTIES OUTPUT_NAME rgw VERSION 1.0.0 + set_target_properties(rgw PROPERTIES OUTPUT_NAME rgw VERSION 2.0.0 SOVERSION 1) install(TARGETS rgw DESTINATION lib) diff --git a/src/cls/Makefile-client.am b/src/cls/Makefile-client.am index 642d167f81a0d..3e26db05a7c39 100644 --- a/src/cls/Makefile-client.am +++ b/src/cls/Makefile-client.am @@ -13,26 +13,26 @@ libcls_refcount_client_la_SOURCES = \ noinst_LTLIBRARIES += libcls_refcount_client.la DENCODER_DEPS += libcls_refcount_client.la -libcls_version_client_a_SOURCES = \ +libcls_version_client_la_SOURCES = \ cls/version/cls_version_client.cc \ cls/version/cls_version_types.cc -noinst_LIBRARIES += libcls_version_client.a +noinst_LTLIBRARIES += libcls_version_client.la -libcls_log_client_a_SOURCES = cls/log/cls_log_client.cc -noinst_LIBRARIES += libcls_log_client.a +libcls_log_client_la_SOURCES = cls/log/cls_log_client.cc +noinst_LTLIBRARIES += libcls_log_client.la -libcls_statelog_client_a_SOURCES = cls/statelog/cls_statelog_client.cc -noinst_LIBRARIES += libcls_statelog_client.a +libcls_statelog_client_la_SOURCES = cls/statelog/cls_statelog_client.cc +noinst_LTLIBRARIES += libcls_statelog_client.la -libcls_timeindex_client_a_SOURCES = cls/timeindex/cls_timeindex_client.cc -noinst_LIBRARIES += libcls_timeindex_client.a +libcls_timeindex_client_la_SOURCES = cls/timeindex/cls_timeindex_client.cc +noinst_LTLIBRARIES += libcls_timeindex_client.la -libcls_replica_log_client_a_SOURCES = \ +libcls_replica_log_client_la_SOURCES = \ cls/replica_log/cls_replica_log_types.cc \ cls/replica_log/cls_replica_log_ops.cc \ cls/replica_log/cls_replica_log_client.cc -noinst_LIBRARIES += libcls_replica_log_client.a -DENCODER_DEPS += libcls_replica_log_client.a +noinst_LTLIBRARIES += libcls_replica_log_client.la +DENCODER_DEPS += libcls_replica_log_client.la libcls_rgw_client_la_SOURCES = \ cls/rgw/cls_rgw_client.cc \ @@ -47,12 +47,12 @@ libcls_rbd_client_la_SOURCES = \ noinst_LTLIBRARIES += libcls_rbd_client.la DENCODER_DEPS += libcls_rbd_client.la -libcls_user_client_a_SOURCES = cls/user/cls_user_client.cc \ +libcls_user_client_la_SOURCES = cls/user/cls_user_client.cc \ cls/user/cls_user_types.cc \ cls/user/cls_user_ops.cc -DENCODER_DEPS += libcls_user_client.a +DENCODER_DEPS += libcls_user_client.la -noinst_LIBRARIES += libcls_user_client.a +noinst_LTLIBRARIES += libcls_user_client.la libcls_cephfs_client_la_SOURCES = cls/cephfs/cls_cephfs_client.cc noinst_LTLIBRARIES += libcls_cephfs_client.la diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 2851cf24ef73e..7c8828da35650 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -23,6 +23,7 @@ libcommon_internal_la_SOURCES = \ common/Finisher.cc \ common/environment.cc\ common/assert.cc \ + xxHash/xxhash.c \ common/run_cmd.cc \ common/WorkQueue.cc \ common/ConfUtils.cc \ @@ -125,6 +126,7 @@ libcommon_internal_la_SOURCES += \ mds/inode_backtrace.cc \ mds/mdstypes.cc \ mds/flock.cc + LIBCOMMON_DEPS += libcommon_internal.la noinst_LTLIBRARIES += libcommon_internal.la diff --git a/src/global/Makefile.am b/src/global/Makefile.am index 51fff4b4136a3..ed93426e05661 100644 --- a/src/global/Makefile.am +++ b/src/global/Makefile.am @@ -4,6 +4,7 @@ libglobal_la_SOURCES = \ global/pidfile.cc \ global/signal_handler.cc \ common/TrackedOp.cc + libglobal_la_LIBADD = $(LIBCOMMON) if WITH_LTTNG libglobal_la_LIBADD += -ldl -llttng-ust diff --git a/src/rgw/Makefile.am b/src/rgw/Makefile.am index 8a04cfa648e3c..aac6e587a9a70 100644 --- a/src/rgw/Makefile.am +++ b/src/rgw/Makefile.am @@ -12,70 +12,94 @@ DENCODER_SOURCES += \ if WITH_RADOS if WITH_RADOSGW -librgw_la_SOURCES = \ - rgw/librgw.cc \ +librgw_la_SOURCES = \ rgw/rgw_acl.cc \ rgw/rgw_acl_s3.cc \ rgw/rgw_acl_swift.cc \ - rgw/rgw_client_io.cc \ - rgw/rgw_fcgi.cc \ - rgw/rgw_xml.cc \ - rgw/rgw_usage.cc \ - rgw/rgw_json_enc.cc \ - rgw/rgw_xml_enc.cc \ - rgw/rgw_user.cc \ - rgw/rgw_bucket.cc\ - rgw/rgw_tools.cc \ - rgw/rgw_rados.cc \ - rgw/rgw_http_client.cc \ - rgw/rgw_rest_client.cc \ - rgw/rgw_rest_conn.cc \ - rgw/rgw_op.cc \ + rgw/rgw_auth_s3.cc \ rgw/rgw_basic_types.cc \ - rgw/rgw_common.cc \ + rgw/rgw_bucket.cc \ rgw/rgw_cache.cc \ + rgw/rgw_client_io.cc \ + rgw/rgw_common.cc \ + rgw/rgw_cors.cc \ + rgw/rgw_cors_s3.cc \ + rgw/rgw_dencoder.cc \ + rgw/rgw_env.cc \ + rgw/rgw_fcgi.cc \ rgw/rgw_formats.cc \ + rgw/rgw_frontend.cc \ + rgw/rgw_gc.cc \ + rgw/rgw_http_client.cc \ + rgw/rgw_json_enc.cc \ + rgw/rgw_keystone.cc \ + rgw/rgw_loadgen.cc \ rgw/rgw_log.cc \ + rgw/rgw_metadata.cc \ rgw/rgw_multi.cc \ - rgw/rgw_policy_s3.cc \ - rgw/rgw_gc.cc \ rgw/rgw_multi_del.cc \ - rgw/rgw_env.cc \ - rgw/rgw_cors.cc \ - rgw/rgw_cors_s3.cc \ - rgw/rgw_auth_s3.cc \ - rgw/rgw_metadata.cc \ - rgw/rgw_replica_log.cc \ - rgw/rgw_keystone.cc \ + rgw/rgw_object_expirer_core.cc \ + rgw/rgw_op.cc \ + rgw/rgw_os_lib.cc \ + rgw/rgw_policy_s3.cc \ + rgw/rgw_process.cc \ rgw/rgw_quota.cc \ - rgw/rgw_dencoder.cc \ + rgw/rgw_rados.cc \ + rgw/rgw_replica_log.cc \ rgw/rgw_request.cc \ - rgw/rgw_process.cc \ - rgw/rgw_frontend.cc \ - rgw/rgw_object_expirer_core.cc \ + rgw/rgw_resolve.cc \ + rgw/rgw_rest_bucket.cc \ + rgw/rgw_rest.cc \ + rgw/rgw_rest_client.cc \ + rgw/rgw_rest_config.cc \ + rgw/rgw_rest_conn.cc \ + rgw/rgw_rest_log.cc \ + rgw/rgw_rest_metadata.cc \ + rgw/rgw_rest_opstate.cc \ + rgw/rgw_rest_replica_log.cc \ + rgw/rgw_rest_s3.cc \ + rgw/rgw_rest_swift.cc \ + rgw/rgw_rest_usage.cc \ + rgw/rgw_rest_user.cc \ + rgw/rgw_swift_auth.cc \ + rgw/rgw_swift.cc \ + rgw/rgw_tools.cc \ + rgw/rgw_usage.cc \ + rgw/rgw_user.cc \ + rgw/rgw_file.cc \ + rgw/librgw.cc \ + rgw/rgw_xml.cc \ + rgw/rgw_xml_enc.cc \ rgw/rgw_website.cc - rgw/rgw_os_lib.cc -librgw_la_CXXFLAGS = -Woverloaded-virtual ${AM_CXXFLAGS} -noinst_LTLIBRARIES += librgw.la +librgw_la_CXXFLAGS = -Woverloaded-virtual -fPIC -I$(srcdir)/xxHash \ + ${AM_CXXFLAGS} LIBRGW_DEPS += \ $(LIBRADOS) \ libcls_rgw_client.la \ - libcls_log_client.a \ - libcls_statelog_client.a \ - libcls_timeindex_client.a \ - libcls_user_client.a \ - libcls_replica_log_client.a \ + libcls_log_client.la \ + libcls_statelog_client.la \ + libcls_timeindex_client.la \ + libcls_user_client.la \ + libcls_replica_log_client.la \ libcls_lock_client.la \ libcls_refcount_client.la \ - libcls_version_client.a \ + libcls_version_client.la \ -lcurl \ -lexpat \ -lm \ -lfcgi \ -ldl +librgw_la_LIBADD = $(LIBRGW_DEPS) \ + $(PTHREAD_LIBS) $(RESOLV_LIBS) $(LIBCOMMON) \ + $(EXTRALIBS) + +librgw_la_LDFLAGS = ${AM_LDFLAGS} -version-info 2:0:0 + +lib_LTLIBRARIES += librgw.la + CIVETWEB_INCLUDE = --include $(srcdir)/civetweb/include/civetweb_conf.h libcivetweb_la_SOURCES = \ @@ -83,33 +107,24 @@ libcivetweb_la_SOURCES = \ rgw/rgw_civetweb_log.cc \ civetweb/src/civetweb.c -libcivetweb_la_CXXFLAGS = ${CIVETWEB_INCLUDE} -Woverloaded-virtual ${AM_CXXFLAGS} -libcivetweb_la_CFLAGS = -I$(srcdir)/civetweb/include ${CIVETWEB_INCLUDE} +libcivetweb_la_CXXFLAGS = ${CIVETWEB_INCLUDE} -fPIC -Woverloaded-virtual \ + ${AM_CXXFLAGS} +libcivetweb_la_CFLAGS = -I$(srcdir)/civetweb/include ${CIVETWEB_INCLUDE} -fPIC noinst_LTLIBRARIES += libcivetweb.la radosgw_SOURCES = \ - rgw/rgw_resolve.cc \ - rgw/rgw_rest.cc \ - rgw/rgw_rest_swift.cc \ - rgw/rgw_rest_s3.cc \ - rgw/rgw_rest_usage.cc \ - rgw/rgw_rest_user.cc \ - rgw/rgw_rest_bucket.cc \ - rgw/rgw_rest_metadata.cc \ - rgw/rgw_replica_log.cc \ - rgw/rgw_rest_log.cc \ - rgw/rgw_rest_opstate.cc \ - rgw/rgw_rest_replica_log.cc \ - rgw/rgw_rest_config.cc \ - rgw/rgw_http_client.cc \ - rgw/rgw_swift.cc \ - rgw/rgw_swift_auth.cc \ - rgw/rgw_loadgen.cc \ - rgw/rgw_os_lib.cc \ + rgw/rgw_fcgi_process.cc \ + rgw/rgw_loadgen_process.cc \ + rgw/rgw_civetweb.cc \ + rgw/rgw_civetweb_frontend.cc \ + rgw/rgw_civetweb_log.cc \ + civetweb/src/civetweb.c \ rgw/rgw_main.cc -radosgw_CFLAGS = -I$(srcdir)/civetweb/include -radosgw_LDADD = $(LIBRGW) $(LIBCIVETWEB) $(LIBRGW_DEPS) $(RESOLV_LIBS) $(CEPH_GLOBAL) + +radosgw_CFLAGS = -I$(srcdir)/civetweb/include -fPIC -I$(srcdir)/xxHash +radosgw_LDADD = $(LIBRGW) $(LIBCIVETWEB) $(LIBRGW_DEPS) $(RESOLV_LIBS) \ + $(CEPH_GLOBAL) bin_PROGRAMS += radosgw radosgw_admin_SOURCES = rgw/rgw_admin.cc rgw/rgw_orphan.cc diff --git a/src/test/Makefile-client.am b/src/test/Makefile-client.am index 612eee9660101..c205cb8148604 100644 --- a/src/test/Makefile-client.am +++ b/src/test/Makefile-client.am @@ -152,23 +152,23 @@ ceph_test_cls_refcount_CXXFLAGS = $(UNITTEST_CXXFLAGS) bin_DEBUGPROGRAMS += ceph_test_cls_refcount ceph_test_cls_version_SOURCES = test/cls_version/test_cls_version.cc -ceph_test_cls_version_LDADD = $(LIBRADOS) libcls_version_client.a $(UNITTEST_LDADD) $(RADOS_TEST_LDADD) +ceph_test_cls_version_LDADD = $(LIBRADOS) libcls_version_client.la $(UNITTEST_LDADD) $(RADOS_TEST_LDADD) ceph_test_cls_version_CXXFLAGS = $(UNITTEST_CXXFLAGS) bin_DEBUGPROGRAMS += ceph_test_cls_version ceph_test_cls_log_SOURCES = test/cls_log/test_cls_log.cc -ceph_test_cls_log_LDADD = $(LIBRADOS) libcls_log_client.a $(UNITTEST_LDADD) $(CEPH_GLOBAL) $(RADOS_TEST_LDADD) +ceph_test_cls_log_LDADD = $(LIBRADOS) libcls_log_client.la $(UNITTEST_LDADD) $(CEPH_GLOBAL) $(RADOS_TEST_LDADD) ceph_test_cls_log_CXXFLAGS = $(UNITTEST_CXXFLAGS) bin_DEBUGPROGRAMS += ceph_test_cls_log ceph_test_cls_statelog_SOURCES = test/cls_statelog/test_cls_statelog.cc -ceph_test_cls_statelog_LDADD = $(LIBRADOS) libcls_statelog_client.a $(UNITTEST_LDADD) $(CEPH_GLOBAL) $(RADOS_TEST_LDADD) +ceph_test_cls_statelog_LDADD = $(LIBRADOS) libcls_statelog_client.la $(UNITTEST_LDADD) $(CEPH_GLOBAL) $(RADOS_TEST_LDADD) ceph_test_cls_statelog_CXXFLAGS = $(UNITTEST_CXXFLAGS) bin_DEBUGPROGRAMS += ceph_test_cls_statelog ceph_test_cls_replica_log_SOURCES = test/cls_replica_log/test_cls_replica_log.cc ceph_test_cls_replica_log_LDADD = \ - $(LIBRADOS) libcls_replica_log_client.a \ + $(LIBRADOS) libcls_replica_log_client.la \ $(UNITTEST_LDADD) $(CEPH_GLOBAL) $(RADOS_TEST_LDADD) ceph_test_cls_replica_log_CXXFLAGS = $(UNITTEST_CXXFLAGS) bin_DEBUGPROGRAMS += ceph_test_cls_replica_log @@ -645,9 +645,9 @@ ceph_test_cls_rgw_meta_LDADD = \ $(LIBRADOS) $(LIBRGW) $(CEPH_GLOBAL) \ $(UNITTEST_LDADD) $(CRYPTO_LIBS) \ -lcurl -lexpat \ - libcls_version_client.a libcls_log_client.a \ - libcls_statelog_client.a libcls_refcount_client.la \ - libcls_rgw_client.la libcls_user_client.a libcls_lock_client.la + libcls_version_client.la libcls_log_client.la \ + libcls_statelog_client.la libcls_refcount_client.la \ + libcls_rgw_client.la libcls_user_client.la libcls_lock_client.la ceph_test_cls_rgw_meta_CXXFLAGS = $(UNITTEST_CXXFLAGS) bin_DEBUGPROGRAMS += ceph_test_cls_rgw_meta @@ -656,9 +656,9 @@ ceph_test_cls_rgw_log_LDADD = \ $(LIBRADOS) $(LIBRGW) $(CEPH_GLOBAL) \ $(UNITTEST_LDADD) $(CRYPTO_LIBS) \ -lcurl -lexpat \ - libcls_version_client.a libcls_log_client.a \ - libcls_statelog_client.a libcls_refcount_client.la \ - libcls_rgw_client.la libcls_user_client.a libcls_lock_client.la + libcls_version_client.la libcls_log_client.la \ + libcls_statelog_client.la libcls_refcount_client.la \ + libcls_rgw_client.la libcls_user_client.la libcls_lock_client.la ceph_test_cls_rgw_log_CXXFLAGS = $(UNITTEST_CXXFLAGS) bin_DEBUGPROGRAMS += ceph_test_cls_rgw_log @@ -667,9 +667,10 @@ ceph_test_cls_rgw_opstate_LDADD = \ $(LIBRADOS) $(LIBRGW) $(CEPH_GLOBAL) \ $(UNITTEST_LDADD) $(CRYPTO_LIBS) \ -lcurl -lexpat \ - libcls_version_client.a libcls_log_client.a libcls_timeindex_client.a \ - libcls_statelog_client.a libcls_refcount_client.la \ - libcls_rgw_client.la libcls_user_client.a libcls_lock_client.la \ + libcls_version_client.la libcls_log_client.la \ + libcls_timeindex_client.la \ + libcls_statelog_client.la libcls_refcount_client.la \ + libcls_rgw_client.la libcls_user_client.la libcls_lock_client.la \ $(LIBRADOS) ceph_test_cls_rgw_opstate_CXXFLAGS = $(UNITTEST_CXXFLAGS) bin_DEBUGPROGRAMS += ceph_test_cls_rgw_opstate @@ -681,6 +682,37 @@ ceph_test_cls_rgw_LDADD = \ ceph_test_cls_rgw_CXXFLAGS = $(UNITTEST_CXXFLAGS) bin_DEBUGPROGRAMS += ceph_test_cls_rgw +# librgw/RGW-NFS +librgw_file_SOURCES = test/librgw_file.cc +librgw_file_CXXFLAGS = -I$(srcdir)/xxHash $(UNITTEST_CXXFLAGS) +librgw_file_LDADD = $(UNITTEST_LDADD) \ + librgw.la librados.la $(PTHREAD_LIBS) $(CEPH_GLOBAL) $(EXTRALIBS) +bin_DEBUGPROGRAMS += librgw_file + +librgw_file_cd_SOURCES = test/librgw_file_cd.cc +librgw_file_cd_CXXFLAGS = -I$(srcdir)/xxHash $(UNITTEST_CXXFLAGS) +librgw_file_cd_LDADD = $(UNITTEST_LDADD) \ + librgw.la librados.la $(PTHREAD_LIBS) $(CEPH_GLOBAL) $(EXTRALIBS) +bin_DEBUGPROGRAMS += librgw_file_cd + +librgw_file_gp_SOURCES = test/librgw_file_gp.cc +librgw_file_gp_CXXFLAGS = -I$(srcdir)/xxHash $(UNITTEST_CXXFLAGS) +librgw_file_gp_LDADD = $(UNITTEST_LDADD) \ + librgw.la librados.la $(PTHREAD_LIBS) $(CEPH_GLOBAL) $(EXTRALIBS) +bin_DEBUGPROGRAMS += librgw_file_gp + +librgw_file_aw_SOURCES = test/librgw_file_aw.cc +librgw_file_aw_CXXFLAGS = -I$(srcdir)/xxHash $(UNITTEST_CXXFLAGS) +librgw_file_aw_LDADD = $(UNITTEST_LDADD) \ + librgw.la librados.la $(PTHREAD_LIBS) $(CEPH_GLOBAL) $(EXTRALIBS) +bin_DEBUGPROGRAMS += librgw_file_aw + +librgw_file_nfsns_SOURCES = test/librgw_file_nfsns.cc +librgw_file_nfsns_CXXFLAGS = -I$(srcdir)/xxHash $(UNITTEST_CXXFLAGS) +librgw_file_nfsns_LDADD = $(UNITTEST_LDADD) \ + librgw.la librados.la $(PTHREAD_LIBS) $(CEPH_GLOBAL) $(EXTRALIBS) +bin_DEBUGPROGRAMS += librgw_file_nfsns + endif # WITH_RADOSGW -- 2.39.5