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 --no-recurse HEAD 2>/dev/null ||
82 $GIT symbolic-ref HEAD 2>/dev/null)" : 'refs/heads/\(.*\)' ||
86 determine_version
() {
87 v
=`$GIT describe HEAD`
88 expr "$v" : '.*-g[0-9a-f]*$' >/dev
/null
&& {
89 echo >&2 "You are on 'snap' but $v is not an official version."
95 determine_long_version
() {
96 $GIT describe HEAD
2>/dev
/null ||
echo unknown-g00000000 |
100 BUILTIN_CLEAN_FIX
=8687f777
101 if ! git merge-base
--is-ancestor $BUILTIN_CLEAN_FIX HEAD
103 NO_PEDANTIC
=YesPlease
107 case "$NO_PEDANTIC" in
113 # PEDANT="-Wtypedef-redefinition $PEDANT"
114 PEDANT
="-Werror -Wold-style-definition $PEDANT"
115 PEDANT
="-Wpointer-arith -Woverflow -Wunused $PEDANT"
116 PEDANT
="-Wold-style-declaration -Wstrict-prototypes $PEDANT"
117 PEDANT
="-Wstrict-prototypes $PEDANT"
121 while case $# in 0) break ;; esac
125 echo >&2 "(no need to say --pedantic)"
133 -noprove |
--noprove)
143 testpen
=testpen.
${1#--memtrash=}
159 GIT_TEST_LONG
=YesPlease
180 if test -n "$testpen"
182 for TRASH
in /dev
/shm
/tmp
""
184 if test -n "$TRASH" &&
185 mkdir
-p "$TRASH/$testpen" 2>/dev
/null
&&
186 test -w "$TRASH/$testpen"
188 testpen
=$
(cd "$TRASH/$testpen" && /bin
/pwd)
189 TRASH
="--root=$testpen"
190 clean
="$clean; rmdir '$testpen'"
194 GIT_TEST_OPTS
="$TRASH${GIT_TEST_OPTS+" $GIT_TEST_OPTS"}"
198 test -f /bin
/dash || with_dash
=
200 if test -z "$tests" && test -n "$skip"
202 GIT_SKIP_TESTS
="${GIT_SKIP_TESTS:-$skip}"
203 export GIT_SKIP_TESTS
205 if test -z "$oldtest" &&
206 sh
-c 'prove --version >/dev/null 2>&1' &&
207 sh
-c 'prove --exec : >/dev/null 2>&1'
210 DEFAULT_TEST_TARGET
=prove
211 GIT_PROVE_OPTS
="${GIT_PROVE_OPTS:+$GIT_PROVE_OPTS }--timer $jobs"
212 export DEFAULT_TEST_TARGET GIT_PROVE_OPTS
218 branch
=$
(determine_branch
)
221 next | maint |
$MASTER | seen | jch
)
222 prefix
="$inst_prefix/git-$branch"
225 v
=$
(determine_version
)
226 prefix
="$inst_prefix/git-snap-$v"
229 prefix
="$inst_prefix/git-test" ;;
232 clean
="$clean; rm -f version"
233 determine_long_version
>version
235 set "prefix=$prefix" "$@"
236 if test -n "$with_dash" && test -f /bin
/dash
238 set "SHELL_PATH=/bin/dash" "$@"
241 if grep >/dev
/null DC_SHA1 Makefile
243 SHA1IMPLEMENTATION
=DC_SHA1
=YesPlease
244 elif grep >/dev
/null BLK_SHA1 Makefile
246 SHA1IMPLEMENTATION
=BLK_SHA1
=YesPlease
251 if test -f sha256
/nettle.h
&& test -f /usr
/include
/nettle
/sha2.h
253 SHA1IMPLEMENTATION
="$SHA1IMPLEMENTATION NETTLE_SHA256=YesPlease"
256 set MAN_BASE_URL
='"http://www.kernel.org/pub/software/scm/git/docs/"' \
257 MAN_BOLD_LITERAL
=YesPlease \
258 $SHA1IMPLEMENTATION \
260 USE_LIBPCRE
=YesPlease \
264 if test -z "${make:+set}" && {
265 test -x /usr
/local
/bin
/gmake ||
266 test -x /usr
/pkg
/bin
/gmake ||
267 test -x /usr
/bin
/gmake
272 if test -f /bin
/ginstall
274 set INSTALL
=ginstall
"$@"
277 unset SSH_AGENT_PID SSH_CLIENT SSH_TTY SSH_AUTH_SOCK SSH_CONNECTION \
278 GPG_AGENT_INFO GNOME_KEYRING_CONTROL GNOME_KEYRING_PID \
279 XDG_SESSION_COOKIE XDG_SESSION_PATH XDG_SEAT_PATH XDG_DATA_DIRS \
280 PGPPATH AUTO_PROXY WINDOWID SESSION_MANAGER XDG_CONFIG_DIRS STY \
281 GDMSESSION KRB5CCNAME GNOME_DESKTOP_SESSION_ID \
282 DBUS_SESSION_BUS_ADDRESS LESSOPEN WINDOW DISPLAY GTK_IM_MODULE \
283 XDG_CURRENT_DESKTOP LESSCLOSE XAUTHORITY
285 # O=-fsanitize=address Meta/Make
289 ETC_GITCONFIG
=$prefix/etc
/gitconfig \
290 ${DEVELOPER:+"DEVELOPER=YesPlease"} \
291 SPATCH_FLAGS
="--all-includes --recursive-includes --patch ." \
292 SPATCH_BATCH_SIZE
=16 \
293 CFLAGS
="-g -Wall -Wunused -Wdeclaration-after-statement -std=gnu99${O:+ $O}" \
294 ${tests:+"T=$tests"} \