We began this discussion a while ago but did not conclude it. I don't remember where it ended, so let's start over.
Proposal: For "lite" devices, we only build the C code, all into one *single* static library. This library is called "libiotivity-lite.a". Any other .a libraries are build artifacts and must not be installed. For "rich" devices, we build the C and C++ source code. Whether it is static or dynamic is an option chosen by the user during the run of Scons. Linux distributions will use shared libraries, but if you're writing an independent application, you'd use static (also true for iOS). I have no clue for Android. The C++ code is split into two libraries: * "libiotivity.so" (or .a or .dylib), containing discovery, connectivity, abstractions, resource manager. It includes the C SDK API. * "libiotivity-services.so" (or .a or .dylib), containing all of the services Build options: * if compiling statically, compile with -ffunction-sections and link applications with -Wl,--gc-sections * if compiling dynamically, compile with -fvisibility=hidden (C and C++), -fvisibility-inlines-hidden (C++ only) and link all shared libraries and plugins with -Wl,--no-undefined The build options should be centralised. I have no idea how to do that with Scons... -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4447 bytes Desc: not available URL: <http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20150506/b44989af/attachment.p7s>