Linux下构建自己的开源软件使用的是linux下自己带的强大的工具: Autoconf libtoolize 和automake .这是开源软件必须的基本工具。
如果使用了autoconf和automake,除了编译应用程序,用户并不需要有这些工具。
使用这些工具的目的是创建能在用户环境使用的、可移植的shell脚本和Makefile文件。
Autoconf实际上是一个工具集,其中包含aclocal、autoheader和autoconf等可执行文件。这些工具生成一个可移植的shell脚本—configure,configure和软件包一起发布给用户。
它探查编译系统,生成 Makefile文件和一个特殊的头文件config.h,由configure生成的文件能适应用户系统的特定环境。
configure脚本从一个称为 Makefile.in的模板文件生成每个Makefile文件。
而Makefile.in 是Makefile.am 生成。
Configure.in 是开发者自己手动修改。
Makefile.am 是由开发者自己手写。
Libtool软件包是第三个重要的GNU工具,它的作用是确定共享库在特定平台上的特性,因为共享库在不同平台上可能会有所不同。
手动书写顾名思义就是自己跳过configure.Scan configure.in configure Makefile.am Makefile.in 的生成过程。直接书写Makefile 这种方式只能用于相对简单的源代码。如有几个,几十个或者上百个源文件时,自己编写Makefile往往是可行的,但是如果我们所编写的源文件有几千,几万,几十万甚至更多时,显然手动书写Makefile不是个明智之举。
http://blog.csdn.net/yasi_xi/article/details/8072901
http://blog.csdn.net/linux_wgl/article/details/36737087