]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dict-ldap: Link directly to dict binary, unless --with-ldap=plugin was used
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 4 Oct 2017 18:13:13 +0000 (21:13 +0300)
committerTimo Sirainen <tss@dovecot.fi>
Thu, 5 Oct 2017 14:56:51 +0000 (17:56 +0300)
This is similar to how authdb_ldap plugin is built.

m4/want_ldap.m4
src/lib-dict-backend/Makefile.am
src/lib-dict-backend/dict-ldap-settings.c
src/lib-dict-backend/dict-ldap.c

index 3753a483f39369816185dcb569a8b66df27ba3d2..91d9e0f00e6df748b829dfa220cc8b2a2e3009c2 100644 (file)
@@ -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
   
index 66b9bb06119cf0205fb051efcf9940f8010e8198..c255fa70f63199e0412f5d91fd863d47730211d5 100644 (file)
@@ -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 \
index 1f114d6b88af1a7822bc43a8361f73793e66bf3b..87e8f83dd46da333b12963f5f69f743ddb7f241b 100644 (file)
@@ -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
index 2694e1619e7265690ab4096365671baaa3907b38..098297494ae0cf2a57ddace5f0f93ff749631486 100644 (file)
@@ -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