From: Josef 'Jeff' Sipek Date: Thu, 3 Dec 2020 15:21:47 +0000 (-0500) Subject: lib-lua: Install libdovecot-lua binaries X-Git-Tag: 2.3.14.rc1~202 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4a07b3622ae2ad1f7b97479eed38e021006331ac;p=thirdparty%2Fdovecot%2Fcore.git lib-lua: Install libdovecot-lua binaries 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. --- diff --git a/src/auth/Makefile.am b/src/auth/Makefile.am index 009c808722..e96b3b69be 100644 --- a/src/auth/Makefile.am +++ b/src/auth/Makefile.am @@ -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: diff --git a/src/lib-lua/Makefile.am b/src/lib-lua/Makefile.am index d24475ceab..fd18ce1e37 100644 --- a/src/lib-lua/Makefile.am +++ b/src/lib-lua/Makefile.am @@ -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: