Makefile: have perl scripts depend on NO_PERL setting
authorJeff King <peff@peff.net>
Tue, 18 Nov 2014 17:43:09 +0000 (12:43 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 18 Nov 2014 18:15:14 +0000 (10:15 -0800)
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>
Makefile
index 9f984a9e5561d6b67b453124a311963ae8845f6d..4d1639ddc919fc30a5d2530dd0b6cc3d1098a586 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1801,6 +1801,9 @@ git.res: git.rc GIT-VERSION-FILE
          $(join -DMAJOR= -DMINOR=, $(wordlist 1,2,$(subst -, ,$(subst ., ,$(GIT_VERSION))))) \
          -DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" $< -o $@
 
+# This makes sure we depend on the NO_PERL setting itself.
+$(patsubst %.perl,%,$(SCRIPT_PERL)): GIT-BUILD-OPTIONS
+
 ifndef NO_PERL
 $(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak