Hello,

now libcyrus and libcyrus_min are compiled once as shared libraries, once under perl/ as non-static convenience libraries, perl/imap/IMAP.so and perl/sieve/managesieve/managesieve.so link statically with the non-static convenience libraries, so that IMAP.so and managesieve.so do need neither libcyrus and libcyrus_min at run time nor the RPATH with those libraries at tun time.

I hope this is the end with the shared libraries, before they can be merged.

I guess libtool has to be run for every step, and this makes the things
very messy.

Maybe not. According to the libtool documentation, you can convince
"libtool --mode=link" to build a native .a file using the obvious
options "-o foo.a".  So you might be able to convince the main
Makefile.am to build a native .a and link against that in the MakeMaker
makefile.

This was done, when for all libraries, both shared and static versions were build and perl used just the static versions of libcyrus_min and libcyrus to link with IMAP.so and managesieve.so and libimap and libsieve were compiled and installed statically, just because. Anyway, I hope now with using only libcyrus and libcyrus_min as non-static convenience libraries to have solved the problem.

After merging the support for sieve-seconds, jenkins did not rebuild sieve/sieve.c from sieve/sieve.y (it considered probably sieve.c newer as sieve.y), I fixed tools/jenkins-build.sh to run "make maintainer-clean" (instead of "make distclean") before each run, so that sieve/sieve.c is deleted. This caused deleting also imap/rfc822_headers.[ch], which were not rebuild, as ./configure was not run with --enable-maintainer-mode. If gperf is installed on jenkins.cyrusimapd.org the next build shall run normally.

Със здраве
  Дилян

On 05.06.2012 09:02, Greg Banks wrote:


On Mon, Jun 4, 2012, at 04:22 PM, Дилян Палаузов wrote:
Hello,

then I suggest to build both static and shared libraries, to link all
services and user programmes with the shared libraries, to link the
IMAP.so and manageiseve.so files with the static libraries, and resolve
by this way the need to insert RPATH in IMAP.so and managesieve.so .

Using noinst_LTLIBRARIES to create a "non-static convenience library"
(in libtool's terminology) whose only purpose is to get linked into
IMAP.so and managesieve.so ?  This might work.

I guess libtool has to be run for every step, and this makes the things
very messy.

Maybe not. According to the libtool documentation, you can convince
"libtool --mode=link" to build a native .a file using the obvious
options "-o foo.a".  So you might be able to convince the main
Makefile.am to build a native .a and link against that in the MakeMaker
makefile.

Running libtool with --quiet during "make install DESTDIR=" (achieved by
"make install DESTDIR=... LIBTOOLOPTIONS=--quiet") steal leads to
warnings that the shared libraries are not installed on their final
destination.

Ah, libtool... :(

 From the documention it looks like using -R $(libdir) instead of -rpath
$(libdir) might be useful.

<<attachment: dilyan_palauzov.vcf>>

Reply via email to