summaryrefslogtreecommitdiff
path: root/libelftc/make-toolchain-version
diff options
context:
space:
mode:
Diffstat (limited to 'libelftc/make-toolchain-version')
-rwxr-xr-xlibelftc/make-toolchain-version26
1 files changed, 16 insertions, 10 deletions
diff --git a/libelftc/make-toolchain-version b/libelftc/make-toolchain-version
index 8891258eeaf9..0cdf370cc32b 100755
--- a/libelftc/make-toolchain-version
+++ b/libelftc/make-toolchain-version
@@ -3,7 +3,7 @@
# This script generates a project-wide version identifier for use by
# the `elftc_version()' API.
#
-# $Id: make-toolchain-version 3299 2016-01-09 19:58:46Z jkoshy $
+# $Id: make-toolchain-version 3414 2016-02-16 22:55:28Z jkoshy $
#
# Defaults.
@@ -64,19 +64,25 @@ done
curdir=`pwd`
cd ${top} || usage "ERROR: Cannot change directory to \"${top}\"."
-if [ -d .svn -o -d ../.svn ]; then # FreeBSD and SF.Net sources.
- versionstring=" svn:"$(svnversion)
-elif [ -d CVS ]; then # NetBSD.
+if [ -d CVS ]; then # Look for CVS (NetBSD).
versionstring=" cvs:unknown"
-else # DragonFlyBSD.
- versionstring=" git:"$(git describe --all --dirty --long 2> /dev/null)
-
- # Cannot determine an in-tree version number.
- if [ $? -ne 0 ]; then
- versionstring=""
+else # Try git (DragonFlyBSD).
+ gitversion="$(git describe --all --dirty --long 2> /dev/null)"
+ if [ -n "${gitversion}" ]; then
+ versionstring=" git:${gitversion}"
+ else # Assume an SVN checkout (SourceForge or FreeBSD).
+ svnversion="$(svnversion)"
+ if [ -n "${svnversion}" ]; then
+ versionstring=" svn:$(svnversion)"
+ fi
fi
fi
+if [ -z "${versionstring}" ]; then
+ echo "ERROR: cannot determine a revision number." 1>&2
+ exit 1
+fi
+
cd ${curdir} || usage "Cannot change back to ${curdir}."
#