From: Timo Sirainen Date: Wed, 4 Oct 2017 18:13:13 +0000 (+0300) Subject: dict-ldap: Link directly to dict binary, unless --with-ldap=plugin was used X-Git-Tag: 2.3.0.rc1~889 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=02b352f203caaee32b3f6de9b07ce619499e849b;p=thirdparty%2Fdovecot%2Fcore.git dict-ldap: Link directly to dict binary, unless --with-ldap=plugin was used This is similar to how authdb_ldap plugin is built. --- diff --git a/m4/want_ldap.m4 b/m4/want_ldap.m4 index 3753a483f3..91d9e0f00e 100644 --- a/m4/want_ldap.m4 +++ b/m4/want_ldap.m4 @@ -21,6 +21,7 @@ AC_DEFUN([DOVECOT_WANT_LDAP], [ AC_SUBST(LDAP_LIBS) if test $want_ldap != plugin; then AUTH_LIBS="$AUTH_LIBS $LDAP_LIBS" + DICT_LIBS="$DICT_LIBS $LDAP_LIBS" AC_DEFINE(BUILTIN_LDAP,, [LDAP support is built in]) fi diff --git a/src/lib-dict-backend/Makefile.am b/src/lib-dict-backend/Makefile.am index 66b9bb0611..c255fa70f6 100644 --- a/src/lib-dict-backend/Makefile.am +++ b/src/lib-dict-backend/Makefile.am @@ -14,11 +14,17 @@ AM_CPPFLAGS = \ NOPLUGIN_LDFLAGS = +ldap_sources = \ + dict-ldap.c \ + dict-ldap-settings.c + libdict_backend_la_SOURCES = \ dict-db.c \ dict-cdb.c \ dict-sql.c \ - dict-sql-settings.c + dict-sql-settings.c \ + $(ldap_sources) +libdict_backend_la_LIBADD = nodist_libdict_backend_la_SOURCES = \ dict-drivers-register.c @@ -29,20 +35,23 @@ noinst_HEADERS = \ dict-sql-private.h \ dict-sql-settings.h -if HAVE_LDAP +if LDAP_PLUGIN LIBDICT_LDAP = libdict_ldap.la libdict_ldap_la_DEPENDENCIES = $(LIBDOVECOT_LDAP) $(LIBDOVECOT_DEPS) libdict_ldap_la_LDFLAGS = -module -avoid-version libdict_ldap_la_LIBADD = $(LIBDOVECOT_LDAP) $(LIBDOVECOT) +libdict_ldap_la_CPPFLAGS = $(AM_CPPFLAGS) -DPLUGIN_BUILD +libdict_ldap_la_SOURCES = $(ldap_sources) +else +if HAVE_LDAP +libdict_backend_la_LIBADD += $(LIBDOVECOT_LDAP) +dict_drivers += ldap +endif +endif module_dict_LTLIBRARIES = \ $(LIBDICT_LDAP) -libdict_ldap_la_SOURCES = \ - dict-ldap.c \ - dict-ldap-settings.c -endif - EXTRA_DIST = dict.conf dict-drivers-register.c: Makefile $(top_builddir)/config.h @@ -50,6 +59,7 @@ dict-drivers-register.c: Makefile $(top_builddir)/config.h echo '/* this file automatically generated by Makefile */' >$@ echo '#include "lib.h"' >>$@ echo '#include "dict.h"' >>$@ + echo '#include "ldap-client.h"' >>$@ echo '#include "dict-sql.h"' >>$@ for i in $(dict_drivers) null; do \ if [ "$${i}" != "null" ]; then \ @@ -66,6 +76,9 @@ dict-drivers-register.c: Makefile $(top_builddir)/config.h done echo '}' >>$@ echo 'void dict_drivers_unregister_all(void) {' >>$@ + echo '#ifdef BUILTIN_LDAP' >>$@ + echo 'ldap_clients_cleanup();' >>$@ + echo '#endif' >>$@ echo 'dict_drivers_unregister_builtin();' >>$@ echo 'dict_sql_unregister();' >>$@ for i in $(dict_drivers) null; do \ diff --git a/src/lib-dict-backend/dict-ldap-settings.c b/src/lib-dict-backend/dict-ldap-settings.c index 1f114d6b88..87e8f83dd4 100644 --- a/src/lib-dict-backend/dict-ldap-settings.c +++ b/src/lib-dict-backend/dict-ldap-settings.c @@ -1,6 +1,9 @@ /* Copyright (c) 2008-2017 Dovecot authors, see the included COPYING file */ #include "lib.h" + +#if defined(BUILTIN_LDAP) || defined(PLUGIN_BUILD) + #include "array.h" #include "str.h" #include "settings.h" @@ -306,3 +309,5 @@ dict_ldap_settings_read(pool_t pool, const char *path, const char **error_r) return ctx.set; } + +#endif diff --git a/src/lib-dict-backend/dict-ldap.c b/src/lib-dict-backend/dict-ldap.c index 2694e1619e..098297494a 100644 --- a/src/lib-dict-backend/dict-ldap.c +++ b/src/lib-dict-backend/dict-ldap.c @@ -1,6 +1,9 @@ /* Copyright (c) 2016-2017 Dovecot authors, see the included COPYING memcached */ #include "lib.h" + +#if defined(BUILTIN_LDAP) || defined(PLUGIN_BUILD) + #include "array.h" #include "module-dir.h" #include "str.h" @@ -465,6 +468,8 @@ struct dict dict_driver_ldap = { } }; +#ifndef BUILTIN_LDAP +/* Building a plugin */ void dict_ldap_init(struct module *module ATTR_UNUSED); void dict_ldap_deinit(void); @@ -480,3 +485,6 @@ void dict_ldap_deinit(void) } const char *dict_ldap_plugin_dependencies[] = { NULL }; +#endif + +#endif