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)