# Not a shell script, but something intended to be sourced from shell scripts
git_available_p() {
# Check that (1) we have git (2) this is a git tree.
- (which git >/dev/null 2>/dev/null && git describe >/dev/null 2>/dev/null)
+ if ( which git >/dev/null 2>/dev/null && git describe >/dev/null 2>/dev/null )
+ then
+ # Check that some of the newer git versions we use are supported.
+ if [ "0" != `git rev-list HEAD --not HEAD --count 2> /dev/null` ]
+ then
+ echo "Too old a git installation."
+ echo
+ echo "Your git doesn't support --count option with git rev-list,"
+ echo "which SBCL build requires. Git 1.7.2 or later should work."
+ exit 1
+ else
+ true
+ fi
+ else
+ false
+ fi
}
generate_version() {
- if ([ -f version.lisp-expr ] && ! git_available_p)
+ if [ -f version.lisp-expr -a ! git_available_p ]
then
# Relase tarball, leave version.lisp-expr alone.
return
- elif ! git_available_p
+ elif [ ! git_available_p ]
then
echo "Can't run 'git describe' and version.lisp-expr is missing." >&2
echo "To fix this, either install git or create a fake version.lisp-expr file." >&2
exit 1
fi
# Build it.
- version_head=$(git rev-parse HEAD)
+ version_head=`git rev-parse HEAD`
if [ -z "$SBCL_BUILDING_RELEASE_FROM" ]
then
version_root="origin/master"
else
version_root="$SBCL_BUILDING_RELEASE_FROM"
fi
- version_base=$(git rev-parse "$version_root")
+ version_base=`git rev-parse "$version_root"`
version_tag=`git describe --tags --match="sbcl*" --abbrev=0 $version_base`
version_release=`echo $version_tag | sed -e 's/sbcl[_-]//' | sed -e 's/_/\./g'`
version_n_root=`git rev-list $version_base --not $version_tag --count`