[v2] gdb, gdbserver: Add missing install-dvi Makefile target

Message ID 20240407191027.118770-1-christophe.lyon@linaro.org
State New
Headers
Series [v2] gdb, gdbserver: Add missing install-dvi Makefile target |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 success Testing passed

Commit Message

Christophe Lyon April 7, 2024, 7:10 p.m. UTC
  For some reason install-dvi is missing although other targets of the
same family are present. This looks like an oversight.

This enables calling 'make install-dvi' from the top-level build
directory.

Fix what looks like another oversight: include 'pdf' in 'all-doc' in
gdb/doc/Makefile.in.
---
 gdb/Makefile.in                |  2 +-
 gdb/data-directory/Makefile.in |  2 +-
 gdb/doc/Makefile.in            | 19 +++++++++++++++++--
 gdb/testsuite/Makefile.in      |  1 +
 gdbserver/Makefile.in          |  1 +
 5 files changed, 21 insertions(+), 4 deletions(-)
  

Comments

Luis Machado April 9, 2024, 11 p.m. UTC | #1
On 4/7/24 20:10, Christophe Lyon wrote:
> For some reason install-dvi is missing although other targets of the
> same family are present. This looks like an oversight.
> 
> This enables calling 'make install-dvi' from the top-level build
> directory.
> 
> Fix what looks like another oversight: include 'pdf' in 'all-doc' in
> gdb/doc/Makefile.in.
> ---
>  gdb/Makefile.in                |  2 +-
>  gdb/data-directory/Makefile.in |  2 +-
>  gdb/doc/Makefile.in            | 19 +++++++++++++++++--
>  gdb/testsuite/Makefile.in      |  1 +
>  gdbserver/Makefile.in          |  1 +
>  5 files changed, 21 insertions(+), 4 deletions(-)
> 
> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> index 40732cb2227..d001359539a 100644
> --- a/gdb/Makefile.in
> +++ b/gdb/Makefile.in
> @@ -2035,7 +2035,7 @@ check-headers:
>  	done
>  .PHONY: check-headers
>  
> -info install-info clean-info dvi pdf install-pdf html install-html: force
> +info install-info clean-info dvi install-dvi pdf install-pdf html install-html: force
>  	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
>  
>  # Traditionally "install" depends on "all".  But it may be useful
> diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
> index 2a40be4ade0..2db8706eba6 100644
> --- a/gdb/data-directory/Makefile.in
> +++ b/gdb/data-directory/Makefile.in
> @@ -422,7 +422,7 @@ maintainer-clean realclean distclean: clean
>  .PHONY: install-info install-pdf install-html clean-info
>  check installcheck:
>  info dvi pdf html:
> -install-info install-pdf install-html:
> +install-info install-dvi install-pdf install-html:
>  clean-info:
>  
>  # GNU Make has an annoying habit of putting *all* the Makefile variables
> diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
> index 04f9dbd27f0..8007f6373d4 100644
> --- a/gdb/doc/Makefile.in
> +++ b/gdb/doc/Makefile.in
> @@ -24,6 +24,7 @@ prefix = @prefix@
>  infodir = @infodir@
>  datarootdir = @datarootdir@
>  docdir = @docdir@
> +dvidir = @dvidir@
>  pdfdir = @pdfdir@
>  htmldir = @htmldir@
>  mandir = @mandir@
> @@ -87,6 +88,8 @@ SET_TEXINPUTS = \
>  # Files which should be generated via 'info' and installed by 'install-info'
>  INFO_DEPS = gdb.info stabs.info annotate.info
>  
> +# Files which should be generated via 'dvi' and installed by 'install-dvi'
> +DVIFILES = gdb.dvi stabs.dvi refcard.dvi annotate.dvi
>  # Files which should be generated via 'pdf' and installed by 'install-pdf'
>  PDFFILES = gdb.pdf stabs.pdf refcard.pdf annotate.pdf
>  # Files which should be generated via 'html' and installed by 'install-html'
> @@ -191,7 +194,7 @@ HAVE_NATIVE_GCORE_HOST = @HAVE_NATIVE_GCORE_HOST@
>  all: info
>  
>  info: $(INFO_DEPS)
> -dvi: gdb.dvi stabs.dvi refcard.dvi annotate.dvi
> +dvi: $(DVIFILES)
>  ps: gdb.ps stabs.ps refcard.ps annotate.ps
>  html: $(HTMLFILES)
>  pdf: $(PDFFILES)
> @@ -233,7 +236,7 @@ Doxyfile-gdb-xref:	$(srcdir)/Doxyfile-gdb-xref.in
>  Doxyfile-gdbserver:	$(srcdir)/Doxyfile-gdbserver.in
>  	$(doxyedit) $(srcdir)/Doxyfile-gdbserver.in >Doxyfile-gdbserver
>  
> -all-doc: info dvi ps # pdf
> +all-doc: info dvi ps pdf
>  diststuff: info man
>  	rm -f gdb-cfg.texi
>  
> @@ -293,6 +296,18 @@ install-html: $(HTMLFILES)
>  	  fi; \
>  	done
>  
> +dvi__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
> +
> +install-dvi: $(DVIFILES)
> +	@$(NORMAL_INSTALL)
> +	test -z "$(dvidir)" || $(mkinstalldirs) "$(DESTDIR)$(dvidir)"
> +	@list='$(DVIFILES)'; for p in $$list; do \
> +	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
> +	  f=$(dvi__strip_dir) \
> +	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
> +	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
> +	done
> +
>  pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
>  
>  install-pdf: $(PDFFILES)
> diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in
> index f6603daf7fd..f799f16c2bb 100644
> --- a/gdb/testsuite/Makefile.in
> +++ b/gdb/testsuite/Makefile.in
> @@ -105,6 +105,7 @@ INFODIRS=doc
>  info:
>  install-info:
>  dvi:
> +install-dvi:
>  pdf:
>  install-pdf:
>  html:
> diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
> index d12f8746611..4eed8926f48 100644
> --- a/gdbserver/Makefile.in
> +++ b/gdbserver/Makefile.in
> @@ -342,6 +342,7 @@ installcheck:
>  check:
>  info dvi pdf:
>  install-info:
> +install-dvi:
>  install-pdf:
>  html:
>  install-html:

