diff --git a/configure.ac b/configure.ac
index ef3b641f..cca08ef9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@
AC_INIT(core, m4_esyscmd_s([./revision.sh 4.8]), core-dev@pf.itd.nrl.navy.mil)
VERSION=$PACKAGE_VERSION
CORE_VERSION=$PACKAGE_VERSION
-CORE_VERSION_DATE=20150605
+CORE_VERSION_DATE=m4_esyscmd_s([./revision.sh -d])
COREDPY_VERSION=$PACKAGE_VERSION
#
diff --git a/revision.sh b/revision.sh
index 0b327daa..517e549a 100755
--- a/revision.sh
+++ b/revision.sh
@@ -1,9 +1,51 @@
#!/bin/sh
-if [ $# -ne 1 ]; then
- echo "usage: $(basename $0) " >&2
- exit 1
-fi
+usage()
+{
+ echo "usage: $(basename $0) (-d | )" >&2
+ exit $1
+}
+
+func=revision
+while getopts dh f; do
+ case $f in
+ d)
+ func=date
+ ;;
+
+ h)
+ usage 0
+ ;;
+
+ *)
+ usage 1
+ ;;
+ esac
+done
+shift $(($OPTIND - 1))
+
+case $func in
+ revision)
+ if [ $# -ne 1 ]; then
+ usage 1
+ fi
+ ;;
+
+ date)
+ if [ $# -gt 0 ]; then
+ usage 1
+ fi
+ ;;
+
+ *)
+ usage 1
+ ;;
+esac
+
+_revision()
+{
+ echo $1
+}
git_revision()
{
@@ -78,10 +120,44 @@ svn_revision()
echo ${ver}${untagged}${commits}${rev}${dirty}
}
+_date()
+{
+ date '+%Y%m%d'
+}
+
+git_date()
+{
+ local date
+
+ if git diff --quiet; then
+ date=$(git log -1 --format='%ci' | \
+ awk '{gsub("-", "", $1); print $1}')
+ else
+ date=$(_date)
+ fi
+
+ echo $date
+}
+
+svn_date()
+{
+ local date
+
+ if ! (svn status -q | grep -q .); then
+ date=$(svn log -q --limit 1 | \
+ awk '/^r[0-9]+/ {gsub("-", "", $5); print $5}')
+ else
+ date=$(_date)
+ fi
+
+ echo $date
+}
+
+repo=""
if test -d .git || git rev-parse --git-dir > /dev/null 2>&1; then
- git_revision "$@"
+ repo=git
elif test -d .svn || svn info > /dev/null 2>&1; then
- svn_revision "$@"
-else
- echo "$@"
+ repo=svn
fi
+
+${repo}_${func} "$@"