stp/stp — pull request #52 by delcypher (2013-09-30 16:31:00+00:00)
Title: Cleaner libs

As discussed in issue #48 although we've "sort of" fixed building the client library I'm not very satisfied with it for the following reasons

* It is not easy to make a shared STP library because we have circumvented the way CMake normally makes libraries

* The STP binary is not built from libstp.a (or libstp.so if we were to build it) so the client library could very easily break again and the STP binary would keep on working so most people would not notice a problem.

These commits tidy things up by building libstp using CMake's "Object targets" and by using a slightly modified version of MERGE_STATIC_LIBRARIES the boost archive objects are added to libstp.a . I've also added make file install and uninstall targets. I have confirmed that libstp.a works with an external project (KLEE).

I've also **tried** to add initial shared library support (building libstp as a shared library, see BUILD_SHARED_LIBS option) but unfortunately it won't work right now...

- We need to force the -fPIC flag for things to link correctly (it's set for C++ compiler but not for C compiler). This is a bit hacky and should really only be set on the the files that will go into the library.
- extlib-abc is buillt using a C compiler rather than a C++ compiler which I think is screwing up linking (even if I pass -fPIC to the C Compiler)

I tried forcing extlib-abc to be built by the C++ compiler but it won't compile (various errors).