+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])
+