我正在使用 ExtUtils::MakeMaker 分发我的 perl 模块,该模块由一个 PM 文件和一个可执行文件组成。
可执行文件必须加载配置文件。
我希望我的 Makefile.PL :
- 生成配置文件;
- 将其安装在正确的 PREFIX 中;
- 修改可执行文件以设置配置文件的真实路径。
但我不知道如何做到这一点。
我正在使用 ExtUtils::MakeMaker 分发我的 perl 模块,该模块由一个 PM 文件和一个可执行文件组成。
可执行文件必须加载配置文件。
我希望我的 Makefile.PL :
但我不知道如何做到这一点。
这就是 Makemaker 真正痛苦的地方。您必须知道如何在make
.
首先,Makefile.PL只是一个 Perl 程序,所以你可以用它做任何你想做的事情。
其次,您可以将.PL文件用作运行以生成真实文件的程序。例如,您可以有一个lib/Module.pm.PL。在构建时,系统运行该程序并使用输出创建blib/lib/Module.pm。请参阅PL_FILES
.
第三,您可以向make
目标添加任务,以便在正确的时间进行处理。双冒号目标添加到已定义的任务中。
all ::
perl create_config.pl > config.pl
install ... config.pl
要将其从Makefile.PL 添加到 Makefile ,您必须将特殊子例程添加到命名空间。这一切都记录在 Makemaker 中,但文档假设您对.MY
make
但是,即使您知道该怎么做,所有这些都确实是一件令人头疼的事情。你认为你已经弄清楚了,然后有人有不同的设置或不同类型的make
. 您将所有时间都花在繁琐的位上,以使其在任何地方都兼容。这是 Perl 之神发明Module::Build的主要原因之一。添加自定义处理和修改构建目标要容易得多,而且您可以在 Perl 中完成这一切!经验法则是,如果您不知道如何使用 Makemaker,那么是时候使用Module::Build了。