aboutsummaryrefslogtreecommitdiff
path: root/Makefile
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 /Makefile
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>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile31
1 files changed, 28 insertions, 3 deletions
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)