作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make 命令来编译自己写的程序确实是很方便
一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile 就不那么容易了
在本文中,将给大家介绍如何使用 autoconf 和automake 两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用 “
/configure”,“make”,“make instal”就可以把程序安装到Linux系统中去了
这将特别适合想做开放源代码软件的程序开发人员,又或如果你只是自己写些小的Toy程序,那么这 个文章对你也会有很大的帮助
一、Makefile介绍 Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile中纪录有文件的信息,在make 时会决定在链接的时候需要重新编译哪些文件
Makefile的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件
当那些依赖文件有了改变,编译器会自动的发现最终的生成文件已经过时,而重新编译相应 的模 块
Makefile的基 本结 构 不是很复 杂 ,但当一个程序开发人员开始 写Makefile时,经常会怀 疑 自己写的是否 符合惯例,而且 自己写的 Makefile经常和自己的开发环 境 相关 联 ,当系统环 境 变量 或路 径 发生了变化 后 ,Makefile可能 还 要跟着 修 改
这样就造 成了手工书 写 Makefile的诸 多问 题 ,automake 恰 好 能 很好 地帮助我们解 决这些问 题
使用automake,程序开发人员只需要写一些 简单的含 有预 定义 宏 的文件,由autoconf 根