Subject: Re: [PATCH] Makefile: correct default docs build target

From: Junio C Hamano <[email-masked]>
Date: Fri, 14 Feb 2025 14:42:46 -0800

Adam Dinwoodie <[email-masked]> writes:

> Put the "all" target definition near the top of Documentation/Makefile,
> so that attempts to run make in the documentation directory actually
> build the documentation.

Good eyes.  To make the intent even more clear, please adopt the
trick (or "convention") used by t/Makefile and our main Makefile to
have an empty "all::" at the very beginning of the file, instead of
moving things around, to avoid this kind of mistake to ever enter
the repository again.

Thanks.

[Footnote]

* If existing "all" targets are single-colon rules by mistake, they
  need to be corrected.  There is no reason why these phony targets
  should be anything but double-colon rules).

>
> This seems like the expected behaviour, and was the behaviour up until
> a38edab7c8 (Makefile: generate doc versions via GIT-VERSION-GEN,
> 2024-12-06).  That commit added some config files as build targets, and
> put the configuration in a sensible place, but unfortunately that
> sensible place was above any other build target definitions, meaning the
> default goal changed to being those configuration files only.
>
> Signed-off-by: Adam Dinwoodie <[email-masked]>
> ---
>
> Sending with my apologies to anyone who receives this twice; I made an
> error with my sendmail configuration, meaning servers checking the DMARC
> records would have rejected the previous patch.
>
>  Documentation/Makefile | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/Makefile b/Documentation/Makefile
> index aedfe99d1d..31f40b6f37 100644
> --- a/Documentation/Makefile
> +++ b/Documentation/Makefile
> @@ -3,6 +3,8 @@ include ../shared.mak
>  
>  .PHONY: FORCE
>  
> +all: html man
> +
>  # Guard against environment variables
>  MAN1_TXT =
>  MAN5_TXT =
> @@ -238,8 +240,6 @@ DEFAULT_EDITOR_SQ = $(subst ','\'',$(DEFAULT_EDITOR))
>  ASCIIDOC_EXTRA += -a 'git-default-editor=$(DEFAULT_EDITOR_SQ)'
>  endif
>  
> -all: html man
> -
>  html: $(DOC_HTML)
>  
>  man: man1 man5 man7