Makefile: detect when PYTHON_PATH changes

When make is run, the python scripts are created from *.py files that are changed to use the python given by PYTHON_PATH. And PYTHON_PATH is set by default to /usr/bin/python on Linux. However, next time make is run with a different value in PYTHON_PATH, we failed to regenerate these scripts. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Acked-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Christian Couder committed Dec 18, 2012 at 16:26 UTC 022250adfd2d64ca871c9d4a7873038e33c069f5
2 files changed +15 -2
.gitignore
+1
@@ -3,6 +3,7 @@
3 /GIT-LDFLAGS
4 /GIT-GUI-VARS
5 /GIT-PREFIX
6 +/GIT-PYTHON-VARS
7 /GIT-SCRIPT-DEFINES
8 /GIT-USER-AGENT
9 /GIT-VERSION-FILE
Makefile
+14 -2
@@ -2245,7 +2245,7 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)) git-instaweb: % : unimplemented.sh
2245 endif # NO_PERL
2246
2247 ifndef NO_PYTHON
2248 -$(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS GIT-PREFIX
2248 +$(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS GIT-PREFIX GIT-PYTHON-VARS
2249 $(patsubst %.py,%,$(SCRIPT_PYTHON)): % : %.py
2250 $(QUIET_GEN)$(RM) $@ $@+ && \
2251 INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C git_remote_helpers -s \
@@ -2636,6 +2636,18 @@ GIT-GUI-VARS: FORCE
2636 fi
2637 endif
2638
2639 +### Detect Python interpreter path changes
2640 +ifndef NO_PYTHON
2641 +TRACK_PYTHON = $(subst ','\'',-DPYTHON_PATH='$(PYTHON_PATH_SQ)')
2642 +
2643 +GIT-PYTHON-VARS: FORCE
2644 + @VARS='$(TRACK_PYTHON)'; \
2645 + if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
2646 + echo 1>&2 " * new Python interpreter location"; \
2647 + echo "$$VARS" >$@; \
2648 + fi
2649 +endif
2650 +
2651 test_bindir_programs := $(patsubst %,bin-wrappers/%,$(BINDIR_PROGRAMS_NEED_X) $(BINDIR_PROGRAMS_NO_X) $(TEST_PROGRAMS_NEED_X))
2652
2653 all:: $(TEST_PROGRAMS) $(test_bindir_programs)
@@ -2911,7 +2923,7 @@ ifndef NO_TCLTK
2923 $(MAKE) -C git-gui clean
2924 endif
2925 $(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
2914 - $(RM) GIT-USER-AGENT GIT-PREFIX GIT-SCRIPT-DEFINES
2926 + $(RM) GIT-USER-AGENT GIT-PREFIX GIT-SCRIPT-DEFINES GIT-PYTHON-VARS
2927
2928 .PHONY: all install profile-clean clean strip
2929 .PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell