
After some more searching on the net, I found this page quoting a 30-year-old Microsoft Programmers Library manual: https://www.pcjs.org/documents/books/mspl13/c/qctools/ It says, for fatal error message U1002, that "To use a dollar sign in the file, type it twice ($$) or precede it with a caret (^)." The "caret" part contradicts POSIX but sounds like the problem you ran into. The tzdb Makefile has three other instances of "^$" but they're all followed by "s" and I guess nmake doesn't mind that, though it misinterprets the definitions in question. Since you're not running the checks (which are the only rules using those other instances) we won't worry about them. Does the attached patch work around the nmake bug? If so, it may be better than my previous suggestions.