>Making .PARSEDIR always absolute should fix this problem, but in the >general case requires realpath().
Yes. Though it is worth noting that setting .PARSEDIR to .CURDIR when the makefile path contains no '/' may be sufficient for correct operation. >However, I'm guessing that .PARSEDIR >may not be the only path variable affected -- ISTM that the right >thing to do is to track down why assigning OBJDIR after startup does >not update all the same things that assigning it during startup does, That would boil down to re-running main() and re-reading makefiles etc. A lot of overhead. A possibly simpler solution might be to shift the default objdir logic until after sys.mk has been read, and invoke it only if cwd has not changed. There's still no guarantee that you won't break half the world though ;-) --sjg