Code

git-gui: Track our own embedded values and rebuild when they change
authorShawn O. Pearce <spearce@spearce.org>
Sun, 29 Apr 2007 07:02:10 +0000 (03:02 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 2 May 2007 17:06:11 +0000 (13:06 -0400)
Like core-Git we now track the values that we embed into our shell
script wrapper, and we "recompile" that wrapper if they are changed.
This concept was lifted from git.git's Makefile, where a similar
thing was done by Eygene Ryabinkin.  Too bad it wasn't just done
here in git-gui from the beginning, as the git.git Makefile support
for GIT-GUI-VARS was really just because git-gui doesn't do it on
its own.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
.gitignore
Makefile

index c714d382e87b5c18609f5934890c8b135a720262..57cced8c18ebcedd3a9448adea945f31bb584ab0 100644 (file)
@@ -1,3 +1,4 @@
 GIT-VERSION-FILE
+GIT-GUI-VARS
 git-citool
 git-gui
index b29d7d1e68d2489fd07612c8d0062d3491f04719..3b6282e7346200c557d8bcd3b902ec5db6f174dc 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -53,7 +53,19 @@ $(GITGUI_BUILT_INS): git-gui
        $(QUIET_BUILT_IN)rm -f $@ && ln git-gui $@
 
 # These can record GITGUI_VERSION
-$(patsubst %.sh,%,$(SCRIPT_SH)): GIT-VERSION-FILE
+$(patsubst %.sh,%,$(SCRIPT_SH)): GIT-VERSION-FILE GIT-GUI-VARS
+
+TRACK_VARS = \
+       $(subst ','\'',SHELL_PATH='$(SHELL_PATH_SQ)') \
+       $(subst ','\'',TCLTK_PATH='$(TCLTK_PATH_SQ)') \
+#end TRACK_VARS
+
+GIT-GUI-VARS: .FORCE-GIT-GUI-VARS
+       @VARS='$(TRACK_VARS)'; \
+       if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
+               echo 1>&2 "    * new locations or Tcl/Tk interpreter"; \
+               echo 1>$@ "$$VARS"; \
+       fi
 
 all:: $(ALL_PROGRAMS)
 
@@ -67,7 +79,8 @@ dist-version:
        @echo $(GITGUI_VERSION) > $(TARDIR)/version
 
 clean::
-       rm -f $(ALL_PROGRAMS) GIT-VERSION-FILE
+       rm -f $(ALL_PROGRAMS) GIT-VERSION-FILE GIT-GUI-VARS
 
 .PHONY: all install dist-version clean
 .PHONY: .FORCE-GIT-VERSION-FILE
+.PHONY: .FORCE-GIT-GUI-VARS