This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libtool problem when installing packages with modules


Den 2010-12-10 16:11 skrev Corinna Vinschen:
> Hi Chuck,
> 
> 
> as you may have noticed, I updated syslog-ng to 3.2.1 yesterday.  While
> I prepared it for packaging, I came across the following problem.
> 
> Syslog-ng introduced modules, which are shared libs, dynamically loaded
> at runtime.  The modules are stored in $(libexecdir)/syslog-ng.
> Building the modules required to re-libtoolize with libtool 2.4, since
> the libtool version used in the upstream source package (2.2.6b) didn't
> handle DLL dependencies in *.la files correctly.
> 
> Now, when installing the package, something strange happened.  The
> modules get installed via `libtool --mode=install <list of .la files>'
> The *.dll.a and *.la files got installed into $(libexecdir)/syslog-ng,
> but the DLLs got installed into $(libexecdir)/syslog-ng/../bin ==
> $(libexecdir)/bin.  So the DLLs got installed into a parallel directory
> called "bin".
> 
> I was a bit surprised at first, but after a few seconds it occured to me
> that there's some Cygwin-specific magic at work.  This magic makes a lot
> of sense for the default case of libraries which get installed into
> /usr/lib, so the DLLs are installed into /usr/bin.  However, for obvious
> reasons it doesn't make sense for a modules directory.  So, here are two
> questions:
> 
> - Is there an option to libtool so that it installs the DLLs into
>   $(libexecdir)/syslog-ng instead of $(libexecdir)/syslog-ng/../bin in
>   this syslog-ng scenario?
> 
> - What is the "official", blessed way to handle this situation?  What I
>   do right now is to move the DLLs to the correct directory in a
>   post-install/pre-create-package script, which also removes the extra
>   bin directory and the .dll.a files.
> 
> Obviously it would be nice if libtool had an option to do it right in
> `make install'.  For instance, some '-install-as-module' option which
> results in copying only the DLLs to $(libexecdir)/syslog-ng, but which
> omits the .dll.a and .la files since they are note required anyway.
> Something like that doesn't exist, I assume.  WOuld it be an option
> to implement this?

IIRC, libtool should not do the ../bin dance when it installs libtool
modules, so I can only assume that these syslog-ng modules are not built
as libtool modules, but instead as ordinary libtool libraries. Does
syslog-ng supply the -module option to libtool?

But that's just a guess of course, since I haven't actually looked at
the syslog-ng source...

Cheers,
Peter


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]