From cf4cfd97b69340c0543922787b7c32bf3ebce108 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Sun, 8 Nov 2009 16:02:59 +0100
Subject: [PATCH] Made Sieve library a shared library.

---
 configure.in                                  | 10 ++++++++++
 src/lib-sieve/Makefile.am                     | 17 ++++++++++++-----
 src/lib-sieve/plugins/enotify/Makefile.am     | 13 +++++++++++--
 src/lib-sieve/plugins/environment/Makefile.am | 15 +++++++++++++--
 src/lib-sieve/plugins/variables/Makefile.am   | 17 ++++++++++++++---
 src/plugins/lda-sieve/Makefile.am             |  2 +-
 src/sieve-tools/Makefile.am                   |  2 +-
 src/testsuite/Makefile.am                     |  2 +-
 8 files changed, 63 insertions(+), 15 deletions(-)

diff --git a/configure.in b/configure.in
index 78d9a22e2..6fcb8aace 100644
--- a/configure.in
+++ b/configure.in
@@ -73,6 +73,16 @@ fi
 #
 #
 
+AC_ARG_ENABLE(header-install,
+[  --enable-header-install Install development headers],
+    if test x$enableval = xno; then
+        want_headers=no
+    else
+        want_headers=yes
+    fi,
+    want_headers=no)
+AM_CONDITIONAL(INSTALL_HEADERS, test "$want_headers" = "yes")
+
 AC_ARG_ENABLE(valgrind,
 [AC_HELP_STRING([--enable-valgrind], [Enable Valgrind memory leak checks in testsuite [default=no]])],
     if test x$enableval = xno || test x$enableval = xauto; then
diff --git a/src/lib-sieve/Makefile.am b/src/lib-sieve/Makefile.am
index fcf02ea48..cb5f71bca 100644
--- a/src/lib-sieve/Makefile.am
+++ b/src/lib-sieve/Makefile.am
@@ -1,6 +1,6 @@
 SUBDIRS = plugins
 
-noinst_LTLIBRARIES = libsieve.la
+pkglib_LTLIBRARIES = libdovecot-sieve.la
 
 AM_CPPFLAGS = \
 	-I$(dovecot_incdir) \
@@ -66,10 +66,10 @@ plugins = \
 	./plugins/date/libsieve_ext_date.la \
 	$(unfinished_plugins)
 
-libsieve_la_DEPENDENCIES = $(plugins)
-libsieve_la_LIBADD = $(plugins)
+libdovecot_sieve_la_DEPENDENCIES = $(plugins)
+libdovecot_sieve_la_LIBADD = $(plugins)
 
-libsieve_la_SOURCES = \
+libdovecot_sieve_la_SOURCES = \
 	rfc2822.c \
 	sieve-limits.c \
 	sieve-message.c \
@@ -103,7 +103,7 @@ libsieve_la_SOURCES = \
 	$(extensions) \
 	sieve.c 
 
-noinst_HEADERS = \
+headers = \
 	rfc2822.h \
 	sieve-config.h \
 	sieve-types.h \
@@ -137,3 +137,10 @@ noinst_HEADERS = \
 	sieve-actions.h \
 	sieve-extensions.h \
 	sieve.h
+
+if INSTALL_HEADERS
+	pkginc_libdir=$(pkgincludedir)/sieve
+	pkginc_lib_HEADERS = $(headers)
+else
+	noinst_HEADERS = $(headers)
+endif
diff --git a/src/lib-sieve/plugins/enotify/Makefile.am b/src/lib-sieve/plugins/enotify/Makefile.am
index 4d91fd8c4..b9f600808 100644
--- a/src/lib-sieve/plugins/enotify/Makefile.am
+++ b/src/lib-sieve/plugins/enotify/Makefile.am
@@ -29,8 +29,17 @@ libsieve_ext_enotify_la_SOURCES = \
 	$(var_modifiers) \
 	$(notify_methods)
 
-noinst_HEADERS = \
-	sieve-ext-enotify.h \
+public_headers = \
+	sieve-ext-enotify.h
+
+headers = \
 	ext-enotify-limits.h \
 	ext-enotify-common.h
 
+if INSTALL_HEADERS
+  pkginc_libdir=$(pkgincludedir)/sieve
+  pkginc_lib_HEADERS = $(public_headers)
+  noinst_HEADERS = $(headers)
+else
+  noinst_HEADERS = $(headers) $(public_headers)
+endif
diff --git a/src/lib-sieve/plugins/environment/Makefile.am b/src/lib-sieve/plugins/environment/Makefile.am
index 0acdbdf6b..8de676800 100644
--- a/src/lib-sieve/plugins/environment/Makefile.am
+++ b/src/lib-sieve/plugins/environment/Makefile.am
@@ -15,6 +15,17 @@ libsieve_ext_environment_la_SOURCES = \
 	ext-environment-common.c \
 	ext-environment.c
 
-noinst_HEADERS = \
-	ext-environment-common.h \
+public_headers = \
 	sieve-ext-environment.h
+
+headers = \
+	ext-environment-common.h
+
+if INSTALL_HEADERS
+  pkginc_libdir=$(pkgincludedir)/sieve
+  pkginc_lib_HEADERS = $(public_headers)
+  noinst_HEADERS = $(headers)
+else
+  noinst_HEADERS = $(headers) $(public_headers)
+endif
+
diff --git a/src/lib-sieve/plugins/variables/Makefile.am b/src/lib-sieve/plugins/variables/Makefile.am
index 85e3df869..410fe9701 100644
--- a/src/lib-sieve/plugins/variables/Makefile.am
+++ b/src/lib-sieve/plugins/variables/Makefile.am
@@ -24,12 +24,23 @@ libsieve_ext_variables_la_SOURCES = \
 	$(tsts) \
 	ext-variables.c
 
-noinst_HEADERS = \
+public_headers = \
+	sieve-ext-variables.h 
+
+headers = \
 	ext-variables-common.h \
 	ext-variables-limits.h \
 	ext-variables-name.h \
 	ext-variables-arguments.h \
 	ext-variables-operands.h \
 	ext-variables-modifiers.h \
-	ext-variables-dump.h \
-	sieve-ext-variables.h 
+	ext-variables-dump.h
+
+if INSTALL_HEADERS
+  pkginc_libdir=$(pkgincludedir)/sieve
+  pkginc_lib_HEADERS = $(public_headers)
+  noinst_HEADERS = $(headers)
+else
+  noinst_HEADERS = $(headers) $(public_headers)
+endif
+
diff --git a/src/plugins/lda-sieve/Makefile.am b/src/plugins/lda-sieve/Makefile.am
index 0ff34473a..ddbcfde2a 100644
--- a/src/plugins/lda-sieve/Makefile.am
+++ b/src/plugins/lda-sieve/Makefile.am
@@ -13,7 +13,7 @@ lib90_sieve_plugin_la_LDFLAGS = -module -avoid-version
 module_LTLIBRARIES = lib90_sieve_plugin.la
 
 lib90_sieve_plugin_la_LIBADD = \
-	$(top_srcdir)/src/lib-sieve/libsieve.la
+	$(top_srcdir)/src/lib-sieve/libdovecot-sieve.la
 
 lib90_sieve_plugin_la_SOURCES = \
 	lda-sieve-plugin.c 
diff --git a/src/sieve-tools/Makefile.am b/src/sieve-tools/Makefile.am
index b12eb6206..dc9d393b1 100644
--- a/src/sieve-tools/Makefile.am
+++ b/src/sieve-tools/Makefile.am
@@ -24,7 +24,7 @@ AM_CPPFLAGS = \
 	-I$(dovecot_incdir)/src/lib-storage/index/raw
 
 libs = \
-	$(top_srcdir)/src/lib-sieve/libsieve.la \
+	$(top_srcdir)/src/lib-sieve/libdovecot-sieve.la \
 	$(top_srcdir)/src/lib-sieve-tool/libsieve-tool.la \
 	$(dovecot_incdir)/src/lib-storage/libdovecot-storage.la \
 	$(dovecot_incdir)/src/lib-dovecot/libdovecot.la \
diff --git a/src/testsuite/Makefile.am b/src/testsuite/Makefile.am
index fb8c9f550..56cd7ea7b 100644
--- a/src/testsuite/Makefile.am
+++ b/src/testsuite/Makefile.am
@@ -17,7 +17,7 @@ AM_CPPFLAGS = \
 testsuite_LDFLAGS = -export-dynamic
 
 libs = \
-	$(top_srcdir)/src/lib-sieve/libsieve.la \
+	$(top_srcdir)/src/lib-sieve/libdovecot-sieve.la \
 	$(top_srcdir)/src/lib-sieve-tool/libsieve-tool.la \
 	$(dovecot_incdir)/src/lib-storage/libdovecot-storage.la \
 	$(dovecot_incdir)/src/lib-dovecot/libdovecot.la
-- 
GitLab