.\"----- Licensing notice ---------------------------------------------------
.\"
.\" This file is part of sw-tools.
.\"----- Licensing notice ---------------------------------------------------
.\"
.\" This file is part of sw-tools.
.\" You should have received a copy of the GNU General Public License
.\" along with sw-tools; if not, write to the Free Software Foundation,
.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.\" You should have received a copy of the GNU General Public License
.\" along with sw-tools; if not, write to the Free Software Foundation,
.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
The \*(sw tool attempts to take a lot of the work out of building and
installing source packages across multiple architectures. This section
will describe how to use \*(sw's features to best advantage in a number
The \*(sw tool attempts to take a lot of the work out of building and
installing source packages across multiple architectures. This section
will describe how to use \*(sw's features to best advantage in a number
By the way, this is quite a large manual. I recommend that you print a
copy onto paper and peruse it in a leisurely fashion, rather than
squinting at a monitor.
By the way, this is quite a large manual. I recommend that you print a
copy onto paper and peruse it in a leisurely fashion, rather than
squinting at a monitor.
The following steps will guide you through your first (and maybe second)
package installations. In the description, I'll use
.RI ` package '
The following steps will guide you through your first (and maybe second)
package installations. In the description, I'll use
.RI ` package '
.VE
This makes \*(sw update its main index of installed packages, telling it
which architectures packages are installed on, and who did it.
.VE
This makes \*(sw update its main index of installed packages, telling it
which architectures packages are installed on, and who did it.
.RB ` make '
so that it knows what to do. There are some strange command line
options which cause \*(sw to do more exotic things, though.
.RB ` make '
so that it knows what to do. There are some strange command line
options which cause \*(sw to do more exotic things, though.
The \*(sw program that users use is really a small architecture-neutral
shell script, which works out the current architecture and executes the
appropriate architecture-specific main program. It's done this way so
The \*(sw program that users use is really a small architecture-neutral
shell script, which works out the current architecture and executes the
appropriate architecture-specific main program. It's done this way so
Any \*(sw command line options can be put in the
.B SW
environment variable. The \*(sw program will read space-separated
Any \*(sw command line options can be put in the
.B SW
environment variable. The \*(sw program will read space-separated
Used by \*(sw when running commands on remote hosts. Don't use this yourself: it puts \*(sw into a very unfriendly mode and requires that you communicate with it
using a bizarre binary packet protocol. If you really must know more
about this, see the source code: it's quite well documented, really.
Used by \*(sw when running commands on remote hosts. Don't use this yourself: it puts \*(sw into a very unfriendly mode and requires that you communicate with it
using a bizarre binary packet protocol. If you really must know more
about this, see the source code: it's quite well documented, really.
option causes \*(sw to ignore whether architectures have been successfully built when
determining the
.IR "default build architectures" .
option causes \*(sw to ignore whether architectures have been successfully built when
determining the
.IR "default build architectures" .
.SS arch
Writes the name of the local host's architecture to standard output.
The architecture name is built into \*(sw at compile time.
.SS arch
Writes the name of the local host's architecture to standard output.
The architecture name is built into \*(sw at compile time.
.IB prefix /share/config.site
which sets up other Autoconf parameters once the prefix has been
chosen. See the Autoconf manual for more information.
.IB prefix /share/config.site
which sets up other Autoconf parameters once the prefix has been
chosen. See the Autoconf manual for more information.
.SS host \fIarch\fR
Writes to standard output the name of a host with requested architecture
.IR arch .
The hostname is read from the
.B archtab
file.
.SS host \fIarch\fR
Writes to standard output the name of a host with requested architecture
.IR arch .
The hostname is read from the
.B archtab
file.
.SS linktree
Builds symbolic link trees. For each of the build architectures, a
directory with the architecture's name is created containing a symbolic
.SS linktree
Builds symbolic link trees. For each of the build architectures, a
directory with the architecture's name is created containing a symbolic
.SS listarch
Writes a list of all known architecture names to standard output. The
list is obtained by reading the
.B archtab
file.
.SS listarch
Writes a list of all known architecture names to standard output. The
list is obtained by reading the
.B archtab
file.
command, the default build architectures will be limited to the
architectures listed on the command line. Architecture names may be
abbreviated as long as the abbreviation is not ambiguous.
command, the default build architectures will be limited to the
architectures listed on the command line. Architecture names may be
abbreviated as long as the abbreviation is not ambiguous.
The command is run with the remote current directory the same as the
local current directory, rather than the remote user's home directory.
The command is run with the remote current directory the same as the
local current directory, rather than the remote user's home directory.
The command is passed an environment constructed from the local
environment, the default remote environment, and
.B sw\-env
files, as described in the section
.B "Remote environment"
below.
The command is passed an environment constructed from the local
environment, the default remote environment, and
.B sw\-env
files, as described in the section
.B "Remote environment"
below.
The remote command is run with standard input attached to
.BR /dev/null :
there is no way of running an interactive remote command through
The remote command is run with standard input attached to
.BR /dev/null :
there is no way of running an interactive remote command through
.RB ` \- '
signifying the current host. (This last option may not sound useful,
but it's handy for testing.)
.RB ` \- '
signifying the current host. (This last option may not sound useful,
but it's handy for testing.)
the local host or reading the hostname from the
.B archtab
file. It then performs the following actions on that host:
the local host or reading the hostname from the
.B archtab
file. It then performs the following actions on that host:
Sets the current directory to be the subdirectory named
.I arch
of the directory from which the command was issued. This directory is
created if it doesn't already exist.
Sets the current directory to be the subdirectory named
.I arch
of the directory from which the command was issued. This directory is
created if it doesn't already exist.
Sets up an environment constructed from the environment prevailing when
the command was issued, the default environment set up by
.B rsh
Sets up an environment constructed from the environment prevailing when
the command was issued, the default environment set up by
.B rsh
.SS setup \fIpackage version \fR[\fImaintainer\fR]
Sets up various pieces of information required by \*(sw. The
information here will be added into the main index file by a
.SS setup \fIpackage version \fR[\fImaintainer\fR]
Sets up various pieces of information required by \*(sw. The
information here will be added into the main index file by a
contains leading directories then destination directories are created as
necessary for the output files. Note that the `snap' operation doesn't
actually need to follow creation of link trees.
contains leading directories then destination directories are created as
necessary for the output files. Note that the `snap' operation doesn't
actually need to follow creation of link trees.
The environment for a remote command (executed either through the
.B rsh
command, or a build command) is set up as follows:
The environment for a remote command (executed either through the
.B rsh
command, or a build command) is set up as follows:
Any environment variables defined by the remote execution program
(usually
.BR rsh )
override corresponding variables in the basis environment.
Any environment variables defined by the remote execution program
(usually
.BR rsh )
override corresponding variables in the basis environment.
Variable assignments are read from the global
.IB prefix /share/sw\-env
file. This makes some assignments which are useful everywhere, and will
Variable assignments are read from the global
.IB prefix /share/sw\-env
file. This makes some assignments which are useful everywhere, and will
This section describes how non-vendor software works at EBI. Chances
are that other sites will work differently. This description is here as
an example setup for \*(sw.
This section describes how non-vendor software works at EBI. Chances
are that other sites will work differently. This description is here as
an example setup for \*(sw.
.IB package / arch /.build\-log
Contains all the build output for a particular architecture. Usually
not very interesting, but might be handy one day.
.IB package / arch /.build\-log
Contains all the build output for a particular architecture. Usually
not very interesting, but might be handy one day.
The \*(sw program, and this manual, are \*(mw productions, in association
with the European Bioinformatics Institute. They were written by Mark
Wooding <mdw@nsict.org>. Go and ask him if you have problems.
The \*(sw program, and this manual, are \*(mw productions, in association
with the European Bioinformatics Institute. They were written by Mark
Wooding <mdw@nsict.org>. Go and ask him if you have problems.