So that is how to do it!
Well, it's one way to do it ... but it's a different way to the way it's done in the demo module that ships with the Inline::C source.
That demo module is Math-Simple-1.23, and you'll find it in the examples/modules folder in the Inline-C source distro.
When you build and install that module (which is safe and fine to do), you'll find that compilation of the C code is done only once (ie during 'make test'), yet nothing is done to control the location of the Inline build directory.
I don't know why JavaScript::Embedded is requiring special treatment wrt the location of the _Inline build directory. I think the difference probably lies in some magic provided by Inline::MakeMaker - which the Math::Simple Makefile.PL uses in place of ExtUtils::MakeMaker.
But I can't remember and I don't really feel like digging into it.
Have a play with Math::Simple if you're interested and you'll quickly see that there's no re-compiling being done.
BTW, the problem I had building JavaScript::Embedded on perl-5.36.0 is my fault. The mingw-w64 compiler that built that perl defines _WIN32_WINNT to 0x0602 0x0a00, which implies that I'm running Windows 8 10 (and therefore that GetSystemTimePreciseAsFileTime() is available).
But I'm actually on Windows 7, and GetSystemTimePreciseAsFileTime() is therefore unavailable does not become available until Windows 8.
The mingw-w64 compiler that built my perl-5.34.0 defines _WIN32_WINNT to 0x0502 (which implies pre-Windows7) and therefore avoids the issue.
I've released a new version on CPAN, should be available on mirrors in a few hours
JavaScript-Embedded-2.7.2 built, tested, and installed fine for me on perl-5.34.0.
Cheers, Rob
| [reply] |