SQLite 告别 GNU Autotools,拥抱 Autosetup:构建方式的变革与潜在挑战
SQLite 团队宣布将从下一个版本开始,从 GNU Autotools迁移到 Autosetup。这一改变虽然对大多数用户来说影响不大,但团队也警告称,由于两种工具之间的差异,可能会出现“某些构建级别的中断”。
SQLite 作为一款轻量级、嵌入式的数据库引擎,在移动设备、嵌入式系统和 Web 应用中广泛应用。其开源的特性和易于使用的特点使其成为开发者们的首选。而 GNU Autotools 和 Autosetup 则是两种常见的构建系统,它们帮助开发者根据不同的平台和需求配置和构建软件。
为什么要迁移?
SQLite 团队选择迁移到 Autosetup,主要基于以下几个原因:
- 易于维护: Autosetup 使用 TCL 语言驱动,相较于 GNU Autoconf 使用的 GNU M4 宏处理器,TCL更易于用户理解和维护。
- 集成性: Autosetup 的所有文件都保存在 SQLite 源代码树中,而 GNU Autotools 则是外部依赖项,这使得 SQLite 的代码管理更加简洁。
- Fossil SCM 的支持: SQLite 的开发团队使用 Fossil SCM进行版本控制,而 Fossil SCM 已经支持 Autosetup。
迁移带来的挑战:
虽然 SQLite 团队表示,对于大多数用户来说,迁移带来的影响很小,但仍然存在一些潜在的挑战:
- 构建配置的差异: Autotools 和 Autosetup 在构建配置方面存在差异,例如 SQLite 的 –enable-tempstore 选项在 Autosetup 中必须变为 –with-tempstore。
- 嵌入式场景的调整: 对于将 SQLite 嵌入到其他项目的开发者来说,可能需要重新配置构建流程。
- 平台兼容性: Autosetup 无法像 Autoconf 那样支持那么多平台,这可能会影响一些边缘平台的构建。
未来展望:
SQLite 团队建议,对于无法使用 Autosetup 的平台,可以提供静态 makefile,类似于目前为 Windows 平台所做的方式。
SQLite 团队的理念:
SQLite 的开发者 Richard Hipp 博士一直秉持着“自由意味着能够照顾好自己”的理念,他认为外部依赖会降低项目的自由度,因此他更倾向于使用内部工具,甚至重新发明轮子。这次迁移到 Autosetup 也体现了这种理念。
总结:
SQLite 从 GNU Autotools 迁移到 Autosetup 是一个重要的变革,它将带来更易于维护的构建系统,但也可能带来一些挑战。对于大多数用户来说,影响很小,但开发者需要关注构建配置的差异,并根据需要进行调整。这次迁移也体现了 SQLite 团队对于自由和独立的追求。
Views: 0