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

[PATCH 2/5] Makefile: clear list of default rules

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Jan 7, 2010, 07:18 UTC
Message-ID
<20100107071824.GC11777@progeny.tock>
In-Reply-To
<20100107071305.GA11777@progeny.tock>

The git makefile never uses any default implicit rules. If a prerequisite for one of the intended rules is missing, a default rule can be used in its place:

	$ make var.s
	    CC var.s
	$ rm var.c
	$ make var.o
	    as   -o var.o var.s

Avoiding the default rules increases performance and avoids hard-to-debug behaviour. Especially, once the scope of the %.o: %.c pattern rule is restricted, we should not fall back to the default %.o: %.c pattern rule.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
'make -d' reveals that GNU make still ponders the default rules with
this patch applied, though at least it does not use them any more.  Is
it possible to set something like the make '-r' option from within a
makefile?
 Makefile |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index fa08535..9a5d897 100644
--- a/Makefile
+++ b/Makefile
@@ -1635,6 +1635,8 @@ GIT_OBJS := $(LIB_OBJS) $(BUILTIN_OBJS) git.o http.o http-walker.o \
 XDIFF_OBJS = xdiff/xdiffi.o xdiff/xprepare.o xdiff/xutils.o xdiff/xemit.o \
 	xdiff/xmerge.o xdiff/xpatience.o
 
+.SUFFIXES:
+
 %.o: %.c GIT-CFLAGS
 	$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $<
 %.s: %.c GIT-CFLAGS FORCE
-- 
1.6.6.rc2
Previous: Jonathan NiederNext: Jonathan Nieder
Message 23 of 28 in “Makefile: determine the list of header files using a glob”
  1. Makefile: determine the list of header files using a globJohannes Sixt, Nov 27, 2009
  2. Mike HommeyNov 27, 2009
  3. Johannes SixtNov 27, 2009
  4. Mike HommeyNov 27, 2009
  5. Junio C HamanoNov 27, 2009
  6. Mike HommeyDec 30, 2009
  7. Junio C HamanoDec 30, 2009
  8. Johannes SchindelinNov 27, 2009
  9. 0/2 Lazily generate header dependenciesJonathan Nieder, Nov 27, 2009
  10. 1/2 Makefile: use target-specific variable to pass flags to ccJonathan Nieder, Nov 27, 2009
  11. 2/2 Makefile: automatically compute header dependenciesJonathan Nieder, Nov 27, 2009
  12. Sverre RabbelierNov 27, 2009
  13. Jonathan NiederNov 28, 2009
  14. 2/2 Makefile: lazily compute header dependenciesJonathan Nieder, Nov 28, 2009
  15. Andreas SchwabNov 28, 2009
  16. Jonathan NiederNov 28, 2009
  17. Nanako ShiraishiJan 1, 2010
  18. Junio C HamanoJan 6, 2010
  19. Johannes SchindelinJan 6, 2010
  20. Jonathan NiederJan 6, 2010
  21. 0/5 Lazily generate header dependenciesJonathan Nieder, Jan 7, 2010
  22. 1/5 Makefile: rearrange dependency rulesJonathan Nieder, Jan 7, 2010
  23. 2/5 Makefile: clear list of default rulesJonathan Nieder, Jan 7, 2010
  24. 3/5 Makefile: add OBJECTS variable listing object filesJonathan Nieder, Jan 7, 2010
  25. 4/5 Makefile: lazily compute header dependenciesJonathan Nieder, Jan 7, 2010
  26. 5/5 Teach Makefile to check header dependenciesJonathan Nieder, Jan 7, 2010
  27. Erik Faye-LundJan 7, 2010
  28. Junio C HamanoNov 27, 2009

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.