It what sense do you think 'it works fine'? How does a single libtool version string get translated into the two possibly different version strings required by MacOS X?
I don't follow what you think is wrong. Libtool's versioning system uses the CURRENT, AGE and REVISION system described in the libtool documentation.
Does reading this thread help? <http://thread.gmane.org/gmane.comp.gnu.libtool.patches/1348>
That link was helpful, but I think incorrect. In one of the messages you have
Now lets release a new libfoo 4:0:2IMHO this should be:
Current system:
libfoo.dylib -> libfoo.2.2.0.dylib
libfoo.2.dylib -> libfoo.2.2.0.dylib
libfoo.2.2.0.dylib
install_name libfoo.2.dylib compatibility_version 5 current_version 5.0
Proposed :
libfoo.dylib -> libfoo.2.dylib
libfoo.2.dylib
same encoded information.
Now lets release a new libfoo 4:15:2
libfoo.dylib -> libfoo.2.dylib (for the benefit of configure scripts only)
libfoo.2.dylib
install_name libfoo.2.dylib compatibility_version 3.0.0 current_version 5.0.15
Possibly, the last line could equally be:
install_name libfoo.2.dylib compatibility_version 3.0.0 current_version 3.2.15
That would have the same effect on Darwin, if applied consistently.
If you set compatibility_version to 5, which is what seems to be happening now, then something linked against the library built with libtool version 3:10:1 will fail to link at runtime, even thought the libtool version implies it is compatible.
I think your 2003 suggestion to eliminate libfoo.x.x.x.dylib is correct. Creating that just results in unnecessary duplication.
Bill Northcott
_______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool