---
name: "shape_build"
section: "1"
platform: "linux"
package: "shapetools"
version: "1.4pl6-15+b1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/shape_build"
---

# shape\_build(1)

shapeTools RMS system building and installation

## 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)](/make/1.md)*  **and by** *[shape(1)](/shape/1.md)***. 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)](/shape_RMS/1.md) 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)](/shape_tmpl/7.md) 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_stdrul/7.md), [shape\_tmpl(7)](/shape_tmpl/7.md)**