I gave this a try and install-dvi almost fully works from the top level, though it still fails for gprofng.

Maybe something for the binutils folks? Otherwise this part looks OK to me.
  
Christophe Lyon April 10, 2024, 8:10 a.m. UTC | #2
On Wed, 10 Apr 2024 at 01:00, Luis Machado <luis.machado@arm.com> wrote:
>
> On 4/7/24 20:10, Christophe Lyon wrote:
> > For some reason install-dvi is missing although other targets of the
> > same family are present. This looks like an oversight.
> >
> > This enables calling 'make install-dvi' from the top-level build
> > directory.
> >
> > Fix what looks like another oversight: include 'pdf' in 'all-doc' in
> > gdb/doc/Makefile.in.
> > ---
> >  gdb/Makefile.in                |  2 +-
> >  gdb/data-directory/Makefile.in |  2 +-
> >  gdb/doc/Makefile.in            | 19 +++++++++++++++++--
> >  gdb/testsuite/Makefile.in      |  1 +
> >  gdbserver/Makefile.in          |  1 +
> >  5 files changed, 21 insertions(+), 4 deletions(-)
> >
> > diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> > index 40732cb2227..d001359539a 100644
> > --- a/gdb/Makefile.in
> > +++ b/gdb/Makefile.in
> > @@ -2035,7 +2035,7 @@ check-headers:
> >       done
> >  .PHONY: check-headers
> >
> > -info install-info clean-info dvi pdf install-pdf html install-html: force
> > +info install-info clean-info dvi install-dvi pdf install-pdf html install-html: force
> >       @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
> >
> >  # Traditionally "install" depends on "all".  But it may be useful
> > diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
> > index 2a40be4ade0..2db8706eba6 100644
> > --- a/gdb/data-directory/Makefile.in
> > +++ b/gdb/data-directory/Makefile.in
> > @@ -422,7 +422,7 @@ maintainer-clean realclean distclean: clean
> >  .PHONY: install-info install-pdf install-html clean-info
> >  check installcheck:
> >  info dvi pdf html:
> > -install-info install-pdf install-html:
> > +install-info install-dvi install-pdf install-html:
> >  clean-info:
> >
> >  # GNU Make has an annoying habit of putting *all* the Makefile variables
> > diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
> > index 04f9dbd27f0..8007f6373d4 100644
> > --- a/gdb/doc/Makefile.in
> > +++ b/gdb/doc/Makefile.in
> > @@ -24,6 +24,7 @@ prefix = @prefix@
> >  infodir = @infodir@
> >  datarootdir = @datarootdir@
> >  docdir = @docdir@
> > +dvidir = @dvidir@
> >  pdfdir = @pdfdir@
> >  htmldir = @htmldir@
> >  mandir = @mandir@
> > @@ -87,6 +88,8 @@ SET_TEXINPUTS = \
> >  # Files which should be generated via 'info' and installed by 'install-info'
> >  INFO_DEPS = gdb.info stabs.info annotate.info
> >
> > +# Files which should be generated via 'dvi' and installed by 'install-dvi'
> > +DVIFILES = gdb.dvi stabs.dvi refcard.dvi annotate.dvi
> >  # Files which should be generated via 'pdf' and installed by 'install-pdf'
> >  PDFFILES = gdb.pdf stabs.pdf refcard.pdf annotate.pdf
> >  # Files which should be generated via 'html' and installed by 'install-html'
> > @@ -191,7 +194,7 @@ HAVE_NATIVE_GCORE_HOST = @HAVE_NATIVE_GCORE_HOST@
> >  all: info
> >
> >  info: $(INFO_DEPS)
> > -dvi: gdb.dvi stabs.dvi refcard.dvi annotate.dvi
> > +dvi: $(DVIFILES)
> >  ps: gdb.ps stabs.ps refcard.ps annotate.ps
> >  html: $(HTMLFILES)
> >  pdf: $(PDFFILES)
> > @@ -233,7 +236,7 @@ Doxyfile-gdb-xref:        $(srcdir)/Doxyfile-gdb-xref.in
> >  Doxyfile-gdbserver:  $(srcdir)/Doxyfile-gdbserver.in
> >       $(doxyedit) $(srcdir)/Doxyfile-gdbserver.in >Doxyfile-gdbserver
> >
> > -all-doc: info dvi ps # pdf
> > +all-doc: info dvi ps pdf
> >  diststuff: info man
> >       rm -f gdb-cfg.texi
> >
> > @@ -293,6 +296,18 @@ install-html: $(HTMLFILES)
> >         fi; \
> >       done
> >
> > +dvi__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
> > +
> > +install-dvi: $(DVIFILES)
> > +     @$(NORMAL_INSTALL)
> > +     test -z "$(dvidir)" || $(mkinstalldirs) "$(DESTDIR)$(dvidir)"
> > +     @list='$(DVIFILES)'; for p in $$list; do \
> > +       if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
> > +       f=$(dvi__strip_dir) \
> > +       echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
> > +       $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
> > +     done
> > +
> >  pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
> >
> >  install-pdf: $(PDFFILES)
> > diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in
> > index f6603daf7fd..f799f16c2bb 100644
> > --- a/gdb/testsuite/Makefile.in
> > +++ b/gdb/testsuite/Makefile.in
> > @@ -105,6 +105,7 @@ INFODIRS=doc
> >  info:
> >  install-info:
> >  dvi:
> > +install-dvi:
> >  pdf:
> >  install-pdf:
> >  html:
> > diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
> > index d12f8746611..4eed8926f48 100644
> > --- a/gdbserver/Makefile.in
> > +++ b/gdbserver/Makefile.in
> > @@ -342,6 +342,7 @@ installcheck:
> >  check:
> >  info dvi pdf:
> >  install-info:
> > +install-dvi:
> >  install-pdf:
> >  html:
> >  install-html:
>
> I gave this a try and install-dvi almost fully works from the top level, though it still fails for gprofng.
>
> Maybe something for the binutils folks? Otherwise this part looks OK to me.

