Libtool and Support for Shared Libraries

Дилян Палаузов dilyan.palauzov at
Wed May 9 19:04:30 EDT 2012


I wanted to upload a new branch for testing libtool/shared libraries 
functionality, but something went wrong and the 13 commits were uploaded 
on top of 'master' instead of creating a separate branch.  I am sorry 
for the surprises this might cause.  Anyway...

I have updated cyrus-imapd to use libtool and build shared (and static) 
libraries, and the binaries to use the shared libraries.  I hope you 
like the results.

Some issues:
   -- where shall the libraries be installed?  Currently libcyrus and 
libcyrus_min go under $libdir (e.g. /usr/lib), as this was before with 
using libtool

   -- libimap and libsieve are installed under pkglibdir = 
$cyrus_prefix/lib, e.g. /usr/cyrus/lib .  If the libraries are moved to 
$libdir, then they shall probably be renamed to libcyrus_imap and 
libcyrus_sieve to avoid conflicts with other libraries with the same 
(common) name

   -- I have problems with MakeMaker, it would be very, very nice if 
somebody considers to change the build system for the perl files, e.g. 
switch to something more modern and developed like Module::Build (to 
what I read MakeMaker is not developed any more).  In any case, the perl 
modules are linked with the static libraries of libcyrus_min and 
libcyrus, so currently for the binaries the shared libraries are used, 
for the perl-stuff the static libraries are used and cyrus-imapd 
compiles by default both shared and static libraries.

   -- in the future library versioning could be used, e.g. to associate 
library-version to a cyrus-imapd release or so, at the moment my idea 
was just to make shared libraries and these are un-versioned.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dilyan_palauzov.vcf
Type: text/x-vcard
Size: 380 bytes
Desc: not available
Url : 

More information about the Cyrus-devel mailing list