Next: Release numbers, Previous: Libtool versioning, Up: Versioning [Contents][Index]
If you want to use libtool’s versioning system, then you must specify the version information to libtool using the -version-info flag during link mode (see Link mode).
This flag accepts an argument of the form ‘current[:revision[:age]]’. So, passing -version-info 3:12:1 sets current to 3, revision to 12, and age to 1.
If either revision or age are omitted, they default to 0. Also note that age must be less than or equal to the current interface number.
Here are a set of rules to help you update your library version information:
Never try to set the interface numbers so that they correspond to the release number of your package. This is an abuse that only fosters misunderstanding of the purpose of library versions. Instead, use the -release flag (see Release numbers), but be warned that every release of your package will not be binary compatible with any other release.
The following explanation may help to understand the above rules a bit better: consider that there are three possible kinds of reactions from users of your library to changes in a shared library:
In the above description, programs using the library in question may also be replaced by other libraries using it.
Next: Release numbers, Previous: Libtool versioning, Up: Versioning [Contents][Index]