设置MACOSX_DEPLOYMENT_TARGET的最佳方法是什么?

时间:2015-08-28 22:37:27

标签: macos perl compilation

Perl社区依赖于MACOSX_DEPLOYMENT_TARGET=10.3所有Perl版本,很长一段时间。但现在,使用El Capitan beta,it no longer works。似乎他们应该提高它,但是为了什么?有没有办法以编程方式将其设置为当前正在构建Perl的OS X版本所支持的最早版本?或者还有其他一些动态设置的方法吗?或者它必须是静态的并定期更新?如果是后者,它如何影响旧版OS X的构建?

2 个答案:

答案 0 :(得分:2)

这应该是MACOSX_DEPLOYMENT_TARGET中相当简单的更改,它会检查正在运行的OSX版本并相应地设置!important

Perl是一个开源项目,因此总是缩短开发人员的时间。如果您要为此制作一个补丁并将其提交给p5p,我相信非常感谢。

答案 1 :(得分:0)

接受@ Calle-Dybedahl的回答,因为它在技术上是正确的。 Perl 5核心黑客Jarkko Hietaniemi推了this solution,事实证明这比你一眼就看出的要复杂得多。他提出的基本配方是:

  

对于OS X 10.6或更高版本,请不要再使用MACOSX_DEPLOYMENT_TARGET,   工具链应该没有工作。到目前为止的部署目标   被硬连线到10.3。这个逻辑来自   RT#117433

     

对于从10.3到10.5的OS X版本,没有变化,仍在使用   MACOSX_DEPLOYMENT_TARGET=10.3用于链接。

     

对于10.3之前的OS X版本,没有更改,仍未使用   MACOSX_DEPLOYMENT_TARGET=10.3

     

新功能:始终将-mmacosx-version-min添加到ccflagsldflags   env var $MACOSX_DEPLOYMENT_TARGET,如果设置的话。如果没有设置var,   从sw_vers(1)设置OS X版本的min。设置var   对于早期建造和包装Perl的人来说应该会变得很方便   OS X版本。