Next Up Previous Contents
Next: 2.1 Overview of the Autotools
Up: The Starlink Build System
Previous: 1 Introduction
[ID index][Keyword index]

2 Tools

This section is concerned with the tools which make up the Starlink build system. There are generally very few adjustments you need to make to the program source code (though the autotools can help you manage such things as installation directories and platform dependencies), and the changes you will make are to the auxiliary files which manage the build, most prominently the configure.ac file which organises the configuration, and the Makefile.am file which controls generating the makefile which does the work.

The build system as a whole consists of a number of components:

The Starlink autotools
These consist of versions of the GNU autotools, which are part of the Starlink CVS repository, and which are built and installed as part of the top-level bootstrap. They should be installed in /star/buildsupport/bin, or its equivalent if you have installed a set of tools in a tree other than /star. Since they have been extended and customised, they are essential; you cannot build the Starlink collection without them. There is an introduction to the autotools in Section 2.1, covering their interrelationships and basic usage.

We use (at the time of writing) an unmodified libtool, a moderately extended autoconf, and an extended and customised automake. The description below explains the use of these tools as modified; see Appendix B for details of the differences from the stock autotools.

The Starlink autoconf macros
There is an extensive set of autoconf macros which support building Starlink applications. You use these as you would any of the standard autoconf macros, by invoking them within the configure.ac file.

The macros are described in detail in Appendix A.

The autoconf program which is used is not itself customised for Starlink use. Instead, the macros are installed using the standard autoconf extension mechanism, which uses the application aclocal. This is discussed in passing in Section 2.1, and we mention it only in passing here.

starconf
This is the program which handles installing required macros, and configuring your directory ready to use the build system. Associated with starconf is the starconf-validate program which checks that your directory is configured correctly, and the program ./starconf.status, which unpacks required files, and allows you to make the link back to the configuration used to build the software. All these are described in detail in Section 2.2.



Next Up Previous Contents
Next: 2.1 Overview of the Autotools
Up: The Starlink Build System
Previous: 1 Introduction
[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