Next Up Previous Contents
Next: 3.2 Bootstrapping and building the entire tree
Up: 3 Building applications and libraries
Previous: 3 Building applications and libraries
[ID index][Keyword index]

3.1 The top-level Makefile

The important targets in the top-level makefile are:

make world
This target builds the whole tree, in an order which respects the dependencies between components. It builds all the targets listed in the variable ALL_TARGETS within the top-level Makefile.in. Those targets are install manifests, in the default manifest directory (/local/star/manifests in the example below), so that make world both builds and installs the entire software set.

The bootstrap that this is part of is described in more detail in the next section.

make <manifest-file>
As an alternative to make world, you may specify a single manifest file. This builds and installs the corresponding component, and all of its dependencies. Note that this does nothing if the given manifest file is up-to-date with respect to its dependencies on other manifest files. If you have just updated a component, then you can rebuild and reinstall it by deleting the component's manifest file and remaking it.
make or make all
This recurses into each of the directories listed in AC_CONFIG_SUBDIRS within the top-level configure.ac, and invokes make all there. This target brings the tree up-to-date after a CVS update, but it does so without respecting the dependencies between components. This target is present for the sake of consistency, and as a convenience for bringing the local tree up-to-date after a CVS update, and you should not use it as a shorthand or alternative for make world above.
make clean
The targets clean, distclean and maintainer-clean simply recurse into the children and invoke the corresponding target there.
make install
This targets does nothing, and is also present largely for the sake of consistency. Depending on the context, you should use make world or, if you have just updated and rebuild a particular component, then either delete and remake its manifest file (as mentioned above), or go to the component's directory and use make install.
Note that the building above presumes that all the required code is checked out of the repository -- it does not handle the checkouts for you, and if you do not have a required component checked out, it will simply fail.


Next Up Previous Contents
Next: 3.2 Bootstrapping and building the entire tree
Up: 3 Building applications and libraries
Previous: 3 Building applications and libraries
[ID index][Keyword index]
The Starlink Build System
Starlink System Note 78
Norman Gray, Peter W Draper, Mark B Taylor, Steven E Rankin
11 April 2005. Release snapshot: $Revision: 1.116 $. Last updated 28 May 2006