You might think these are too many checks, but in fact each is needed to
cover all possible edge cases.
For example you could remove all the VSIM_PATH checks when creating the
symlink and force the creation of symlink (-f flag), but this will fail
for /boot, since on many machines /boot does actually exist.
Removing VSIM_PATH from the run target can cause problems when calling
run with a pre-compiled build directory etc.
When running a questa simulation for pulp/pulpissimo, the testbench
tries to write some log files to stdout/ and fs/, which don't exist
resulting in an ENOENT.
This reverts commit d898ae3424, reversing
changes made to b8f77f397f.
The problem is that when you call `make run` twice, then the work target
tries to re-do it since its a broken symlink. Furthermore, it should be
anyway possible to get the bender flow working withouth symlinking the
work directory.