> From: Gavin Smith <[email protected]>
> Date: Sat, 17 Jan 2026 21:17:24 +0000
> 
> On Sat, Jan 17, 2026 at 09:08:55PM +0000, Gavin Smith wrote:
> > On Sat, Jan 17, 2026 at 09:43:44PM +0100, [email protected] wrote:
> > > > > > Which brings me to the installation.  I've just run "make install",
> > > > > > and I see that various libtexinfo*.dll DLLs are installed in
> > > > > > $prefix/lib/bin.
> > > > > 
> > > > > That is somewhat unexpected.  In tta/C/Makefile.am, there is
> > > > > 
> > > > > converterlibdir = $(libdir)/$(CONVERTER)
> > > > > xsdir = $(converterlibdir)
> > > > > 
> > > > > and the libraries are in xs_LTLIBRARIES, and therefore should be
> > > > > installed in $(libdir)/texi2any, since CONVERTER=texi2any.
> > > > > 
> > > > > xs_LTLIBRARIES += libtexinfo.la
> > > > 
> > > > I think the reason is libtool.  It "knows" that shared libraries on
> > > > Windows need to be installed in the 'bin' subdirectory, not in the
> > > > 'lib' subdirectory as on Posix systems.
> > > > 
> > > > So I guess this calls for some Makefile wizardry, to make sure
> > > > libtexinfo*.dll libraries end up in lib/texi2any/ instead.
> > > 
> > > Ok.  I guess we have to bypass libtool on that.
> > 
> > Is this a new problem?  Were the libraries installed in the wrong place
> > with Texinfo 7.2?
> > 
> 
> I've read in an email on the libtool mailing list archives that
> the path $libdir/../bin is used:
> 
> Mike Gran wrote:
> > Because when a MinGW DLL is installed by libtool, the libfoo.lib.a
> > goes into $libdir and the libfoo.dll goes into $libdir/../bin, which
> > happens to be $bindir
> https://lists.gnu.org/archive/html/libtool/2022-11/msg00000.html
> 
> So e.g.  /usr/lib/texi2any becomes /usr/lib/texi2any/../bin = /usr/lib/bin.
> 
> If this is right, then one workaround is to use an extra layer of directories.
> 
> If xsdir is instead /usr/lib/texi2any/lib, then this would lead to the
> directory /usr/lib/texi2any/bin being used instead, which is not so bad.

Right, but these directories are unlikely to be on PATH.  $prefix/bin
is usually on PATH, so if, as Patrice says, SWIG needs to load the
libtexinfo*.dll DLLs without reading the *.la files, it is better to
install them in $prefix/bin.

The libtool's "../bin" trick for Windows is just for the default case
of installing libraries in $prefix/lib, but it doesn't work well when
the directory structure is more complex.  I'm not a libtool expert,
but maybe there are ways of telling it to use a different arrangement?
Maybe Bruno (CC'ed) could help us with that?

Reply via email to