genode/repos/base/lib/mk
Norman Feske af146e7dcd Remove base/timed_semaphore.h from API
The former 'Genode::Timed_semaphore' mechanism is moved to the private
part of the two remaining users, namely dde_rump and the libc. Note
there are now two private copies of 'timed_semaphore.h'. This should be
regarded as an interim step until the use of this mechanism is removed
from both users.

This patch also cleans up the mechanism from legacy Genode API calls and
global side effects (alarm-thread singleton). The test/timed_semaphore
is now located at the libports repository as it now tests a mechanism of
the libc. The former timed_semaphore library is no more.

Fixes #3121
2019-01-30 13:35:29 +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 base: restructure signal-submit initialization 2017-05-31 13:16:12 +02:00
base.inc init: health monitoring of child components 2018-11-27 11:36:34 +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'.