next up previous contents
Next: 4.1 Project Definition Up: Dissertation Walter Tuppa Previous: 3.4 Installed Projects Save

4 Rule Definitions

 

The operation of VMake is controlled by a set of rules for each module of a project. A rule definition consists of an identifier which determines the type of rule, a symbolicName, and several keys. A rule definition specifies an object with the symbolicName as unique identifier. These objects can be referenced by other rule definitions using their symbolicNames usually as key values.

For rule definitions a LISP-like syntax was chosen. This decision was decisively influenced by two factors: firstly, the reader of the Vienna LISP interpreter (VLisp) can be used for parsing rule definitions and secondly, the built-in functionality of VLisp sustains processing rules to a great extent.

The syntax of rule definitions is the following:

rule
( rule-name symbolic-name key-list )
key-list
key-list key-value
key-value
:key-name tex2html_wrap_inline13746 :key-name value-list
value-list
value-list value
symbolic-name
identifier
rule-name
For valid rule names refer to the appropriate section in this chapter
key-name
For valid key names refer to the appropriate section in this chapter

The following types exist for keys: 5mm
tabular1181

The following notation is used for the description of rule definitions: 5mm
tabular1216
Basically, two different types of rules can be distinguished. The first group of rules is used for specifying entire projects (project definition rules). They control the version of the project and define dependences to other projects. Furthermore, links to external sources, e.g., sources not controlled by VMake, can be specified. Sources, which contain definitions of new additional rules to extend VMake-functionality with regard to special requirements are also included by project related rules.

The second group of rules handles module specifications. They operate on sources and objects for a certain module (module definition rules). These rules determine grouping of sources, control the compilation processes, and are responsible for automatic code generating and program execution.

To further improve the flexibility of VMake, different configurations of projects can be maintained in parallel. This configuration handling includes the support of different operating systems. VMake provides conditional forms to define key values according to the requirements of a certain configuration. Furthermore, as mentioned above, additional rules can be defined which allows for easily linking new tools.




next up previous contents
Next: 4.1 Project Definition Up: Dissertation Walter Tuppa Previous: 3.4 Installed Projects Save

IUE WWW server
Fri Jan 3 17:00:13 MET 1997