Thanks for checking. Yes IIUC gprofng is part of binutils, and I
didn't notice because we don't build it ;-)

Thanks,

Christophe
  
Christophe Lyon April 10, 2024, 10:02 a.m. UTC | #3
On Wed, 10 Apr 2024 at 10:10, Christophe Lyon
<christophe.lyon@linaro.org> wrote:
>
> On Wed, 10 Apr 2024 at 01:00, Luis Machado <luis.machado@arm.com> wrote:
> >
> > On 4/7/24 20:10, Christophe Lyon wrote:
> > > For some reason install-dvi is missing although other targets of the
> > > same family are present. This looks like an oversight.
> > >
> > > This enables calling 'make install-dvi' from the top-level build
> > > directory.
> > >
> > > Fix what looks like another oversight: include 'pdf' in 'all-doc' in
> > > gdb/doc/Makefile.in.
> > > ---
> > >  gdb/Makefile.in                |  2 +-
> > >  gdb/data-directory/Makefile.in |  2 +-
> > >  gdb/doc/Makefile.in            | 19 +++++++++++++++++--
> > >  gdb/testsuite/Makefile.in      |  1 +
> > >  gdbserver/Makefile.in          |  1 +
> > >  5 files changed, 21 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> > > index 40732cb2227..d001359539a 100644
> > > --- a/gdb/Makefile.in
> > > +++ b/gdb/Makefile.in
> > > @@ -2035,7 +2035,7 @@ check-headers:
> > >       done
> > >  .PHONY: check-headers
> > >
> > > -info install-info clean-info dvi pdf install-pdf html install-html: force
> > > +info install-info clean-info dvi install-dvi pdf install-pdf html install-html: force
> > >       @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
> > >
> > >  # Traditionally "install" depends on "all".  But it may be useful
> > > diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
> > > index 2a40be4ade0..2db8706eba6 100644
> > > --- a/gdb/data-directory/Makefile.in
> > > +++ b/gdb/data-directory/Makefile.in
> > > @@ -422,7 +422,7 @@ maintainer-clean realclean distclean: clean
> > >  .PHONY: install-info install-pdf install-html clean-info
> > >  check installcheck:
> > >  info dvi pdf html:
> > > -install-info install-pdf install-html:
> > > +install-info install-dvi install-pdf install-html:
> > >  clean-info:
> > >
> > >  # GNU Make has an annoying habit of putting *all* the Makefile variables
> > > diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
> > > index 04f9dbd27f0..8007f6373d4 100644
> > > --- a/gdb/doc/Makefile.in
> > > +++ b/gdb/doc/Makefile.in
> > > @@ -24,6 +24,7 @@ prefix = @prefix@
> > >  infodir = @infodir@
> > >  datarootdir = @datarootdir@
> > >  docdir = @docdir@
> > > +dvidir = @dvidir@
> > >  pdfdir = @pdfdir@
> > >  htmldir = @htmldir@
> > >  mandir = @mandir@
> > > @@ -87,6 +88,8 @@ SET_TEXINPUTS = \
> > >  # Files which should be generated via 'info' and installed by 'install-info'
> > >  INFO_DEPS = gdb.info stabs.info annotate.info
> > >
> > > +# Files which should be generated via 'dvi' and installed by 'install-dvi'
> > > +DVIFILES = gdb.dvi stabs.dvi refcard.dvi annotate.dvi
> > >  # Files which should be generated via 'pdf' and installed by 'install-pdf'
> > >  PDFFILES = gdb.pdf stabs.pdf refcard.pdf annotate.pdf
> > >  # Files which should be generated via 'html' and installed by 'install-html'
> > > @@ -191,7 +194,7 @@ HAVE_NATIVE_GCORE_HOST = @HAVE_NATIVE_GCORE_HOST@
> > >  all: info
> > >
> > >  info: $(INFO_DEPS)
> > > -dvi: gdb.dvi stabs.dvi refcard.dvi annotate.dvi
> > > +dvi: $(DVIFILES)
> > >  ps: gdb.ps stabs.ps refcard.ps annotate.ps
> > >  html: $(HTMLFILES)
> > >  pdf: $(PDFFILES)
> > > @@ -233,7 +236,7 @@ Doxyfile-gdb-xref:        $(srcdir)/Doxyfile-gdb-xref.in
> > >  Doxyfile-gdbserver:  $(srcdir)/Doxyfile-gdbserver.in
> > >       $(doxyedit) $(srcdir)/Doxyfile-gdbserver.in >Doxyfile-gdbserver
> > >
> > > -all-doc: info dvi ps # pdf
> > > +all-doc: info dvi ps pdf
> > >  diststuff: info man
> > >       rm -f gdb-cfg.texi
> > >
> > > @@ -293,6 +296,18 @@ install-html: $(HTMLFILES)
> > >         fi; \
> > >       done
> > >
> > > +dvi__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
> > > +
> > > +install-dvi: $(DVIFILES)
> > > +     @$(NORMAL_INSTALL)
> > > +     test -z "$(dvidir)" || $(mkinstalldirs) "$(DESTDIR)$(dvidir)"
> > > +     @list='$(DVIFILES)'; for p in $$list; do \
> > > +       if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
> > > +       f=$(dvi__strip_dir) \
> > > +       echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
> > > +       $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
> > > +     done
> > > +
> > >  pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
> > >
> > >  install-pdf: $(PDFFILES)
> > > diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in
> > > index f6603daf7fd..f799f16c2bb 100644
> > > --- a/gdb/testsuite/Makefile.in
> > > +++ b/gdb/testsuite/Makefile.in
> > > @@ -105,6 +105,7 @@ INFODIRS=doc
> > >  info:
> > >  install-info:
> > >  dvi:
> > > +install-dvi:
> > >  pdf:
> > >  install-pdf:
> > >  html:
> > > diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
> > > index d12f8746611..4eed8926f48 100644
> > > --- a/gdbserver/Makefile.in
> > > +++ b/gdbserver/Makefile.in
> > > @@ -342,6 +342,7 @@ installcheck:
> > >  check:
> > >  info dvi pdf:
> > >  install-info:
> > > +install-dvi:
> > >  install-pdf:
> > >  html:
> > >  install-html:
> >
> > I gave this a try and install-dvi almost fully works from the top level, though it still fails for gprofng.
> >
> > Maybe something for the binutils folks? Otherwise this part looks OK to me.
>
> Thanks for checking. Yes IIUC gprofng is part of binutils, and I
> didn't notice because we don't build it ;-)
>
This patch should fix it:
https://sourceware.org/pipermail/binutils/2024-April/133528.html

