Main

August 30, 2007

make 使用笔记

我们的项目使用的构建工具,从今年初开始,从 boost jam 转移到 gnu make 。

makefile 写起来并不是一件轻松的事情,但是 make 的规则比 jam 要简单许多(比 boost jam 更简洁易懂),很符合 unix 的 KISS 美学。学会用 make 以后,编程方式可以得到极大的扩展,比用 IDE 的时代要灵活许多。尤其是可以用大量的使用自生成代码,或是用工具去生成数据文件,这些在 IDE 里做会相对麻烦。我们的开发,也不用局限在少数几种语言上了。

make 这个工具,我基本上是边学边用的,遇到什么问题临时想个方法弄一下。这最终导致 makefile 看起来很丑陋。但没有关系,写 makefile 跟写程序一样,以后可以不断重构。况且使用 makefile 本身,就很容易做任何自动化的工作了。

今天随便写几个最近遇到的问题,以及解决方案。

December 15, 2005

又让 bjam 郁闷了一把

早上到公司,同事告诉我 jamfile 又写错了 :( 在一个上级目录创建出来的 static lib 在下几级目录上想引用的时候,如果逐级在 project 里标上 <library> 就会出错。

这才发现,原来 jamfile 会完全 inherit 父目录上的 jamfile 的 project 属性。这点对 <include>这个 feature 做的很好。inherit 后会加一级 .. 但是 <library> 却不行。(原来我一直用 <source> 的,今天查代码才知道还有个 <library> 的 feature)

December 13, 2005

让 bjam 支持 fx 文件的编译

我们新的项目已经不再使用 VC 的 IDE ,而当初选择一个合适的 make 工具很花了一番工夫。最开始想用 makefile , 大家都用的。后来觉得很繁琐,不是很适合我们这个项目。然后选择了jam。(当然其间也试过 Ant 等,在此不表) 花了很长一段时间熟悉 jam 的语法,和 C 也极大的不同。好不容易学会点了,同事怂恿我试试 bjam,方知道 boost 那帮人的确 BT ,把 jam 这个小玩具的功能发挥到此般。看了人家给 jam 扩展的脚本,自己也就打消了在 jam 的基础上弄出点东西的想法,还是直接拿来用吧。