]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-lua: Install libdovecot-lua binaries
authorJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Thu, 3 Dec 2020 15:21:47 +0000 (10:21 -0500)
committerJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Thu, 3 Dec 2020 15:21:47 +0000 (10:21 -0500)
This turns this into a full-fledged library.  This addresses the issue where
libdovecot-lua is completely included in anything that uses it, which caused
unnecessarily bloat and could have caused linker problems with multiple
definitions of the same symbol.

src/auth/Makefile.am
src/lib-lua/Makefile.am

index 009c8087225208c84bf57c255ad08daf95886ce3..e96b3b69be526edcd52f92322da0cce920eff187 100644 (file)
@@ -12,6 +12,18 @@ if LDAP_PLUGIN
 LDAP_LIB = libauthdb_ldap.la
 endif
 
+if HAVE_LUA
+LIBDOVECOT_LUA = ../lib-lua/libdovecot-lua.la
+if AUTH_LUA_PLUGIN
+LUA_LIB = libauthdb_lua.la
+AUTH_LUA_LIBS = # nothing, lua db is a plugin
+else
+LUA_LIB = # nothing, not building a plugin
+AUTH_LUA_LIBS = libauthdb_lua.la $(LIBDOVECOT_LUA)
+AUTH_LUA_LDADD = $(LUA_LIBS)
+endif
+endif
+
 auth_module_LTLIBRARIES = \
        $(GSSAPI_LIB) \
        $(LDAP_LIB) \
@@ -59,24 +71,16 @@ libpassword_la_SOURCES = \
        password-scheme-sodium.c
 libpassword_la_CFLAGS = $(AM_CPPFLAGS) $(LIBSODIUM_CFLAGS)
 
-if HAVE_LUA
-if AUTH_LUA_PLUGIN
-LUA_LIB = libauthdb_lua.la
-else !AUTH_LUA_PLUGIN
-LIBDOVECOT_LUA = ../lib-lua/libdovecot-lua.la
-endif !AUTH_LUA_PLUGIN
-endif
-
 auth_libs = \
        libauth.la \
        libstats_auth.la \
        libpassword.la \
        ../lib-otp/libotp.la \
-       $(LIBDOVECOT_LUA) \
+       $(AUTH_LUA_LIBS) \
        $(LIBDOVECOT_SQL)
 
 auth_CPPFLAGS = $(AM_CPPFLAGS) $(BINARY_CFLAGS)
-auth_LDADD = $(auth_libs) $(LIBDOVECOT) $(AUTH_LIBS) $(BINARY_LDFLAGS)
+auth_LDADD = $(auth_libs) $(LIBDOVECOT) $(AUTH_LIBS) $(BINARY_LDFLAGS) $(AUTH_LUA_LDADD)
 auth_DEPENDENCIES = $(auth_libs) $(LIBDOVECOT_DEPS)
 auth_SOURCES = main.c
 
@@ -206,7 +210,7 @@ endif
 
 if AUTH_LUA_PLUGIN
 libauthdb_lua_la_LDFLAGS = -module -avoid-version
-libauthdb_lua_la_LIBADD = ../lib-lua/libdovecot-lua.la $(LUA_LIBS)
+libauthdb_lua_la_LIBADD = ../lib-lua/libdovecot-lua.la
 libauthdb_lua_la_CPPFLAGS = $(AM_CPPFLAGS) -DPLUGIN_BUILD
 libauthdb_lua_la_SOURCES = $(lua_sources)
 endif
@@ -280,14 +284,14 @@ test_auth_SOURCES = \
        test-mock.c \
        test-main.c
 
-test_auth_LDADD = $(test_libs) $(auth_libs) $(AUTH_LIBS)
+test_auth_LDADD = $(test_libs) $(auth_libs) $(AUTH_LIBS) $(LUA_LIBS)
 test_auth_DEPENDENCIES = $(pkglibexec_PROGRAMS) $(test_libs)
 
 test_mech_SOURCES = \
        test-mock.c \
        test-mech.c
 
-test_mech_LDADD = $(test_libs) $(auth_libs) $(AUTH_LIBS)
+test_mech_LDADD = $(test_libs) $(auth_libs) $(AUTH_LIBS) $(LUA_LIBS)
 test_mech_DEPENDENCIES = $(pkglibexec_PROGRAMS) $(test_libs)
 
 check-local:
index d24475ceabae105e47f4356a83c62c2e6379537d..fd18ce1e3738034033f5f0c999aabdb166bfa640 100644 (file)
@@ -1,16 +1,17 @@
-noinst_LTLIBRARIES = libdovecot-lua.la
-
 AM_CPPFLAGS = \
        -I$(top_srcdir)/src/lib \
        -I$(top_srcdir)/src/lib-test \
        $(LUA_CFLAGS)
 
+pkglib_LTLIBRARIES = libdovecot-lua.la
 libdovecot_lua_la_SOURCES = \
        dlua-script.c \
        dlua-dovecot.c \
        dlua-compat.c
+# Note: the only things this lib should depend on are libdovecot and lua.
 libdovecot_lua_la_DEPENDENCIES = ../lib-dovecot/libdovecot.la
 libdovecot_lua_la_LIBADD = ../lib-dovecot/libdovecot.la $(LUA_LIBS)
+libdovecot_lua_la_LDFLAGS = -export-dynamic
 
 headers = \
        dlua-script.h \
@@ -30,7 +31,7 @@ test_libs =\
 test_lua_SOURCES = test-lua.c
 test_lua_CFLAGS = $(AM_CPPFLAGS) $(BINARY_CFLAGS)
 test_lua_LDFLAGS = $(BINARY_LDFLAGS)
-test_lua_LDADD = $(test_libs)
+test_lua_LDADD = $(test_libs) $(LUA_LIBS)
 test_lua_DEPENDENCIES = $(test_libs)
 
 check-local: