X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=generate-version.sh;h=fdfa3819e8bf04b044a165cfd22712f3dce32c33;hb=19180214a7fd95ab467020469b7182f5ac62bcde;hp=22ed0a488c37898f9c1d93a359f01fef4bf5a8ea;hpb=0e3fa65c2cd2aac4a4ed60a00f74bffa02e47107;p=sbcl.git diff --git a/generate-version.sh b/generate-version.sh index 22ed0a4..fdfa381 100755 --- a/generate-version.sh +++ b/generate-version.sh @@ -2,30 +2,21 @@ # 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. - if `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 + echo "ok" else - false + echo "" fi } generate_version() { - if [ -f version.lisp-expr -a ! git_available_p ] + AVAILABLE=`git_available_p` + if [ -f version.lisp-expr -a -z "$AVAILABLE" ] then # Relase tarball, leave version.lisp-expr alone. return - elif [ ! git_available_p ] + elif [ -z "$AVAILABLE" ] 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 @@ -44,8 +35,10 @@ generate_version() { 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` - version_n_branch=`git rev-list HEAD --not $version_base --count` + # Using wc -l instead of --count argument to rev-list because + # pre-1.7.2 Gits are still common out in the wilderness. + version_n_root=`git rev-list $version_base --not $version_tag | wc -l` + version_n_branch=`git rev-list HEAD --not $version_base | wc -l` if [ -z "$NO_GIT_HASH_IN_VERSION" ] then version_hash="-`git rev-parse --short $version_head`"