summaryrefslogtreecommitdiff
path: root/morph.1.in
blob: 232ae3969dcf0d291319f60d6ce79b120fc1bbf7 (plain)
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
.\" Copyright (C) 2012  Codethink Limited
.\" 
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; version 2 of the License.
.\" 
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\" 
.\" You should have received a copy of the GNU General Public License along
.\" with this program; if not, write to the Free Software Foundation, Inc.,
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
.\"
.TH MORPH 1
.SH NAME
morph \- Baserock development workflow tool
.SH SYNOPSIS
.SH DESCRIPTION
Baserock is an embedded Linux system.
.B morph
is its workflow tool.
It manages building binaries,
and branching and merging of the entire system.
Morph is designed to turn collections of git repositories into system images
using morphology files to define their dependencies.
.PP 
A 
.B system 
image is defined as a group of 
.B strata 
describing subsystems, 
each of which comprises a series of 
.BR chunks , 
each of which in turn corresponds 
to an individual upstream project. For example, there might be a 'generic 
developer system' system morphology, containing a stratum for the basic 
bootable system and another for developer tools; the latter would then have 
individual chunks for make, gcc, binutils and so forth.
.PP
A chunk is a git repository based on an individual upstream project's revision
control system, converted into git if upstream does not already use it.
The build is controlled by a
.B something.morph
configuration file 
defining how to build the chunk and any other changes required to get the 
repository to build with the rest of Baserock.
.PP
Morph is also capable of branching the whole system (that is branching
all constituent git repositories of a system simultaneously) in order
to allow system-wide changes that cross the boundaries of individual
git repositories, and of generating commits to the group of git
repositories that have been modified in such a branch.
.PP
For more details, please see the Baserock wiki at http://wiki.baserock.org.
.SH OPTIONS
.SH ENVIRONMENT
.B morph
cleans out the environment when it runs builds,
so that builds are not affected by random enviroment variables set by the user.
However, a few environment variables do affect either
.B morph
itself, or the builds it runs.
.PP
.TP
.B PATH
.B morph
supports building chunks in
.B bootstrap
mode, which exposes the host's tools for building rather than using a
controlled chroot. The
.B PATH
variable is significant for chunks built in this mode.
.TP
.BR DISTCC_HOSTS ", " TMPDIR ", " LD_PRELOAD ", " LD_LIBRARY_PATH ", " \
FAKEROOTKEY ", " FAKED_MODE ", " FAKEROOT_FD_BASE
.B morph
keeps these environment variable, if set.
.TP
.B MORPH_ARCH
The system morphology defines the architecture it should be built for, and
.B morph
sets this variable in the build environment accordingly. Only a small set of
predefined values can be used, and it is expected that morphologies can change
the configuration of the chunk they are building based on this value.
.TP
.B TARGET
This value is set to the GNU machine triplet for the machine
.B MORPH_ARCH
defines.
.TP
.B TARGET_STAGE1
The same as
.B TARGET
but with the vendor field replaced with
.BR bootstrap
.TP
.B MORPH_PLUGIN_PATH
.B morph
looks for additional plugins in the directories given in this variable.
Syntax is same as for
.B PATH
(i.e., colon delimited pathnames).
.PP
The
.BR cliapp (5)
manual page has some more variables that affect
.B morph
itself.
.SH "SEE ALSO"
.BR cliapp (5).
.PP
http://wiki.baserock.org/
.br
http://www.baserock.com/