GNU Make 项目管理 前言

创建时间 2021-04-18
更新时间 2021-04-21

make 工具是一个有吸引力的仆人,总是在那里与人方便。像许多小说和电影中必不可少的助手一样,make 一开始总是被低估的,你给它扔了一些奇怪的工作,然后它将慢慢地接管整个企业。

当我的主管、最初 O’Reilly 经典《Make 项目管理》的作者 史蒂夫·塔尔伯特(Steve Talbott)注意到我的痴迷并要求我写第二版时。我已经达到了将 make 置于每个我接触项目的中心的不可救药的阶段。对我来说,这是一次关键的成长经历(也是一次疯狂的旅行),也是我进入 O’Reilly 奇妙世界的关键,但是我们并没有真正考虑这一版会在市场上待多长时间。十三年一版?

迷恋我还是专业技术作家的那段日子,我会沉浸在项目符号清单中,总结子第二版《Make 项目管理》的发展历程:

  • GNU 版本的 make,已是最严肃程序员的选择,该书第二版问世,席卷了整个行业,并演变成事实的标准。
  • GNU/Linux 的兴起造成了 GNU 编译器工具链更加的常见,其中包括 GNU 版的 make。仅举一例,Linux 内核本身严重依赖于 GNU make 提供的扩展,在本书的第十一章中所述。
  • 采用 BSD(Darwin) 的变体作为 Mac OS X 的核心,继续保持了 GNU 工具链和 GNU make 的主导地位和趋势
  • 人们发现, 在以健壮、无错、可移植和灵活的方式的开发中,使用 make 的技巧越来越多。在编程社区中,已出现在大项目上对常见问题的标准解决方案。现在是时候将许多解决方案从民俗领域转移到有文件记录的实践领域了,这正是本书所作的。
  • 特别是,需要新的实践来使 make 适应 C++ 和 Java 语言,在 make 发明时,它们还不存在。为了说明时间的推移,原始版本包含支持 FORTRAN 的两个变体的特殊功能以及与 SCCS 的无效集成。
  • 突破千难万险, make 依然是几乎所有计算机开发项目的关键工具,在十三年前,没有这么多(而且有见地的)评论家预见到。这些年来,替代品层出不穷,好似割了牙齿的龙,每种新工具都应该绕过 make 设计的限制,而且绝大多数确实巧妙而令人钦佩。然而 make 的简单性却使他至高无上。

当我看到这些趋势时,编写《Make 管理项目》的新版本在我的心中大约十多年了,但我感觉到需要一个比我更有经验的人。最终,罗伯特·梅克伦堡(Robert Mecklenburg)带着他的专业知识来到了 O’Reilly,我很高兴让他接管这本书,然后退休成为一名观众。这使我在本书的版权也上得到提及。(顺便说一句,我们将该书置于 GNU 自由文档许可下,以反映 GNU make 的 GPL 状态)

罗伯特(Robert)非常谦虚,不吹嘘他的博士学位,但书中清楚地体现了他必须为这一努力而运用的思维的深度和精确性。对本书而言,可能更重要的是他对实用性的关注。他致力于为您服务,这项承诺的范围从提高效率到巧妙地使 makefile 中的印刷错误都自动记录下来。

这是一个伟大地时刻 :创建 O’Reilly 最早,最持久地书之一。坐下来,然后读一读几乎每个项目背景下多么不起眼的小工具却体现出前所未见的力量。不要满足于令人讨厌的和不满的 makefile,请理机扩展你的潜力。

—— 安迪·奥兰(Andy Oram)
编辑 , O’Reilly Media
2004 年 8 月 19 日

参考资料