5 case "$(git version 2>/dev/null)" in
9 echo >&2 "No git to bootstrap"
18 probed
=${p%/git-active/bin}
19 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 Wall
="-Wall -Wvla -Wdeclaration-after-statement -Wno-format-zero-length${Wall+ $Wall}"
59 tests
= jobs= skip
= oldtest
= with_dash
= testpen
=
68 OLD_ICONV
=YesPlease
; export OLD_ICONV
72 OLD_ICONV
=YesPlease
; export OLD_ICONV
76 NEEDS_CRYPTO_WITH_SSL
=YesPlease
; export NEEDS_CRYPTO_WITH_SSL
77 NO_PEDANTIC
=CannotDo Wall
=
82 expr "$($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
106 case "$NO_PEDANTIC" in
109 PEDANT
="-Werror -Wold-style-definition -std=c99 $PEDANT"
110 PEDANT
="-Wpointer-arith -Woverflow -Wunused $PEDANT"
111 PEDANT
="-Wold-style-declaration -Wstrict-prototypes $PEDANT"
115 while case $# in 0) break ;; esac
119 echo >&2 "(no need to say --pedantic)"
127 -noprove |
--noprove)
137 testpen
=testpen.
${1#--memtrash=}
169 if test -n "$testpen"
171 for TRASH
in /dev
/shm
/tmp
""
173 if test -n "$TRASH" &&
174 mkdir
-p "$TRASH/$testpen" 2>/dev
/null
&&
175 test -w "$TRASH/$testpen"
177 testpen
=$
(cd "$TRASH/$testpen" && /bin
/pwd)
178 TRASH
="--root=$testpen"
179 clean
="$clean; rmdir '$testpen'"
183 GIT_TEST_OPTS
="$TRASH${GIT_TEST_OPTS+" $GIT_TEST_OPTS"}"
187 O
="${PEDANT}${PEDANT:+ }$O"
189 test -f /bin
/dash || with_dash
=
191 if test -z "$tests" && test -n "$skip"
193 GIT_SKIP_TESTS
="${GIT_SKIP_TESTS:-$skip}"
194 export GIT_SKIP_TESTS
196 if test -z "$oldtest" &&
197 sh
-c 'prove --version >/dev/null 2>&1' &&
198 sh
-c 'prove --exec : >/dev/null 2>&1'
200 DEFAULT_TEST_TARGET
=prove GIT_PROVE_OPTS
="$jobs"
201 export DEFAULT_TEST_TARGET GIT_PROVE_OPTS
207 branch
=$
(determine_branch
)
210 next | maint | master | pu | jch
)
211 prefix
="$inst_prefix/git-$branch"
214 v
=$
(determine_version
)
215 prefix
="$inst_prefix/git-snap-$v"
218 prefix
="$inst_prefix/git-test" ;;
221 clean
="$clean; rm -f version"
222 determine_long_version
>version
224 set "prefix=$prefix" "$@"
225 if test -n "$with_dash" && test -f /bin
/dash
227 set "SHELL_PATH=/bin/dash" "$@"
230 set MAN_BASE_URL
='"http://www.kernel.org/pub/software/scm/git/docs/"' \
231 ASCIIDOC_NO_ROFF
=YesPlease \
232 ASCIIDOC8
=YesPlease \
238 if test -z "${make:+set}" && {
239 test -x /usr
/local
/bin
/gmake ||
240 test -x /usr
/pkg
/bin
/gmake ||
241 test -x /usr
/bin
/gmake
246 if test -f /bin
/ginstall
248 set INSTALL
=ginstall
"$@"
253 if test -n "${NO_CFLAGS+set}"
255 unset OK_TO_USE_CFLAGS
258 unset SSH_AGENT_PID SSH_CLIENT SSH_TTY SSH_AUTH_SOCK SSH_CONNECTION \
259 GPG_AGENT_INFO GNOME_KEYRING_CONTROL GNOME_KEYRING_PID \
260 XDG_SESSION_COOKIE XDG_SESSION_PATH XDG_SEAT_PATH XDG_DATA_DIRS \
261 PGPPATH AUTO_PROXY WINDOWID SESSION_MANAGER XDG_CONFIG_DIRS STY \
262 GDMSESSION KRB5CCNAME GNOME_DESKTOP_SESSION_ID \
263 DBUS_SESSION_BUS_ADDRESS LESSOPEN WINDOW DISPLAY GTK_IM_MODULE \
264 XDG_CURRENT_DESKTOP LESSCLOSE XAUTHORITY
268 ETC_GITCONFIG
=$prefix/etc
/gitconfig \
269 ${OK_TO_USE_CFLAGS+"CFLAGS=$CFLAGS"} \
270 ${tests:+"T=$tests"} \