1

编写 PHP 扩展的标准方法是使用 autoconf/automake 以及一个名为 phpize 的脚本,该脚本似乎会根据特定于您的 PHP 环境的模板生成您的 autoconf 配置。这让它为正确版本的 PHP 等构建 PHP 扩展。

autoconf 和用于配置它的 m4 语言是晦涩难懂的,人们已经编写了替代方案,例如 scons。我希望能够在构建 PHP 扩展时使用其中之一。

原则上,您应该能够使用 scons 或类似工具来构建 PHP 扩展。但是,我看不到您将如何替换 phpize 步骤。

有没有人在使用 scons 或其他更现代的构建工具构建 PHP 扩展方面取得任何成功?

4

2 回答 2

0

phpize(1)只是一个shell脚本,所以我想你可以修改它以使用scons ...

于 2010-01-20T08:52:32.733 回答
0

阻力最小的路径是让 SCons 运行 autoconf、phpize 以及您的 PHP 扩展所需的任何其他内容。您可以从那里提取编译器配置并让 SCons 进行实际构建,或者您可以简单地让 SCons 运行“make”。

从 SCons 声明 shell 命令目标很容易,但正确获取依赖项总是很棘手。

基本上,您必须让 SCons 知道这些外部工具生成的任何中间文件。这样,它不仅可以正确地清理它们,而且还可以根据每个中间结果的内容签名(MD5 校验和)缓存整个系列的步骤。

适当的缓存将显着减少在代码库更改时实际需要调用这些外部工具的次数。

虽然我不认为有人为 PHP 编写了特定的解决方案,但SCons wiki上有很多自定义构建器可以做类似的事情。

于 2010-01-24T08:26:39.350 回答