/*******************************************************************
MPU Library Versioning:
======================
VERSION (major.minor.micro):
---------------------------
- major - version changes when the library’s API was modified,
- minor - version changes when the library’s functionality was
modified in a backwards-compatible manner,
- micro - version changes when backwards-compatible bug fixes
or code changes were made.
NOTE:
----
The VERSION value in this file should be equal to version
which declared in the configure.ac file on the following
function call:
AC_INIT([MPU Library], [1.0.0], ...
LT_RELEASE (-release major.minor):
---------------------------------
- major - version changes when the library’s API was changed,
- minor - version changes when backwards-compatible bug fixes
or code changes were made.
LT_VERSION_INFO (-version-info current:revision:age):
----------------------------------------------------
- current - version changes when the library’s interface was
modified (in this case the revision value is
reset to zero),
- revision - version changes when the library’s source was
changed,
- age - version increases when one new function was added
and decreases one old function was removed.
EXAMPLE 1:
---------
1. Begin with the previous version information: 0:0:0
2. 0:0:0 becomes 0:1:0 (the library’s source was changed)
3. 0:1:0 becomes 1:0:0 (the library’s interface was modified)
4. 1:0:0 becomes 1:0:1 (one new function was added)
5. 1:0:1 becomes 1:0:0 (one old function was removed)
EXAMPLE 2:
---------
Let’s modify our example just a little to say that we’ve added
a new library interface function but haven’t removed anything.
Start again with the original version information of 0:0:0 and
follow the algorithm:
1. Begin with the previous version information: 0:0:0
2. 0:0:0 becomes 0:1:0 (the library’s source was changed)
3. 0:1:0 becomes 1:0:0 (the library’s interface was modified)
4. 1:0:0 becomes 1:0:1 (one new function was added)
5. Not applicable (nothing was removed)
This time, we end up with a Libtool version string of 1:0:1,
but the resulting Linux or Solaris shared-library filename is
libname.so.0.1.0. Consider for a moment what it means, in the
face of major, minor, and patch-level values, to have a nonzero
age value in the Libtool version string. An age value of one
(as in this case) means that we are effectively still supporting
a Linux major value of zero, because this new version of the
library is 100-percent backward compatible with the previous
version. The minor value in the shared-library filename has been
incremented from zero to one to indicate that this is, in fact,
an updated version of the soname, libname.so.0. The patch-level
value remains at zero because this value indicates a bug fix to
a particular minor revision of an soname.
Libtool creates .so suffix for Linux by following manner:
major=.`expr $current - $age`
versuffix="$major.$age.$revision"
for Cygwin:
major=`expr $current - $age`
versuffix="-$major"
The declaration in the Makefile.am has to be like this:
lib_LTLIBRARIES = libtest-1.0.la
libtest_1_0_la_LDFLAGS = -version-info 0:0:0
where 1.0 is a release number of the test library.
*******************************************************************/