Handle the info duplicate target issue as close as possible to the conflict.

The problems are:
- filtering out the info from info making templates misses some dependencies.
- naming PHONY target info.info is misleading, as there is also an info.info
  in the info build directory
This commit is contained in:
Vincent Belaïche 2026-04-16 23:04:05 +02:00
parent 0275b41d1c
commit ca346be53c
2 changed files with 8 additions and 12 deletions

View file

@ -1,4 +1,3 @@
### @configure_input@
# Copyright (C) 1994, 1996-2026 Free Software Foundation, Inc.
@ -96,8 +95,7 @@ TEXI_FROM_ORG = ${ORG_SRC:.org=.texi}
# There are some naming differences between the info targets and the other
# targets, so let's resolve them here.
TARGETS_1 = $(INFO_INSTALL:ccmode=cc-mode)
TARGETS = $(TARGETS_1:info.info=info)
TARGETS = $(INFO_INSTALL:ccmode=cc-mode)
# Sources are also suffixed, this is useless as they are in different
# directories, but some people argued that there should not be
@ -124,15 +122,15 @@ ENVADD = $(AM_V_GEN)TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \
gfdl = ${srcdir}/doclicense.texi
style = ${emacsdir}/docstyle.texi
.PHONY: info dvi html pdf ps echo-info echo-sources $(INFO_TARGETS)
.PHONY: info dvi html pdf ps echo-info echo-sources $(patsubst info, info-doc, $(INFO_TARGETS))
## Prevent implicit rule triggering for foo.info.
.SUFFIXES:
## Disable implicit rules.
%.texi: ;
# Default.
info: $(INFO_TARGETS)
# Default. patsubst as "info" is already taken.
info: $(patsubst info, info-doc,$(INFO_TARGETS))
## Used by top-level Makefile.
## Base file names of output info files.
@ -164,15 +162,13 @@ ${buildinfodir}/%$(lang_suffix).info: ${srcdir}/$(lang_subdir)%$(lang_suffix).te
## The short aliases, eg efaq = $(buildinfodir)/efaq.info.
define info_template
$(1): $$(buildinfodir)/$(1)$$(lang_suffix).info
## patsubst as "info" is already taken.
$$(patsubst info, info-doc, $(1)): $$(buildinfodir)/$(1)$$(lang_suffix).info
$$(buildinfodir)/$(1)$$(lang_suffix).info: $$(srcdir)/$$(lang_subdir)$(1)$$(lang_suffix).texi $$(gfdl) $$(style)
endef
## "info" is already taken.
info.info: $(buildinfodir)/info.info
$(foreach ifile,$(filter-out info.info,$(INFO_TARGETS)),$(eval $(call info_template,$(ifile))))
$(foreach ifile,$(INFO_TARGETS),$(eval $(call info_template,$(ifile))))
%$(lang_suffix).dvi: ${srcdir}/$(lang_subdir)%$(lang_suffix).texi ${gfdl} ${style}

View file

@ -2,7 +2,7 @@
INFO_COMMON = auth autotype bovine calc ccmode cl dbus dired-x \
ebrowse ede ediff edt efaq eglot eieio emacs-gnutls \
emacs-mime epa erc ert eshell eudc eww flymake forms gnus \
htmlfontify idlwave ido info.info mairix-el message mh-e \
htmlfontify idlwave ido info mairix-el message mh-e \
modus-themes newsticker nxml-mode octave-mode org pcl-cvs pgg \
rcirc reftex remember sasl sc semantic ses sieve smtpmail \
speedbar srecode todo-mode tramp transient url use-package \