Thanks,

Christophe

> Thanks,
>
> Christophe
  
Luis Machado April 10, 2024, 1 p.m. UTC | #4
On 4/10/24 11:02, Christophe Lyon wrote:
> On Wed, 10 Apr 2024 at 10:10, Christophe Lyon
> <christophe.lyon@linaro.org> wrote:
>>
>> On Wed, 10 Apr 2024 at 01:00, Luis Machado <luis.machado@arm.com> wrote:
>>>
>>> On 4/7/24 20:10, Christophe Lyon wrote:
>>>> For some reason install-dvi is missing although other targets of the
>>>> same family are present. This looks like an oversight.
>>>>
>>>> This enables calling 'make install-dvi' from the top-level build
>>>> directory.
>>>>
>>>> Fix what looks like another oversight: include 'pdf' in 'all-doc' in
>>>> gdb/doc/Makefile.in.
>>>> ---
>>>>  gdb/Makefile.in                |  2 +-
>>>>  gdb/data-directory/Makefile.in |  2 +-
>>>>  gdb/doc/Makefile.in            | 19 +++++++++++++++++--
>>>>  gdb/testsuite/Makefile.in      |  1 +
>>>>  gdbserver/Makefile.in          |  1 +
>>>>  5 files changed, 21 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
>>>> index 40732cb2227..d001359539a 100644
>>>> --- a/gdb/Makefile.in
>>>> +++ b/gdb/Makefile.in
>>>> @@ -2035,7 +2035,7 @@ check-headers:
>>>>       done
>>>>  .PHONY: check-headers
>>>>
>>>> -info install-info clean-info dvi pdf install-pdf html install-html: force
>>>> +info install-info clean-info dvi install-dvi pdf install-pdf html install-html: force
>>>>       @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
>>>>
>>>>  # Traditionally "install" depends on "all".  But it may be useful
>>>> diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
>>>> index 2a40be4ade0..2db8706eba6 100644
>>>> --- a/gdb/data-directory/Makefile.in
>>>> +++ b/gdb/data-directory/Makefile.in
>>>> @@ -422,7 +422,7 @@ maintainer-clean realclean distclean: clean
>>>>  .PHONY: install-info install-pdf install-html clean-info
>>>>  check installcheck:
>>>>  info dvi pdf html:
>>>> -install-info install-pdf install-html:
>>>> +install-info install-dvi install-pdf install-html:
>>>>  clean-info:
>>>>
>>>>  # GNU Make has an annoying habit of putting *all* the Makefile variables
>>>> diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
>>>> index 04f9dbd27f0..8007f6373d4 100644
>>>> --- a/gdb/doc/Makefile.in
>>>> +++ b/gdb/doc/Makefile.in
>>>> @@ -24,6 +24,7 @@ prefix = @prefix@
>>>>  infodir = @infodir@
>>>>  datarootdir = @datarootdir@
>>>>  docdir = @docdir@
>>>> +dvidir = @dvidir@
>>>>  pdfdir = @pdfdir@
>>>>  htmldir = @htmldir@
>>>>  mandir = @mandir@
>>>> @@ -87,6 +88,8 @@ SET_TEXINPUTS = \
>>>>  # Files which should be generated via 'info' and installed by 'install-info'
>>>>  INFO_DEPS = gdb.info stabs.info annotate.info
>>>>
>>>> +# Files which should be generated via 'dvi' and installed by 'install-dvi'
>>>> +DVIFILES = gdb.dvi stabs.dvi refcard.dvi annotate.dvi
>>>>  # Files which should be generated via 'pdf' and installed by 'install-pdf'
>>>>  PDFFILES = gdb.pdf stabs.pdf refcard.pdf annotate.pdf
>>>>  # Files which should be generated via 'html' and installed by 'install-html'
>>>> @@ -191,7 +194,7 @@ HAVE_NATIVE_GCORE_HOST = @HAVE_NATIVE_GCORE_HOST@
>>>>  all: info
>>>>
>>>>  info: $(INFO_DEPS)
>>>> -dvi: gdb.dvi stabs.dvi refcard.dvi annotate.dvi
>>>> +dvi: $(DVIFILES)
>>>>  ps: gdb.ps stabs.ps refcard.ps annotate.ps
>>>>  html: $(HTMLFILES)
>>>>  pdf: $(PDFFILES)
>>>> @@ -233,7 +236,7 @@ Doxyfile-gdb-xref:        $(srcdir)/Doxyfile-gdb-xref.in
>>>>  Doxyfile-gdbserver:  $(srcdir)/Doxyfile-gdbserver.in
>>>>       $(doxyedit) $(srcdir)/Doxyfile-gdbserver.in >Doxyfile-gdbserver
>>>>
>>>> -all-doc: info dvi ps # pdf
>>>> +all-doc: info dvi ps pdf
>>>>  diststuff: info man
>>>>       rm -f gdb-cfg.texi
>>>>
>>>> @@ -293,6 +296,18 @@ install-html: $(HTMLFILES)
>>>>         fi; \
>>>>       done
>>>>
>>>> +dvi__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
>>>> +
>>>> +install-dvi: $(DVIFILES)
>>>> +     @$(NORMAL_INSTALL)
>>>> +     test -z "$(dvidir)" || $(mkinstalldirs) "$(DESTDIR)$(dvidir)"
>>>> +     @list='$(DVIFILES)'; for p in $$list; do \
>>>> +       if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
>>>> +       f=$(dvi__strip_dir) \
>>>> +       echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
>>>> +       $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
>>>> +     done
>>>> +
>>>>  pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
>>>>
>>>>  install-pdf: $(PDFFILES)
>>>> diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in
>>>> index f6603daf7fd..f799f16c2bb 100644
>>>> --- a/gdb/testsuite/Makefile.in
>>>> +++ b/gdb/testsuite/Makefile.in
>>>> @@ -105,6 +105,7 @@ INFODIRS=doc
>>>>  info:
>>>>  install-info:
>>>>  dvi:
>>>> +install-dvi:
>>>>  pdf:
>>>>  install-pdf:
>>>>  html:
>>>> diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
>>>> index d12f8746611..4eed8926f48 100644
>>>> --- a/gdbserver/Makefile.in
>>>> +++ b/gdbserver/Makefile.in
>>>> @@ -342,6 +342,7 @@ installcheck:
>>>>  check:
>>>>  info dvi pdf:
>>>>  install-info:
>>>> +install-dvi:
>>>>  install-pdf:
>>>>  html:
>>>>  install-html:
>>>
>>> I gave this a try and install-dvi almost fully works from the top level, though it still fails for gprofng.
>>>
>>> Maybe something for the binutils folks? Otherwise this part looks OK to me.
>>
>> Thanks for checking. Yes IIUC gprofng is part of binutils, and I
>> didn't notice because we don't build it ;-)
>>
> This patch should fix it:
> https://sourceware.org/pipermail/binutils/2024-April/133528.html

