Skip to content
Tool for streamlining the development of Genode applications
Tcl Makefile Pawn C++ CMake
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


                   Goa - goal, but reached a little bit sooner

Goa is a command-line-based workflow tool for the development of applications
for the [ - Genode OS Framework]. It streamlines the work of
cross-developing Genode application software using a GNU/Linux-based host
system for development, in particular

* Importing 3rd-party source code,

* Building software using commodity build systems such as CMake,

* Test-running software on the host system,

* Crafting runtime configurations for deployment, and

* Packaging and publishing the software for the integration into Genode
  systems like [ - Sculpt OS].

Goa is solely geared towards application software. It does _not_ address the
following topics:

* Integration of complete Genode systems,

* Development of libraries and APIs,

* Test automation,

* Continuous testing and integration (CI).

Those topics are covered by the tools that come with the Genode project and
are described in Chapter 5 of the Genode Foundations book:


# Install the latest Genode tool chain on a GNU/Linux OS on a 64-bit x86 PC.
  It is recommended to use the latest long-term support (LTS) version of
  Ubuntu. Make sure that your installation satisfies the following

  * _libSDL-dev_ needed to run system scenarios directly on your host OS,
  * _tclsh_ and _expect_ needed by the tools,
  * _xmllint_ for validating configurations,

# Clone the Goa repository:

  ! git clone

  The following steps refer to the directory of the clone as '<goa-dir>'.

# Enable your shell to locate the 'goa' tool by either

  * Creating a symbolic link in one of your shell's binary-search
    locations (e.g., if you use a 'bin/' directory in your home directory,
    issue 'ln -s <goa-dir>/bin/goa ~/bin/'), or alternatively

  * Add '<goa-dir>/bin/>' to your 'PATH' environment variable, e.g.,
    (replace '<goa-dir>' with the absolute path of your clone):

    ! export PATH=$PATH:<goa-dir>/bin


Once installed, obtain further information about the use of Goa via
the 'goa help' command.

You can’t perform that action at this time.