On Tue, Dec 2, 2014 at 10:45 AM, Jens Rehsack <rehs...@gmail.com> wrote:
> > Seems reasonable - but as you know in not to distant future, they shall > > also override CC, CCLD, ... (using ExtUtils::Builder or alike, instead > > of plain cc). > > > > Does the return hash of this callback overrides all EU::MM constants? > > I think I can answer this question on my own: > > File-ConfigDir-Install sno$ git diff > diff --git a/t/01-makefile.t b/t/01-makefile.t > index 5e9bd38..2b0759c 100644 > --- a/t/01-makefile.t > +++ b/t/01-makefile.t > @@ -35,8 +35,12 @@ delete $ENV{PERL_MM_OPT}; # local::lib + PREFIX below > will FAIL > WriteMakefile( > NAME => 'File::ConfigDir::Install', > VERSION_FROM => 'lib/File/ConfigDir/Install.pm', > + CONFIGURE => sub { > + { > INST_ETC => "tlib-$$/etc", > INST_LIB => "tlib-$$/lib", > + }, > + }, > MAKEFILE => $FILE, > PREREQ_PM => {}, > ($] >= 5.005 ? > > $ make && perl -Mblib t/01-makefile.t > cp lib/File/ConfigDir/Install.pm blib/lib/File/ConfigDir/Install.pm > Manifying 1 pod document > 'INST_ETC' is not a known MakeMaker parameter name. > Generating a Unix-style test-21206-Makefile > Writing test-21206-Makefile for File::ConfigDir::Install > Writing MYMETA.yml and MYMETA.json > ok 1 - Created test-21206-Makefile > ok 2 - Recognized: t/etc/fsd-install.json > # make -f test-21206-Makefile > # cp t/etc/fsd-install.json tlib-21206/etc/fsd-install.json > # Manifying 1 pod document > ok 3 - Copied to blib for dist: t/etc/fsd-install.json > ok 4 - Same content: t/etc/fsd-install.json > # make -f test-21206-Makefile > DESTDIR=/var/folders/5s/sk58jrwj7jj73phc9lcx9nh80000gn/T/cgOOrG5f45 install > # Skip tlib-21206/etc/fsd-install.json (unchanged) > # Manifying 1 pod document > # Installing > /var/folders/5s/sk58jrwj7jj73phc9lcx9nh80000gn/T/cgOOrG5f45/Users/sno/perl5/perlbrew/perls/perl-5.20.0/man/man3/File::ConfigDir::Install.3 > # Installing > /var/folders/5s/sk58jrwj7jj73phc9lcx9nh80000gn/T/cgOOrG5f45/Users/sno/perl5/perlbrew/perls/perl-5.20.0/etc/fsd-install.json > # Appending installation info to > /var/folders/5s/sk58jrwj7jj73phc9lcx9nh80000gn/T/cgOOrG5f45/Users/sno/perl5/perlbrew/perls/perl-5.20.0/lib/5.20.0/darwin-2level/perllocal.pod > # Checking for > /var/folders/5s/sk58jrwj7jj73phc9lcx9nh80000gn/T/cgOOrG5f45/Users/sno/perl5/perlbrew/perls/perl-5.20.0/etc/fsd-install.json > ok 5 - Installed: t/etc/fsd-install.json > 1..5 > > So neither the warning goes away nor existing constants are overwritten. > Right. There seem to be two layers of verification, I had missed the second one. That is a bummer. There should be a way around this, I just need to find it. > > > For some reason File::ConfigDir::Install doesn't just override postamble, > > it modifies the "install_*_*" instructions ... > > ...BigHelper (mohawk pointed to that) does something similar. > > I think there is more a hook like > https://metacpan.org/pod/Class::Method::Modifiers#around-method-s-sub > needed for each of overloaded function ... > Right. There really ought to be a ExtUtils::MakeMaker::Extensible layer to make this all easier. Leon