From: Mark Wooding Date: Mon, 7 Oct 2019 00:33:10 +0000 (+0100) Subject: configure.ac: Complicate ASDF version-number generation. X-Git-Url: https://git.distorted.org.uk/~mdw/sod/commitdiff_plain/31194ea55102b83b087232e7af8e1a47399eec02 configure.ac: Complicate ASDF version-number generation. I've started prefixing a future-version-~ to development version numbers, rather than maintenance pre-releases. Adjust the ASDF version synthesis to cope with this. --- diff --git a/configure.ac b/configure.ac index 5e121cd..765924a 100644 --- a/configure.ac +++ b/configure.ac @@ -42,21 +42,25 @@ 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. +## is that they look like [MAJOR.MINOR.PATCH~]MAJOR.MINOR.PATCH[.BPB] +## [-N-gHEX[+]]. ASDF insists on simple numeric things separated by dots. +## If there's no interim-version thing on the front or 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#*-} + case $ver in + *~*) pre=${ver%%~*}. tail=${ver#*~} ;; + *) pre= tail=$ver ;; + esac + base=${tail%%-*} tail=${tail#*-} n=${tail%%-*} tail=${tail#*-g} - case $tail in *+) grubby=.1 tail=${tail%+} ;; *) grubby= ;; esac + case $tail in *+) grubby=.0.1 tail=${tail%+} ;; *) grubby= ;; esac rev=$(( 0x$tail )) - ASDF_VERSION=$base.0.0.$n.$rev$grubby + ASDF_VERSION=$pre$base.0.0.$n.$rev$grubby ;; *) ASDF_VERSION=$ver