From: rri!potter AT vtserf DOT cc DOT vt DOT edu (Mark Allen Potter) Subject: make problem (probably go32 prob) To: djgpp AT sun DOT soe DOT clarkson DOT edu (DJ G++ Mailing List ) Date: Thu, 21 Apr 1994 19:37:16 -0400 (EDT) Reply-To: rri!potter AT vtserf DOT cc DOT vt DOT edu 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).