Command Interception
Another way to build the graph is to intercept all tool calls. The essence of this technique is to activate runtime tracing automatically for all intercepted tools without requiring the user to explicitly prepend the VOV wrapper. This technique is available only on UNIX.
vovintercept
prepends the directory
$VOVDIR/scripts/intercept to the PATH variable.
This directory contains an executable file for each tool that you want to intercept.
Each file is a symbolic link to the
$VOVDIR/scripts/intercept/generic. For example, if you want
to intercept all calls to the compiler gcc
, you need to create a
link to generic
called
gcc
:% cd $VOVDIR/scripts/intercept
% ln -s generic gcc
Repeat the process for all tools that you want to intercept.
% vovintercept
% make target
% vovinterceptstop
This approach has some limitations. For example, you may find out that your existing flow generates a lot of input and output conflicts. Some scripts and Makefiles use full paths to invoke tools, thus preventing the interception.