Ok, I have svn access now! I'll tidy things up a bit and perhaps commit
something this weekend.
I've also got a basic cmake config for codec2 (codec2-dev specifically
since it seems to be needed for freedv). So far I've left the unittest
stuff alone but I know cmake can handle that too. I'll have to brush up a
bit for it though.
One thing I've changed from the autoconf behavior is setting a soversion
for the library (linux distro's like shared, not static libs) which I've
set to 0.2 for now, so the result is "libcodec2.so.0.2" with "libcodec2.so"
being a symbolic link to the other.
There are two good (related) reasons for this;
1. The soversion is SUPPOSED to be used to guarantee
API/ABI compatibility between releases, so if you do a patch/bugfix release
(let's say 0.2.1) and the API/ABI was not affected, then the soversion can
stay 0.2. If there's an incompatible change made (change or removal of
symbols) then you would want to bump the soversion (like 0.3) which would
force any library dependencies to have to be rebuilt against the new api.
2. This is related to the first... The library itself goes in the package
codec2, the symlink (and headers) will go into codec2-devel (or -dev on
debian) so people who only want the library (end users, such as freedv)
will just install codec2 since they don't need the headers and other
development files. Also, the symbolic link is used by the buildsystems to
find the actual library name, so when you find a library with cmake,
"find_library(CODEC2 codec2) it will search in /usr/lib (or /usr/lib64 on
multilib systems) for "libcodec2.so" which would then point to
libcodec2.so.0.2!
Well I hope that was helpful since it was a lot to type if everyone already
knew this! :)
I can track abi compatibility for Linux easily enough with
abi-compliance-checker which is pretty cool so I'll know when the soversion
needs to be bumped.
Thanks,
Richard
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2