genode/repos/base/mk
Norman Feske 5ae0dab6c5 mk: remove implicit build of shared libraries
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
2023-11-28 14:44:29 +01:00
..
spec openssl: do not depend on ARM CPU probing 2021-02-23 12:07:16 +01:00
a.mk mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
abi.mk mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
base-libs.mk base: remove alarm library from base 2020-10-09 13:33:36 +02:00
dep_abi.mk mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
dep_lib.mk mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
dep_prg.mk mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
dep.inc mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
generic.mk mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
global.mk mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
prg.mk mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
so.mk mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
util.inc mk: restore compatibility to Make 4.1 2023-02-27 08:22:45 +01:00

This directory contains the build system. In consists mainly of makefile
templates for different directory roles.

:'global.mk': This file contains global variables, for example the
  definitions of the tools to use.

:'generic.mk': Generic rules for creating file types from others.

:'prg.mk': This file represents the target binary role of a directory.
  It must be included by all makefiles that build programs.

:'lib.mk': This file represents a library role. It is never used from
  within the 'src/' directory but only from the <libname>.mk files
  in 'lib/mk/'.