Files
binutils-gdb/bfd/doc/local.mk
Jose E. Marchesi 19125d93aa bfd: fix generation of bfd.texi in out-of-tree builds
[In the sequel TS means $(top_srcdir) and TB means $(top_builddir)]

The Texinfo file TS/bfd/doc/bfd.texi @includes many other .texi files
such as:

   bfdt.texi
   bfdio.texi
   section.texi
   ...

These .texi files are generated from the bfd/*.c source files, by a
program called `chew' that is distributed along with BFD, via some
default rules and macro magic in TS/bfd/doc/local.mk.  Important
point: the .texi files are generated in TB/bfd/doc/, not TS/bfd/doc.

Now, AM_MAKEINFOFLAGS in local.mk is defined as:

  AM_MAKEINFOFLAGS = --no-split -I "$(srcdir)/%D%" -I %D%

Where %D% is 'doc/' in this case.  Now, it looks like the directory
containing the .texi file is automatically inserted in the @include
search path, so the -I %D% above places TB/bfd/doc _after_ TS/bfd/doc.

Since currently TS/bfd/doc/bfdt.texi is outdated and is missing some
nodes, the error above happens.

This patch changes bfd/doc/local.mk to use -P to prepend the current
build directory to the @include search path, rather than -I, which
appends it.

bfd/ChangeLog:

2025-01-23  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* doc/local.mk (AM_MAKEINFOFLAGS): Prepend the build directory to
	the @include search path.
	* Makefile.in: Regenerate.
2025-01-23 20:16:09 +01:00

151 lines
4.9 KiB
Makefile

## Process this file with automake to generate Makefile.in
##
## Copyright (C) 2012-2025 Free Software Foundation, Inc.
##
## This file is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; see the file COPYING3. If not see
## <http://www.gnu.org/licenses/>.
##
DOCFILES = \
%D%/aoutx.texi \
%D%/archive.texi \
%D%/archures.texi \
%D%/bfdio.texi \
%D%/bfdt.texi \
%D%/bfdver.texi \
%D%/cache.texi \
%D%/coffcode.texi \
%D%/corefile.texi \
%D%/elfcode.texi \
%D%/elf.texi \
%D%/format.texi \
%D%/hash.texi \
%D%/libbfd.texi \
%D%/linker.texi \
%D%/mmo.texi \
%D%/opncls.texi \
%D%/reloc.texi \
%D%/section.texi \
%D%/syms.texi \
%D%/targets.texi
# SRCDOC, SRCPROT, SRCIPROT only used to sidestep Sun Make bug in interaction
# between VPATH and suffix rules. If you use GNU Make, perhaps other Makes,
# you don't need these three:
SRCDOC = \
$(srcdir)/aoutx.h $(srcdir)/archive.c \
$(srcdir)/archures.c $(srcdir)/bfd.c \
$(srcdir)/cache.c $(srcdir)/coffcode.h \
$(srcdir)/corefile.c $(srcdir)/elf.c \
$(srcdir)/elfcode.h $(srcdir)/format.c \
$(srcdir)/libbfd.c $(srcdir)/opncls.c \
$(srcdir)/reloc.c $(srcdir)/section.c \
$(srcdir)/syms.c $(srcdir)/targets.c \
$(srcdir)/hash.c $(srcdir)/linker.c \
$(srcdir)/mmo.c
SRCPROT = $(srcdir)/archive.c $(srcdir)/archures.c \
$(srcdir)/bfd.c $(srcdir)/coffcode.h $(srcdir)/corefile.c \
$(srcdir)/format.c $(srcdir)/libbfd.c \
$(srcdir)/opncls.c $(srcdir)/reloc.c \
$(srcdir)/section.c $(srcdir)/syms.c \
$(srcdir)/targets.c
SRCIPROT = $(srcdir)/cache.c $(srcdir)/libbfd.c \
$(srcdir)/bfdio.c \
$(srcdir)/reloc.c $(srcdir)/cpu-h8300.c \
$(srcdir)/archures.c
TEXIDIR = $(srcdir)/../texinfo/fsf
info_TEXINFOS = %D%/bfd.texi
%C%_bfd_TEXINFOS = $(DOCFILES) %D%/bfdsumm.texi
AM_MAKEINFOFLAGS = --no-split -I "$(srcdir)/%D%" -P %D%
TEXI2DVI = texi2dvi -I "$(srcdir)/%D%" -I %D%
MKDOC = %D%/chew$(EXEEXT_FOR_BUILD)
$(MKDOC): %D%/chew.stamp ; @true
%D%/chew.stamp: $(srcdir)/%D%/chew.c %D%/$(am__dirstamp)
$(AM_V_CCLD)$(CC_FOR_BUILD) -o %D%/chw$$$$$(EXEEXT_FOR_BUILD) $(CFLAGS_FOR_BUILD) \
$(WARN_CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \
-I. -I$(srcdir) -I%D% -I$(srcdir)/../include -I$(srcdir)/../intl -I../intl \
$(srcdir)/%D%/chew.c && \
$(SHELL) $(srcdir)/../move-if-change \
%D%/chw$$$$$(EXEEXT_FOR_BUILD) $(MKDOC) && \
touch $@
# We can't replace these rules with an implicit rule, because
# makes without VPATH support couldn't find the .h files in `..'.
# We do not depend on chew directly so that we can distribute the info
# files, and permit people to rebuild them, without requiring the makeinfo
# program. If somebody tries to rebuild info, but none of the .texi files
# have changed, then nothing will be rebuilt.
REGEN_TEXI = \
( \
set -e; \
$(MKDOC) -f $(srcdir)/%D%/doc.str < $< > $@.tmp; \
texi=$@; \
texi=$${texi%.stamp}.texi; \
test -e $$texi || test ! -f $(srcdir)/$$texi || $(LN_S) $(abs_srcdir)/$$texi $$texi; \
$(SHELL) $(srcdir)/../move-if-change $@.tmp $$texi; \
touch $@; \
)
.PRECIOUS: %D%/%.stamp
%D%/%.texi: %D%/%.stamp ; @true
%D%/%.stamp: $(srcdir)/%.c $(srcdir)/%D%/doc.str $(MKDOC) %D%/$(am__dirstamp)
$(AM_V_GEN)$(REGEN_TEXI)
%D%/%.stamp: $(srcdir)/%.h $(srcdir)/%D%/doc.str $(MKDOC) %D%/$(am__dirstamp)
$(AM_V_GEN)$(REGEN_TEXI)
# Avoid the %.stamp generating a builddir/bfd.texi that overrides the
# srcdir/ as well as regenerating doc/bfd.info for each make run.
%D%/bfd.stamp: $(srcdir)/%D%/bfd.texi ; $(AM_V_at)touch $@
# We use bfdt.texi, rather than bfd.texi, to avoid conflicting with
# bfd.texi on an 8.3 filesystem.
%D%/bfdt.stamp: $(srcdir)/bfd.c $(srcdir)/%D%/doc.str $(MKDOC) %D%/$(am__dirstamp)
$(AM_V_GEN)$(REGEN_TEXI)
%D%/bfdver.texi: $(srcdir)/Makefile.in
$(AM_V_GEN)\
$(MKDIR_P) $(@D); \
echo "@set VERSION $(VERSION)" > $@; \
if test -n "$(PKGVERSION)"; then \
echo "@set VERSION_PACKAGE $(PKGVERSION)" >> $@; \
fi; \
echo "@set UPDATED `date '+%B %Y'`" >> $@; \
if test -n "$(REPORT_BUGS_TEXI)"; then \
echo "@set BUGURL $(REPORT_BUGS_TEXI)" >> $@; \
fi
noinst_TEXINFOS = %D%/bfdint.texi
MOSTLYCLEANFILES += $(MKDOC) %D%/*.o %D%/*.stamp
DISTCLEANFILES += %D%/bfd.?? %D%/bfd.??? texput.log
MAINTAINERCLEANFILES += $(DOCFILES)
html-local: %D%/bfd/index.html
%D%/bfd/index.html: %D%/bfd.texi $(bfd_TEXINFOS) %D%/$(am__dirstamp)
$(AM_V_at)$(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) \
--split=node -o %D%/bfd $(srcdir)/%D%/bfd.texi
MAINTAINERCLEANFILES += %D%/bfd.info