On Thu, Apr 25, 2002 at 01:09:06AM +0800, Stas Bekman wrote:
> Currently all Makefile.PL's are runinng inside the same package unless 
> declared explicitly by each Makefile.PL. This leads to problems.
> 
> For example function redefinition errors under:
> 
> use strict;
> use warnings FATAL => 'all';
> 
> e.g if the parent dir's Makefile.PL and the child both define:
> 
> sub clean_files {
>     return [@scripts];
> }
> 
> redefine warning will kill the makemaker.
> 
> This can be worked around as:
> 
> use strict;
> use warnings FATAL => 'all';
> no warnings 'redefine';
> 
> Or declaring a package in each Makefile.PL.
> 
> But ideally MakeMaker should run child Makefile.PL's in a dedicated 
> package created on the fly by MM (e.g. based on the path):

I'd like to do that, but I can't.  For backwards compatibility reasons
Makefile.PL's must be run in package main.  It changed accidentally in
5.48_01 and it broke several modules.

It does, unfortunately, shatter the illusion that each Makefile.PL is it's
own thing.  You're welcome to play with ExtUtils::MakeMaker->eval_in_x() to
throw up more smoke and mirrors, but please make sure it will build PDL and
Wx.

Hmm... how was your Makefile.PL setup working before with 5.6.1's MakeMaker?
It should have blown up, or at least emitted a warning, there as well.


-- 

Michael G. Schwern   <[EMAIL PROTECTED]>    http://www.pobox.com/~schwern/
Perl Quality Assurance      <[EMAIL PROTECTED]>         Kwalitee Is Job One
turds slide easily
spooge the paste into my crack
poop falls free no more
        -- Schwern

Reply via email to