@matheusbsbs / matheus-bagliano / commits / 5b8805e75c
Fork 0

Makefile: clarify definition of TEST_OBJS

The definition of TEST_OBJS in commit daa99a91 (Makefile: make sure test helpers are rebuilt when headers change, 2010-01-26) moved a use of $X to before the platform-specific section where it gets defined. There are at least two ways to fix that: - Change the definition of TEST_OBJS to use the = delayed evaluation operator. This way, one need not worry about $(X) needing to be defined before TEST_OBJS is set. - Move the definition of TEST_OBJS to below the definition of $X. Carry out the second. The later site of definition makes the code more readable, since now a reader only has to look down one line to see what TEST_OBJS is meant to be used for. Oddly enough, with or without this change the behavior of the Makefile is the same. Since TEST_PROGRAMS is defined with delayed evaluation, the value of TEST_OBJS := $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS)) is independent of the value of $X when it is evaluated: the $X in the pattern and the $X in $(TEST_PROGRAMS) will simply always cancel out. Make sure $X has the expected expansion anyway to make the code and the reader’s sanity more robust in the face of future changes. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jonathan Nieder committed Feb 28, 2010 at 03:11 UTC 5b8805e75cd54439e2b0208e9512420794bc1ecd
1 file changed +1 -2
Makefile
+1 -2
@@ -738,8 +738,6 @@ BUILTIN_OBJS += builtin-verify-pack.o
738 BUILTIN_OBJS += builtin-verify-tag.o
739 BUILTIN_OBJS += builtin-write-tree.o
740
741 -TEST_OBJS := $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS))
742 -
741 GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
742 EXTLIBS =
743
@@ -1686,6 +1684,7 @@ git.o git.spec \
1684 $(patsubst %.perl,%,$(SCRIPT_PERL)) \
1685 : GIT-VERSION-FILE
1686
1687 +TEST_OBJS := $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS))
1688 GIT_OBJS := $(LIB_OBJS) $(BUILTIN_OBJS) $(PROGRAM_OBJS) $(TEST_OBJS) \
1689 git.o http.o http-walker.o remote-curl.o
1690 XDIFF_OBJS = xdiff/xdiffi.o xdiff/xprepare.o xdiff/xutils.o xdiff/xemit.o \