# [PATCH] Makefile: track TCLTK_PATH as it used to be tracked

3 messages from 2012-12-18 to 2012-12-18. Participants: Christian Couder, Junio C Hamano.
Thread: https://gitlist.dev/t/32384

## Christian Couder, 2012-12-18 14:57

Subject: [PATCH] Makefile: track TCLTK_PATH as it used to be tracked
Message-ID: <20121218145753.28253.98431.chriscool@tuxfamily.org>
URL: https://gitlist.dev/e/20121218145753.28253.98431.chriscool%40tuxfamily.org

```
A long time ago, gitk used to live at the root of the git.git
repository. In 62ba514 (Move gitk to its own subdirectory,
2007-11-17) it was moved to a subdirectory, but some code used
to track TCLTK_PATH was left in the main Makefile instead
of being moved to the new Makefile that was created in gitk-git/.

The code left in the main Makefile in git.git should now have
been removed because it was found useless.

And this patch puts some code back to track TCLTK_PATH properly
where it should be.

Note that there is already some code to do that in git-gui.

At the same time this patch creates a .gitignore and also marks
some targets in the Makefile as PHONY.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
Hi Paul,

In this thread:

http://thread.gmane.org/gmane.comp.version-control.git/211641

Junio asked me to send you this patch.
So here it is, for you to apply to your tree.

Thanks,
Christian.

 .gitignore |  2 ++
 Makefile   | 16 ++++++++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)
 create mode 100644 .gitignore

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d7ebcaf
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/GIT-TCLTK-VARS
+/gitk-wish
diff --git a/Makefile b/Makefile
index e1b6045..5acdc90 100644
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,16 @@ DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
 bindir_SQ = $(subst ','\'',$(bindir))
 TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH))
 
+### Detect Tck/Tk interpreter path changes
+TRACK_TCLTK = $(subst ','\'',-DTCLTK_PATH='$(TCLTK_PATH_SQ)')
+
+GIT-TCLTK-VARS: FORCE
+	@VARS='$(TRACK_TCLTK)'; \
+		if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
+			echo 1>&2 "    * new Tcl/Tk interpreter location"; \
+			echo "$$VARS" >$@; \
+		fi
+
 ## po-file creation rules
 XGETTEXT   ?= xgettext
 ifdef NO_MSGFMT
@@ -49,9 +59,9 @@ uninstall::
 	$(RM) '$(DESTDIR_SQ)$(bindir_SQ)'/gitk
 
 clean::
-	$(RM) gitk-wish po/*.msg
+	$(RM) gitk-wish po/*.msg GIT-TCLTK-VARS
 
-gitk-wish: gitk
+gitk-wish: gitk GIT-TCLTK-VARS
 	$(QUIET_GEN)$(RM) $@ $@+ && \
 	sed -e '1,3s|^exec .* "$$0"|exec $(subst |,'\|',$(TCLTK_PATH_SQ)) "$$0"|' <gitk >$@+ && \
 	chmod +x $@+ && \
@@ -65,3 +75,5 @@ $(ALL_MSGFILES): %.msg : %.po
 	@echo Generating catalog $@
 	$(MSGFMT) --statistics --tcl $< -l $(basename $(notdir $<)) -d $(dir $@)
 
+.PHONY: all install uninstall clean update-po
+.PHONY: FORCE
-- 
1.8.1.rc1.2.g8740035

```

## Junio C Hamano, 2012-12-18 17:07

Subject: Re: [PATCH] Makefile: track TCLTK_PATH as it used to be tracked
Message-ID: <7vk3sfguh2.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vk3sfguh2.fsf%40alter.siamese.dyndns.org
In-Reply-To: <20121218145753.28253.98431.chriscool@tuxfamily.org>

```
Christian Couder <chriscool@tuxfamily.org> writes:

> A long time ago, gitk used to live at the root of the git.git
> repository. In 62ba514 (Move gitk to its own subdirectory,
> 2007-11-17) it was moved to a subdirectory, but some code used
> to track TCLTK_PATH was left in the main Makefile instead
> of being moved to the new Makefile that was created in gitk-git/.
>
> The code left in the main Makefile in git.git should now have
> been removed because it was found useless.
>
> And this patch puts some code back to track TCLTK_PATH properly
> where it should be.

It is more like "should have been moved to gitk's Makefile back
then, but didn't.  Make it so.".

>
> Note that there is already some code to do that in git-gui.
>
> At the same time this patch creates a .gitignore and also marks
> some targets in the Makefile as PHONY.
>
> Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
> ---
> Hi Paul,
>
> In this thread:
>
> http://thread.gmane.org/gmane.comp.version-control.git/211641
>
> Junio asked me to send you this patch.
> So here it is, for you to apply to your tree.

Paul, just to clarify, I didn't review the contents of the patch; I
merely redirected the patch in the right direction, so this still
needs to be vetted by you ;-)

> ...
> +GIT-TCLTK-VARS: FORCE
> +	@VARS='$(TRACK_TCLTK)'; \
> +		if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
> +			echo 1>&2 "    * new Tcl/Tk interpreter location"; \

I think in a related patch to the top-level Makefile changes it to
lose "1" to read it as "echo >&2" here.

```

## Christian Couder, 2012-12-18 18:23

Subject: Re: [PATCH] Makefile: track TCLTK_PATH as it used to be tracked
Message-ID: <20121218.192310.41888431995379865.chriscool@tuxfamily.org>
URL: https://gitlist.dev/e/20121218.192310.41888431995379865.chriscool%40tuxfamily.org
In-Reply-To: <7vk3sfguh2.fsf@alter.siamese.dyndns.org>

```
From: Junio C Hamano <gitster@pobox.com>

> Christian Couder <chriscool@tuxfamily.org> writes:
> 
>> ...
>> +GIT-TCLTK-VARS: FORCE
>> +	@VARS='$(TRACK_TCLTK)'; \
>> +		if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
>> +			echo 1>&2 "    * new Tcl/Tk interpreter location"; \
> 
> I think in a related patch to the top-level Makefile changes it to
> lose "1" to read it as "echo >&2" here.

Yeah, I forgot to remove the 1 here.

Thanks,
Christian.

```
