The second main mode of VMake can be activated with the command line option interactive. In this mode VMake loads all the information required to build the working project only once and then waits for additional input from the terminal. Multiple evaluations of different goals are very fast because all dependence information is already in memory. Only file modification times need to be requested for each run. The interactive mode can be terminated with the command key . On termination VMake stores all modified information of the projects in the project save files. This mode allows fast interactive development because almost no overhead due to description file parsing and information scanning exists. Modified description files vmfile.mk are automatically reloaded and dependences are rebuilt.
In interactive mode VMake executes command lines given by the user. The command keys or can be used to advise VMake to display a short summary of all option. Typing an additional command character will restrict the information to the command related to this command. Interactive commands may be entered if the following prompt is displayed by VMake:
3mm enter VMake commands [project project]:
All interactive commands are listed in Table 7.6.
Tabelle 7.6: Interactive commands of VMake
During the evaluation of dependences, VMake does not check for user input. An exception is , which forces VMake to reenter the interactive loop. After dependence checking is finished and all required files have been queued for updating (see Section 8.1), VMake is able to accept new commands, but will not execute them until all update actions have been processed. In this case VMake shows the following prompt:
3mm enter VMake commands (will be cached) [project project]: [jobs]
The list jobs consists of up to three numbers. The first number indicates how many update actions are currently executing, the second how many are ready and the last one how many are delayed because they have to wait for other update actions in their dependences.
The interactive loop of VMake is reentered: