-
Notifications
You must be signed in to change notification settings - Fork 18
/
README
104 lines (60 loc) · 3.03 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
===========================================
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,
* 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/23.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/genodelabs/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
# Optionally, enable bash completion by adding the following line to your
'~/.bashrc' file:
! source <goa-dir>/share/bash-completion/goa
Usage
-----
Once installed, obtain further information about the use of Goa via
the 'goa help' command.
Step-by-step tutorials
----------------------
The following article series gets you started with using Goa.
:Streamlining the development of Genode applications:
[https://genodians.org/nfeske/2019-11-25-goa]
:Sticking together a little Unix (part 1):
[https://genodians.org/nfeske/2019-12-13-goa-unix-bash]
:Sticking together a little Unix (part 2):
[https://genodians.org/nfeske/2019-12-19-goa-unix-terminal]
:Sticking together a little Unix (part 3):
[https://genodians.org/nfeske/2019-12-22-goa-unix-pipes]
:Publishing packages:
[https://genodians.org/nfeske/2020-01-16-goa-publish]