Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 1 | all:: |
| 2 | |
Junio C Hamano | eec1025 | 2007-03-06 00:39:52 -0800 | [diff] [blame] | 3 | # Define V=1 to have a more verbose compile. |
| 4 | # |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 5 | # Define NO_MSGFMT if you do not have msgfmt from the GNU gettext |
| 6 | # package and want to use our rough pure Tcl po->msg translator. |
Junio C Hamano | 3d252a9 | 2013-12-09 14:57:00 -0800 | [diff] [blame] | 7 | # TCL_PATH must be valid for this to work. |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 8 | # |
Junio C Hamano | eec1025 | 2007-03-06 00:39:52 -0800 | [diff] [blame] | 9 | |
Junio C Hamano | b30ccd7 | 2010-01-24 11:16:26 -0800 | [diff] [blame] | 10 | GIT-VERSION-FILE: FORCE |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 11 | @$(SHELL_PATH) ./GIT-VERSION-GEN |
Junio C Hamano | f4d8e19 | 2020-12-18 15:07:10 -0800 | [diff] [blame] | 12 | ifneq ($(MAKECMDGOALS),clean) |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 13 | -include GIT-VERSION-FILE |
Junio C Hamano | f4d8e19 | 2020-12-18 15:07:10 -0800 | [diff] [blame] | 14 | endif |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 15 | |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 16 | uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 17 | uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not') |
Junio C Hamano | e98d6df | 2008-02-23 11:23:59 -0800 | [diff] [blame] | 18 | uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not') |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 19 | |
Junio C Hamano | 3ed02de | 2007-03-12 11:43:22 -0700 | [diff] [blame] | 20 | SCRIPT_SH = git-gui.sh |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 21 | GITGUI_MAIN := git-gui |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 22 | GITGUI_BUILT_INS = git-citool |
Shawn O. Pearce | 5f5dbd7 | 2007-05-07 23:36:31 -0400 | [diff] [blame] | 23 | ALL_LIBFILES = $(wildcard lib/*.tcl) |
Junio C Hamano | e986e26 | 2007-05-17 16:52:45 -0700 | [diff] [blame] | 24 | PRELOAD_FILES = lib/class.tcl |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 25 | NONTCL_LIBFILES = \ |
| 26 | lib/git-gui.ico \ |
| 27 | $(wildcard lib/win32_*.js) \ |
| 28 | #end NONTCL_LIBFILES |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 29 | |
| 30 | ifndef SHELL_PATH |
| 31 | SHELL_PATH = /bin/sh |
| 32 | endif |
| 33 | |
Junio C Hamano | 67c7575 | 2007-02-12 16:07:29 -0800 | [diff] [blame] | 34 | ifndef gitexecdir |
| 35 | gitexecdir := $(shell git --exec-path) |
| 36 | endif |
| 37 | |
Shawn O. Pearce | 5f5dbd7 | 2007-05-07 23:36:31 -0400 | [diff] [blame] | 38 | ifndef sharedir |
Junio C Hamano | 731ab1f5 | 2008-07-30 00:18:26 -0700 | [diff] [blame] | 39 | ifeq (git-core,$(notdir $(gitexecdir))) |
| 40 | sharedir := $(dir $(patsubst %/,%,$(dir $(gitexecdir))))share |
| 41 | else |
Junio C Hamano | c63a3ad | 2007-05-28 20:23:10 -0700 | [diff] [blame] | 42 | sharedir := $(dir $(gitexecdir))share |
Shawn O. Pearce | 5f5dbd7 | 2007-05-07 23:36:31 -0400 | [diff] [blame] | 43 | endif |
Junio C Hamano | 731ab1f5 | 2008-07-30 00:18:26 -0700 | [diff] [blame] | 44 | endif |
Shawn O. Pearce | 5f5dbd7 | 2007-05-07 23:36:31 -0400 | [diff] [blame] | 45 | |
Junio C Hamano | 67c7575 | 2007-02-12 16:07:29 -0800 | [diff] [blame] | 46 | ifndef INSTALL |
| 47 | INSTALL = install |
| 48 | endif |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 49 | |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 50 | RM_RF ?= rm -rf |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 51 | RMDIR ?= rmdir |
| 52 | |
Junio C Hamano | d9f4059 | 2007-12-06 23:51:15 -0800 | [diff] [blame] | 53 | INSTALL_D0 = $(INSTALL) -d -m 755 # space is required here |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 54 | INSTALL_D1 = |
Junio C Hamano | d9f4059 | 2007-12-06 23:51:15 -0800 | [diff] [blame] | 55 | INSTALL_R0 = $(INSTALL) -m 644 # space is required here |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 56 | INSTALL_R1 = |
Junio C Hamano | d9f4059 | 2007-12-06 23:51:15 -0800 | [diff] [blame] | 57 | INSTALL_X0 = $(INSTALL) -m 755 # space is required here |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 58 | INSTALL_X1 = |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 59 | INSTALL_A0 = find # space is required here |
| 60 | INSTALL_A1 = | cpio -pud |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 61 | INSTALL_L0 = rm -f # space is required here |
| 62 | INSTALL_L1 = && ln # space is required here |
| 63 | INSTALL_L2 = |
| 64 | INSTALL_L3 = |
| 65 | |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 66 | REMOVE_D0 = $(RMDIR) # space is required here |
| 67 | REMOVE_D1 = || true |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 68 | REMOVE_F0 = $(RM_RF) # space is required here |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 69 | REMOVE_F1 = |
| 70 | CLEAN_DST = true |
| 71 | |
Junio C Hamano | eec1025 | 2007-03-06 00:39:52 -0800 | [diff] [blame] | 72 | ifndef V |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 73 | QUIET = @ |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 74 | QUIET_GEN = $(QUIET)echo ' ' GEN '$@' && |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 75 | QUIET_INDEX = $(QUIET)echo ' ' INDEX $(dir $@) && |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 76 | QUIET_MSGFMT0 = $(QUIET)printf ' MSGFMT %12s ' $@ && v=` |
Junio C Hamano | cab31fa | 2008-01-23 21:37:12 -0800 | [diff] [blame] | 77 | QUIET_MSGFMT1 = 2>&1` && echo "$$v" | sed -e 's/fuzzy translations/fuzzy/' | sed -e 's/ messages*//g' |
Junio C Hamano | e986e26 | 2007-05-17 16:52:45 -0700 | [diff] [blame] | 78 | QUIET_2DEVNULL = 2>/dev/null |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 79 | |
| 80 | INSTALL_D0 = dir= |
Junio C Hamano | d9f4059 | 2007-12-06 23:51:15 -0800 | [diff] [blame] | 81 | INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m 755 "$$dir" |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 82 | INSTALL_R0 = src= |
Junio C Hamano | d9f4059 | 2007-12-06 23:51:15 -0800 | [diff] [blame] | 83 | INSTALL_R1 = && echo ' ' INSTALL 644 `basename $$src` && $(INSTALL) -m 644 $$src |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 84 | INSTALL_X0 = src= |
Junio C Hamano | d9f4059 | 2007-12-06 23:51:15 -0800 | [diff] [blame] | 85 | INSTALL_X1 = && echo ' ' INSTALL 755 `basename $$src` && $(INSTALL) -m 755 $$src |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 86 | INSTALL_A0 = src= |
| 87 | INSTALL_A1 = && echo ' ' INSTALL ' ' `basename "$$src"` && find "$$src" | cpio -pud |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 88 | |
| 89 | INSTALL_L0 = dst= |
| 90 | INSTALL_L1 = && src= |
| 91 | INSTALL_L2 = && dst= |
| 92 | INSTALL_L3 = && echo ' ' 'LINK ' `basename "$$dst"` '->' `basename "$$src"` && rm -f "$$dst" && ln "$$src" "$$dst" |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 93 | |
| 94 | CLEAN_DST = echo ' ' UNINSTALL |
| 95 | REMOVE_D0 = dir= |
| 96 | REMOVE_D1 = && echo ' ' REMOVE $$dir && test -d "$$dir" && $(RMDIR) "$$dir" || true |
| 97 | REMOVE_F0 = dst= |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 98 | REMOVE_F1 = && echo ' ' REMOVE `basename "$$dst"` && $(RM_RF) "$$dst" |
Junio C Hamano | eec1025 | 2007-03-06 00:39:52 -0800 | [diff] [blame] | 99 | endif |
| 100 | |
Junio C Hamano | c182ec9 | 2007-04-17 17:16:56 -0700 | [diff] [blame] | 101 | TCLTK_PATH ?= wish |
Junio C Hamano | e98d6df | 2008-02-23 11:23:59 -0800 | [diff] [blame] | 102 | ifeq (./,$(dir $(TCLTK_PATH))) |
| 103 | TCL_PATH ?= $(subst wish,tclsh,$(TCLTK_PATH)) |
| 104 | else |
| 105 | TCL_PATH ?= $(dir $(TCLTK_PATH))$(notdir $(subst wish,tclsh,$(TCLTK_PATH))) |
| 106 | endif |
| 107 | |
| 108 | ifeq ($(uname_S),Darwin) |
| 109 | TKFRAMEWORK = /Library/Frameworks/Tk.framework/Resources/Wish.app |
Junio C Hamano | a8816e7 | 2009-05-01 22:11:57 -0700 | [diff] [blame] | 110 | ifeq ($(shell echo "$(uname_R)" | awk -F. '{if ($$1 >= 9) print "y"}')_$(shell test -d $(TKFRAMEWORK) || echo n),y_n) |
| 111 | TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish.app |
| 112 | ifeq ($(shell test -d $(TKFRAMEWORK) || echo n),n) |
| 113 | TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish\ Shell.app |
| 114 | endif |
Junio C Hamano | e98d6df | 2008-02-23 11:23:59 -0800 | [diff] [blame] | 115 | endif |
| 116 | TKEXECUTABLE = $(shell basename "$(TKFRAMEWORK)" .app) |
| 117 | endif |
Junio C Hamano | c182ec9 | 2007-04-17 17:16:56 -0700 | [diff] [blame] | 118 | |
Junio C Hamano | 27ebd6e | 2007-03-12 23:14:07 -0700 | [diff] [blame] | 119 | ifeq ($(findstring $(MAKEFLAGS),s),s) |
| 120 | QUIET_GEN = |
Junio C Hamano | 27ebd6e | 2007-03-12 23:14:07 -0700 | [diff] [blame] | 121 | endif |
| 122 | |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 123 | -include config.mak |
| 124 | |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 125 | DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) |
| 126 | gitexecdir_SQ = $(subst ','\'',$(gitexecdir)) |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 127 | SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) |
Junio C Hamano | e986e26 | 2007-05-17 16:52:45 -0700 | [diff] [blame] | 128 | TCL_PATH_SQ = $(subst ','\'',$(TCL_PATH)) |
Junio C Hamano | c182ec9 | 2007-04-17 17:16:56 -0700 | [diff] [blame] | 129 | TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH)) |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 130 | TCLTK_PATH_SED = $(subst ','\'',$(subst \,\\,$(TCLTK_PATH))) |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 131 | |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 132 | gg_libdir ?= $(sharedir)/git-gui/lib |
| 133 | libdir_SQ = $(subst ','\'',$(gg_libdir)) |
Junio C Hamano | 105c21d | 2008-01-20 16:58:38 -0800 | [diff] [blame] | 134 | libdir_SED = $(subst ','\'',$(subst \,\\,$(gg_libdir_sed_in))) |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 135 | exedir = $(dir $(gitexecdir))share/git-gui/lib |
Shawn O. Pearce | 5f5dbd7 | 2007-05-07 23:36:31 -0400 | [diff] [blame] | 136 | |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 137 | GITGUI_SCRIPT := $$0 |
| 138 | GITGUI_RELATIVE := |
| 139 | GITGUI_MACOSXAPP := |
Junio C Hamano | c63a3ad | 2007-05-28 20:23:10 -0700 | [diff] [blame] | 140 | |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 141 | ifeq ($(uname_O),Cygwin) |
| 142 | GITGUI_SCRIPT := `cygpath --windows --absolute "$(GITGUI_SCRIPT)"` |
Junio C Hamano | e98d6df | 2008-02-23 11:23:59 -0800 | [diff] [blame] | 143 | |
| 144 | # Is this a Cygwin Tcl/Tk binary? If so it knows how to do |
| 145 | # POSIX path translation just like cygpath does and we must |
| 146 | # keep libdir in POSIX format so Cygwin packages of git-gui |
| 147 | # work no matter where the user installs them. |
| 148 | # |
| 149 | ifeq ($(shell echo 'puts [file normalize /]' | '$(TCL_PATH_SQ)'),$(shell cygpath --mixed --absolute /)) |
| 150 | gg_libdir_sed_in := $(gg_libdir) |
| 151 | else |
| 152 | gg_libdir_sed_in := $(shell cygpath --windows --absolute "$(gg_libdir)") |
| 153 | endif |
Junio C Hamano | 144126a | 2008-01-04 22:03:42 -0800 | [diff] [blame] | 154 | else |
| 155 | ifeq ($(exedir),$(gg_libdir)) |
| 156 | GITGUI_RELATIVE := 1 |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 157 | endif |
Junio C Hamano | 105c21d | 2008-01-20 16:58:38 -0800 | [diff] [blame] | 158 | gg_libdir_sed_in := $(gg_libdir) |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 159 | endif |
| 160 | ifeq ($(uname_S),Darwin) |
| 161 | ifeq ($(shell test -d $(TKFRAMEWORK) && echo y),y) |
| 162 | GITGUI_MACOSXAPP := YesPlease |
| 163 | endif |
| 164 | endif |
| 165 | ifneq (,$(findstring MINGW,$(uname_S))) |
Junio C Hamano | 90dbf22 | 2017-07-25 13:42:41 -0700 | [diff] [blame] | 166 | ifeq ($(shell expr "$(uname_R)" : '1\.'),2) |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 167 | NO_MSGFMT=1 |
Junio C Hamano | 90dbf22 | 2017-07-25 13:42:41 -0700 | [diff] [blame] | 168 | endif |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 169 | GITGUI_WINDOWS_WRAPPER := YesPlease |
Junio C Hamano | 731ab1f5 | 2008-07-30 00:18:26 -0700 | [diff] [blame] | 170 | GITGUI_RELATIVE := 1 |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 171 | endif |
| 172 | |
| 173 | ifdef GITGUI_MACOSXAPP |
| 174 | GITGUI_MAIN := git-gui.tcl |
| 175 | |
| 176 | git-gui: GIT-VERSION-FILE GIT-GUI-VARS |
Junio C Hamano | eec1025 | 2007-03-06 00:39:52 -0800 | [diff] [blame] | 177 | $(QUIET_GEN)rm -f $@ $@+ && \ |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 178 | echo '#!$(SHELL_PATH_SQ)' >$@+ && \ |
| 179 | echo 'if test "z$$*" = zversion ||' >>$@+ && \ |
| 180 | echo ' test "z$$*" = z--version' >>$@+ && \ |
| 181 | echo then >>$@+ && \ |
| 182 | echo ' 'echo \'git-gui version '$(GITGUI_VERSION)'\' >>$@+ && \ |
| 183 | echo else >>$@+ && \ |
Junio C Hamano | 1eb0545 | 2015-04-18 18:35:48 -0700 | [diff] [blame] | 184 | echo ' libdir="$${GIT_GUI_LIB_DIR:-$(libdir_SQ)}"' >>$@+ && \ |
| 185 | echo ' 'exec \"'$$libdir/Git Gui.app/Contents/MacOS/$(subst \,,$(TKEXECUTABLE))'\" \ |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 186 | '"$$0" "$$@"' >>$@+ && \ |
| 187 | echo fi >>$@+ && \ |
Junio C Hamano | eec1025 | 2007-03-06 00:39:52 -0800 | [diff] [blame] | 188 | chmod +x $@+ && \ |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 189 | mv $@+ $@ |
| 190 | |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 191 | Git\ Gui.app: GIT-VERSION-FILE GIT-GUI-VARS \ |
| 192 | macosx/Info.plist \ |
| 193 | macosx/git-gui.icns \ |
| 194 | macosx/AppMain.tcl \ |
Junio C Hamano | e98d6df | 2008-02-23 11:23:59 -0800 | [diff] [blame] | 195 | $(TKFRAMEWORK)/Contents/MacOS/$(TKEXECUTABLE) |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 196 | $(QUIET_GEN)rm -rf '$@' '$@'+ && \ |
| 197 | mkdir -p '$@'+/Contents/MacOS && \ |
| 198 | mkdir -p '$@'+/Contents/Resources/Scripts && \ |
Junio C Hamano | e98d6df | 2008-02-23 11:23:59 -0800 | [diff] [blame] | 199 | cp '$(subst ','\'',$(subst \,,$(TKFRAMEWORK)/Contents/MacOS/$(TKEXECUTABLE)))' \ |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 200 | '$@'+/Contents/MacOS && \ |
| 201 | cp macosx/git-gui.icns '$@'+/Contents/Resources && \ |
| 202 | sed -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \ |
Junio C Hamano | e98d6df | 2008-02-23 11:23:59 -0800 | [diff] [blame] | 203 | -e 's/@@GITGUI_TKEXECUTABLE@@/$(TKEXECUTABLE)/g' \ |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 204 | macosx/Info.plist \ |
| 205 | >'$@'+/Contents/Info.plist && \ |
| 206 | sed -e 's|@@gitexecdir@@|$(gitexecdir_SQ)|' \ |
| 207 | -e 's|@@GITGUI_LIBDIR@@|$(libdir_SED)|' \ |
| 208 | macosx/AppMain.tcl \ |
| 209 | >'$@'+/Contents/Resources/Scripts/AppMain.tcl && \ |
| 210 | mv '$@'+ '$@' |
| 211 | endif |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 212 | |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 213 | ifdef GITGUI_WINDOWS_WRAPPER |
| 214 | GITGUI_MAIN := git-gui.tcl |
| 215 | |
| 216 | git-gui: windows/git-gui.sh |
| 217 | cp $< $@ |
| 218 | endif |
| 219 | |
| 220 | $(GITGUI_MAIN): git-gui.sh GIT-VERSION-FILE GIT-GUI-VARS |
| 221 | $(QUIET_GEN)rm -f $@ $@+ && \ |
| 222 | sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ |
Junio C Hamano | 12644fa | 2010-09-15 12:34:37 -0700 | [diff] [blame] | 223 | -e 's|@@SHELL_PATH@@|$(SHELL_PATH_SQ)|' \ |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 224 | -e '1,30s|^ argv0=$$0| argv0=$(GITGUI_SCRIPT)|' \ |
| 225 | -e '1,30s|^ exec wish | exec '\''$(TCLTK_PATH_SED)'\'' |' \ |
| 226 | -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \ |
| 227 | -e 's|@@GITGUI_RELATIVE@@|$(GITGUI_RELATIVE)|' \ |
| 228 | -e '$(GITGUI_RELATIVE)s|@@GITGUI_LIBDIR@@|$(libdir_SED)|' \ |
| 229 | git-gui.sh >$@+ && \ |
| 230 | chmod +x $@+ && \ |
| 231 | mv $@+ $@ |
| 232 | |
| 233 | XGETTEXT ?= xgettext |
| 234 | ifdef NO_MSGFMT |
| 235 | MSGFMT ?= $(TCL_PATH) po/po2msg.sh |
| 236 | else |
| 237 | MSGFMT ?= msgfmt |
Junio C Hamano | a6828f5 | 2008-03-11 22:59:35 -0700 | [diff] [blame] | 238 | ifneq ($(shell $(MSGFMT) --tcl -l C -d . /dev/null 2>/dev/null; echo $$?),0) |
Junio C Hamano | cab31fa | 2008-01-23 21:37:12 -0800 | [diff] [blame] | 239 | MSGFMT := $(TCL_PATH) po/po2msg.sh |
| 240 | endif |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 241 | endif |
| 242 | |
| 243 | msgsdir = $(gg_libdir)/msgs |
| 244 | msgsdir_SQ = $(subst ','\'',$(msgsdir)) |
| 245 | PO_TEMPLATE = po/git-gui.pot |
| 246 | ALL_POFILES = $(wildcard po/*.po) |
| 247 | ALL_MSGFILES = $(subst .po,.msg,$(ALL_POFILES)) |
| 248 | |
| 249 | $(PO_TEMPLATE): $(SCRIPT_SH) $(ALL_LIBFILES) |
| 250 | $(XGETTEXT) -kmc -LTcl -o $@ $(SCRIPT_SH) $(ALL_LIBFILES) |
| 251 | update-po:: $(PO_TEMPLATE) |
| 252 | $(foreach p, $(ALL_POFILES), echo Updating $p ; msgmerge -U $p $(PO_TEMPLATE) ; ) |
| 253 | $(ALL_MSGFILES): %.msg : %.po |
Junio C Hamano | d9f4059 | 2007-12-06 23:51:15 -0800 | [diff] [blame] | 254 | $(QUIET_MSGFMT0)$(MSGFMT) --statistics --tcl -l $(basename $(notdir $<)) -d $(dir $@) $< $(QUIET_MSGFMT1) |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 255 | |
| 256 | lib/tclIndex: $(ALL_LIBFILES) GIT-GUI-VARS |
Junio C Hamano | e986e26 | 2007-05-17 16:52:45 -0700 | [diff] [blame] | 257 | $(QUIET_INDEX)if echo \ |
| 258 | $(foreach p,$(PRELOAD_FILES),source $p\;) \ |
Junio C Hamano | da10ea3 | 2017-11-22 14:57:52 +0900 | [diff] [blame] | 259 | auto_mkindex lib $(patsubst lib/%,%,$(sort $(ALL_LIBFILES))) \ |
Junio C Hamano | e986e26 | 2007-05-17 16:52:45 -0700 | [diff] [blame] | 260 | | $(TCL_PATH) $(QUIET_2DEVNULL); then : ok; \ |
| 261 | else \ |
Junio C Hamano | fb7dfaa | 2013-06-16 20:06:55 -0700 | [diff] [blame] | 262 | echo >&2 " * $(TCL_PATH) failed; using unoptimized loading"; \ |
Junio C Hamano | e986e26 | 2007-05-17 16:52:45 -0700 | [diff] [blame] | 263 | rm -f $@ ; \ |
| 264 | echo '# Autogenerated by git-gui Makefile' >$@ && \ |
| 265 | echo >>$@ && \ |
Junio C Hamano | 3eae308 | 2016-10-20 09:33:17 -0700 | [diff] [blame] | 266 | $(foreach p,$(PRELOAD_FILES) $(sort $(ALL_LIBFILES)),echo '$(subst lib/,,$p)' >>$@ &&) \ |
Junio C Hamano | e986e26 | 2007-05-17 16:52:45 -0700 | [diff] [blame] | 267 | echo >>$@ ; \ |
| 268 | fi |
Junio C Hamano | 3ed02de | 2007-03-12 11:43:22 -0700 | [diff] [blame] | 269 | |
Shawn O. Pearce | 5f5dbd7 | 2007-05-07 23:36:31 -0400 | [diff] [blame] | 270 | TRACK_VARS = \ |
| 271 | $(subst ','\'',SHELL_PATH='$(SHELL_PATH_SQ)') \ |
Junio C Hamano | e986e26 | 2007-05-17 16:52:45 -0700 | [diff] [blame] | 272 | $(subst ','\'',TCL_PATH='$(TCL_PATH_SQ)') \ |
Shawn O. Pearce | 5f5dbd7 | 2007-05-07 23:36:31 -0400 | [diff] [blame] | 273 | $(subst ','\'',TCLTK_PATH='$(TCLTK_PATH_SQ)') \ |
Junio C Hamano | c63a3ad | 2007-05-28 20:23:10 -0700 | [diff] [blame] | 274 | $(subst ','\'',gitexecdir='$(gitexecdir_SQ)') \ |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 275 | $(subst ','\'',gg_libdir='$(libdir_SQ)') \ |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 276 | GITGUI_MACOSXAPP=$(GITGUI_MACOSXAPP) \ |
Shawn O. Pearce | 5f5dbd7 | 2007-05-07 23:36:31 -0400 | [diff] [blame] | 277 | #end TRACK_VARS |
| 278 | |
Junio C Hamano | b30ccd7 | 2010-01-24 11:16:26 -0800 | [diff] [blame] | 279 | GIT-GUI-VARS: FORCE |
Shawn O. Pearce | 5f5dbd7 | 2007-05-07 23:36:31 -0400 | [diff] [blame] | 280 | @VARS='$(TRACK_VARS)'; \ |
| 281 | if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \ |
Junio C Hamano | fb7dfaa | 2013-06-16 20:06:55 -0700 | [diff] [blame] | 282 | echo >&2 " * new locations or Tcl/Tk interpreter"; \ |
| 283 | echo >$@ "$$VARS"; \ |
Shawn O. Pearce | 5f5dbd7 | 2007-05-07 23:36:31 -0400 | [diff] [blame] | 284 | fi |
| 285 | |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 286 | ifdef GITGUI_MACOSXAPP |
| 287 | all:: git-gui Git\ Gui.app |
| 288 | endif |
| 289 | ifdef GITGUI_WINDOWS_WRAPPER |
| 290 | all:: git-gui |
| 291 | endif |
| 292 | all:: $(GITGUI_MAIN) lib/tclIndex $(ALL_MSGFILES) |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 293 | |
| 294 | install: all |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 295 | $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(INSTALL_D1) |
| 296 | $(QUIET)$(INSTALL_X0)git-gui $(INSTALL_X1) '$(DESTDIR_SQ)$(gitexecdir_SQ)' |
Junio C Hamano | f6576f4 | 2008-11-01 22:31:46 -0700 | [diff] [blame] | 297 | $(QUIET)$(INSTALL_X0)git-gui--askpass $(INSTALL_X1) '$(DESTDIR_SQ)$(gitexecdir_SQ)' |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 298 | $(QUIET)$(foreach p,$(GITGUI_BUILT_INS), $(INSTALL_L0)'$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' $(INSTALL_L1)'$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' $(INSTALL_L2)'$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' $(INSTALL_L3) &&) true |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 299 | ifdef GITGUI_WINDOWS_WRAPPER |
| 300 | $(QUIET)$(INSTALL_R0)git-gui.tcl $(INSTALL_R1) '$(DESTDIR_SQ)$(gitexecdir_SQ)' |
| 301 | endif |
Junio C Hamano | 82ff9d2 | 2007-06-28 21:32:41 -0700 | [diff] [blame] | 302 | $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(INSTALL_D1) |
| 303 | $(QUIET)$(INSTALL_R0)lib/tclIndex $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 304 | ifdef GITGUI_MACOSXAPP |
| 305 | $(QUIET)$(INSTALL_A0)'Git Gui.app' $(INSTALL_A1) '$(DESTDIR_SQ)$(libdir_SQ)' |
| 306 | $(QUIET)$(INSTALL_X0)git-gui.tcl $(INSTALL_X1) '$(DESTDIR_SQ)$(libdir_SQ)' |
| 307 | endif |
| 308 | $(QUIET)$(foreach p,$(ALL_LIBFILES) $(NONTCL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true |
| 309 | $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(msgsdir_SQ)' $(INSTALL_D1) |
| 310 | $(QUIET)$(foreach p,$(ALL_MSGFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(msgsdir_SQ)' &&) true |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 311 | |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 312 | uninstall: |
| 313 | $(QUIET)$(CLEAN_DST) '$(DESTDIR_SQ)$(gitexecdir_SQ)' |
| 314 | $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(gitexecdir_SQ)'/git-gui $(REMOVE_F1) |
Junio C Hamano | f6576f4 | 2008-11-01 22:31:46 -0700 | [diff] [blame] | 315 | $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(gitexecdir_SQ)'/git-gui--askpass $(REMOVE_F1) |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 316 | $(QUIET)$(foreach p,$(GITGUI_BUILT_INS), $(REMOVE_F0)'$(DESTDIR_SQ)$(gitexecdir_SQ)'/$p $(REMOVE_F1) &&) true |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 317 | ifdef GITGUI_WINDOWS_WRAPPER |
| 318 | $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(gitexecdir_SQ)'/git-gui.tcl $(REMOVE_F1) |
| 319 | endif |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 320 | $(QUIET)$(CLEAN_DST) '$(DESTDIR_SQ)$(libdir_SQ)' |
| 321 | $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/tclIndex $(REMOVE_F1) |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 322 | ifdef GITGUI_MACOSXAPP |
| 323 | $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)/Git Gui.app' $(REMOVE_F1) |
| 324 | $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/git-gui.tcl $(REMOVE_F1) |
| 325 | endif |
| 326 | $(QUIET)$(foreach p,$(ALL_LIBFILES) $(NONTCL_LIBFILES), $(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/$(notdir $p) $(REMOVE_F1) &&) true |
| 327 | $(QUIET)$(CLEAN_DST) '$(DESTDIR_SQ)$(msgsdir_SQ)' |
| 328 | $(QUIET)$(foreach p,$(ALL_MSGFILES), $(REMOVE_F0)'$(DESTDIR_SQ)$(msgsdir_SQ)'/$(notdir $p) $(REMOVE_F1) &&) true |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 329 | $(QUIET)$(REMOVE_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(REMOVE_D1) |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 330 | $(QUIET)$(REMOVE_D0)'$(DESTDIR_SQ)$(msgsdir_SQ)' $(REMOVE_D1) |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 331 | $(QUIET)$(REMOVE_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(REMOVE_D1) |
| 332 | $(QUIET)$(REMOVE_D0)`dirname '$(DESTDIR_SQ)$(libdir_SQ)'` $(REMOVE_D1) |
| 333 | |
Junio C Hamano | 3ed02de | 2007-03-12 11:43:22 -0700 | [diff] [blame] | 334 | dist-version: |
Junio C Hamano | 67c7575 | 2007-02-12 16:07:29 -0800 | [diff] [blame] | 335 | @mkdir -p $(TARDIR) |
| 336 | @echo $(GITGUI_VERSION) > $(TARDIR)/version |
| 337 | |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 338 | clean:: |
Junio C Hamano | d794d9e | 2007-11-21 00:00:56 -0800 | [diff] [blame] | 339 | $(RM_RF) $(GITGUI_MAIN) lib/tclIndex po/*.msg |
| 340 | $(RM_RF) GIT-VERSION-FILE GIT-GUI-VARS |
| 341 | ifdef GITGUI_MACOSXAPP |
| 342 | $(RM_RF) 'Git Gui.app'* git-gui |
| 343 | endif |
| 344 | ifdef GITGUI_WINDOWS_WRAPPER |
| 345 | $(RM_RF) git-gui |
| 346 | endif |
Junio C Hamano | b4d2b04 | 2007-02-11 23:04:00 -0800 | [diff] [blame] | 347 | |
Junio C Hamano | 9269df9 | 2007-09-17 23:50:17 -0700 | [diff] [blame] | 348 | .PHONY: all install uninstall dist-version clean |
Junio C Hamano | b30ccd7 | 2010-01-24 11:16:26 -0800 | [diff] [blame] | 349 | .PHONY: FORCE |