Subject: Re: [Suggestion] Documentation: quick-install-man not propagating DESTDIR

From: Junio C Hamano <[email-masked]>
Date: Wed, 02 Sep 2020 12:44:41 -0700

"Randall S. Becker" <[email-masked]> writes:

> The make quick-install-man rule is not propagating DESTDIR when GNU Make
> 4.2.1 is used.

I wonder, instead of having to change all "$(MAKE) -C elsewhere", we
can add DESTDIR to the list of variables that are exported.

... goes and looks ...

Hmph, DESTDIR is exported together with DIFF, TAR, INSTALL and
SHELL_PATH.  We do rely on SHELL_PATH to be exported correctly to
t/Makefile for "make test" to work, so it is puzzling.

It is doubly puzzling that we use $(INSTALL) in Documentation/Makefile
on the same line as $(DESTDIR) is used, and apparently you are not
reporting problem on that one.

> It seems like a bit of a nit to report this, but I discovered that the
> installation is not putting the manuals in the same place as git. It’s a
> pretty simple fix. I can put a patch together if desired.

I do not think we want that patch.  Instead I think we'd want a
patch that uses the same trick as what makes INSTALL work.

Thanks.

> diff --git a/Makefile b/Makefile
> index 372139f1f2..dae2d99a7f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2992,10 +2992,10 @@ install-gitweb:
>         $(MAKE) -C gitweb install
>
> install-doc: install-man-perl
> -       $(MAKE) -C Documentation install
> +       $(MAKE) -C Documentation install DESTDIR=$(DESTDIR)
>
> install-man: install-man-perl
> -       $(MAKE) -C Documentation install-man
> +       $(MAKE) -C Documentation install-man DESTDIR=$(DESTDIR)
>
> install-man-perl: man-perl
>         $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(mandir_SQ)/man3'
> @@ -3006,19 +3006,19 @@ install-html:
>         $(MAKE) -C Documentation install-html
>
> install-info:
> -       $(MAKE) -C Documentation install-info
> +       $(MAKE) -C Documentation install-info DESTDIR=$(DESTDIR)
>
> install-pdf:
> -       $(MAKE) -C Documentation install-pdf
> +       $(MAKE) -C Documentation install-pdf DESTDIR=$(DESTDIR)
>
> quick-install-doc:
> -       $(MAKE) -C Documentation quick-install
> +       $(MAKE) -C Documentation quick-install DESTDIR=$(DESTDIR)
>
> quick-install-man:
> -       $(MAKE) -C Documentation quick-install-man
> +       $(MAKE) -C Documentation quick-install-man DESTDIR=$(DESTDIR)
>
> quick-install-html:
> -       $(MAKE) -C Documentation quick-install-html
> +       $(MAKE) -C Documentation quick-install-html DESTDIR=$(DESTDIR)
>
> -- Brief whoami:
> NonStop developer since approximately 211288444200000000
> UNIX developer since approximately 421664400
> -- In my real life, I talk too much.