Are the % characters appearing in the generated Makefile where they should be?
When make prints the command it is issuing, is the % present as it should be?
If it is in the Makefile and missing when make reports the command, file a bug on GNU make, but if GNU make prints the %, my guess is that the Windows shell is eating the single %, a situation that dmake silently works around by doubling % characters (or something else; if the Windows shell is responsible for this, your solution of writing %% may only work due to Yet Another Microsoft Bug).
If you try installing bash and editing the generated Makefile to set SHELL = /path/to/bash.exe, do the strange problems go away? If so, it is almost a Windows-ism tripping you up here.
GNU usually has consistent escaping and quoting rules. I doubt that GNU make is that different between "native" and "Windows" ports. Have you tried a Cygwin build of GNU make?
Unless your module is intended to be Windows-only, I suggest that the most portable solution is to avoid passing format string constants on the command line.
In reply to Re^4: Defining an XS symbol in the Makefile.PL (largely solved)
by jcb
in thread Defining an XS symbol in the Makefile.PL
by syphilis
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |