git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 9/9] Makefiles: add and use wildcard "mkdir -p" template

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 2, 2022, 20:38 UTC
Message-ID
<xmqqtucgjdjm.fsf@gitster.g>
In-Reply-To
<patch-v4-9.9-4cc4aeabb20-20220302T124320Z-avarab@gmail.com>
Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
> Add a template to do the "mkdir -p" of $(@D) (the parent dir of $@)
> for us, and use it for the "make lint-docs" targets I added in
> 8650c6298c1 (doc lint: make "lint-docs" non-.PHONY, 2021-10-15).
Sounds good.
Show 5 quoted lines
> But as it turns out we can use this neat trick of only doing a "mkdir
> -p" if the $(wildcard) macro tells us the path doesn't exist. A re-run
> of a performance test similar to that noted downthread of [1] in [2]
> shows that this is faster, in addition to being less verbose and more
> reliable (this uses my "git-hyperfine" thin wrapper for "hyperfine"[3]):
Cute.
Show 17 quoted lines
> diff --git a/shared.mak b/shared.mak
> index bb910273538..83c22d5e7b3 100644
> --- a/shared.mak
> +++ b/shared.mak
> @@ -59,6 +59,8 @@ ifndef V
>  	QUIET          = @
>  	QUIET_GEN      = @echo $(wspfx_SQ) GEN $@;
>  
> +	QUIET_MKDIR_P_PARENT  = @echo $(wspfx_SQ) MKDIR -p $(@D);
> +
>  ## Used in "Makefile"
>  	QUIET_CC       = @echo $(wspfx_SQ) CC $@;
>  	QUIET_AR       = @echo $(wspfx_SQ) AR $@;
> @@ -90,3 +92,18 @@ ifndef V
>  	export V
>  endif
>  endif

It is unfortunate that this came after [8/9] and needs manual resolution to reorder to leave 8/9 for later series.

