]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-gui: extract script to generate "tclIndex"
authorPatrick Steinhardt <ps@pks.im>
Tue, 11 Mar 2025 10:07:19 +0000 (11:07 +0100)
committerPatrick Steinhardt <ps@pks.im>
Tue, 13 May 2025 06:27:11 +0000 (08:27 +0200)
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>
Makefile
generate-tclindex.sh [new file with mode: 0755]

index 58a65dba245706fdf0b490aa60b154038cc28172..5166bba1f2a90bbf8758f196f4cac76d111ee953 100644 (file)
--- 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 (executable)
index 0000000..36e3a0b
--- /dev/null
@@ -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