genode/repos/base/lib/mk
Norman Feske aa66b5d62f base: remove dependency from deprecated APIs
This patch adjusts the implementation of the base library and core such
that the code no longer relies on deprecated APIs except for very few
cases, mainly to keep those deprecated APIs in tact for now.

The most prominent changes are:

- Removing the use of base/printf.h

- Removing of the log backend for printf. The 'Console' with the
  format-string parser is still there along with 'snprintf.h' because
  the latter is still used at a few places, most prominently the
  'Connection' classes.

- Removing the notion of a RAM session, which does not exist in
  Genode anymore. Still the types were preserved (by typedefs to
  PD session) to keep up compatibility. But this transition should
  come to an end now.

- Slight rennovation of core's tracing service, e.g., the use of an
  Attached_dataspace as the Argument_buffer.

- Reducing the reliance on global accessors like deprecated_env() or
  core_env(). Still there is a longish way to go to eliminate all such
  calls. A useful pattern (or at least a stop-gap solution) is to
  pass the 'Env' to the individual compilation units via init functions.

- Avoiding the use of the old 'Child_policy::resolve_session_request'
  interface that returned a 'Service' instead of a 'Route'.

Issue #1987
2019-02-19 11:08:17 +01:00
..
spec Disambiguate kernel-specific file names 2016-12-23 16:51:32 +01:00
alarm.mk Move timer from os to base repository 2019-01-14 12:33:57 +01:00
base-common.inc vm_session: extensions 2019-02-19 11:08:17 +01:00
base.inc base: remove dependency from deprecated APIs 2019-02-19 11:08:17 +01:00
base.mk Build dynamically linked executables by default 2016-12-14 11:22:27 +01:00
cxx.mk Clean ldso from using deprecated APIs 2016-11-08 15:26:32 +01:00
ld-platform.inc Enable use of 'check_abi' in build system 2018-01-17 12:14:42 +01:00
ld.mk Generalize ABI mechanism to shared objects 2017-01-13 13:06:54 +01:00
ldso-startup.mk ldso-startup: support build from non-base repos 2016-07-15 11:38:27 +02:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
startup.inc base: remove platform.mk and syscall.mk 2017-01-13 13:06:53 +01:00
timeout-arm.mk Move timer from os to base repository 2019-01-14 12:33:57 +01:00
timeout.mk Move timer from os to base repository 2019-01-14 12:33:57 +01:00

This directory contains library description files.  Each '<libname>.mk' file
holds the instruction for building the library '<libname>'. These makefiles are
never used directly but they are called from the build system when required.
When called, the build system passes the following variables:

:'BASE_DIR': This is the base directory of the source tree.

Source codes are specified by setting the 'SRC_CC' and 'SRC_C' variables.
The source code locations must be specified via 'vpath'.
A library can include other libraries by setting the 'LIBS'
variable.

Each '<libname>.mk' file must include the 'lib.mk' role file:

! include $(BASE_DIR)/mk/lib.mk

Libraries implementing one and the same library interface may have specific
implementations for different platforms. Such platform-specific '<libname>.mk'
files should be placed into corresponding subdirectories. For example, the
'linux'-specific implementation of the 'server' library resides in the 'linux/'
subdirectory. The build system automatically searches the right '<libname>.mk'
file by evaluating the 'SPECS' configuration variable. If 'SPECS' is set to
'host linux', the build system will look into the directories './', './host',
and './linux'.