master 34436c11ca0 1/2: Fix info/dir generation in fresh checkouts (bug#81332)

Eli Zaretskii <[email protected]> Sat, 18 Jul 2026 05:22:43 -0400 (EDT)
Newsgroups gmane.emacs.diffs
Message-ID <[email protected]>
branch: master
commit 34436c11ca0485411b9026d354ebffcbecfa1488
Author: Boris Buliga <[email protected]>
Commit: Eli Zaretskii <[email protected]>

    Fix info/dir generation in fresh checkouts (bug#81332)
    
    The previous bug#81332 fix made info/dir depend on doc/misc/NAME.texi
    names derived from INFO_COMMON.  For the manuals whose source is .org
    (modus-themes, org), these .texi files are generated and do not exist
    in a fresh checkout, and there is no rule to build them at this level,
    so building Emacs fails with:
    
      make[1]: *** No rule to make target 'doc/misc/modus-themes.texi',
      needed by 'info/dir'.  Stop.
    
    * Makefile.in (srcdir_doc_info_dir_inputs): For the default language,
    depend on the actual sources reported by doc/misc echo-sources
    (texi_misc_default), which lists .org sources for the org-based
    manuals; make-info-dir extracts dir entries from both formats.
    (GET_DOC_SRC): Only handle translated languages; drop the mapping of
    default translation names to doc/misc .texi names.
---
 Makefile.in | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 24d5584b68f..4933c077788 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1190,19 +1190,27 @@ endef
 
 $(foreach lang,$(DOCLANGS),$(eval $(call set_texi_misc,$(lang))))
 
+## For the default language, depend on the actual sources reported by
+## doc/misc (echo-sources): .org files for the org-based manuals and
+## .texi files for the rest.  Deriving foo.texi names from INFO_COMMON
+## would break in a fresh checkout, because the .texi files of the
+## org-based manuals (e.g. modus-themes.texi) are generated and there
+## is no rule to build them at this level.  make-info-dir extracts dir
+## entries from both formats.
 srcdir_doc_info_dir_inputs := \
   ${srcdir}/doc/emacs/emacs.texi \
   ${srcdir}/doc/lispintro/emacs-lisp-intro.texi \
-  ${srcdir}/doc/lispref/elisp.texi
+  ${srcdir}/doc/lispref/elisp.texi \
+  $(addprefix ${srcdir}/doc/misc/,${texi_misc_default})
 TRANSLATED_DIRS:=misc
 # $(1) = dir
 # $(2) = lang
 define GET_DOC_SRC
 -include ${srcdir}/doc/translations/$(2)/$(1)/info_common.mk
 INFO_COMMON:=$$(subst ccmode,cc-mode,$$(INFO_COMMON))
-srcdir_doc_info_dir_inputs:=$$(srcdir_doc_info_dir_inputs) $$(patsubst ${srcdir}/doc/translations/default/$(1)/%-default.texi,${srcdir}/doc/$(1)/%.texi,$$(patsubst %,${srcdir}/doc/translations/$(2)/$(1)/%-$(2).texi,$$(INFO_COMMON)))
+srcdir_doc_info_dir_inputs:=$$(srcdir_doc_info_dir_inputs) $$(patsubst %,${srcdir}/doc/translations/$(2)/$(1)/%-$(2).texi,$$(INFO_COMMON))
 endef
-$(foreach dir,$(TRANSLATED_DIRS),$(foreach lang,$(DOCLANGS),$(eval $(call GET_DOC_SRC,$(dir),$(lang)))))
+$(foreach dir,$(TRANSLATED_DIRS),$(foreach lang,$(filter-out default,$(DOCLANGS)),$(eval $(call GET_DOC_SRC,$(dir),$(lang)))))
 
 info_dir_inputs = \
   ../build-aux/dir_top \