It is unnecessary to run a dedicated command to create the dependency
files because:
* If the object file does not exist, we have to run the compiler
anyway, which creates the dependency on the fly.
* If the object file exists, the dependency file also exists, so
the build system notices if the object file needs to be rebuilt,
for example because an included header file was modified.
The only thing we must guarantee is that all included header files
exist. We do this by introducing an order-only dependency: all object
files depend on all .lsg.h files but we impose this specific ordering
without forcing the targets to be updated.
This speeds up the build a lot and also simplifies Makefile.real.