
On 2022-10-28 02:03, Manuela Friedrich wrote:
Hello Paul,
recent changes in the sources cause build failures on Windows, see:
nmake /A /D /C /S makefile(828) : U1002: syntax error : invalid macro invocation '$' Stop.
The related change was https://github.com/eggert/tz/commit/34c4662760df3af2ad9ec0aab5cc3ffba51dde80
Makefile - $(AWK) '/^Link/ {print $$3}' backward | LC_ALL=C sort -cu + $(AWK) '/^Link/ {printf "%.5d %s\n", g, $$3} /^$$/ {g++}' \ + backward | LC_ALL=C sort -cu
I don't see anything wrong with those two new lines, so it appears that this is a bug in Microsoft nmake. I can't easily run nmake and so would appreciate your help in coming up with a workaround. Which version of nmake are you using? What is the value of AWK in your Makefile? What is in your environment? If you run the shell command env | grep '\$' is there anything there with a dollar sign? I ask because this sort of thing has been a problem in the past; see: https://jeffpar.github.io/kbarchive/kb/075/Q75079/ Does it work around the bug if you set 'DOLLAR = $$' in the Makefile, and then use '$(DOLLAR)' instead of '$$'? What happens if you run nmake in an otherwise-empty directory that contains the attached Makefile? Here is what I see when I run GNU Make 4.3; what output do you see? echo 'Link A B' >backward awk '/^Link/ {printf "%.5d %s\n", g, $3} /^$/ {g++}' \ backward | LC_ALL=C sort -cu Can you think of any other way to work around the nmake bug? Perhaps you can edit the attached Makefile and get it to work.