lighty 的生活

lighty 开发者博客

Lighttpd 采用 SCons

在 MySQL 的日常工作中,我将 SCons 添加到一个跨平台、多语言项目的构建系统,对结果非常满意。我们有 Unix、Windows 和 MacOS X 作为构建平台,以及 Java、C、PHP 和 Perl 作为编程语言,所有这些都在用 Python 编写的构建系统中良好地协同工作。

lighttpd 现在也走同样的路,解决了讨厌的 Autotools 依赖问题。

Autotools 令人头疼有两大原因:

  1. 版本不兼容
  2. 重建 Makefile 和 configure 脚本需要很长时间
  3. 通过 libtool 安装模块也需要很长时间
  4. 使用 m4 和 sh 作为最低公分母

等待安装过程完成是浪费时间。

Autotools 有什么优点?

  1. make distcheck 非常棒
  2. 完美集成到 RPM 构建中
  3. 交叉编译
  4. 对非开发者来说是自包含的

只要 SCons 中没有替代 Autotools ‘优点’的方案,我们就不会放弃 Autotools。它们在打包和测试方面做得非常出色。但对于 lighttpd 的构建和开发,我将使用 SCons。

SCons 构建系统已在 SVN 树中。它取代了 Autotools (automake, autoconf, libtool) 和 (g)make,成为一个中心工具。

你需要:

  1. Python 2.2.x 或更高版本
  2. SCons 0.96.1 或更高版本
$ cp config.py config.py-sample
(adjust the features and paths)
$ scons install
  1. 对库、头文件和函数的检查,将像以前的 ./configure 一样执行
  2. 主二进制文件被构建
  3. 模块被创建
  4. 所有东西都被安装

关于 SCons,你还应该知道什么?


$ scons -c [for a ‘make clean’]
$ scons check [for a ‘make check’]
$ cd src; scons -u [for a ‘make’ in the ‘src/’ directory]

在不久的将来,lighttpd 不会放弃 Autotools。到目前为止,它只在 GCC 和 Linux 上进行了测试。虽然需要一些时间才能将所有东西都移植到 SCons,但这是值得的。特别是对于那些还在与 Autotools 及其语法作斗争的新开发者,以及那些仅仅等待就耗费数天的老开发者来说。

请注意,我们不接受发布超过 3 个月的文章的评论! 另请使用我们的 bug 追踪器报告 bug,并通过我们的 IRC 频道 #lighttpd@libera 进行交流。

« 改进的上传处理 任务失败:你被发现了 »