git-gui: extract script to generate "tclIndex"
Extract script to generate "tclIndex". This change allows us to reuse the build logic with the Meson build system. Signed-off-by: Patrick Steinhardt <ps@pks.im>
Patrick Steinhardt committed
Mar 11, 2025 at 11:07 UTC
2cc5b0facfa4781b7dd4d572bdf22ec448054023
2 files changed
+34
-14
Makefile
+2
-14
@@ -75,7 +75,6 @@ ifndef V
75
QUIET_INDEX = $(QUIET)echo ' ' INDEX $(dir $@) &&
76
QUIET_MSGFMT0 = $(QUIET)printf ' MSGFMT %12s ' $@ && v=`
77
QUIET_MSGFMT1 = 2>&1` && echo "$$v" | sed -e 's/fuzzy translations/fuzzy/' | sed -e 's/ messages*//g'
78
- QUIET_2DEVNULL = 2>/dev/null
78
79
INSTALL_D0 = dir=
80
INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m 755 "$$dir"
@@ -226,19 +225,8 @@ update-po:: $(PO_TEMPLATE)
225
$(ALL_MSGFILES): %.msg : %.po
226
$(QUIET_MSGFMT0)$(MSGFMT) --statistics --tcl -l $(basename $(notdir $<)) -d $(dir $@) $< $(QUIET_MSGFMT1)
227
229
-lib/tclIndex: $(ALL_LIBFILES) GIT-GUI-BUILD-OPTIONS
230
- $(QUIET_INDEX)if echo \
231
- $(foreach p,$(PRELOAD_FILES),source $p\;) \
232
- auto_mkindex lib $(patsubst lib/%,%,$(sort $(ALL_LIBFILES))) \
233
- | $(TCL_PATH) $(QUIET_2DEVNULL); then : ok; \
234
- else \
235
- echo >&2 " * $(TCL_PATH) failed; using unoptimized loading"; \
236
- rm -f $@ ; \
237
- echo '# Autogenerated by git-gui Makefile' >$@ && \
238
- echo >>$@ && \
239
- $(foreach p,$(PRELOAD_FILES) $(sort $(ALL_LIBFILES)),echo '$(subst lib/,,$p)' >>$@ &&) \
240
- echo >>$@ ; \
241
- fi
228
+lib/tclIndex: $(ALL_LIBFILES) generate-tclindex.sh GIT-GUI-BUILD-OPTIONS
229
+ $(QUIET_INDEX)$(SHELL_PATH) generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS $(ALL_LIBFILES)
230
231
GIT-GUI-BUILD-OPTIONS: FORCE
232
@sed \
generate-tclindex.sh
new
+32
@@ -0,0 +1,32 @@
1
+#!/bin/sh
2
+
3
+if test "$#" -lt 3
4
+then
5
+ echo >&2 "usage: $0 <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE> [<LIBFILE>...]"
6
+ exit 1
7
+fi
8
+
9
+BUILD_DIR="$1"
10
+BUILD_OPTIONS="$2"
11
+shift 2
12
+LIBFILES="$(echo "$@" | sort | sed 's|lib/||g')"
13
+
14
+. "$BUILD_OPTIONS"
15
+
16
+cd "$BUILD_DIR"
17
+
18
+if {
19
+ echo "source lib/class.tcl;"
20
+ echo "auto_mkindex lib $LIBFILES"
21
+} | "$TCL_PATH"
22
+then
23
+ : ok
24
+else
25
+ echo >&2 " * $TCL_PATH failed; using unoptimized loading"
26
+ rm -f $@
27
+ echo '# Autogenerated by git-gui Makefile' >lib/tclIndex
28
+ echo >>lib/tclIndex
29
+ echo "class.tcl" >>lib/tclIndex
30
+ printf "%s\n" $LIBFILES >>lib/tclIndex
31
+ echo >>lib/tclIndex
32
+fi