Mac-only tests were leaving .d.$$$$ dependency files left in the test tree. This happened
because:
- "make clean" was invoked although no tests in the folder were run
- The Makefile had main.d as a dependency, which meant it tried to compile the source file (to extract
dependencies).
- The compile failed (does not compile on linux) and left behind a main.d.$$$$ temporary file.
- "make clean" tried to clean up these temporary files, but the expansion $(wildcard *.d.[0-9]*)
was performed before the temporary file was created, so this file was not caught.
I fix this by giving all the temporary files deterministic names, which makes it easier to clean
them up afterwards. I also make the rules for generating the dependency files more robust and
less likely to leak files in the first place.