genode/tool
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
..
boot tool: bender with optional 'serial' UART discovery 2023-02-27 08:22:47 +01:00
builddir mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
dde_linux tool/dde_linux: fix create_dummies for GNU Make 4.4 2023-09-29 12:17:45 +02:00
depot mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
dts tool/dts: accept 'label: &ref { };' syntax 2023-07-14 12:06:32 +02:00
ports tool/ports/current: use silent option for GNU Make 4.4 2023-06-16 11:24:26 +02:00
run mk: remove implicit build of shared libraries 2023-11-28 14:44:29 +01:00
sdk Genode SDK 2018-11-29 11:46:02 +01:00
seccomp base-linux: permit rt_sigreturn on 64-bit ARM 2022-01-19 12:38:11 +01:00
xkb2ifcfg tool/xkb2ifcfg: update README to event_filter 2021-03-24 11:09:08 +01:00
abi_symbols tool: use local LC_ALL=C instead of LC_COLLATE=C 2021-05-28 14:15:26 +02:00
autopilot autopilot: support additional repo directories 2021-10-13 14:46:51 +02:00
autopilot.list tool: add sd_card_zynq to autopilot.list 2023-11-28 14:24:26 +01:00
beautify Imported Genode release 11.11 2011-12-22 16:19:25 +01:00
cbe_autopilot gems: import Genode-specific code of the CBE 2020-11-27 09:19:08 +01:00
check_abi tool: use local LC_ALL=C instead of LC_COLLATE=C 2021-05-28 14:15:26 +02:00
create_builddir create_builddir: add rpi and allwinner repos 2022-01-19 12:38:12 +01:00
create_iso tool/create_iso: Make ISO creation tool configurable 2017-05-02 15:28:53 +02:00
create_uboot tool_chain: versioned install location 2019-05-29 10:20:52 +02:00
cxx_to_html Tool cxx_to_html to convert C++ source to HTML 2012-01-08 14:09:47 +01:00
fix_include_ifndef tool/fix_include_ifndef: consider license header 2014-01-27 18:54:05 +01:00
internal_abi.list tool/abi_symbols: omit known internal symbols 2019-01-30 13:35:29 +01:00
link.h tool/link.h: remove outdated comment 2018-05-30 13:36:29 +02:00
parse_cxx tool/parse_cxx: handle 'alignas' specifier 2022-05-25 12:22:10 +02:00
README Tool for checking consistency between lib and ABI 2018-01-17 12:14:42 +01:00
rump_cgdconf tool: wrapper script for rumpkernel tools 2014-05-27 11:14:45 +02:00
tool_chain gcc: update to version 12.3.0 2023-05-30 12:03:27 +02:00
tool_chain_qt5 qt5: install host tools in /usr/local/genode/tool/23.05 2023-05-30 12:03:30 +02:00

This directory contains tools for managing and using the source code
of Genode.

:'create_builddir'

  The 'create_builddir' tool provides a convenient way to create build
  directories for different platforms. Its usage information is printed when
  starting the tool without arguments.

:'builddir/':

  This directory contains a Makefile template and configuration snippets used
  by the 'create_builddir' tool.

:'tool_chain':

  This tool downloads, builds, and installs the tool chain needed to build the
  Genode OS Framework. For getting usage information, start the tool without
  arguments.

:'create_iso':

  This simple tool helps to build bootable ISO images from your build of
  Genode. For getting usage information, start the tool without arguments.

:'create_grub2':

  This tool prepares a partitioned disk image with GRUB2 as boot
  loader.

:'grub2-head.img':

  This file is the head part of a partioned disk image including an
  installation of GRUB2 as boot loader. GRUB2 is available from
  http://www.gnu.org/software/grub/ and in major Linux distributions.
  Steps to reproduce the image creation can be found in
  'create_grub2'.

:'beautify':

  Beautify is a coding-style checking tool that analyzes source code for its
  adherence to Genode's coding style as described in 'doc/coding_style.txt'.
  Whenever possible, the tool tries to fix the issues and outputs a corrected
  file.  Some corrections, however, require human interaction.  In this case,
  the tool stops the analysis with an error.

:'parse_cxx':

  This tool is a C++ parser used as front-end for Beautify.

:'cxx_to_html':

  This tool converts a C++ source file to a HTML view to be used for the API
  documentation at the genode.org website. It relies on 'parse_cxx' to do the
  actual C++ parsing.

:'fix_include_ifndef':

  This tool helps with assigning consistent include guards to header files.

:'boot':

  This directory contains boot-loader files needed to create boot images.

:'autopilot':

  Autopilot is a tool for the automatic execution of run scripts among multiple
  base platforms.

:'abi_symbols':

  The utility assists with the initial creation of a ABI-symbols file, taking
  a shared object as a starting point. For more information, refer to the
  header of the 'abi_symbols' script.

:'check_abi':

  The 'check_abi' helper is used by the build system to detect violations of
  an ABI by a shared library. Most importantly, it reports incompatibilities of
  symbol sizes, which require an adaptation of the ABI. For more information,
  refer to the header of the 'check_abi' script.