Norman Feske 253097314c Add unified build directories to create_builddir
This patch makes the benefit of the recently introduced unified Genode
ABI available to developers by enabling the use of multiple kernels from
within a single build directory. The create_builddir tool has gained a
new set of kernel-agnostic platform arguments such as x86_32, or panda.
Most build targets within directories are in principle compatible with
all kernels that support the selected hardware platform. To execute a
scenario via the run tool, one has to select the kernel to use by
setting the 'KERNEL' argument in the build configuration
(etc/build.conf). Alternatively, the 'KERNEL' can be specified as
command-line argument of the Genode build system, e.g.:

  make run/log KERNEL=nova

This allows us to easily switch from one kernel to another without
rebuilding any Genode component except for the very few kernel-specific
ones.

The new version of the 'create_builddir' tool is still compatible with
the old version. The old kernel-specific build directories can still be
created. However, those variants will eventually be removed.

Note that the commit removes the 'ports-foc' repository from the
generated 'build.conf' files. As this is only meaningful for 'foc',
I did not want to include it in the list of regular repositories (as
visible in a 'x86_32' build directory). Hence, the repository must
now be manually added in order to use L4Linux.

Issue #2190
2017-01-13 13:05:44 +01:00
..
2016-03-17 17:02:04 +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/'.