我正在编译 PHP 5.3.6,我用作参考的编译配置命令使用了 --with-layout=GNU 选项。我做了一些研究,但似乎找不到详细的答案。有人能详细向我解释一下这个选项以及为什么要使用它吗?谢谢!
答案1
在回答此问题时 PHP configure.in 的最新版本,--with-layout
定义为:
PHP_ARG_WITH(layout, layout of installed files,
[ --with-layout=TYPE Set how installed files will be laid out. Type can
be either PHP or GNU [PHP]], PHP, no)
case $PHP_LAYOUT in
GNU)
oldstyleextdir=no
;;
*)
oldstyleextdir=yes
;;
esac
因此,如果您选择GNU
,它会设置oldstyleextdir=no
,否则yes
。这帮助我找到这封邮件是 2005 年 12 月发给 php-dev 的,其中部分内容如下:
话虽如此,旧风格是:
$libdir/extensions/$extbasedir
而新风格[GNU]是:
$libdir/$extbasedir
本质上,此选项决定了扩展目录 ( ) 的位置EXTENSION_DIR
。不幸的是,正如该邮件的作者所指出的,关于为什么该选项已实施 - 即使在提交日志条目– 尽管我猜测这是为了让 PHP 与其他“GNU/Linux”标准保持一致。
答案2
@fission 的回答需要更新,但由于网站志愿者和所有者之间的僵局,目前无法编辑。
对于当前configure.ac
,请参阅https://github.com/php/php-src/blob/d65251e6e863684f8fc7ddc9c0fba7cf53483f7f/configure.ac#L926
PHP/GNU 样式的选择不仅仅影响扩展目录。PHP 样式还将手册页放在php/
而不是 下share/
,从而打破了manpath
实用程序的搜索路径。