configure.ac: Expand rules for setting package/library version.
authorIan Abbott <abbotti@mev.co.uk>
Wed, 22 Aug 2012 11:20:03 +0000 (12:20 +0100)
committerIan Abbott <abbotti@mev.co.uk>
Wed, 22 Aug 2012 11:20:03 +0000 (12:20 +0100)
The comedilib manual version is usually only updated if the manual has
changed since the previous release (although it ought to change anyway
if any library interfaces have changed).  Allow a lower-case letter (or
sequence of letters) to be appended to the comedilib package version if
the only changes are outside the library sources and language bindings.

configure.ac

index 1b4bf41d9d4961a6b8194c9fee0f5a6b9be87f31..4e22f4d967fa6ab304e0a8c960f043a25a5ad86c 100644 (file)
 m4_define([comedilib_lt_current], [10])
 m4_define([comedilib_lt_revision], [1])
 m4_define([comedilib_lt_age], [10])
+# Set 'letter', normally empty.  See below for rules.
+m4_define([comedilib_version_letter], [])
 
 #libscxi c:r:a
 m4_define([scxi_lt_current], [9])
 m4_define([scxi_lt_revision], [0])
 m4_define([scxi_lt_age], [9])
 
-# comedilib version: major.minor.micro
+# comedilib library version: major.minor.micro
+# comedilib package version: major.minor.micro[letter]
 #
 # Currently:
 #  * 'major' may be incremented at the whim of the maintainers.
 #  * 'minor' is libtool 'current' minus the value of 'current' when major
 #    changed (comedilib_major_base_current).
 #  * 'micro' is libtool 'revision'.
+#  * 'letter' is normally absent and is removed if any of 'major', 'minor'
+#    or 'micro' are changed between releases.  Otherwise it is set if the
+#    only changes between releases are outside the library source code or
+#    language binding, for example the comedilib manual, "readme" files
+#    or sample configuration files.  When it needs to be set, it is set to
+#    'a' if previously absent, otherwise the next lower-case ASCII letter
+#    in the sequence.  (In the unlikely event that we we need to go beyond
+#    'z', append an extra letter.)
+#
+# Example package version sequence: 0.10.1, 0.10.1a, 0.10.1b, 0.10.2,
+# 0.10.2a, ..., 0.10.2z, 0.10.2za, 0,10.2.zb, 0.11.0.
 
 # Gentle reminder: The comedilib manual mentions the version of comedilib
 # it applies to.  This is done by setting the 'comedilib_version' entity
 # in "doc/comedilib.ent".  That needs to be edited manually as it is not
-# updated automatically.
+# updated automatically.  Policy: the version of the manual is usually only
+# updated if the contents have changed since the previous release.  In that
+# case, it is set to the comedilib package version.
 
 # Manually set 'comedilib_major_base_current' to new 'comedilib_lt_current'
 # whenever 'comedilib_version_major' is incremented below.
@@ -49,7 +65,11 @@ m4_define([comedilib_version_minor],
          [m4_eval(comedilib_lt_current - comedilib_major_base_current)])
 m4_define([comedilib_version_micro], [comedilib_lt_revision])
 m4_define([comedilib_pkg_version],
-         [comedilib_version_major.comedilib_version_minor.comedilib_version_micro])
+         [m4_join([],
+                  m4_join([.], comedilib_version_major,
+                          comedilib_version_minor,
+                          comedilib_version_micro),
+                  comedilib_version_letter)])
 
 AC_INIT([comedilib], [comedilib_pkg_version])
 AC_CANONICAL_TARGET([])