Indeed. I suppose the libdecnumber install-dvi failure will have to be addressed by the master copy.

In any case, this looks good. Thanks for fixing it.

Approved-By: Luis Machado <luis.machado@arm.com>
Tested-By: Luis Machado <luis.machado@arm.com>
  

Patch

diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 40732cb2227..d001359539a 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -2035,7 +2035,7 @@  check-headers:
 	done
 .PHONY: check-headers
 
-info install-info clean-info dvi pdf install-pdf html install-html: force
+info install-info clean-info dvi install-dvi pdf install-pdf html install-html: force
 	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
 
 # Traditionally "install" depends on "all".  But it may be useful
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
index 2a40be4ade0..2db8706eba6 100644
--- a/gdb/data-directory/Makefile.in
+++ b/gdb/data-directory/Makefile.in
@@ -422,7 +422,7 @@  maintainer-clean realclean distclean: clean
 .PHONY: install-info install-pdf install-html clean-info
 check installcheck:
 info dvi pdf html:
-install-info install-pdf install-html:
+install-info install-dvi install-pdf install-html:
 clean-info:
 
 # GNU Make has an annoying habit of putting *all* the Makefile variables
diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
index 04f9dbd27f0..8007f6373d4 100644
--- a/gdb/doc/Makefile.in
+++ b/gdb/doc/Makefile.in
@@ -24,6 +24,7 @@  prefix = @prefix@
 infodir = @infodir@
 datarootdir = @datarootdir@
 docdir = @docdir@
