Wed Jun 11 03:24:13 2014: Request 95809 was acted upon.
Transaction: Correspondence added by SISYPHUS
       Queue: Inline
     Subject: [PATCH] Using Inline in a distribution with multiple modules
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: s...@parasite.cc
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=95809 >


On Mon Jun 09 22:45:21 2014, s...@parasite.cc wrote:
> Ok I'll check into that too :). Now I just have to find some time this
> week...

Hi Jason,

The problem seems to be mostly fixed if, at line 55 of (your patched) 
lib/Inline/Makemaker.pm we change:

    if ($mm->{PMLIBDIRS} && $mm->{PM}) {
to:
    if (@{$mm->{PMLIBDIRS}} && $mm->{PM}) {

That at least allows both "layouts" to build and install as desired. On the 
perls I've just tested, an array reference is true even if the array being 
referenced is empty - hence the need for the alteration.
However, that change doesn't fix the annoyance of having the compilation re-run 
during each of the make steps (which happens because the specified .inl target 
is not met).

Incidentally, for a long time Inline has shipped with the demo module named 
Math::Simple-1.23.
It was always packed into the source as:

modules/Math/Simple/Changes
modules/Math/Simple/Makefile.PL
modules/Math/Simple/MANIFEST
modules/Math/Simple/Simple.pl
modules/Math/Simple/test.pl

In git (https://github.com/ingydotnet/inline-pm), I've now rearranged that as 
the more usual:

modules/Math-Simple-1.23/Changes
modules/Math-Simple-1.23/Makefile.PL
modules/Math-Simple-1.23/MANIFEST
modules/Math-Simple-1.23/Simple.pl
modules/Math-Simple-1.23/test.pl

And I've also added a second demo which is essentially the same distro as the 
one we've been using as our reference. (I've changed the names of the modules 
from Foo, Foo::Bar, and Foo::Bar::Baz to Boo, Boo::Far and Boo::Far::Faz - 
other than that it's the same).

So, in git, you'll also find:

modules/Boo-2.01/lib/Boo.pm
modules/Boo-2.01/lib/Boo/Far.pm
modules/Boo-2.01/lib/Boo/Far/Faz.pm
modules/Boo-2.01/Makefile.PL
modules/Boo-2.01/MANIFEST
modules/Boo-2.01/t/boo.t

These files will, of course ship with future Inline releases as demos of the 2 
layouts.
Naturally, what we want is for both of those demos to build correctly out of 
the box.

With the above alteration to your patched MakeMaker.pm I think they do that - 
except that Math-Simple-1.23 wants to recompile the C code at every 'make' step.

Cheers,
Rob


Reply via email to