To: bug-gnu-utils AT prep DOT ai DOT mit DOT edu Cc: djgpp AT sun DOT soe DOT clarkson DOT edu (DJ G++ Mailing List) Subject: Re: gnu make woes Date: Fri, 15 Apr 94 16:19:15 PDT From: Jonathan Ryshpan The following dialogue in the djgpp mailing list indicates that there may be a bug in make. The problem appears to arise from the fact that while there is code in read.c, line 674 to allow a "\" to cause ":" to be read as an ordinary character; nevertheless the code that picks up the target file (read.c line 1521 ff.) uses savestring(), which doesn't understand "\"s. It's not clear to me what to do without the risk of creating other bugs. Many Thanks: Jonathan Ryshpan ===============> I write for myself ONLY. <=============== ==========> Cut here. Djgpp dialogue follows <=========== >Potter (rri!potter AT vtserf DOT cc DOT vt DOT edu) writes: >>>OBJPATH=h: >>>OBJ= $(OBJPATH)/file.o >>>all: $(OBJ) >>> echo hello >>> >>> >>>GNU make says it is expecting a % sign (due to the expanding OBJPATH to h:) >>>This is ugly for a make that is supposed to run under DOS. >>>... >>>Has anyone come up with a solution to this problem? Eric Backus replies: >>For GNU make, you can escape the ':' with a leading backslash. Potter replies: > Thanks for the reply. However it did not work. The backslash did >escape the meaning of the ':', thus no longer conplaining about the missing >'%'. However the backslash was left in an thus complained about no rule for >the target. Example: > > Makefile: > > all: d\:/tmp/source.o > echo It Worked > > Produces: > > gmake.exe: *** No rule to make target `d\:/tmp/source.o'. Stop. > >I also tried several of the other UNIX style escapings ", ', and `, but none >worked. Well, thanks for the suggestion.