• 27
  • Sep

OK,我承认以前比较偷懒,看到Autotools这么难,就没有好好面对这个。

刚开始做Ubuntu Tweak时,打包也用autotools,大致地学习了一下,胡乱了改了点,参考了其他一些工程,也把Tweak打包成功了。

后来Tweak转向Python后,我去掉了autotools,改用手动写了个setup.py。近期更改Tweak目录结构,我发现setup.py很难维护,还不如用autotools了。

好,这次一定要征服autotools。

以前看过乱七八糟的教程,因此只懂了点皮毛。

后来学习过其他东西,知道学习还是看官方文档比较好。特别是Django的官方文档,质量是相当OK的。所以这次也看Autotools的官方文档了。

先从Automake学起,看的是GNU Automake官方文档:

http://www.gnu.org/software/automake/manual/index.html

虽然是英文的,不过现在已经能比较流畅的看下去了。

大概看了十几页,真是相见悢晚啊!

刚开始看其他教程,写的不怎么样,加上Autotools确实有点难学,没学好,还产生了一些厌恶和抵触感,现在看了官方文档,Wow!Automake原来是这么用的,真是很好很强大!

开始对它感兴趣了,所以我相信这次一定能征服它了!

看完Automake后,再看Autoconf、Libtool之类的,GNU的文档也是非常详细的!

不知道来不来的及,我要在Ubuntu 8.10发布前释出最新的Ubuntu Tweak,抓紧时间吧!

Tags: autotools.

» You can leave a comment.

5 Comments

  1. 最近好像很多项目的build system都在向cmake迁移,特别是大项目,因为autotools的通用性虽然强,但是性能实在是弱项。

  2. @palxex

    确实有看到这个迹象,目前为止我了解有KDE 4迁移向了CMake,还有Compiz将要迁移到CMake,不知道还有什么工程?

    相对来说,使用Autotools的还是占了绝大多数。

  3. palxex

    @TualatriX
    嗯,的确是如此,大部分项目的”迁移”只是增加了cmake这类选项而已,真正抛弃autotools的并不多。只有代码量和feature都足够复杂以致configure足够慢的,才会真正迁移向cmake这类新预build系统。其实俺只见了allegro库在迁移啦。
    autotools本质上是在shell上增补特性(为什么不容易学?就是因为它的出现完全是用户驱动的,make催生configure,configure催生autoconf,autoconf催生automake……也可以说是补丁式的?),最终的探测过程还是configure这个脚本执行,这也是autotools灵活性的源泉。但是shell的特性决定了它的串行化、解释化,因而性能有不足是可以预期的。cmake这类实际上是对编译前系统特性探测这块做了make当年对源文件做过的事。
    想想portage以前也是shell写的,现在好像主体是python了吧。应该是差不多的演进过程。

  4. @palxex
    allegro?以前从未听说过。寡闻了。呵呵。
    嗯,据说Gentoo刚开始只是用Shell的,后来用Python来做更复杂的后端处理了,不过Bash还是主要一部分。毕竟Ebuild都是Bash写的。

  5. clark

    俺的理解: kde4之类转向cmake最大的原因倒不是因为autotools的性能问题, 而是autotools实在太「难」了, 对于大的project维护起来相当困难

Leave a Comment