jtsiomb / kdtree

A simple C library for working with KD-Trees
http://nuclear.mutantstargoat.com/sw/kdtree/
Other
395 stars 115 forks source link

version numbers #19

Closed samflies closed 7 years ago

samflies commented 7 years ago

I was wondering why there is a conflict in version numbers? Can you generate a new Makefile.in with the latest major/minor/patch (0.5.6?)

ps. Thanks for sharing and maintaining this library, I've been using it for a while and find it really practical and easy to use :)

jtsiomb commented 7 years ago

The release version (0.5.6), and the soname used when building the library (libkdtree.so.0) are completely different things.

The soname (which is affected by so_major in the Makefile) changes when there are changes in the library which makes it binary-incompatible with programs linked with the previous versions.

The so_minor variable, which is appended to the soname to make the full installed filename of the shared library (libkdtree.so.0.1), is supposed to track API changes which don't break the ABI. If I ever implement the eternally commented-out kd_nearest_n* functions, I should increase that number from 1 to 2. Although, I must admit, I'll probably forget to do that :)

samflies commented 7 years ago

Ah I see, that makes sense, thanks for the clarification. Sorry for the bother, I never saw it done that way before. Now after some investigation in the autotools and cmake documentation I see that it's common practice... ;)