Dist :: Zilla cria automaticamente a maioria dos arquivos padrão necessários em uma distribuição Perl. No entanto, em algumas situações, você pode precisar de um Makefile.PL personalizado . O caso de uso mais comum é ao escrever módulos XS quando você precisa vincular a uma biblioteca específica.
Para ajudá-lo com isso, há vários módulos D: Z: P :: MakeMaker :: * .
Um módulo que permite gerenciar facilmente INC e LIBS é Dist :: Zilla :: Plugin :: MakeMaker :: Awesome . Você manipula o conteúdo do Makefile.PL usando um módulo que você mesmo escreve. A maioria dos quais é de chapa caldeira.
Por exemplo, aqui está meu ajuste para INC e LIBS para vincular a libssl e libcrypto. Simplifiquei o código para ter valores estáticos para INC e LIBS;
package inc::Your::Module::Name;
use Moose;
extends 'Dist::Zilla::Plugin::MakeMaker::Awesome';
override _build_WriteMakefile_args => sub {
my $LIBS = '-L/usr/local/openssl/lib -lssl -lcrypto';
my $INC = '-I/usr/local/include/openssl';
+{
%{super()},
LIBS => $LIBS,
INC => $INC,
};
};
__PACKAGE__->meta->make_immutable;
Apenas as linhas com $ LIBS ou $ INC não são boiler-plate, então você pode ver que é muito fácil. Como não faz parte da distribuição, é colocado no diretório inc / . Em seguida, você altera o dist.ini para excluir o plug-in MakeMaker do pacote de plug- ins @Basic e carrega seu módulo:
exemplo dist.ini para gerador MakeFile.PL personalizado
name = your-module-name
author = your name <you@example.com>
license = Artistic_2_0
version = 0.04
[Prereqs]
My::Module = 0
[@Filter]
-bundle = @Basic
-remove = License
-remove = MakeMaker
[=inc::Your::Module::Name]