delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/04/21/20:28:07

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).

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019