经常看到Linux下的开源软件中包含挺多文件,虽然知道是autoconf和automake生成的,不过一直没怎么仔细研究过。今天有空来研究一下看看。
1. 工具简介
autoconf用于生成配置文件的工具,输入文件是configure.ac(早期版本后缀是.in),输出文件是configure脚本
aclocal用于生成aclocal.m4
autoheader用于生成config.h.in,automake需要
automake用于生成Makefile,输入文件是Makefile.am
2. 基本步骤
1) 准备好源码,假定为test.cpp test.h
2) 新建Makefile.am,内容如下:
bin_PROGRAMS=test
test_SOURCES=test.cpp
3)autoscan
a. 生成configure.scan
b. mv configure.scan configure.ac :这是模板文件,需要手动修改
c. 打开configure.ac,增加"AM_INIT_AUTOMAKE([test], 1.0)"
--至此需要修改的文件已经准备好了--
4)aclocal
目录下增加aclocal.m4文件以及autom4te.cache目录
5)autoheader
目录下增加config.h.in
6)autoconf
目录下增加configure, configure.status
7)automake -a
目录下增加Makefile.in。这一步有可能会提示缺少一些文件,通常都是一些跟开源软件相关的文件,比如AUTHORS, NEWS, ChangeLog之类的
--至此安装软件所需要的文件已经全部生成好了--
之后只要执行熟悉的configure/make/make install就可以编译安装了。
不过这样生成出来的脚本内容多余的内容很多,以后有时间再研究一下怎么去除吧。