7 case "$(git version 2>/dev/null)" in
11 echo >&2 "No git to bootstrap"
20 probed=${p%/git-active/bin}
21 if test "$probed" != "$p"
32 for cv in PYTHON_PATH=python TCL_PATH=tclsh TCLTKPATH=wish
37 if test -f "/usr/bin/$cmd"
41 for p in /usr/bin /usr/local/bin
45 echo "$var=$p/$cmd; export $var"
48 found=$(find "$p/$cmd"* -type f 2>/dev/null | head -n 1)
51 echo "$var=$found; export $var"
58 tests= jobs= skip= oldtest= with_dash= testpen=
67 OLD_ICONV=YesPlease; export OLD_ICONV
71 OLD_ICONV=YesPlease; export OLD_ICONV
75 NEEDS_CRYPTO_WITH_SSL=YesPlease ; export NEEDS_CRYPTO_WITH_SSL
81 expr "$($GIT symbolic-ref HEAD 2>/dev/null)" : 'refs/heads/\(.*\)' ||
85 determine_version () {
86 v=`$GIT describe HEAD`
87 expr "$v" : '.*-g[0-9a-f]*$' >/dev/null && {
88 echo >&2 "You are on 'snap' but $v is not an official version."
94 determine_long_version () {
95 $GIT describe HEAD 2>/dev/null || echo unknown-g00000000 |
99 BUILTIN_CLEAN_FIX=8687f777
100 if ! git merge-base --is-ancestor $BUILTIN_CLEAN_FIX HEAD
102 NO_PEDANTIC=YesPlease
106 case "$NO_PEDANTIC" in
112 # PEDANT="-Wtypedef-redefinition $PEDANT"
113 PEDANT="-Werror -Wold-style-definition $PEDANT"
114 PEDANT="-Wpointer-arith -Woverflow -Wunused $PEDANT"
115 PEDANT="-Wold-style-declaration -Wstrict-prototypes $PEDANT"
116 PEDANT="-Wstrict-prototypes $PEDANT"
120 while case $# in 0) break ;; esac
124 echo >&2 "(no need to say --pedantic)"
132 -noprove | --noprove)
142 testpen=testpen.${1#--memtrash=}
158 GIT_TEST_LONG=YesPlease
179 if test -n "$testpen"
181 for TRASH in /dev/shm /tmp ""
183 if test -n "$TRASH" &&
184 mkdir -p "$TRASH/$testpen" 2>/dev/null &&
185 test -w "$TRASH/$testpen"
187 testpen=$(cd "$TRASH/$testpen" && /bin/pwd)
188 TRASH="--root=$testpen"
189 clean="$clean; rmdir '$testpen'"
193 GIT_TEST_OPTS="$TRASH${GIT_TEST_OPTS+" $GIT_TEST_OPTS"}"
197 test -f /bin/dash || with_dash=
199 if test -z "$tests" && test -n "$skip"
201 GIT_SKIP_TESTS="${GIT_SKIP_TESTS:-$skip}"
202 export GIT_SKIP_TESTS
204 if test -z "$oldtest" &&
205 sh -c 'prove --version >/dev/null 2>&1' &&
206 sh -c 'prove --exec : >/dev/null 2>&1'
209 DEFAULT_TEST_TARGET=prove
210 GIT_PROVE_OPTS="${GIT_PROVE_OPTS:+$GIT_PROVE_OPTS }--timer $jobs"
211 export DEFAULT_TEST_TARGET GIT_PROVE_OPTS
217 branch=$(determine_branch)
220 next | maint | $MASTER | seen | jch)
221 prefix="$inst_prefix/git-$branch"
224 v=$(determine_version)
225 prefix="$inst_prefix/git-snap-$v"
228 prefix="$inst_prefix/git-test" ;;
231 clean="$clean; rm -f version"
232 determine_long_version >version
234 set "prefix=$prefix" "$@"
235 if test -n "$with_dash" && test -f /bin/dash
237 set "SHELL_PATH=/bin/dash" "$@"
240 if grep >/dev/null DC_SHA1 Makefile
242 SHA1IMPLEMENTATION=DC_SHA1=YesPlease
243 elif grep >/dev/null BLK_SHA1 Makefile
245 SHA1IMPLEMENTATION=BLK_SHA1=YesPlease
250 set MAN_BASE_URL='"http://www.kernel.org/pub/software/scm/git/docs/"' \
251 MAN_BOLD_LITERAL=YesPlease \
252 $SHA1IMPLEMENTATION \
257 if test -z "${make:+set}" && {
258 test -x /usr/local/bin/gmake ||
259 test -x /usr/pkg/bin/gmake ||
260 test -x /usr/bin/gmake
265 if test -f /bin/ginstall
267 set INSTALL=ginstall "$@"
270 unset SSH_AGENT_PID SSH_CLIENT SSH_TTY SSH_AUTH_SOCK SSH_CONNECTION \
271 GPG_AGENT_INFO GNOME_KEYRING_CONTROL GNOME_KEYRING_PID \
272 XDG_SESSION_COOKIE XDG_SESSION_PATH XDG_SEAT_PATH XDG_DATA_DIRS \
273 PGPPATH AUTO_PROXY WINDOWID SESSION_MANAGER XDG_CONFIG_DIRS STY \
274 GDMSESSION KRB5CCNAME GNOME_DESKTOP_SESSION_ID \
275 DBUS_SESSION_BUS_ADDRESS LESSOPEN WINDOW DISPLAY GTK_IM_MODULE \
276 XDG_CURRENT_DESKTOP LESSCLOSE XAUTHORITY
278 # O=-fsanitize=address Meta/Make
282 ETC_GITCONFIG=$prefix/etc/gitconfig \
283 ${DEVELOPER:+"DEVELOPER=YesPlease"} \
284 ${O:+CFLAGS="-g -Wall $O"} \
285 ${tests:+"T=$tests"} \