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