Doing the libtool versioning right can be a bit tedious. Especially the
correct handling of the various versions for the libtool .so naming is
difficult to understand if this part isn't done often.
To improve the API versioning adding some helping text what the various
version number are intended for and how to handle these within the
life cycle and development of the Ngspice project.
Basically libtool uses 'current', 'revision' and 'age' to version a
library.
Here a short outline how to do the libtool versioning:
Only bug fixing did happen, no new symbols were added, the new library
provide the exact amount and behaviour of the existing symbols.
--> Increase the 'revision' by 1 (c:r+1:a)
New symbols were added, the behaviour of the existing symbols doesn't
have changed.
--> Increase the 'age' by 1, set 'revision' to 0 (c:r=0,a+1)
Existing symbols behave now different or existing symbols were removed.
--> Increase 'current' by 1, set 'revison' to 0, set 'age' to 0 (c+1,r=0,a=0)
!!!Note!!!
The ABI version is also affected by this (needs a bump too, the library
isn't backward compatible any more.