aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-01-20 20:00:07 -0500
committerShawn O. Pearce <spearce@spearce.org>2007-01-21 02:54:18 -0500
commit41bdcda37376a5faa63028f01260890723c3fcfa (patch)
tree528acec397c402d61615b58ad79c498664ef5534
parentc25623321d52642fe8fb80c64904a53363f91b12 (diff)
downloadgit-41bdcda37376a5faa63028f01260890723c3fcfa.tar.gz
git-41bdcda37376a5faa63028f01260890723c3fcfa.tar.xz
git-gui: Modified makefile to embed version into git-gui script.
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>
-rw-r--r--.gitignore2
-rw-r--r--Makefile31
l---------git-citool1
-rwxr-xr-xgit-gui.sh (renamed from git-gui)3
4 files changed, 32 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..5bda901ae
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+git-citool
+git-gui
diff --git a/Makefile b/Makefile
index e3e871f7c..606bec640 100644
--- 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
index b5f620fd0..000000000
--- a/git-citool
+++ /dev/null
@@ -1 +0,0 @@
-git-gui \ No newline at end of file
diff --git a/git-gui b/git-gui.sh
index b79eb451d..0770ad03f 100755
--- a/git-gui
+++ b/git-gui.sh
@@ -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 {}