aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2025-03-11 11:07:19 +0100
committerPatrick Steinhardt <ps@pks.im>2025-05-13 08:27:11 +0200
commit2cc5b0facfa4781b7dd4d572bdf22ec448054023 (patch)
tree480e1c31a41c0ed39df64e67b3364760dc49dad6
parent854e88335a3e68af46f62ce72037293920bd06f2 (diff)
downloadgit-2cc5b0facfa4781b7dd4d572bdf22ec448054023.tar.gz
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>
-rw-r--r--Makefile16
-rwxr-xr-xgenerate-tclindex.sh32
2 files changed, 34 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 58a65dba24..5166bba1f2 100644
--- a/Makefile
+++ b/Makefile
@@ -75,7 +75,6 @@ ifndef V
QUIET_INDEX = $(QUIET)echo ' ' INDEX $(dir $@) &&
QUIET_MSGFMT0 = $(QUIET)printf ' MSGFMT %12s ' $@ && v=`
QUIET_MSGFMT1 = 2>&1` && echo "$$v" | sed -e 's/fuzzy translations/fuzzy/' | sed -e 's/ messages*//g'
- QUIET_2DEVNULL = 2>/dev/null
INSTALL_D0 = dir=
INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m 755 "$$dir"
@@ -226,19 +225,8 @@ update-po:: $(PO_TEMPLATE)
$(ALL_MSGFILES): %.msg : %.po
$(QUIET_MSGFMT0)$(MSGFMT) --statistics --tcl -l $(basename $(notdir $<)) -d $(dir $@) $< $(QUIET_MSGFMT1)
-lib/tclIndex: $(ALL_LIBFILES) GIT-GUI-BUILD-OPTIONS
- $(QUIET_INDEX)if echo \
- $(foreach p,$(PRELOAD_FILES),source $p\;) \
- auto_mkindex lib $(patsubst lib/%,%,$(sort $(ALL_LIBFILES))) \
- | $(TCL_PATH) $(QUIET_2DEVNULL); then : ok; \
- else \
- echo >&2 " * $(TCL_PATH) failed; using unoptimized loading"; \
- rm -f $@ ; \
- echo '# Autogenerated by git-gui Makefile' >$@ && \
- echo >>$@ && \
- $(foreach p,$(PRELOAD_FILES) $(sort $(ALL_LIBFILES)),echo '$(subst lib/,,$p)' >>$@ &&) \
- echo >>$@ ; \
- fi
+lib/tclIndex: $(ALL_LIBFILES) generate-tclindex.sh GIT-GUI-BUILD-OPTIONS
+ $(QUIET_INDEX)$(SHELL_PATH) generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS $(ALL_LIBFILES)
GIT-GUI-BUILD-OPTIONS: FORCE
@sed \
diff --git a/generate-tclindex.sh b/generate-tclindex.sh
new file mode 100755
index 0000000000..36e3a0bd90
--- /dev/null
+++ b/generate-tclindex.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+if test "$#" -lt 3
+then
+ echo >&2 "usage: $0 <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE> [<LIBFILE>...]"
+ exit 1
+fi
+
+BUILD_DIR="$1"
+BUILD_OPTIONS="$2"
+shift 2
+LIBFILES="$(echo "$@" | sort | sed 's|lib/||g')"
+
+. "$BUILD_OPTIONS"
+
+cd "$BUILD_DIR"
+
+if {
+ echo "source lib/class.tcl;"
+ echo "auto_mkindex lib $LIBFILES"
+} | "$TCL_PATH"
+then
+ : ok
+else
+ echo >&2 " * $TCL_PATH failed; using unoptimized loading"
+ rm -f $@
+ echo '# Autogenerated by git-gui Makefile' >lib/tclIndex
+ echo >>lib/tclIndex
+ echo "class.tcl" >>lib/tclIndex
+ printf "%s\n" $LIBFILES >>lib/tclIndex
+ echo >>lib/tclIndex
+fi