+dvidir = @dvidir@
 pdfdir = @pdfdir@
 htmldir = @htmldir@
 mandir = @mandir@
@@ -87,6 +88,8 @@  SET_TEXINPUTS = \
 # Files which should be generated via 'info' and installed by 'install-info'
 INFO_DEPS = gdb.info stabs.info annotate.info
 
+# Files which should be generated via 'dvi' and installed by 'install-dvi'
+DVIFILES = gdb.dvi stabs.dvi refcard.dvi annotate.dvi
 # Files which should be generated via 'pdf' and installed by 'install-pdf'
 PDFFILES = gdb.pdf stabs.pdf refcard.pdf annotate.pdf
 # Files which should be generated via 'html' and installed by 'install-html'
@@ -191,7 +194,7 @@  HAVE_NATIVE_GCORE_HOST = @HAVE_NATIVE_GCORE_HOST@
 all: info
 
 info: $(INFO_DEPS)
-dvi: gdb.dvi stabs.dvi refcard.dvi annotate.dvi
+dvi: $(DVIFILES)
 ps: gdb.ps stabs.ps refcard.ps annotate.ps
 html: $(HTMLFILES)
 pdf: $(PDFFILES)
@@ -233,7 +236,7 @@  Doxyfile-gdb-xref:	$(srcdir)/Doxyfile-gdb-xref.in
 Doxyfile-gdbserver:	$(srcdir)/Doxyfile-gdbserver.in
 	$(doxyedit) $(srcdir)/Doxyfile-gdbserver.in >Doxyfile-gdbserver
 
