Re: Integrating C::AC into MakeMaker/MB

[email protected] (Leon Timmermans)
Newsgroups perl.cpan.workers
Message-ID <CAHhgV8gJp7i=WiJO+hm+dRa+s8j6mTNSO+3j78ghpdFqJ1_igA@mail.gmail.com>
On Tue, Dec 2, 2014 at 10:45 AM, Jens Rehsack <[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.