38.5 Make Minimal Dependencies

This function only produces minimal dependencies if applied to a saturated dependencies hash. So

for $f (keys %DEP) {&saturateDependencies($f);}

should have been called before.

The procedure checks for each file intermediate and for each dependency dep of intermediate whether there is a file file such that file depends on intermediate and intermediate depends on dep. Then the dependency from file to dep is deactivated.

524minimal dependencies 524  (507b)
sub minimalDependencies {
    my($intermediate)=@_;
    my($dep, $file);
    for $dep (keys %{$DEP{$intermediate}}) {
        # There is an intermediate dependency $DEP{$intermediate}{$dep}.
        for $file (keys %DEP) {
            if ($file eq $intermediate) {next}
            if ($DEP{$file}{$intermediate}>0 && $DEP{$file}{$dep}>0) {
                $DEP{$file}{$dep}=0;
            }
        }
    }
}

Defines:
minimalDependencies, used in chunk 505a.

Uses DEP 504c.