http://www.perlmonks.org?node_id=11104687


in reply to Re^5: Defining an XS symbol in the Makefile.PL (quoting)
in thread Defining an XS symbol in the Makefile.PL

Heh, whats going on?

Good question ... I don't have an answer to that ;-)

Your code still results in the same error for me: fatal error: EXTERN.h: No such file or directory.
Looks like the "-iquote" that my Inline-C-0.81 invokes is stuffing things up.

UPDATE: No, it has nothing to do with "-iquote". Turns out that when I switched to I-C-0.76 I also switched to EU-MM-7.04, and the problem I'm facing is due solely to a change that occurs in EU::MM some time between 7.0401 (which is fine) and 7.1001 (which breaks Inline::C). I'll investigate further when I get a chance and file a bug report if warranted.

What version of Inline::C are you running ? When I switch to Inline-C-0.76, your script works fine - as does mine if I replace the incorrect SV * foo(... with void foo(....

But now I'm puzzled as to the output we get for printf("***%s***\n", MY_FORMAT);
The quotes either side of %.17e are apparently missing from MY_FORMAT. So how does printf(MY_FORMAT, sqrt(2.0)) even compile ?
Can you explain that ?

BTW, seems that my problem with finding a correct rendition for the DEFINE in the Makefile.PL is dependent upon the version of EU::MM.
With EU-MM-7.04, this is fine:
DEFINE => q["-DMY_FORMAT=\\"%.17\\""];
But with EU-MM-7.34 (which is what I've been using) the crucial percentage symbol is still being omitted.

Cheers,
Rob