From: Jan Engelhardt Date: 2011-07-03 23:49:00 +0200 build: add missing library dependencies Any dependencies that a .la uses should be mentioned in that .la's LIBADD spec, *irrespective* of whether it is going to be static or shared. The benefit is that linking against .la files is like linking against .so, i.e. all dependencies are remembered, so that e.g. zarafa_server_LDADD need not list them. Here are a bunch of dependencies I made out from `nm | grep ' U '` reports. They might not be complete. --- common/Makefile.am | 5 +++++ provider/common/Makefile.am | 2 ++ provider/libserver/Makefile.am | 2 ++ provider/server/Makefile.am | 2 +- 4 files changed, 10 insertions(+), 1 deletion(-) Index: zarafa-7.1.8/common/Makefile.am =================================================================== --- zarafa-7.1.8.orig/common/Makefile.am +++ zarafa-7.1.8/common/Makefile.am @@ -58,6 +58,7 @@ libcommon_mapi_la_SOURCES = CommonUtil.c MAPIConsoleTable.cpp \ ECMAPIDebug.cpp \ MAPIErrors.cpp +libcommon_mapi_la_LIBADD = -lpthread ${ICU_LIBS} libcommon_util_la_LDFLAGS = ${AM_LDFLAGS} -static libcommon_util_la_SOURCES = platform.cpp \ @@ -92,9 +93,11 @@ libcommon_util_la_SOURCES = platform.cpp fileutil.cpp \ ECThreadPool.cpp \ ConsoleTable.cpp +libcommon_util_la_LIBADD = -lpthread ${BOOST_FILESYSTEM_LIBS} ${BOOST_SYSTEM_LIBS} if HAVE_ICU libcommon_util_la_SOURCES += ustringutil/utfutil.cpp +libcommon_util_la_LIBADD += ${ICU_LIBS} endif libcommon_ssl_la_LDFLAGS = ${AM_LDFLAGS} -static @@ -102,9 +105,11 @@ libcommon_ssl_la_SOURCES = \ SSLUtil.cpp \ ECChannelClient.cpp \ ECChannel.cpp +libcommon_ssl_la_LIBADD = -lpthread ${SSL_LIBS} libcommon_service_la_LDFLAGS = ${AM_LDFLAGS} -static libcommon_service_la_SOURCES = ECDatabaseMySQL.cpp +libcommon_service_la_LIBADD = ${MYSQL_LIBS} # remove double installed headers install-data-hook: Index: zarafa-7.1.8/provider/common/Makefile.am =================================================================== --- zarafa-7.1.8.orig/provider/common/Makefile.am +++ zarafa-7.1.8/provider/common/Makefile.am @@ -16,6 +16,8 @@ libzarafacommon_la_SOURCES = SOAPUtils.c ECOfflineState.h ECOfflineState.cpp \ StreamTypes.h ZarafaVersions.h +libzarafacommon_la_LIBADD = ../soap/libsoapclient.la + check-syntax: $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \ -fsyntax-only -fmessage-length=0 ${CHK_SOURCES} -Wall -Wformat=2 Index: zarafa-7.1.8/provider/libserver/Makefile.am =================================================================== --- zarafa-7.1.8.orig/provider/libserver/Makefile.am +++ zarafa-7.1.8/provider/libserver/Makefile.am @@ -61,6 +61,8 @@ libserver_la_SOURCES = \ ZarafaCmdUtil.cpp ZarafaCmdUtil.h \ ECLockManager.cpp ECLockManager.h +libserver_la_LIBADD = -ldl -lpthread -lz ${SSL_LIBS} ${BOOST_FILESYSTEM_LIBS} ${BOOST_SYSTEM_LIBS} ${ICU_LIBS} ${KRB5_LIBS} ${MYSQL_LIBS} ${PAM_LIBS} + check-syntax: $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \ -fsyntax-only -fmessage-length=0 ${CHK_SOURCES} -Wall -Wformat=2 Index: zarafa-7.1.8/provider/server/Makefile.am =================================================================== --- zarafa-7.1.8.orig/provider/server/Makefile.am +++ zarafa-7.1.8/provider/server/Makefile.am @@ -20,7 +20,7 @@ zarafa_server_LDADD = \ ${top_builddir}/common/libcommon_ssl.la \ $(PROG_LIBS) \ $(BOOST_FILESYSTEM_LIBS) $(BOOST_SYSTEM_LIBS) $(ICU_LIBS) $(DL_LIBS) \ - $(MYSQL_LIBS) $(SSL_LIBS) $(PAM_LIBS) $(KRB5_LIBS) $(TCMALLOC_LIBS) -lrt + $(SSL_LIBS) $(TCMALLOC_LIBS) -lrt zarafa_server_SOURCES = ECServer.cpp \ ECSoapServerConnection.h ECSoapServerConnection.cpp \