VMake searches for working projects in the directory defined by the environment variable VPROJECT or by the command line option ProjectHomeDirectory. For each subdirectory containing a project definition file vmake.prj VMake creates a working project. The project dependences are used to build a project tree. The first time when a goal is evaluated in a project the module description files vmfile.mk are scanned and the information is stored in a equivalent tree in VMake. Each module node is represented by an object of the vm::Directory and the files by their associated typed object (see Table 8.1). The information from the project save file is compared with the current definitions. No longer valid files like out-of-date object files, libraries, and programs are automatically deleted to save storage space.