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

Re: [PATCH v2 3/5] Makefile: fix "cscope" target to refer to cscope.out

From
Jeff King <peff@peff.net>
Date
Jul 1, 2021, 22:25 UTC
Message-ID
<YN5AwdVC3QAcy2tA@coredump.intra.peff.net>
In-Reply-To
<YN5AeMiTiHFrFW/7@coredump.intra.peff.net>
On Thu, Jul 01, 2021 at 06:23:52PM -0400, Jeff King wrote:
Show 37 quoted lines
> On Tue, Jun 29, 2021 at 01:12:57PM +0200, Ævar Arnfjörð Bjarmason wrote:
> 
> > diff --git a/Makefile b/Makefile
> > index faa8900097..2e3b257164 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -2737,10 +2737,12 @@ tags: FORCE
> >  	$(FIND_SOURCE_FILES) | xargs ctags -a -o tags+ && \
> >  	mv tags+ tags
> >  
> > +cscope.out:
> > +	$(QUIET_GEN)$(RM) cscope.out && \
> > +	$(FIND_SOURCE_FILES) | xargs cscope -f$@ -b
> > +
> >  .PHONY: cscope
> > -cscope:
> > -	$(QUIET_GEN)$(RM) cscope* && \
> > -	$(FIND_SOURCE_FILES) | xargs cscope -b
> > +cscope: cscope.out
> 
> Doesn't this break subsequent runs after the first generation? With a
> phony "cscope" target, "make cscope" will always run the command, even
> if it's not necessary. But with a real "cscope.out" target but not
> dependencies, it will _never_ run it, even if one of the files changed.
> 
> E.g., with your patch:
> 
>   $ make cscope.out
>     GEN cscope.out
> 
>   $ make cscope.out
>   make: 'cscope.out' is up to date.
> 
>   $ echo 'void foo(void) { }' >>git.c
>   $ make cscope.out
>   GIT_VERSION = 2.32.0.96.g5daee1b7bb.dirty
>   make: 'cscope.out' is up to date.

Ah, I see it is un-broken in the next commit, which adds actual dependencies. I think it is OK to have a temporarily-broken state in the history for something so trivial, but it might be worth mentioning it in the commit message.

-Peff
Previous: Jeff KingNext: Ævar Arnfjörð Bjarmason
Message 20 of 45 in “Makefile: "make tags" fixes & cleanup”
  1. 0/3 Makefile: "make tags" fixes & cleanupÆvar Arnfjörð Bjarmason, Jun 22, 2021
  2. 1/3 Makefile: move ".PHONY: cscope" near its targetÆvar Arnfjörð Bjarmason, Jun 22, 2021
  3. 2/3 Makefile: fix "cscope" target to refer to cscope.outÆvar Arnfjörð Bjarmason, Jun 22, 2021
  4. Jeff KingJun 22, 2021
  5. Chris TorekJun 22, 2021
  6. Felipe ContrerasJun 23, 2021
  7. Felipe ContrerasJun 23, 2021
  8. Felipe ContrerasJun 23, 2021
  9. 3/3 Makefile: don't use "FORCE" for tags targetsÆvar Arnfjörð Bjarmason, Jun 22, 2021
  10. Jeff KingJun 22, 2021
  11. Felipe ContrerasJun 23, 2021
  12. Taylor BlauJun 22, 2021
  13. Junio C HamanoJun 29, 2021
  14. Ævar Arnfjörð BjarmasonJun 29, 2021
  15. 0/5 Makefile: "make tags" fixes & cleanupÆvar Arnfjörð Bjarmason, Jun 29, 2021
  16. 1/5 Makefile: move ".PHONY: cscope" near its targetÆvar Arnfjörð Bjarmason, Jun 29, 2021
  17. 2/5 Makefile: add QUIET_GEN to "cscope" targetÆvar Arnfjörð Bjarmason, Jun 29, 2021
  18. 3/5 Makefile: fix "cscope" target to refer to cscope.outÆvar Arnfjörð Bjarmason, Jun 29, 2021
  19. Jeff KingJul 1, 2021
  20. Jeff KingJul 1, 2021
  21. 4/5 Makefile: don't use "FORCE" for tags targetsÆvar Arnfjörð Bjarmason, Jun 29, 2021
  22. Ramsay JonesJun 30, 2021
  23. 5/5 Makefile: normalize clobbering & xargs for tags targetsÆvar Arnfjörð Bjarmason, Jun 29, 2021
  24. 0/5 Makefile: "make tags" fixes & cleanupÆvar Arnfjörð Bjarmason, Jul 21, 2021
  25. 1/5 Makefile: move ".PHONY: cscope" near its targetÆvar Arnfjörð Bjarmason, Jul 21, 2021
  26. 2/5 Makefile: add QUIET_GEN to "cscope" targetÆvar Arnfjörð Bjarmason, Jul 21, 2021
  27. 3/5 Makefile: don't use "FORCE" for tags targetsÆvar Arnfjörð Bjarmason, Jul 21, 2021
  28. 4/5 Makefile: the "cscope" target always creates a "cscope.out"Ævar Arnfjörð Bjarmason, Jul 21, 2021
  29. Junio C HamanoJul 22, 2021
  30. Taylor BlauJul 22, 2021
  31. Junio C HamanoJul 22, 2021
  32. Ævar Arnfjörð BjarmasonJul 22, 2021
  33. 5/5 Makefile: normalize clobbering & xargs for tags targetsÆvar Arnfjörð Bjarmason, Jul 21, 2021
  34. Jeff KingJul 23, 2021
  35. Jeff KingJul 23, 2021
  36. Jeff KingJul 23, 2021
  37. Junio C HamanoJul 23, 2021
  38. Felipe ContrerasJul 23, 2021
  39. Felipe ContrerasJul 23, 2021
  40. 0/5 Makefile: "make tags" fixes & cleanupÆvar Arnfjörð Bjarmason, Aug 4, 2021
  41. 1/5 Makefile: move ".PHONY: cscope" near its targetÆvar Arnfjörð Bjarmason, Aug 4, 2021
  42. 2/5 Makefile: add QUIET_GEN to "cscope" targetÆvar Arnfjörð Bjarmason, Aug 4, 2021
  43. 3/5 Makefile: don't use "FORCE" for tags targetsÆvar Arnfjörð Bjarmason, Aug 4, 2021
  44. 4/5 Makefile: remove "cscope.out", not "cscope*" in cscope.out targetÆvar Arnfjörð Bjarmason, Aug 4, 2021
  45. 5/5 Makefile: normalize clobbering & xargs for tags targetsÆvar Arnfjörð Bjarmason, Aug 4, 2021

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.