88#
99
1010GIT-VERSION-FILE : FORCE
11- @$(SHELL_PATH ) ./GIT-VERSION-GEN
12- ifneq ($(MAKECMDGOALS ) ,clean)
13- -include GIT-VERSION-FILE
14- endif
11+ @$(SHELL_PATH ) ./GIT-VERSION-GEN . $@
1512
1613uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
1714uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
@@ -75,7 +72,6 @@ ifndef V
7572 QUIET_INDEX = $(QUIET)echo ' ' INDEX $(dir $@) &&
7673 QUIET_MSGFMT0 = $(QUIET)printf ' MSGFMT %12s ' $@ && v=`
7774 QUIET_MSGFMT1 = 2>&1` && echo "$$v" | sed -e 's/fuzzy translations/fuzzy/' | sed -e 's/ messages*//g'
78- QUIET_2DEVNULL = 2>/dev/null
7975
8076 INSTALL_D0 = dir=
8177 INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m 755 "$$dir"
@@ -113,7 +109,8 @@ ifeq ($(uname_S),Darwin)
113109 TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish\ Shell.app
114110 endif
115111 endif
116- TKEXECUTABLE = $(shell basename "$(TKFRAMEWORK)" .app)
112+ TKEXECUTABLE = $(TKFRAMEWORK)/Contents/MacOS/$(shell basename "$(TKFRAMEWORK)" .app)
113+ TKEXECUTABLE_SQ = $(subst ','\'',$(TKEXECUTABLE))
117114endif
118115
119116ifeq ($(findstring $(firstword -$(MAKEFLAGS ) ) ,s) ,s)
@@ -127,21 +124,17 @@ gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
127124SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH ) )
128125TCL_PATH_SQ = $(subst ','\'',$(TCL_PATH ) )
129126TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH ) )
130- TCLTK_PATH_SED = $(subst ','\'',$(subst \,\\,$(TCLTK_PATH ) ) )
131127
132128gg_libdir ?= $(sharedir ) /git-gui/lib
133129libdir_SQ = $(subst ','\'',$(gg_libdir ) )
134- libdir_SED = $(subst ','\'',$(subst \,\\,$(gg_libdir_sed_in ) ) )
135130exedir = $(dir $(gitexecdir ) ) share/git-gui/lib
136131
137- GITGUI_SCRIPT := $$0
138132GITGUI_RELATIVE :=
139133GITGUI_MACOSXAPP :=
140134
141135ifeq ($(exedir ) ,$(gg_libdir ) )
142136 GITGUI_RELATIVE := 1
143137endif
144- gg_libdir_sed_in := $(gg_libdir )
145138ifeq ($(uname_S ) ,Darwin)
146139 ifeq ($(shell test -d $(TKFRAMEWORK) && echo y),y)
147140 GITGUI_MACOSXAPP := YesPlease
@@ -158,41 +151,15 @@ endif
158151ifdef GITGUI_MACOSXAPP
159152GITGUI_MAIN := git-gui.tcl
160153
161- git-gui : GIT-VERSION-FILE GIT-GUI-VARS
162- $(QUIET_GEN ) rm -f $@ $@ + && \
163- echo ' #!$(SHELL_PATH_SQ)' > $@ + && \
164- echo ' if test "z$$*" = zversion ||' >> $@ + && \
165- echo ' test "z$$*" = z--version' >> $@ + && \
166- echo then >> $@ + && \
167- echo ' ' echo \' git-gui version ' $(GITGUI_VERSION)' \' >> $@ + && \
168- echo else >> $@ + && \
169- echo ' libdir="$${GIT_GUI_LIB_DIR:-$(libdir_SQ)}"' >> $@ + && \
170- echo ' ' exec \" ' $$libdir/Git Gui.app/Contents/MacOS/$(subst \,,$(TKEXECUTABLE))' \" \
171- ' "$$0" "$$@"' >> $@ + && \
172- echo fi >> $@ + && \
173- chmod +x $@ + && \
174- mv $@ + $@
175-
176- Git\ Gui.app : GIT-VERSION-FILE GIT-GUI-VARS \
154+ git-gui : generate-macos-wrapper.sh GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS
155+ $(QUIET_GEN )$(SHELL_PATH ) generate-macos-wrapper.sh " $@ " ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
156+
157+ Git\ Gui.app : GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS \
177158 macosx/Info.plist \
178159 macosx/git-gui.icns \
179160 macosx/AppMain.tcl \
180- $(TKFRAMEWORK ) /Contents/MacOS/$(TKEXECUTABLE )
181- $(QUIET_GEN ) rm -rf ' $@' ' $@' + && \
182- mkdir -p ' $@' +/Contents/MacOS && \
183- mkdir -p ' $@' +/Contents/Resources/Scripts && \
184- cp ' $(subst ' ,' \' ' ,$(subst \,,$(TKFRAMEWORK)/Contents/MacOS/$(TKEXECUTABLE)))' \
185- ' $@' +/Contents/MacOS && \
186- cp macosx/git-gui.icns ' $@' +/Contents/Resources && \
187- sed -e ' s/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
188- -e ' s/@@GITGUI_TKEXECUTABLE@@/$(TKEXECUTABLE)/g' \
189- macosx/Info.plist \
190- > ' $@' +/Contents/Info.plist && \
191- sed -e ' s|@@gitexecdir@@|$(gitexecdir_SQ)|' \
192- -e ' s|@@GITGUI_LIBDIR@@|$(libdir_SED)|' \
193- macosx/AppMain.tcl \
194- > ' $@' +/Contents/Resources/Scripts/AppMain.tcl && \
195- mv ' $@' + ' $@'
161+ $(TKEXECUTABLE )
162+ $(QUIET_GEN )$(SHELL_PATH ) generate-macos-app.sh . " $@ " ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
196163endif
197164
198165ifdef GITGUI_WINDOWS_WRAPPER
@@ -202,18 +169,8 @@ git-gui: windows/git-gui.sh
202169 cp $< $@
203170endif
204171
205- $(GITGUI_MAIN ) : git-gui.sh GIT-VERSION-FILE GIT-GUI-VARS
206- $(QUIET_GEN ) rm -f $@ $@ + && \
207- sed -e ' 1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
208- -e ' s|@@SHELL_PATH@@|$(SHELL_PATH_SQ)|' \
209- -e ' 1,30s|^ argv0=$$0| argv0=$(GITGUI_SCRIPT)|' \
210- -e ' 1,30s|^ exec wish | exec ' \' ' $(TCLTK_PATH_SED)' \' ' |' \
211- -e ' s/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
212- -e ' s|@@GITGUI_RELATIVE@@|$(GITGUI_RELATIVE)|' \
213- -e ' $(GITGUI_RELATIVE)s|@@GITGUI_LIBDIR@@|$(libdir_SED)|' \
214- git-gui.sh > $@ + && \
215- chmod +x $@ + && \
216- mv $@ + $@
172+ $(GITGUI_MAIN ) : git-gui.sh GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS
173+ $(QUIET_GEN )$(SHELL_PATH ) generate-git-gui.sh " $<" " $@ " ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
217174
218175XGETTEXT ?= xgettext
219176ifdef NO_MSGFMT
@@ -238,35 +195,21 @@ update-po:: $(PO_TEMPLATE)
238195$(ALL_MSGFILES ) : % .msg : % .po
239196 $(QUIET_MSGFMT0 )$(MSGFMT ) --statistics --tcl -l $(basename $(notdir $< ) ) -d $(dir $@ ) $< $(QUIET_MSGFMT1 )
240197
241- lib/tclIndex : $(ALL_LIBFILES ) GIT-GUI-VARS
242- $(QUIET_INDEX ) if echo \
243- $(foreach p,$(PRELOAD_FILES ) ,source $p\;) \
244- auto_mkindex lib $(patsubst lib/% ,% ,$(sort $(ALL_LIBFILES ) ) ) \
245- | $(TCL_PATH ) $(QUIET_2DEVNULL ) ; then : ok; \
246- else \
247- echo >&2 " * $( TCL_PATH) failed; using unoptimized loading" ; \
248- rm -f $@ ; \
249- echo ' # Autogenerated by git-gui Makefile' > $@ && \
250- echo >> $@ && \
251- $(foreach p,$(PRELOAD_FILES ) $(sort $(ALL_LIBFILES ) ) ,echo '$(subst lib/,,$p) ' >>$@ &&) \
252- echo >> $@ ; \
253- fi
254-
255- TRACK_VARS = \
256- $(subst ','\'',SHELL_PATH='$(SHELL_PATH_SQ ) ') \
257- $(subst ','\'',TCL_PATH='$(TCL_PATH_SQ ) ') \
258- $(subst ','\'',TCLTK_PATH='$(TCLTK_PATH_SQ ) ') \
259- $(subst ','\'',gitexecdir='$(gitexecdir_SQ ) ') \
260- $(subst ','\'',gg_libdir='$(libdir_SQ ) ') \
261- GITGUI_MACOSXAPP=$(GITGUI_MACOSXAPP ) \
262- # end TRACK_VARS
263-
264- GIT-GUI-VARS : FORCE
265- @VARS=' $(TRACK_VARS)' ; \
266- if test x" $$ VARS" ! = x" ` cat $@ 2> /dev/null` " ; then \
267- echo >&2 " * new locations or Tcl/Tk interpreter" ; \
268- echo > $@ " $$ VARS" ; \
269- fi
198+ lib/tclIndex : $(ALL_LIBFILES ) generate-tclindex.sh GIT-GUI-BUILD-OPTIONS
199+ $(QUIET_INDEX )$(SHELL_PATH ) generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS $(ALL_LIBFILES )
200+
201+ GIT-GUI-BUILD-OPTIONS : FORCE
202+ @sed \
203+ -e ' s|@GITGUI_GITEXECDIR@|$(gitexecdir_SQ)|' \
204+ -e ' s|@GITGUI_LIBDIR@|$(libdir_SQ)|' \
205+ -e ' s|@GITGUI_RELATIVE@|$(GITGUI_RELATIVE)|' \
206+ -e ' s|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
207+ -e ' s|@TCLTK_PATH@|$(TCLTK_PATH_SQ)|' \
208+ -e ' s|@TCL_PATH@|$(TCL_PATH_SQ)|' \
209+ -e ' s|@TKEXECUTABLE@|$(TKEXECUTABLE_SQ)|' \
210+ $@ .in > $@ +
211+ @if grep -q ' ^[A-Z][A-Z_]*=@.*@$$' $@ +; then echo " Unsubstituted build options in $@ " >&2 && exit 1; fi
212+ @if cmp $@ + $@ > /dev/null 2>&1 ; then $(RM ) $@ +; else mv $@ + $@ ; fi
270213
271214ifdef GITGUI_MACOSXAPP
272215all :: git-gui Git\ Gui.app
@@ -316,13 +259,13 @@ endif
316259 $(QUIET)$(REMOVE_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(REMOVE_D1)
317260 $(QUIET)$(REMOVE_D0)`dirname '$(DESTDIR_SQ)$(libdir_SQ)'` $(REMOVE_D1)
318261
319- dist-version :
262+ dist-version : GIT-VERSION-FILE
320263 @mkdir -p $(TARDIR )
321- @echo $( GITGUI_VERSION ) > $(TARDIR ) /version
264+ @sed ' s|^ GITGUI_VERSION=|| ' < GIT-VERSION-FILE > $(TARDIR ) /version
322265
323266clean ::
324267 $(RM_RF ) $(GITGUI_MAIN ) lib/tclIndex po/* .msg $(PO_TEMPLATE )
325- $(RM_RF ) GIT-VERSION-FILE GIT-GUI-VARS
268+ $(RM_RF ) GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS
326269ifdef GITGUI_MACOSXAPP
327270 $(RM_RF) 'Git Gui.app'* git-gui
328271endif
0 commit comments