NAME¶
shape_build - shapeTools RMS system building and installation
SYNOPSIS¶
shape [all] [VERSIONS=<rule>] [variants] [macro settings]
shape install [VERSIONS=<rule>] [INSTALLBASE=<path>] [variants]
[macro settings]
shape clean [<macro settings>]
shape cleancache [<macro settings>]
make [all] [<macro settings>]
make install [INSTALLBASE=<path>] [<macro settings>]
make clean [<macro settings>]
DESCRIPTION¶
Shape all, or just
shape (as
all is the default target),
builds the current system node. It performs all necessary actions to derive
the main target ($(TARGET) in the Makefile) from the node's source components.
Shape all also builds all subsystems of the current node. Before triggering
any build action itself, if recursively calls shape for each subsystem.
Version selection is driven by the rule given as value to the
VERSIONS
macro, default is
most_recent. The given version selection rule on the
command line, if any, is inherited to the recursive calls.
Shape install installs the build results of the current node in the
appropriate locations. Things to be installed are usually binaries and
manuals. The target
installtargets in the Makefile lists all these
things as its dependents. Shape install updates all build results in the same
way as shape all does, before installing them. Shape install invokes all
subsystems of the current node in the installation procedure by recursively
calling shape install for each of them. This is done, before it performs any
build or install actions itself. The appropriate versions are selected
according to the given version selection rule named in the
VERSIONS
macro. The default rule for shape install is
recent_release selecting
the most recent release or prerelease (whichever is newer). The macro
INSTALLBASE defines the installation base directory, an absolute
pathname pointing to the root of a directory tree, where the build results are
to be copied to. Check the Makefile for the default setting of INSTALLBASE and
the installation directories defined as relative pathnames starting from the
installation base directory. Values of the VERSION and the INSTALLBASE macro
set on the command line are inherited to all recursive calls.
Shape clean removes all derived objects currently established as UNIX
files. These are the files listed in the OBJECTS macro in the Makefile, the
derived target ($(TARGET)), and the target aliases ($(ALIASES)). The derived
objects, established as UNIX files are those being produced from their source
or reinstalled from the derived object cache during the last system build.
Shape cleancache cleans up the derived object cache, will say, it
removes all objects stored there. All names listed as dependents of the
.BPOOL special macro in the Shapefile are candidates to be cached. When
multiple (different) versions of derived objects with the same name arise, the
older ones are stored to the derived object cache. Shape cleancache in
conjunction with shape clean removes
all derived (automatically
reproducible) objects. The two cleanup actions are
not called
recursively. They apply only to the current node.
The build and cleanup actions (all, install and clean) of the shape RMS can be
performed by
make(1) and by
shape(1). The main difference is,
that shape is capable of setting up the appropriate source context according
to a given version selection rule, while make only regards the regular UNIX
files. Make will fail if not every component of the system has a checked out
busy version. The intention for maintaining Makefiles suitable for complete
system builds aims at system building and installation from a source
distribution rather than from the development area. Source distributions are
system copies taken from one of the release trees (partial release area or
release area). See
shape_RMS(1) for details.
Make all, make install and
make clean behave similar to their
shape counterparts. The difference is, that they expect a complete system
source context to be set up as UNIX files (see above).
Each macro definition in the Make- or Shapefile may be redefined from the
command line. Most of the shape RMS standard macro definitions are inherited
to recursive calls of make or shape. Check the
shape_tmpl(7) manual page for a
list of the standard macros.
INCONVENIENCES¶
For technical reasons, each make call recursively invokes make on the same level
before performing any actions. This unfortunately restricts the efficacy of
command line options. E.g. there is no chance to work with the
-f
(alternate name for the Makefile) option and the redefinition of macros is
restricted to inherited ones. This restriction does not apply to shape calls.
FILES¶
Makefile
Shapefile
SEE ALSO¶
shape_stdrul(7),
shape_tmpl(7)