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>
This commit is contained in:
Shawn O. Pearce 2007-01-20 20:00:07 -05:00
Родитель c25623321d
Коммит 41bdcda373
4 изменённых файлов: 32 добавлений и 5 удалений

2
.gitignore поставляемый Normal file
Просмотреть файл

@ -0,0 +1,2 @@
git-citool
git-gui

Просмотреть файл

@ -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)

Просмотреть файл

@ -1 +0,0 @@
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 {}