9
9
#
10
10
11
11
GIT-VERSION-FILE : FORCE
12
- @$(SHELL_PATH ) ./GIT-VERSION-GEN
13
- ifneq ($(MAKECMDGOALS ) ,clean)
14
- -include GIT-VERSION-FILE
15
- endif
12
+ @$(SHELL_PATH ) ./GIT-VERSION-GEN . $@
16
13
17
14
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
18
15
uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
@@ -76,7 +73,6 @@ ifndef V
76
73
QUIET_INDEX = $(QUIET)echo ' ' INDEX $(dir $@) &&
77
74
QUIET_MSGFMT0 = $(QUIET)printf ' MSGFMT %12s ' $@ && v=`
78
75
QUIET_MSGFMT1 = 2>&1` && echo "$$v" | sed -e 's/fuzzy translations/fuzzy/' | sed -e 's/ messages*//g'
79
- QUIET_2DEVNULL = 2>/dev/null
80
76
81
77
INSTALL_D0 = dir=
82
78
INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m 755 "$$dir"
@@ -114,7 +110,8 @@ ifeq ($(uname_S),Darwin)
114
110
TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish\ Shell.app
115
111
endif
116
112
endif
117
- TKEXECUTABLE = $(shell basename "$(TKFRAMEWORK)" .app)
113
+ TKEXECUTABLE = $(TKFRAMEWORK)/Contents/MacOS/$(shell basename "$(TKFRAMEWORK)" .app)
114
+ TKEXECUTABLE_SQ = $(subst ','\'',$(TKEXECUTABLE))
118
115
endif
119
116
120
117
ifeq ($(findstring $(firstword -$(MAKEFLAGS ) ) ,s) ,s)
@@ -128,21 +125,17 @@ gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
128
125
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH ) )
129
126
TCL_PATH_SQ = $(subst ','\'',$(TCL_PATH ) )
130
127
TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH ) )
131
- TCLTK_PATH_SED = $(subst ','\'',$(subst \,\\,$(TCLTK_PATH ) ) )
132
128
133
129
gg_libdir ?= $(sharedir ) /git-gui/lib
134
130
libdir_SQ = $(subst ','\'',$(gg_libdir ) )
135
- libdir_SED = $(subst ','\'',$(subst \,\\,$(gg_libdir_sed_in ) ) )
136
131
exedir = $(dir $(gitexecdir ) ) share/git-gui/lib
137
132
138
- GITGUI_SCRIPT := $$0
139
133
GITGUI_RELATIVE :=
140
134
GITGUI_MACOSXAPP :=
141
135
142
136
ifeq ($(exedir ) ,$(gg_libdir ) )
143
137
GITGUI_RELATIVE := 1
144
138
endif
145
- gg_libdir_sed_in := $(gg_libdir )
146
139
ifeq ($(uname_S ) ,Darwin)
147
140
ifeq ($(shell test -d $(TKFRAMEWORK) && echo y),y)
148
141
GITGUI_MACOSXAPP := YesPlease
@@ -159,41 +152,15 @@ endif
159
152
ifdef GITGUI_MACOSXAPP
160
153
GITGUI_MAIN := git-gui.tcl
161
154
162
- git-gui : GIT-VERSION-FILE GIT-GUI-VARS
163
- $(QUIET_GEN ) rm -f $@ $@ + && \
164
- echo ' #!$(SHELL_PATH_SQ)' > $@ + && \
165
- echo ' if test "z$$*" = zversion ||' >> $@ + && \
166
- echo ' test "z$$*" = z--version' >> $@ + && \
167
- echo then >> $@ + && \
168
- echo ' ' echo \' git-gui version ' $(GITGUI_VERSION)' \' >> $@ + && \
169
- echo else >> $@ + && \
170
- echo ' libdir="$${GIT_GUI_LIB_DIR:-$(libdir_SQ)}"' >> $@ + && \
171
- echo ' ' exec \" ' $$libdir/Git Gui.app/Contents/MacOS/$(subst \,,$(TKEXECUTABLE))' \" \
172
- ' "$$0" "$$@"' >> $@ + && \
173
- echo fi >> $@ + && \
174
- chmod +x $@ + && \
175
- mv $@ + $@
176
-
177
- Git\ Gui.app : GIT-VERSION-FILE GIT-GUI-VARS \
155
+ git-gui : generate-macos-wrapper.sh GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS
156
+ $(QUIET_GEN )$(SHELL_PATH ) generate-macos-wrapper.sh " $@ " ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
157
+
158
+ Git\ Gui.app : GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS \
178
159
macosx/Info.plist \
179
160
macosx/git-gui.icns \
180
161
macosx/AppMain.tcl \
181
- $(TKFRAMEWORK ) /Contents/MacOS/$(TKEXECUTABLE )
182
- $(QUIET_GEN ) rm -rf ' $@' ' $@' + && \
183
- mkdir -p ' $@' +/Contents/MacOS && \
184
- mkdir -p ' $@' +/Contents/Resources/Scripts && \
185
- cp ' $(subst ' ,' \' ' ,$(subst \,,$(TKFRAMEWORK)/Contents/MacOS/$(TKEXECUTABLE)))' \
186
- ' $@' +/Contents/MacOS && \
187
- cp macosx/git-gui.icns ' $@' +/Contents/Resources && \
188
- sed -e ' s/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
189
- -e ' s/@@GITGUI_TKEXECUTABLE@@/$(TKEXECUTABLE)/g' \
190
- macosx/Info.plist \
191
- > ' $@' +/Contents/Info.plist && \
192
- sed -e ' s|@@gitexecdir@@|$(gitexecdir_SQ)|' \
193
- -e ' s|@@GITGUI_LIBDIR@@|$(libdir_SED)|' \
194
- macosx/AppMain.tcl \
195
- > ' $@' +/Contents/Resources/Scripts/AppMain.tcl && \
196
- mv ' $@' + ' $@'
162
+ $(TKEXECUTABLE )
163
+ $(QUIET_GEN )$(SHELL_PATH ) generate-macos-app.sh . " $@ " ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
197
164
endif
198
165
199
166
ifdef GITGUI_WINDOWS_WRAPPER
@@ -203,18 +170,8 @@ git-gui: windows/git-gui.sh
203
170
cp $< $@
204
171
endif
205
172
206
- $(GITGUI_MAIN ) : git-gui.sh GIT-VERSION-FILE GIT-GUI-VARS
207
- $(QUIET_GEN ) rm -f $@ $@ + && \
208
- sed -e ' 1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
209
- -e ' s|@@SHELL_PATH@@|$(SHELL_PATH_SQ)|' \
210
- -e ' 1,30s|^ argv0=$$0| argv0=$(GITGUI_SCRIPT)|' \
211
- -e ' 1,30s|^ exec wish | exec ' \' ' $(TCLTK_PATH_SED)' \' ' |' \
212
- -e ' s/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
213
- -e ' s|@@GITGUI_RELATIVE@@|$(GITGUI_RELATIVE)|' \
214
- -e ' $(GITGUI_RELATIVE)s|@@GITGUI_LIBDIR@@|$(libdir_SED)|' \
215
- git-gui.sh > $@ + && \
216
- chmod +x $@ + && \
217
- mv $@ + $@
173
+ $(GITGUI_MAIN ) : git-gui.sh GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS
174
+ $(QUIET_GEN )$(SHELL_PATH ) generate-git-gui.sh " $<" " $@ " ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
218
175
219
176
XGETTEXT ?= xgettext
220
177
ifdef NO_MSGFMT
@@ -239,35 +196,21 @@ update-po:: $(PO_TEMPLATE)
239
196
$(ALL_MSGFILES ) : % .msg : % .po
240
197
$(QUIET_MSGFMT0 )$(MSGFMT ) --statistics --tcl -l $(basename $(notdir $< ) ) -d $(dir $@ ) $< $(QUIET_MSGFMT1 )
241
198
242
- lib/tclIndex : $(ALL_LIBFILES ) GIT-GUI-VARS
243
- $(QUIET_INDEX ) if echo \
244
- $(foreach p,$(PRELOAD_FILES ) ,source $p\;) \
245
- auto_mkindex lib $(patsubst lib/% ,% ,$(sort $(ALL_LIBFILES ) ) ) \
246
- | $(TCL_PATH ) $(QUIET_2DEVNULL ) ; then : ok; \
247
- else \
248
- echo >&2 " * $( TCL_PATH) failed; using unoptimized loading" ; \
249
- rm -f $@ ; \
250
- echo ' # Autogenerated by git-gui Makefile' > $@ && \
251
- echo >> $@ && \
252
- $(foreach p,$(PRELOAD_FILES ) $(sort $(ALL_LIBFILES ) ) ,echo '$(subst lib/,,$p) ' >>$@ &&) \
253
- echo >> $@ ; \
254
- fi
255
-
256
- TRACK_VARS = \
257
- $(subst ','\'',SHELL_PATH='$(SHELL_PATH_SQ ) ') \
258
- $(subst ','\'',TCL_PATH='$(TCL_PATH_SQ ) ') \
259
- $(subst ','\'',TCLTK_PATH='$(TCLTK_PATH_SQ ) ') \
260
- $(subst ','\'',gitexecdir='$(gitexecdir_SQ ) ') \
261
- $(subst ','\'',gg_libdir='$(libdir_SQ ) ') \
262
- GITGUI_MACOSXAPP=$(GITGUI_MACOSXAPP ) \
263
- # end TRACK_VARS
264
-
265
- GIT-GUI-VARS : FORCE
266
- @VARS=' $(TRACK_VARS)' ; \
267
- if test x" $$ VARS" ! = x" ` cat $@ 2> /dev/null` " ; then \
268
- echo >&2 " * new locations or Tcl/Tk interpreter" ; \
269
- echo > $@ " $$ VARS" ; \
270
- fi
199
+ lib/tclIndex : $(ALL_LIBFILES ) generate-tclindex.sh GIT-GUI-BUILD-OPTIONS
200
+ $(QUIET_INDEX )$(SHELL_PATH ) generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS $(ALL_LIBFILES )
201
+
202
+ GIT-GUI-BUILD-OPTIONS : FORCE
203
+ @sed \
204
+ -e ' s|@GITGUI_GITEXECDIR@|$(gitexecdir_SQ)|' \
205
+ -e ' s|@GITGUI_LIBDIR@|$(libdir_SQ)|' \
206
+ -e ' s|@GITGUI_RELATIVE@|$(GITGUI_RELATIVE)|' \
207
+ -e ' s|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
208
+ -e ' s|@TCLTK_PATH@|$(TCLTK_PATH_SQ)|' \
209
+ -e ' s|@TCL_PATH@|$(TCL_PATH_SQ)|' \
210
+ -e ' s|@TKEXECUTABLE@|$(TKEXECUTABLE_SQ)|' \
211
+ $@ .in > $@ +
212
+ @if grep -q ' ^[A-Z][A-Z_]*=@.*@$$' $@ +; then echo " Unsubstituted build options in $@ " >&2 && exit 1; fi
213
+ @if cmp $@ + $@ > /dev/null 2>&1 ; then $(RM ) $@ +; else mv $@ + $@ ; fi
271
214
272
215
ifdef GITGUI_MACOSXAPP
273
216
all :: git-gui Git\ Gui.app
@@ -317,13 +260,13 @@ endif
317
260
$(QUIET)$(REMOVE_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(REMOVE_D1)
318
261
$(QUIET)$(REMOVE_D0)`dirname '$(DESTDIR_SQ)$(libdir_SQ)'` $(REMOVE_D1)
319
262
320
- dist-version :
263
+ dist-version : GIT-VERSION-FILE
321
264
@mkdir -p $(TARDIR )
322
- @echo $( GITGUI_VERSION ) > $(TARDIR ) /version
265
+ @sed ' s|^ GITGUI_VERSION=|| ' < GIT-VERSION-FILE > $(TARDIR ) /version
323
266
324
267
clean ::
325
268
$(RM_RF ) $(GITGUI_MAIN ) lib/tclIndex po/* .msg $(PO_TEMPLATE )
326
- $(RM_RF ) GIT-VERSION-FILE GIT-GUI-VARS
269
+ $(RM_RF ) GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS
327
270
ifdef GITGUI_MACOSXAPP
328
271
$(RM_RF) 'Git Gui.app'* git-gui
329
272
endif
0 commit comments