What is this based on? Pixies and fairy dust? ...
It's based on pragmatic experience. I've actually found it very useful for automating many tasks that happen alongside installation - hence my comments about using Module::Build for other things than installing modules.
However, I've never written an XS module, and I have no idea how well or otherwise Module::Build holds up when building external C code, but I meet regularly with some mongers who write XS code who swear by Module::Build. OK, if there are deficiencies here, please post feedback to the authors of the module. I don't feel it invalidates what I have to say in my review.
| [reply] |
Module::Build's XS support is still in alpha phase (according to its POD), and still somewhat buggy (I've submitted bug reports for all of the items below).
For XS support to work, ExtUtils::ParseXS must be installed. Module::Build doesn't check for it, so you must add it to 'build_requires' in Build.PL.
Module::Build doesn't generate VERSION and XS_VERSION for compiling the C code generated from the XS code. You need to add them to 'extra_compiler_flag' in Build.PL.
Your Build.PL file should check for have_c_compiler() if you plan to upload it to CPAN.
Remember: There's always one more bug.
| [reply] |