I got lost in your perl script, so may have missed something; but it *looks* as if what's happening is that your .d.cmd file records the prior path of what was $< on your previous run; so the .o file depends on that (as well as the newly renamed file that's $<) and this is the problem, not the fact that $< is missing.
I suspect (although I'm no expert on VPATH) that the fix for this is for your perl script to strip, from each prerequisite listed in the *.d file, any prefix that's present in VPATH. Then the .d.cmd file will list paths relative to VPATH and the VPATH machinery shall take care of things moving among its directories. Eddy. _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make