Mail Archives: djgpp/1994/04/21/20:28:07
Just bumped into another make problem, however this one is probably actually a
problem with go32. It is best illistrated with the following make file:
t1:
c:/djgpp/bin/echo This is a test
t2:
c:/djgpp/bin/echo "This is a test"
If one is working from the D: drive, this gives strange results when one makes
target t2. Session:
D:\TMP>make t1
c:/djgpp/bin/echo This is a test
This is a test
D:\TMP>make t2
c:/djgpp/bin/echo "This is a test"
C:\>
This through me when it first happend in a real make file. ???How did I get to
the C: drive, expecially since I just did a make -n and nothing it was going to
do would have changed drives??? What I assume is actually going on is that
somehow go32 assumes that it has to system() to execute the echo program.
Command.com, when it gets ahold of that command sees the C colon forward-slash
as the C: command with the additional option, which is just ignored. Obvious
work arounds include removing the qotes or escaping the quotes with
back-slashes. Anyone have any ideas on the cause of the problem. My quick
look at the go32 code revealed that it system()'s if there is and redirection
in the command ("<>|"), otherwise it spawnlp()'s (if that fails it falls
through to the system() call).
- Raw text -