Closed gilesc closed 10 years ago
Actually, my mistake! Apparently Arch by default REMOVES static libs from packages.
I should probably get around to updating the build stuff to make shared libs. Static libraries are an antiquated strategy, and I'm not surprised if a modern package manager rejects their use. I had tried before to have a shared library system, but I never got it to link. I'll try again.
Yes, that would be excellent. There are so many projects that just include bits of the Kent source code (and take on the resulting licensing emcumbrances) because there is no shared library version. I tried once to convert the Kent tree to dynamic linking, but given the massively complex tree of nested Makefiles, I just gave up after a few hours. It's also ridiculous that if you build all the Kent binaries the result is over 1GB because they are all statically linked.
But if there were such a version, even partial, projects could link it and use whatever license they want (I think, IANAL).
The library for bwtool uses only the freeware part of the Kent source. This means I can copy it, change it, sell it, not cite it, as much as I want. And for this part there's only one makefile with a few hundred source files. I am thinking to maybe move from autotools to cmake in order to facilitate shared libraries. I only used the autotools because it's old-school open-source. But I don't like it. I think it's frustrating to use even if once it's set up, it works well. Anyway, that might take a few days to figure out and I'm not sure I will get to it until after my school ends early next month.
If I run:
Then the header files are correctly installed into my provided DESTDIR, but the static libraries (.a) aren't. Then, naturally, attempting to build downstream applications like bwtool complains that the libraries can't be found.
This issue arises because I am attempting to package libbeato and bwtool for Arch Linux, which requires you to be able to make install into a dummy directory for packaging, so I can't just install directly to /usr. For now I am working around by manually copying the .a files but this should be handled by the makefile.