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

----

Reply via email to