I've got MakeMaker mostly working sitting in ext/ExtUtils-MakeMaker in the core. You can see it here. http://github.com/schwern/perl/tree/ExtUtils-MakeMaker The logic for copying ext/ExtUtils-MakeMaker/lib into lib/ is primitive and isn't integrated into "make clean", but it's basically correct. MakeMaker is kind of confused about being in a subdir of the Perl core, so it won't yet build as a CPAN module, but I know how to fix that. There's a MakeMaker test that fails because it doesn't expect $^X to be a relative path and here we hit the snag. In order to normalize how tests are run between CPAN and the core, each MakeMaker test has to include code like this: BEGIN { if( $ENV{PERL_CORE} ) { unshift @INC, '../ext/ExtUtils-MakeMaker/t/lib'; } else { unshift @INC, 't/lib'; } } This is because the core runs tests in its own t/ but doing it CPAN-style would mean running them in ext/ExtUtils-MakeMaker/ So if I want to include t/lib in @INC I have to include scaffolding like the above and always remember that the tests might be running from an odd location. This is annoying and really its unnecessary. The point of putting non-XS modules into ext/ is to reduce the differences between the CPAN and core versions. This goes both ways. The core is currently cheating in how it runs ext/ tests, it's running them manually rather than using "make test". So I propose changing how the core runs the ext/ tests. Rather than running them as part of one large run, let's take advantage of make and just let "make test" cascade down into the ext/ directories. The t/ and lib/ tests would run first, then "make test" would be run in each ext/ directory. Thoughts? I'm going to go hack on that. -- Hating the web since 1994.Thread Next