如何更改MakeMaker的默认CFLAGS

时间:2012-01-05 09:50:37

标签: perl cpan gnu-make makemaker

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

export CFLAGS=...

然后在cpan里面,我用

确认了
! print $ENV{CFLAGS}

但它仍然使用Perl构建的CFLAGS。

我按照this post的建议查看了lib / perl /.../ Config.pm,但似乎没有设置CFLAGS。

我有一个相关的问题得到了回答:How to tell CPAN about path to make and cc

我在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”)。

1 个答案:

答案 0 :(得分: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当前版本。

希望这可以帮助别人。