-all-doc: info dvi ps # pdf
+all-doc: info dvi ps pdf
 diststuff: info man
 	rm -f gdb-cfg.texi
 
@@ -293,6 +296,18 @@  install-html: $(HTMLFILES)
 	  fi; \
 	done
 
+dvi__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+
+install-dvi: $(DVIFILES)
+	@$(NORMAL_INSTALL)
+	test -z "$(dvidir)" || $(mkinstalldirs) "$(DESTDIR)$(dvidir)"
+	@list='$(DVIFILES)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(dvi__strip_dir) \
+	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
+	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
+	done
+
 pdf__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 
 install-pdf: $(PDFFILES)
diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in
index f6603daf7fd..f799f16c2bb 100644
--- a/gdb/testsuite/Makefile.in
+++ b/gdb/testsuite/Makefile.in
@@ -105,6 +105,7 @@  INFODIRS=doc
 info:
 install-info:
 dvi:
+install-dvi:
 pdf:
 install-pdf:
 html:
diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
index d12f8746611..4eed8926f48 100644
--- a/gdbserver/Makefile.in
+++ b/gdbserver/Makefile.in
@@ -342,6 +342,7 @@  installcheck:
 check:
 info dvi pdf:
 install-info:
+install-dvi:
 install-pdf:
 html:
 install-html: