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.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
examples
share/goa
.gitignore
LICENSE
README

README


                   ===========================================
                   Goa - goal, but reached a little bit sooner
                   ===========================================


Goa is a command-line-based workflow tool for the development of applications
for the [https://genode.org - 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 [https://genode.org/download/sculpt - 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:
[https://genode.org/documentation/genode-foundations/19.05/development/index.html]


Installation
------------

# 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
  requirements.

  * _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 https://github.com/nfeske/goa.git

  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


Usage
-----

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

You can’t perform that action at this time.