> Date: Fri, 20 Feb 2026 20:28:39 +0100
> From: [email protected]
> 
> > >    . it also installs makeinfo.exe, but that seems to be the libtool
> > >      wrapper, not the actual executable (which is supposed to be an
> > >      identical copy of texi2any.exe)
> > 
> > This one also should be fixable, thanks for the report.
> 
> I can't see what is going on from the code.  The rule is the following
> (I copied a similar rule for Perl texi2any):
> 
> if PREFER_C_TEXI2ANY
> install-exec-hook:
>       makeinfo_f=`echo makeinfo$(EXEEXT) | sed -e '$(transform)'`; rm -f 
> $(DESTDIR)$(bindir)/$$makeinfo_f
>       -makeinfo_f=`echo makeinfo$(EXEEXT) | sed -e '$(transform)'`; 
> texi2any_f=`echo texi2any$(EXEEXT)| sed -e '$(transform)'`; $(LN_S) 
> $$texi2any_f $(DESTDIR)$(bindir)/$$makeinfo_f
> endif
> 
> I can't see what could lead makeinfo.exe not to be the same as
> texi2any.exe.  Did you check that texi2any.exe is not a libtool wrapper
> too?

Yes.  If it were a wrapper, I couldn't have got the error message
about its being unable to open load_txi_modules script, the one I get
from texi2any.exe.  Instead, I get this:

  makeinfo:./.libs/lt-texi2any.c:236: FATAL: couldn't find bin\makeinfo.

Which tells me it's the libtool wrapper.

Looking at the output of "make install" run, I see this:

  libtool: install: /bin/sh /d/gnu/texinfo-7.2.92-C/build-aux/install-sh -c -s 
.libs/texi2any.exe d:/usr/test-texinfo-7.2.92-C/bin/texi2any.exe
  make  install-exec-hook
  make[7]: Entering directory `/d/gnu/texinfo-7.2.92-C/tta/C'
  makeinfo_f=`echo makeinfo.exe | sed -e 's,x,x,'`; rm -f 
d:/usr/test-texinfo-7.2.92-C/bin/$makeinfo_f
  makeinfo_f=`echo makeinfo.exe | sed -e 's,x,x,'`; texi2any_f=`echo 
texi2any.exe| sed -e 's,x,x,'`; cp -pR $texi2any_f 
d:/usr/test-texinfo-7.2.92-C/bin/$makeinfo_f

So texi2any.exe is being installed from tta/C/.libs, whereas
makeinfo.exe is installed from its parent directory tta/C, because
$texi2any_f lacks the ".libs/" prefix.  Does that explain why the
wrapper is installed?  ("cp -pR" is there because that's the emulation
of "ln -s" on Windows: using symlinks on Windows is possible, but is
not portable across Windows versions, and requires admin privileges
when available.)

Btw, I think the command which installs makeinfo.exe should use the
just-installed texi2any.exe as the source of the symlink, not the
texi2any.exe produced in the build tree.  Because the build tree could
be removed, which would make makeinfo.exe a dangling symlink, right?

Reply via email to