Makeinfo versions < 6.7 detected mistakes in the @menu structure of TeXinfo
input. Makeinfo versions ≥ 6.8 don't do this any more by default. They need
an extra option, for this validation to happen. See
<https://lists.gnu.org/archive/html/bug-texinfo/2023-06/msg00015.html>.

Since doc/sed.texi has a hand-written @menu, it should use this extra
option.

Here's a patch to that effect.

There are two possibilities for adding the extra option:
  - in the MAKEINFO variable, where it has an effect on both "makeinfo"
    and "makeinfo --html",
  - in the AM_MAKEINFOFLAGS variable, where it has an effect on "makeinfo"
    only.
Since some maintainers may check their documentation edits only by regenerating
the HTML-formatted documentation, the first choice is preferrable.

Tested by running
  touch doc/m4.texi ; (cd doc && make m4.info V=1)

From 62904093df82d42937014127ece5f6fa1ab51241 Mon Sep 17 00:00:00 2001
From: Bruno Haible <br...@clisp.org>
Date: Fri, 23 Jun 2023 01:48:57 +0200
Subject: [PATCH] =?UTF-8?q?build:=20Ensure=20that=20makeinfo=20=E2=89=A5?=
 =?UTF-8?q?=206.8=20checks=20the=20@menu=20structure.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

See <https://lists.gnu.org/archive/html/bug-texinfo/2023-06/msg00015.html>.

* doc/Makefile.am (MAKEINFO): New variable.
---
 doc/Makefile.am | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 47ce102b..403c40c4 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -26,6 +26,11 @@ man_MANS = $(srcdir)/m4.1
 EXTRA_DIST = $(man_MANS) gendocs_template
 MAINTAINERCLEANFILES = $(man_MANS) gendocs_template
 SUFFIXES = .1
+
+# The customization variable CHECK_NORMAL_MENU_STRUCTURE is necessary with
+# makeinfo versions ≥ 6.8.
+MAKEINFO = @MAKEINFO@ -c CHECK_NORMAL_MENU_STRUCTURE=1
+
 HELP2MAN = $(SHELL) $(top_srcdir)/build-aux/missing --run help2man
 
 # Depend on ../.version for version, m4.c for usage text.  Do not depend on
-- 
2.34.1

Reply via email to