mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-30 10:38:55 +00:00
5ae0dab6c5
This patch removes the implicit build of all shared libraries a target depends on. Targets only depend on the respective ABIs instead. This alleviates the need to locally build complex shared libraries (think of Qt) when developing applications. Instead, application developers can use binary depot archives. The implementation splits the mk/lib.mk file into three files: - mk/a.mk for building one static library (.lib.a) - mk/so.mk for building one shared object (.lib.so) - mk/abi.mk for building one ABI stub (.abi.so) Furthermore, the commit moves messages and the collection of build artifacts to var/libdeps, triggers the build of kernel-specific ld-<kernel>.lib.so, and prunes the lib-dependency tree at ABIs. Fixes #5061 |
||
---|---|---|
.. | ||
spec | ||
base-common.inc | ||
base.inc | ||
base.mk | ||
cxx.mk | ||
ld-platform.inc | ||
ld.mk | ||
ldso_so_support.mk | ||
README | ||
startup.inc | ||
timeout-arm.mk | ||
timeout.mk |
This directory contains library-description files. Each _<libname>.mk_ file contains the instructions for building the library _<libname>_. The .mk files are never used directly but they are implicitely processed by the build system. Libraries implementing one interface may have specialized implementations for different CPU architectures. Such architecture-specific _<libname>.mk_ files are located in corresponding _spec/_ subdirectories. For example, the .mk files of ARM-specific library variants reside in the _spec/arm/_ subdirectory. The build system automatically finds the appropriate _<libname>.mk_ file by evaluating the 'SPECS' build-configuration variable. Whenever the 'SPECS' variable contains 'arm', the build system considers the _spec/arm/_ directory.