|
From: | Ken Raeburn |
Subject: | Re: buildobj.lst and Windows builds - a tiny bit of help needed? |
Date: | Sun, 23 Aug 2009 14:43:04 -0400 |
On Aug 23, 2009, at 14:02, Eli Zaretskii wrote:
I think it will be hard to DTRT without shell-specific targets: a Unixy shell needs to see the backslash escaped, the Windows shell needs to see it alone. $(ARGQUOTE) will not help here, since with stock Windows shell, $(ARGQUOTE)\$(ARGQUOTE) evaluates to "\", and the backslash will escape the quote, which is not what we want.
Ugh. Well, there already seems to be some shell-specific coding in nmake.defs and gmake.defs, so perhaps I can define $(BACKSLASH) to expand to whatever is needed for a backslash inside $(ARGQUOTE), namely two backslashes for sh and one for Windows? Though, in order to get the backslash by itself, I'd need to avoid "\" acting as a line continuation character for make. Does that mean I need to double them, or add just one more, or...?
The other possibility that occurred to me was using multiple macros and string literal concatenation:
echo $(ARGQUOTE)#define BUILDOBJ0 $(DQUOTE)$(OBJ0)$(DQUOTE)$ (ARGQUOTE) > $(SRC)/buildobj.h
...echo $(ARGQUOTE)#define BUILDOBJ BUILDOBJ0 BUILDOBJ1 BUILDOBJWIN32 BUILDOBJFONT$(ARGQUOTE) >> $(SRC)/buildobj.h
If all the compilers available for Windows (and useable for building Emacs) support this, it may be simpler than figuring out the backslash quoting issues.
Ken
[Prev in Thread] | Current Thread | [Next in Thread] |