-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVERSION_RULES
45 lines (32 loc) · 1.98 KB
/
VERSION_RULES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
From the GNU libtool pages
# Version Info: How-To
[https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html]
Here are a set of rules to help you update your library version information:
1. Start with version information of ‘0:0:0’ for each libtool library.
2. Update the version information only immediately before a public release
of your software. More frequent updates are unnecessary, and only
guarantee that the current interface number gets larger faster.
3. If the library source code has changed at all since the last update, then
increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
4. If any interfaces have been added, removed, or changed since the last
update, increment current, and set revision to 0.
5. If any interfaces have been added since the last public release, then
increment age.
6. If any interfaces have been removed or changed since the last public
release, then set age to 0.
This value is derived from the '$major', '$minor', and '$iface_age' variables
in the 'configure.ac' script. The values are propagated via the src/global-vars
file.
# Release: How-To
[https://www.gnu.org/software/libtool/manual/html_node/Release-numbers.html#Release-numbers]
Often, people want to encode the name of the package release into the shared
library so that it is obvious to the user what package their programs are
linked against. So, to accommodate both views, you can use the '-release' flag
to set release information for libraries for which you do not want to use
'-version-info'.
Note that this option causes a modification of the library name, so do not use
it unless you want to break binary compatibility with any past library releases.
In general, you should only use '-release' for package-internal libraries or
for ones whose interfaces change very frequently.
This number is derived from the PACKAGE_VERSION variable (configure.ac). The
value is propagated via the 'src/global-vars' configuration file.