Libtool and Support for Shared Libraries (2)

Дилян Палаузов dilyan.palauzov at aegee.org
Wed May 16 19:21:41 EDT 2012


Hello,

I have integrated the comments about libtool/shared libraries and at the 
end the changes are:

   -- in libcyrus_min:libconfig:config_read one parameter is added for 
config_need_data, so that this variable does not have to be global and 
presented in programs, not using config_read, update all invocations of 
the function to use the new API
   -- in libimap:global:cyrus_init add one parameter (config_need_data), 
so that its value can be passed to config_read; update all invocations 
of cyrus_init;
   -- create by default only shared libraries, this can be further tuned 
with ./configure --enable-static / --disable-shared
   -- rename libsieve and libimap to libcyrus_sieve and libcyrus_sieve 
and install them in $(libdir) (e.g. /usr/lib)
   -- make the perl/{imap,sieve/managesieve} modules use the shared 
libraries libcyrys_min and libcyrus.  This might lead to a problem, when 
the tests in perl/imap/t/ are run, before the shared libraries are 
installed, as the tests depend on the shared libraries, but the tests 
are not instructed to where to find thw libraries.
   -- when there is no system-wide libcom_err, compile the bundled one 
as libcyrus_com_err and eventually install it in $(libdir)

I hope with uploading now the separate branch "dev/libtool" on 
git.cyrusimapd.org I will not mess up the things again.  The problem the 
last time (Build failed in Jenkins: cyrus-imapd-master #571) was caused 
by unclean aclocal.m4:

> + autoreconf -i -f -v -Icmulocal
> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal -I cmulocal --force -I cmulocal
> autoreconf: configure.ac: tracing
> autoreconf: configure.ac: not using Libtool
> autoreconf: running: /usr/bin/autoconf --include=cmulocal --force
> autoreconf: running: /usr/bin/autoheader --include=cmulocal --force
> autoreconf: running: automake --add-missing --copy --force-missing
> Makefile.am:69: library used but `RANLIB' is undefined
> Makefile.am:69:   The usual way to define `RANLIB' is to add `AC_PROG_RANLIB'
> Makefile.am:69:   to `configure.ac' and run `autoconf' again.
> Makefile.am:73: Libtool library used but `LIBTOOL' is undefined
> Makefile.am:73:   The usual way to define `LIBTOOL' is to add `LT_INIT'
> Makefile.am:73:   to `configure.ac' and run `aclocal' and `autoconf' again.
> Makefile.am:73:   If `LT_INIT' is in `configure.ac', make sure
> Makefile.am:73:   its definition is in aclocal's search path.
> autoreconf: automake failed with exit status: 1
> + fatal 'Can'\''t run autoreconf'
> + echo 'imapd/tools/jenkins-build.sh: Can'\''t run autoreconf'
> imapd/tools/jenkins-build.sh: Can't run autoreconf
> + exit 1
> Build step 'Execute shell' marked build as failure
> Skipping Cobertura coverage report as build was not SUCCESS or better ...
> Recording test results

On my system I do not get "autoreconf: configure.ac: not using Libtool" 
and I guess running "git clean" will clean the cause of the error message.

Със здраве
   Дилян
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dilyan_palauzov.vcf
Type: text/x-vcard
Size: 380 bytes
Desc: not available
Url : http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20120517/6e41d3f9/attachment.vcf 


More information about the Cyrus-devel mailing list