On Oct 8, 2006, at 5:54 PM, Michael G Schwern wrote:
Here's an alternative approach. Why make compiler dependencies special? Treat them like any other alien dependency. How do we do that? Wrap a module around it. ExtUtils::CBuilder is one example.
I like. Adding ExtUtils::CBuilder as a build_requires dependency has worked fine for me... once I learned that it had to be there.
I think if that error message changes to explicitly state "go install ExtUtils::CBuilder", that's a big help. The only thing left is to make it clear to authors that they must add CBuilder to build_requires if their distro uses M::B features that need it. Documentation is the weak remedy. An automatic error during "./Build dist" is the strong remedy.
Status quo doesn't work because the check for C_support happens against the author's machine when M::B boots up, rather than against the config spec'd in the M::B constructor. What good does it do the end user if some authoring box somewhere out there had M::B configured with C_support when the dist was built? :)
Marvin Humphrey Rectangular Research http://www.rectangular.com/