libtool problem when installing packages with modules
Peter Rosin
peda@lysator.liu.se
Fri Dec 10 15:47:00 GMT 2010
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
More information about the Cygwin-apps
mailing list