Skip to content

Commit 2cc5b0f

Browse files
committed
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 <[email protected]>
1 parent 854e883 commit 2cc5b0f

File tree

2 files changed

+34
-14
lines changed

2 files changed

+34
-14
lines changed

Makefile

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ ifndef V
7575
QUIET_INDEX = $(QUIET)echo ' ' INDEX $(dir $@) &&
7676
QUIET_MSGFMT0 = $(QUIET)printf ' MSGFMT %12s ' $@ && v=`
7777
QUIET_MSGFMT1 = 2>&1` && echo "$$v" | sed -e 's/fuzzy translations/fuzzy/' | sed -e 's/ messages*//g'
78-
QUIET_2DEVNULL = 2>/dev/null
7978

8079
INSTALL_D0 = dir=
8180
INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m 755 "$$dir"
@@ -226,19 +225,8 @@ update-po:: $(PO_TEMPLATE)
226225
$(ALL_MSGFILES): %.msg : %.po
227226
$(QUIET_MSGFMT0)$(MSGFMT) --statistics --tcl -l $(basename $(notdir $<)) -d $(dir $@) $< $(QUIET_MSGFMT1)
228227

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)
242230

243231
GIT-GUI-BUILD-OPTIONS: FORCE
244232
@sed \

generate-tclindex.sh

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

0 commit comments

Comments
 (0)