Mail Archives: djgpp/1994/04/15/19:26:59
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 <jon AT halsp DOT hitachi DOT com>
===============> 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.
- Raw text -