Generate FDL Using the Instrumentation Library

The instrumentation library (VovInput, VovOutput, ...) can generate FDL if the variable VOV_FDL_ONLY is set. This can be used to ease the integration of makefiles and instrumented scripts.

Example Using C-shell

File: example.csh
#!/bin/csh -f 
########## Part 1: The FlowTracer Section.
VovFdl T vov example.csh 
VovResources "RAM/10"
VovInput aa /bin/cp   || exit 1
VovOutput bb          || exit 1

if ( $?VOV_FDL_ONLY ) exit

########### Part 2: Do The Real Work Here.
cp aa bb
exit 0

Example using Makefile

File: Makefile_original
# Example of a Makefile that uses the VIL-Tools to generate FDL.
target: someInput 
        -@mv someOutput someOutput.bak
        ./someScript someInput someOutput
File: Makefile_with_fdl
# Example of a Makefile that uses the VIL-Tools to generate FDL.
target: someInput fdl_target
        -@mv someOutput someOutput.bak
        ./someScript someInput someOutput

# Additional rules for FlowTracer
fdl_target: 
        @VovFdl T vov make target
        @VovInput   someInput
        @VovOutput -ignore_timestamp someOutput
# Fragment of Flow.tcl code to use the information 
# in the 'fdl' target of the Makefile above.
set fdl [exec env VOV_FDL_ONLY=1 make fdl_$target]
catch {eval $fdl}

# Fragment of Flow.tcl code to use the information 
# in the 'fdl' target of the Makefile above.
set fdlFile /tmp/vovfdl[pid]
setenv VOV_FDL_ONLY $fdlFile
catch {file delete $fdlFile}
catch {exec make fdl}
if [catch {source $fdlFile} errmsg] {
    VovFatalError "Cannot source $fdlFile: $errmsg"
}
catch {file delete $fdlFile}