Run the whole generation in one command
If compiling with more than one task running at once, there could be a concurrency on $(DEPSDIR)/tmp.d Fixed that by making the temporary name unique using the target's name.