From: Jonathan Nieder Date: Tue, 26 Jan 2010 15:51:24 +0000 (-0600) Subject: Makefile: disable default implicit rules X-Git-Tag: v1.7.1-rc0~118^2~7 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=30248886ce89e5467ce734908775ed90b9138e99;p=git.git Makefile: disable default implicit rules The git makefile never uses any default implicit rules. Unfortunately, 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 avoids this hard-to-debug behavior. It also should speed things up a little in the normal case. Future patches may restrict the scope of the %.o: %.c pattern. This patch would then ensure that for targets not listed, we do not fall back to the default rule. Signed-off-by: Jonathan Nieder --- diff --git a/Makefile b/Makefile index 1811a9e74..8d3299a8f 100644 --- a/Makefile +++ b/Makefile @@ -1672,6 +1672,8 @@ GIT_OBJS := $(LIB_OBJS) $(BUILTIN_OBJS) $(TEST_OBJS) \ 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