Missing dependency on native `makedoc` in `info` Makefile

Manuel Jacob <[email protected]> Tue, 17 Mar 2026 11:20:17 +0100
Newsgroups gmane.comp.tex.texinfo.bugs
Message-ID <[email protected]>
Hi,

When cross-compiling texinfo in an environment where ncurses is 
available for the host machine (e.g. in a sysroot), but not for the 
build machine, running `make` fails with the following error:

Making all in info
make[2]: Entering directory '/build/configuration/info'
rm -f doc.c funs.h
../tools/info/makedoc /build/source/texinfo-7.3/info/session-cmd.c 
/build/source/texinfo-7.3/info/echo-area.c 
/build/source/texinfo-7.3/info/infodoc.c 
/build/source/texinfo-7.3/info/m-x.c 
/build/source/texinfo-7.3/info/indices.c 
/build/source/texinfo-7.3/info/nodemenu.c 
/build/source/texinfo-7.3/info/footnotes.c 
/build/source/texinfo-7.3/info/variables.c
/bin/bash: line 1: ../tools/info/makedoc: No such file or directory
make[2]: *** [Makefile:3617: funs.h] Error 127
make[2]: Leaving directory '/build/configuration/info'
make[1]: *** [Makefile:2005: all-recursive] Error 1
make[1]: Leaving directory '/build/configuration'
make: *** [Makefile:1944: all] Error 2

The same error has been reported here: 
https://lists.gnu.org/archive/html/bug-texinfo/2013-11/msg00017.html

In the case of cross-compiling, parts of texinfo are built for running 
on the build machine (in the `tools` directory). For each of the build 
machine and the host machine, it is decided whether the `info` 
subdirectory is built or not, based on `HAVE_TERMLIBS`. If 
`HAVE_TERMLIBS` is false for the build machine and true for the host 
machine, `tools/info` will not be built, but `info` will be built, 
trying to execute `../tools/info/makedoc`, which is not there.

A possible workaround is to execute `make -C tools/info makedoc` before 
executing `make`.

-Manuel