genode/tool
Norman Feske c450ddcb3d Disambiguate kernel-specific file names
This patch removes possible ambiguities with respect to the naming of
kernel-dependent binaries and libraries. It also removes the use of
kernel-specific global side effects from the build system. The reach of
kernel-specific peculiarities has thereby become limited to the actual
users of the respective 'syscall-<kernel>' libraries.

Kernel-specific build artifacts are no longer generated at magic places
within the build directory (like okl4's includes, or the L4 build
directories of L4/Fiasco and Fiasco.OC, or the build directories of
various kernels). Instead, such artifacts have been largely moved to the
libcache. E.g., the former '<build-dir>/l4/' build directory for the L4
build system resides at '<build-dir>/var/libcache/syscall-foc/build/'.
This way, the location is unique to the kernel. Note that various tools
are still generated somewhat arbitrarily under '<build-dir>/tool/' as
there is no proper formalism for building host tools yet.

As the result of this work, it has become possible to use a joint Genode
build directory that is usable with all kernels of a given hardware
platform. E.g., on x86_32, one can now seamlessly switch between linux,
nova, sel4, okl4, fiasco, foc, and pistachio without rebuilding any
components except for core, the kernel, the dynamic linker, and the timer
driver. At the current stage, such a build directory must still be
created manually. A change of the 'create_builddir' tool will follow to
make this feature easily available.

This patch also simplifies various 'run/boot_dir' plugins by removing
the option for an externally hosted kernel. This option remained unused
for many years now.

Issue #2190
2016-12-23 16:51:32 +01:00
..
boot sel4: add "norelocate" option to bender 2016-08-10 11:07:50 +02:00
builddir Disambiguate kernel-specific file names 2016-12-23 16:51:32 +01:00
patches tool_chain/cxx: use '__cxa_demangle()' for exception names 2016-05-23 15:52:50 +02:00
ports prepare_port: prefix git clone output 2016-03-07 12:34:43 +01:00
run Disambiguate kernel-specific file names 2016-12-23 16:51:32 +01:00
abi_symbols Genode application binary interface (ABI) 2016-12-23 16:50:28 +01:00
autopilot autopilot: always add '--autopilot' run option 2016-08-31 17:08:14 +02:00
autopilot.list nic_router: new user interface and optimizations 2016-11-30 13:38:05 +01:00
beautify Imported Genode release 11.11 2011-12-22 16:19:25 +01:00
create_builddir hw_zynq: refactor specs 2016-04-25 10:48:00 +02:00
create_grub2 create_grub2: ext2 default parameters for image 2015-03-13 12:17:26 +01:00
create_iso create_iso: remove outdated help message 2016-10-21 12:39:33 +02:00
create_uboot create_uboot: support for hw_usb_armory 2015-11-29 18:17:03 +01:00
cxx_to_html Tool cxx_to_html to convert C++ source to HTML 2012-01-08 14:09:47 +01:00
download_hashver Hash verification tool 2013-06-10 10:44:09 +02:00
download_sigver GPG signature verification tool 2013-06-10 10:44:09 +02:00
fix_include_ifndef tool/fix_include_ifndef: consider license header 2014-01-27 18:54:05 +01:00
grub2-head.img create_grub2: ext2 default parameters for image 2015-03-13 12:17:26 +01:00
link.h tool_chain: cleanup 2015-05-26 09:39:49 +02:00
parse_cxx Improvements of parse_cxx tool 2015-04-09 16:04:45 +02:00
README tool: remove old ports tool remains 2016-08-29 17:29:35 +02:00
rump tool: kill all children of rump tool 2016-10-21 12:39:33 +02:00
rump_cgdconf tool: wrapper script for rumpkernel tools 2014-05-27 11:14:45 +02:00
tool_chain tool_chain: use 'pkg-config' for library checks 2016-05-23 15:52:50 +02:00
tool_chain_binutils_patches.inc riscv: tool chain 2016-02-16 14:38:02 +01:00
tool_chain_gcc_patches.inc tool_chain: cleanup 2015-05-26 09:39:49 +02:00
tool_chain_gdb_patches.inc tool_chain: use real patches 2014-05-14 16:08:00 +02:00
tool_chain_rump tools: strip rumpkernel based tools 2014-08-28 12:35:56 +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.