Am 01.12.2014 um 17:59 schrieb Leon Timmermans <faw...@gmail.com>: > 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 => ..., > } > }, > );
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? Is there a minimum version of EU::MM for this CONFIGURE callback? > 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; > } For some reason File::ConfigDir::Install doesn't just override postamble, it modifies the "install_*_*" instructions ... ...BigHelper (mohawk pointed to that) does something similar. Cheers -- Jens Rehsack rehs...@gmail.com