Previous: Ævar Arnfjörð BjarmasonNext: Junio C Hamano
Message 48 of 67 in “Makefile: optimize noop runs, add shared.mak”
  1. 0/8 Makefile: optimize noop runs, add shared.makÆvar Arnfjörð Bjarmason, Dec 24, 2021
  2. 1/8 Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to itÆvar Arnfjörð Bjarmason, Dec 24, 2021
  3. 2/8 Makefile: disable GNU make built-in wildcard rulesÆvar Arnfjörð Bjarmason, Dec 24, 2021
  4. 3/8 Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)Ævar Arnfjörð Bjarmason, Dec 24, 2021
  5. 4/8 Makefile: move ".SUFFIXES" rule to shared.makÆvar Arnfjörð Bjarmason, Dec 24, 2021
  6. Taylor BlauFeb 22, 2022
  7. Ævar Arnfjörð BjarmasonFeb 22, 2022
  8. 6/8 Makefile: add "$(QUIET)" boilerplate to shared.makÆvar Arnfjörð Bjarmason, Dec 24, 2021
  9. 5/8 Makefile: move $(comma), $(empty) and $(space) to shared.makÆvar Arnfjörð Bjarmason, Dec 24, 2021
  10. 7/8 Makefile: use $(wspfx) for $(QUIET...) in shared.makÆvar Arnfjörð Bjarmason, Dec 24, 2021
  11. 8/8 Makefiles: add and use wildcard "mkdir -p" templateÆvar Arnfjörð Bjarmason, Dec 24, 2021
  12. Ævar Arnfjörð BjarmasonFeb 21, 2022
  13. 0/9 Makefile: optimize noop runs, add shared.makÆvar Arnfjörð Bjarmason, Feb 25, 2022
  14. 1/9 scalar Makefile: set the default target after the includesÆvar Arnfjörð Bjarmason, Feb 25, 2022
  15. Junio C HamanoFeb 25, 2022
  16. 2/9 Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to itÆvar Arnfjörð Bjarmason, Feb 25, 2022
  17. Junio C HamanoFeb 25, 2022
  18. Ævar Arnfjörð BjarmasonFeb 25, 2022
  19. Junio C HamanoFeb 25, 2022
  20. Phillip WoodFeb 28, 2022
  21. Ævar Arnfjörð BjarmasonFeb 28, 2022
  22. Phillip WoodFeb 28, 2022
  23. Ævar Arnfjörð BjarmasonFeb 28, 2022
  24. 3/9 Makefile: disable GNU make built-in wildcard rulesÆvar Arnfjörð Bjarmason, Feb 25, 2022
  25. Junio C HamanoFeb 25, 2022
  26. 5/9 Makefile: move ".SUFFIXES" rule to shared.makÆvar Arnfjörð Bjarmason, Feb 25, 2022
  27. Junio C HamanoFeb 25, 2022
  28. 7/9 Makefile: add "$(QUIET)" boilerplate to shared.makÆvar Arnfjörð Bjarmason, Feb 25, 2022
  29. Junio C HamanoFeb 25, 2022
  30. 6/9 Makefile: move $(comma), $(empty) and $(space) to shared.makÆvar Arnfjörð Bjarmason, Feb 25, 2022
  31. Junio C HamanoFeb 25, 2022
  32. 4/9 Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)Ævar Arnfjörð Bjarmason, Feb 25, 2022
  33. 8/9 Makefile: use $(wspfx) for $(QUIET...) in shared.makÆvar Arnfjörð Bjarmason, Feb 25, 2022
  34. Junio C HamanoFeb 25, 2022
  35. 9/9 Makefiles: add and use wildcard "mkdir -p" templateÆvar Arnfjörð Bjarmason, Feb 25, 2022
  36. 0/9 Makefile: optimize noop runs, add shared.makÆvar Arnfjörð Bjarmason, Mar 2, 2022
  37. 1/9 scalar Makefile: use "The default target of..." patternÆvar Arnfjörð Bjarmason, Mar 2, 2022
  38. Junio C HamanoMar 2, 2022
  39. 2/9 Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to itÆvar Arnfjörð Bjarmason, Mar 2, 2022
  40. 3/9 Makefile: disable GNU make built-in wildcard rulesÆvar Arnfjörð Bjarmason, Mar 2, 2022
  41. 4/9 Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)Ævar Arnfjörð Bjarmason, Mar 2, 2022
  42. 5/9 Makefile: move ".SUFFIXES" rule to shared.makÆvar Arnfjörð Bjarmason, Mar 2, 2022
  43. 7/9 Makefile: add "$(QUIET)" boilerplate to shared.makÆvar Arnfjörð Bjarmason, Mar 2, 2022
  44. 6/9 Makefile: move $(comma), $(empty) and $(space) to shared.makÆvar Arnfjörð Bjarmason, Mar 2, 2022
  45. 8/9 Makefile: use $(wspfx) for $(QUIET...) in shared.makÆvar Arnfjörð Bjarmason, Mar 2, 2022
  46. Junio C HamanoMar 2, 2022
  47. 9/9 Makefiles: add and use wildcard "mkdir -p" templateÆvar Arnfjörð Bjarmason, Mar 2, 2022
  48. Junio C HamanoMar 2, 2022
  49. Junio C HamanoMar 2, 2022
  50. Phillip WoodMar 3, 2022
  51. 0/8 Makefile: optimize noop runs, add shared.makÆvar Arnfjörð Bjarmason, Mar 3, 2022
  52. 1/8 scalar Makefile: use "The default target of..." patternÆvar Arnfjörð Bjarmason, Mar 3, 2022
  53. 2/8 Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to itÆvar Arnfjörð Bjarmason, Mar 3, 2022
  54. 3/8 Makefile: disable GNU make built-in wildcard rulesÆvar Arnfjörð Bjarmason, Mar 3, 2022
  55. Rene KitaApr 11, 2022
  56. Ævar Arnfjörð BjarmasonApr 11, 2022
  57. 4/8 Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)Ævar Arnfjörð Bjarmason, Mar 3, 2022
  58. 5/8 Makefile: move ".SUFFIXES" rule to shared.makÆvar Arnfjörð Bjarmason, Mar 3, 2022
  59. Adam DinwoodieApr 5, 2022
  60. Ævar Arnfjörð BjarmasonApr 5, 2022
  61. Documentation/Makefile: fix "make info" regression in dad9cd7d518Ævar Arnfjörð Bjarmason, Apr 5, 2022
  62. Adam DinwoodieApr 6, 2022
  63. Junio C HamanoApr 6, 2022
  64. Taylor BlauApr 6, 2022
  65. 7/8 Makefile: add "$(QUIET)" boilerplate to shared.makÆvar Arnfjörð Bjarmason, Mar 3, 2022
  66. 6/8 Makefile: move $(comma), $(empty) and $(space) to shared.makÆvar Arnfjörð Bjarmason, Mar 3, 2022
  67. 8/8 Makefiles: add and use wildcard "mkdir -p" templateÆvar Arnfjörð Bjarmason, Mar 3, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.