I've been trying but have been unable to get ExtUtils::MakeMaker to correctly build multiple XS modules in one distribution. I.e. instead of having something akin to what h2xs would create, a single .pm file and one .xs file I'm trying to build a distribution with multiple XS files and multiple pure Perl files.
I've made an example distribution that demonstrates the problem, it can be retrived with: $ svn co http://avar.lir.dk/vcs/src/perl/xs/Hello/ or from http://www.simnet.is/velfag/tmp/Hello.tar.gz, there's a README.pod file in the distribution that describes the problem in further detail (http://avar.lir.dk/vcs/src/perl/xs/Hello/README.pod), I'll copy the BUGS section here: ---- When this module is being built through the normal process: perl Makefile.PL make The XS modules in F<ext/> build due to the main F<Makefile.PL> having a C<DIR> key-value pair which tells the main F<Makefile.PL> to pick up on the sub-makefiles. However when attempting to test the distribution: make test or installing it: make install PREFIX=. None of the XS modules are installed, this is because the F<blib/> directory doesn't include the required files, but should. There's an I<easy> workaround for this problem though: perl Makefile.PL make rsync -av ext/Hello/blib/ blib make test After syncing F<ext/Hello/blib/> to F<blib/> B<make test> works fine, and: perl -Iblib/lib -Iblib/arch -MHello -MHello::World -MHello::There -le 'print for Hello::hello, Hello::World::hello, Hello::There::hello' work as expected, i.e. it prints: hello hello, world hello, there ----