next up previous contents
Next: 3.2 Directories and Files Up: 3 The Vienna Make Previous: 3 The Vienna Make

3.1 Projects

VMake introduces the concept of project and sub-projects to handle large scale software systems. A project is a piece of software which constitutes a meaningful sub-system. This ``divide and conquer'' approach on large software system cuts down the average size of each project. Dividing large scale software projects into smaller sub-projects has been now used for quite a while in software development[Sha89, Sha95], but was not extended to the build process for CASE tools. VMake stores dependences between projects in an acyclic graph, that means no dependence loops are allowed between projects. VMake itself is a project of its own. The project definition file for it is shown in Figure 3.1.

  figure1072
Abbildung 3.1: Project definition of VMake

With the Project-Definition the symbolicName VMake is defined for the project. In addition the project depends on two sub-projects which are referenced by the symbolicNames ViennaLispInterpreter and ViennaBaseSystem. The project information of these sub-projects is automatically loaded so that all dependence information to built the main project is available.



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