next up previous
Next: How It Works Up: No Title Previous: No Title

Introduction

This document describes the GEN_make Makefile processor -- the Tcl script which generates ASTERIX Makefiles. This script exists because editing the ASTERIX make files is too error prone to be done by hand. It is better to reduce the varying information to control files and put the invariant rules on how to build the various components of the system in proto-make files. The reduction in volume thus achieved is about a factor of 40.

In addition to the script itself there are only 3 files involved when GEN_make is run. They are named according the the class of directory for which the Makefile is being constructed. They are,

class.config
Contains the configurations of the Makefile which are peculiar to the directory to which it refers. It might, for example, contain the names of the programs to be built.

class.make
The proto-type make file. This is the file which contains the skeleton of the Makefile. Things which vary from one instance of a directory class to another are parameterised using GEN_make tokens, which have the form colon_identifier_colon (eg. :FILES:). Proto-type include files may also contain #include directives which cause file inclusion. This enables entire sections common to different classes of make files to be shared, further reducing the number of potential errors.

class.base_config
This file, in the same format as the class.config file, contains default definitions for all the tokens used in the proto-make file. This serves two purposes. It enables developers to realise the tokens which can be used, and it serves to provide default behaviour which may or may not need to be overriden.



Asterix
Tue Oct 7 12:02:39 BST 1997