8
8
#
9
9
10
10
GIT-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 . $@
15
12
16
13
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
17
14
uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
@@ -75,7 +72,6 @@ ifndef V
75
72
QUIET_INDEX = $(QUIET)echo ' ' INDEX $(dir $@) &&
76
73
QUIET_MSGFMT0 = $(QUIET)printf ' MSGFMT %12s ' $@ && v=`
77
74
QUIET_MSGFMT1 = 2>&1` && echo "$$v" | sed -e 's/fuzzy translations/fuzzy/' | sed -e 's/ messages*//g'
78
- QUIET_2DEVNULL = 2>/dev/null
79
75
80
76
INSTALL_D0 = dir=
81
77
INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m 755 "$$dir"
@@ -113,7 +109,8 @@ ifeq ($(uname_S),Darwin)
113
109
TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish\ Shell.app
114
110
endif
115
111
endif
116
- TKEXECUTABLE = $(shell basename "$(TKFRAMEWORK)" .app)
112
+ TKEXECUTABLE = $(TKFRAMEWORK)/Contents/MacOS/$(shell basename "$(TKFRAMEWORK)" .app)
113
+ TKEXECUTABLE_SQ = $(subst ','\'',$(TKEXECUTABLE))
117
114
endif
118
115
119
116
ifeq ($(findstring $(firstword -$(MAKEFLAGS ) ) ,s) ,s)
@@ -127,21 +124,17 @@ gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
127
124
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH ) )
128
125
TCL_PATH_SQ = $(subst ','\'',$(TCL_PATH ) )
129
126
TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH ) )
130
- TCLTK_PATH_SED = $(subst ','\'',$(subst \,\\,$(TCLTK_PATH ) ) )
131
127
132
128
gg_libdir ?= $(sharedir ) /git-gui/lib
133
129
libdir_SQ = $(subst ','\'',$(gg_libdir ) )
134
- libdir_SED = $(subst ','\'',$(subst \,\\,$(gg_libdir_sed_in ) ) )
135
130
exedir = $(dir $(gitexecdir ) ) share/git-gui/lib
136
131
137
- GITGUI_SCRIPT := $$0
138
132
GITGUI_RELATIVE :=
139
133
GITGUI_MACOSXAPP :=
140
134
141
135
ifeq ($(exedir ) ,$(gg_libdir ) )
142
136
GITGUI_RELATIVE := 1
143
137
endif
144
- gg_libdir_sed_in := $(gg_libdir )
145
138
ifeq ($(uname_S ) ,Darwin)
146
139
ifeq ($(shell test -d $(TKFRAMEWORK) && echo y),y)
147
140
GITGUI_MACOSXAPP := YesPlease
@@ -158,41 +151,15 @@ endif
158
151
ifdef GITGUI_MACOSXAPP
159
152
GITGUI_MAIN := git-gui.tcl
160
153
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 \
177
158
macosx/Info.plist \
178
159
macosx/git-gui.icns \
179
160
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
196
163
endif
197
164
198
165
ifdef GITGUI_WINDOWS_WRAPPER
@@ -202,18 +169,8 @@ git-gui: windows/git-gui.sh
202
169
cp $< $@
203
170
endif
204
171
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
217
174
218
175
XGETTEXT ?= xgettext
219
176
ifdef NO_MSGFMT
@@ -238,35 +195,21 @@ update-po:: $(PO_TEMPLATE)
238
195
$(ALL_MSGFILES ) : % .msg : % .po
239
196
$(QUIET_MSGFMT0 )$(MSGFMT ) --statistics --tcl -l $(basename $(notdir $< ) ) -d $(dir $@ ) $< $(QUIET_MSGFMT1 )
240
197
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
270
213
271
214
ifdef GITGUI_MACOSXAPP
272
215
all :: git-gui Git\ Gui.app
@@ -316,13 +259,13 @@ endif
316
259
$(QUIET)$(REMOVE_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(REMOVE_D1)
317
260
$(QUIET)$(REMOVE_D0)`dirname '$(DESTDIR_SQ)$(libdir_SQ)'` $(REMOVE_D1)
318
261
319
- dist-version :
262
+ dist-version : GIT-VERSION-FILE
320
263
@mkdir -p $(TARDIR )
321
- @echo $( GITGUI_VERSION ) > $(TARDIR ) /version
264
+ @sed ' s|^ GITGUI_VERSION=|| ' < GIT-VERSION-FILE > $(TARDIR ) /version
322
265
323
266
clean ::
324
267
$(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
326
269
ifdef GITGUI_MACOSXAPP
327
270
$(RM_RF) 'Git Gui.app'* git-gui
328
271
endif
0 commit comments