next up previous contents
Next: 5.1 Predefined Configurations Up: Dissertation Walter Tuppa Previous: Defining New Rules

5 Configurations

 

VMake has the ability to build one or multiple projects for different configurations on the same source tree without conflicts. This is achieved by hiding system dependent files for objects, libraries and programs in configuration dependent subdirectories. The names of these directories are derived from the configuration name. Under UNIX these names are prefixed by a dot, so these directories are usually not listed. Under VMS they are prefixed by a dollar sign, thus they are at the beginning of any directory listing, since VMS does not have the feature to hide directory entries. These names are normally not used by users. Files like automatically generated code which can be shared between configurations are not stored in these directories, e.g., code replication created by UNFUG or C to VLisp binding created by TAC.

The top level configuration dependent directory is also used to store the project save information in a file named vmsave.mk for reuse on the next invocation. All libraries have symbolic or hard links from this directory for easier access during program generation. The project include file to solve system dependences generated from the system definitions in the configuration file is stored in that directory, too. This file is included from the C include file ``machine.h''.

All configuration dependent directories may be removed by using the command line option killConfiguration. In this case, all files stored in the configuration dependent directories are deleted and the directories are removed. This is a very easy way to get rid of from a configuration which is no longer in use.





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