Makefile: have perl scripts depend on NO_PERL setting
If NO_PERL is not set, our perl scripts are built as usual. If it is set, then we build "dummy" versions that tell you git was built without perl support and exit gracefully. However, if you switch to NO_PERL in a directory with existing build artifacts, we do not notice that the files need rebuilt. We see only that they are newer than the "unimplemented.sh" wrapper and assume they are done. So doing: make make NO_PERL=Nope would result in a git-add--interactive script that uses perl (and running the test suite would make use of it). Instead, we should trigger a rebuild of the perl scripts anytime NO_PERL changes. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Nov 18, 2014 at 12:43 UTC
e204b001cfa33e36eb06bc9d2437d75fc4efafe8
1 file changed
+3
Makefile
+3
@@ -1801,6 +1801,9 @@ git.res: git.rc GIT-VERSION-FILE
1801
$(join -DMAJOR= -DMINOR=, $(wordlist 1,2,$(subst -, ,$(subst ., ,$(GIT_VERSION))))) \
1802
-DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" $< -o $@
1803
1804
+# This makes sure we depend on the NO_PERL setting itself.
1805
+$(patsubst %.perl,%,$(SCRIPT_PERL)): GIT-BUILD-OPTIONS
1806
+
1807
ifndef NO_PERL
1808
$(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak
1809