Eliminate the separately maintained Lisp system version number.
[sod] / configure.ac
index cb1c5a6..c1fed50 100644 (file)
@@ -39,6 +39,32 @@ AX_CFLAGS_WARN_ALL
 mdw_LIBTOOL_VERSION_INFO
 
 dnl--------------------------------------------------------------------------
+dnl Convert the version number for ASDF.
+
+## This is surprisingly awful.  The convention for official version numbers
+## is that they look like MAJOR.MINOR.PATCH[.BPB][-N-gHEX[+]].  ASDF
+## insists on simple numeric things separated by dots.  If there's no Git
+## thing on the end, then the main version number will do fine.  If there
+## is, then we insert /two/ `0's in, followed by N and the HEX converted to
+## decimal.  Why two?  Because if there's no brown-paper-bag number, we
+## want to make sure that the first BPB release is higher than any of the
+## preceding Git revisions.
+ver=AC_PACKAGE_VERSION
+case $ver in
+  *-*-g*)
+    base=${ver%%-*} tail=${ver#*-}
+    n=${tail%%-*} tail=${tail#*-g}
+    case $tail in *+) grubby=.1 tail=${tail%+} ;; *) grubby= ;; esac
+    rev=$(( 0x$tail ))
+    ASDF_VERSION=$base.0.0.$n.$rev$grubby
+    ;;
+  *)
+    ASDF_VERSION=$ver
+    ;;
+esac
+AC_SUBST([ASDF_VERSION])
+
+dnl--------------------------------------------------------------------------
 dnl Common Lisp things.
 
 AC_ARG_WITH([lisp-system],