.\" 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/