On Mon, Dec 1, 2014 at 11:48 AM, Jens Rehsack <rehs...@gmail.com> wrote:

> Hi,
>
> I run into some trouble integrating some right linker flags to a
> Makefile.PL - insane warnings from EU::MM is an offenseless artifact,
> deleted flags is next escalation.
>
> I don't want discuss about utility and futility of the misplaced parameter
> approvals (EU::MM is a Makefile generator, not a configuration tester), I
> want to discuss a reasonable approach to pass check results into Makefile
> without doing the mistakes of Module::Install again.
>
> My naive approach was passing EXTRALIBS and LDLOADLIBS instead of LIBS (
> https://github.com/i-scream/Unix-Statgrab/blob/master/Makefile.PL#L102-105)
> - I grabbed the idea from Net-SSLeay ...
> But Dave objects (https://github.com/autarch/File-LibMagic/pull/3) and
> beside being always right I have to concede a point to Dave regarding
> "warnings confuse end-users".
>

I think you can work around the warning using a CONFIGURE callback:

WriteMakefile(
    ....
   CONFIGURE => sub {
        return {
            EXTRALIBS => ...,
            LDLOADLIBS => ...,
        }
    },
);


> I played a bit with MakeMaker extensions hacking
> https://metacpan.org/pod/File::ConfigDir::Install and mohawk pointed me
> to https://metacpan.org/pod/ExtUtils::MakeMaker::BigHelper ...
> I know, all those MM extensions (ShareDir::Install ...) will not play well
> together.
>
> What should be a reasonable way out - having a pluggable API for all those
> extensions?
>

They can be made to cooperate by not exporting the postambles to MY::, but
instead glue them together something like this:

my @extensions = (...);
load($_) for @extensions
my @methods = map { my $method = $extension . "::postamble" } @extensions;
sub MY::postamble {
    my ($makemaker, %args) = @_;
    return join "\n\n", map { $makemaker->$_(%args) } @methods;
}

Leon

Reply via email to