首先检查系统有没有装有autotools
如果没有的话,直接apt-get install autoconf
下面的文章转自http://blog.sina.com.cn/s/blog_4b5210840100c0ta.html
autotools主要就是利用各个工具的脚本文件以生成最后的Makefile。流程主要如下:
1,使用autoscan,它会在给定目录及其子目录树中检查源文件,若没有给出目录,就在当前目录 及其子目录树中进行检查。它将会收索源文件以需找一般的移植性问题并创建一个文件“configure.scan”,该文件就是接下来autoconf要 用到的configure.in的原型
2,改写configure.scan文件,改好后并将其重新命名为configure.in,改好后如下图所示:
添加了AM_INIT_AUTOMAKE(hello,1.0)
修改了AC_INIT()为AC_INIT(hello,1.0)
3,使用aclocal。生成一个aclocal.m4的文件,该文件主要处理本地的宏定义
4, 使用autoconf.生成configure可执行文件
5,使用autoheader,负责生成config.h.in
#6,修改configure.in文件,将AC_CONFIG_HEADER(config.in)改为AM_CONFIG_HEADER(config.in),保存退出(这一步好像可以不用)
7,编写Makefile.am文件,用户需要自己创建相应的文件,之后,使用automake工具转换成Makefile.in
例Makefile.am如下:
其中的AUTOMAKE_OPTIONS为设置automake的选项。由于GNU对自己发布的软件 有严格的规范,比如必须附带许可证声明文件COPYING等,否则automake执行时会报错。automake提供了3种等 级:foreign,gnu,gnits,让用户选择采用,默认等级为gnu,foreign等级它只检测必须的文件
bin_PROGRAMS定义要产生的执行文件名,如果要产生多个执行文件,每个文件名用空格隔开
bin_SOURCES定义hello这个执行程序所需要的原始程序,如果hello这个程序是由多 个文件所产生的,则必须把它所用到的所有原始文件都列出来,并用空格隔开,例如:hello需要hello.c,sunq.c,hello.h三个依赖文 件,则定义hello_SOURCES=hello.c sunq.c hello.h。需要注意的是,如果要定义多个执行文件爱你,则对每个执行程序都要定义相应的file_SOURCES
接下来,可以使用automake对其生成的configure.in文件,在这里使用选项--add-missing可以让automake自动添加一些必需的脚本文件,输入automake --add-missing
8,运行configure。输入./configure
把Makefile.in文件变成了Makefile
9,make
10,可以选择输入make install
11,make clean
12,make dist 此时,make将程序和相关文档打包为一个压缩文档以供发布
例: