git-gui: Modified makefile to embed version into git-gui script.
authorShawn O. Pearce <spearce@spearce.org>
Sun, 21 Jan 2007 01:00:07 +0000 (20:00 -0500)
committerShawn O. Pearce <spearce@spearce.org>
Sun, 21 Jan 2007 07:54:18 +0000 (02:54 -0500)
We want to embed the version of git-gui directly into the script file,
so that we can display it properly in the about dialog.  Consequently
I've refactored the Makefile process to act like the one in core git.git
with regards to shell scripts, allowing git-gui to be constructed by a
sed replacement performed on git-gui.sh.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
.gitignore [new file with mode: 0644]
Makefile
git-citool [deleted symlink]
git-gui.sh [moved from git-gui with 99% similarity]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..5bda901
--- /dev/null
@@ -0,0 +1,2 @@
+git-citool
+git-gui
index e3e871f7c4e84d81f4280d40a46c549fa56749e9..606bec640ee4d8b425d6ef9c8b2313a2e9435f84 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,13 @@
-all: git-gui
+all::
+
+SCRIPT_SH = git-gui.sh
+GITGUI_BUILT_INS = git-citool
+ALL_PROGRAMS = $(GITGUI_BUILT_INS) $(patsubst %.sh,%,$(SCRIPT_SH))
+GITGUI_VERSION := $(shell git describe)
+
+ifndef SHELL_PATH
+       SHELL_PATH = /bin/sh
+endif
 
 gitexecdir := $(shell git --exec-path)
 INSTALL = install
@@ -6,9 +15,25 @@ INSTALL = install
 DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
 gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
 
-GITGUI_BUILTIN = git-citool
+SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
+
+$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
+       rm -f $@ $@+
+       sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
+               -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
+               $@.sh >$@+
+       chmod +x $@+
+       mv $@+ $@
+
+$(GITGUI_BUILT_INS): git-gui
+       rm -f $@ && ln git-gui $@
+
+all:: $(ALL_PROGRAMS)
 
 install: all
        $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'
        $(INSTALL) git-gui '$(DESTDIR_SQ)$(gitexecdir_SQ)'
-       $(foreach p,$(GITGUI_BUILTIN), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;)
+       $(foreach p,$(GITGUI_BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;)
+
+clean::
+       rm -f $(ALL_PROGRAMS)
diff --git a/git-citool b/git-citool
deleted file mode 120000 (symlink)
index b5f620f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-git-gui
\ No newline at end of file
similarity index 99%
rename from git-gui
rename to git-gui.sh
index b79eb451d2bd3c04669115b75ef5c3159e9382ca..0770ad03f94bcec4602b932afc94d2c03ba27f5c 100755 (executable)
--- a/git-gui
@@ -3,7 +3,7 @@
 exec wish "$0" -- "$@"
 
 set copyright {
-Copyright © 2006 Shawn Pearce, Paul Mackerras.
+Copyright © 2006, 2007 Shawn Pearce, Paul Mackerras.
 
 All rights reserved.
 
@@ -11,6 +11,7 @@ This program is free software; it may be used, copied, modified
 and distributed under the terms of the GNU General Public Licence,
 either version 2, or (at your option) any later version.}
 
+set appvers {@@GITGUI_VERSION@@}
 set appname [lindex [file split $argv0] end]
 set gitdir {}