如何更改 MakeMaker 的默认 CFLAGS

问题描述 投票:0回答:2

如何让 Perl MakeMaker 更改它插入 Makefile 中的 CFLAGS 的默认值?基于这篇文章,我尝试了这个:

export CFLAGS=...

然后在 cpan 中,我用

确认了它
! print $ENV{CFLAGS}

但它仍然使用 CFLAGS Perl 构建时使用的任何内容。

我按照这篇文章的建议查看了 lib/perl/.../Config.pm,但 CFLAGS 似乎没有在那里设置。

我有一个相关问题已得到解答:如何告诉 CPAN 有关制作和抄送的路径

我在 CPAN/Config.pm 方面取得了一些进展

'makepl_arg' => q[ CCFLAGS="-D_REENTRANT -O2 -m32  -I/opt/csw/bdb48/include -I/opt/csw/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -m32 -DVERSION=\"1.616\" -DXS_VERSION=\"1.616\" -fPIC -I/opt/csw/lib/perl/5.10.1/CORE"],

但这只会将值附加到 CFLAGS 中已有的值,而 gcc 无法理解(例如“-x03”和“-KPIC”)。

perl cpan gnu-make makemaker
2个回答
0
投票

我已成功修改/opt/csw/lib/perl/5.10.1/Config_heavy.pl,以便MakeMaker可以生成可在OpenCSW下的solaris系统上运行的Makefile。

其他有类似问题的人可以在这里下载:https://gist.github.com/1569718

我也已将其发布回 opencsw.org 的维护人员,以便他们有望更新 Perl 的 OpenCSW 版本。我在我的文章中指出,执行此操作的正确方法是使用属于 OpenCSW 发行版的工具完全重建 Perl,因为我相信在构建任何给定的 Perl 发行版时,其他脚本会自动生成此文件(尽管我还没有验证了它实际上是如何构建的)。这个修补文件只是一个权宜之计,以便我可以在截止日期前完成工作。

我非常希望通过修改 CPAN/Config.pm 中的设置来实现我的目标。这适用于设置 gcc 和 gmake 的正确路径,但不适用于将命令行标志更改为 gcc,因为 CPAN 会将这些标志“附加”到先前设置的参数字符串。 gcc 在遇到这些标志后将退出,其中一些标志是不兼容的(例如“-xO3”和“-KPIC”)。 郑重声明,CSWperl 5.10.1,REV=2011.01.15 是我从 OpenCSW 安装的 CSW Perl 的当前版本。

希望这对其他人有帮助。


0
投票

我发现我可以像这样更改优化标志(perl v5.32.0):

使用内联 Pdlpp => 'DATA' => BUILD_NOISY => 0 => OPTIMIZE => "-O3";

“DATA”之后的内容是配置选项,我认为它们已传递给 MakeMaker。所以我猜你可以在 MakeMaker.PL 文件中执行相同的参数 OPTIMIZE => "-O3" 。

我希望这有帮助。我知道这是一个旧线程,我在搜索这个问题时遇到了它,

© www.soinside.com 2019 - 2024. All rights reserved.