Mail Archives: djgpp/1998/10/23/10:12:33
In article <362FF086 DOT BDA6266C AT montana DOT com> you wrote:
> On a straight DOS system with only command.com for a shell, make will
> fail after
> cd ../new_dir; $(MAKE)
Of course it will. How on earth do you expect DOS's 'cd' command to
understand *forward* slashes?
> I found that doing an explicit cd ../original_dir fixed the problem,
> and there were a few exchanges about this in the archives that indicated
> this was the case.
Actually, there is no really portable method for doing this. In a
Unixy environment, every 'make' command line would be executed by a
separate sub-shell, and thus a single 'cd' command doesn't do
anything.
OTOH, 'make' behaviour isn't all to portable, anyway, so my recommendation
would be: required GNU make to be used, and use its
$(MAKE) -C ../original
feature for recursion. Works perfectly, and without any changes, for all
platforms with a reasonably well-ported GNU make.
> I ran a small test using this hack with bash available, and pointed to
> by SHELL, and it still seemed to work.
And in a true Unix environment, it definitely wouldn't work at all.
The main difference is that the 'current working directory' has a
*totally* different meaning on DOS and Unix: in DOS, there's exactly
*one* working directory per drive letter, and it's the same
system-wide. On Unix, every process has it's own working directory.
--
Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de)
Even if all the snow were burnt, ashes would remain.
- Raw text -