chiark / gitweb /
Eliminate the separately maintained Lisp system version number.
[sod] / configure.ac
index cb1c5a6490b924aac353d6b2b038468d753fe278..c1fed5079053d8712cc24d44d3e8a9e18c125576 100644 (file)
@@ -38,6 +38,32 @@ AM_PROG_LIBTOOL
 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.