Chinaunix首页 | 论坛 | 博客
  • 博客访问: 333344
  • 博文数量: 45
  • 博客积分: 669
  • 博客等级: 上士
  • 技术积分: 675
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-27 17:59
文章分类
文章存档

2015年(5)

2014年(6)

2013年(4)

2012年(30)

分类: LINUX

2012-08-08 18:19:39

  利用autotools一套工具生成makefile.autotools包括aclocal autoscan autoconf autoheader automake。若系统没安装autotools,则利用sudo apt-get install autotools 安装。
 
以下为利用autotools 使用的流程
 
     1:运行autoscan

在终端中输入“autoscan”并回车执行,生成configure.scan,该文件是configure.in的原型而configure.in是autoconf的脚本配置文件。所以在进行下一步工作之前要对configure.scan进行修改,将其重命名为configure.in。configure.scan文件内容如下:

...

AC_PREREQ([2.69])

AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])

AC_CONFIG_SRCDIR([main.c])

AC_CONFIG_HEADERS([config.h])

...

AC_OUTPUT

 

configure.scan内容简要说明如下

AC_INIT宏定义软件的名称版本等信息,其中BUG-REPORT-ADDRESS可以省略,也可以填软件作者的联系地址(一般为邮箱)。

AC_CONFIG_SRCDIR宏用来侦测指定的文件是否存在,来确定源码目录的有效性。

 

修改方法如下:本文中webmain 为最终生成的程序名,按需要替换。

AC_PREREQ([2.64])

AC_INIT(webmain, 1.0,) #修改的宏

AM_INIT_AUTOMAKE(webmain, 1.0) #添加的宏

AC_CONFIG_SRCDIR([webmain.c])

AM_CONFIG_HEADERS([config.h])

...

AC_CONFIG_FILES([Makefile]) #添加的宏

AC_OUTPU

2:运行aclocal

在终端中输入“aclocal”并回车执行。该命令根据configure.in的内容生成aclocal.m4文件该文件主要处理本地的宏定义

3:运行autoconf

在终端中输入“autoconf”并回车执行。该命令根据configure.in和aclocal.m4的内容生成configure配置脚本configure脚本是用来生成Makefile的。

 

4:运行autoheader

在终端中输入“autoheader”并回车执行。该命令用来生成config.h.in文件通常会从acconfig.h文件中复制用户附加的符号定义。因为本例中没有附加的符号定义所以不需要创建”acconfig.h”文件

 

5:编写Makefile.am

automake需要脚本配置文件Makefile.am,这个文件得手工建立。内容如下:

AUTOMAKE_OPTIONS=foreign

bin_PROGRAMS=webmain

webmain_SOURCES=webmain.c bindport.c bindport.h sendfile.c sendfile.h

 

简单说明:

第一行中AUTOMAKE_OPTIONS用来设置automake的选项。GNU对自己发布的软件有严格的规范,比如必须附带许可证声明文件COPYING等等,否则automake执行时会报错。automake提供了3种软件等级:foreign、gnugnits默认等级是gnu。示例中使用的foreign,表示只检测必要的文件。

第二行中bin_PROGRAMS定义了要产生的执行文件名。如果产生多个可执行文件,每个文件名用空格隔开。

第三行中file_SOURCES定义file这个执行程序的依赖文件,其中“file_SOURCES”中的前部分“file”要改写成可执行文件名,即与bin_PROGRAMS定义的名称一直如果有多个执行文件,那就要定义相应的file_SOURCES。

 

6:执行automake

automake处理脚本配置文件Makefile.am后,生成Makefile.in。有一些必需的脚本文件,如“install-sh”、“missing”等,可以从automake软件包里复制过来,只需在执行时使用“--add-missing”选项即可。

7:执行configure

在终端中输入“./configure”并回车执行,就是执行第三步生成的configure配置脚本,该脚本根据第四步生成的config.h.in和第六步生成的Makefile.in的内容来生成Makefile文件。

 

到此即生成makefile文件。

利用make 命令即可生成目标程序。

利用make install 命令,安装程序到本机器上。

 

make clean 清理之前便已的可执行文件及目标文件。

 

8.利用 make dist 命令,可将程序和相关文档打包为一个 tar.gz 的文件,便于发布。再其他的机器上解压,利用configure ,make ,make install 三步曲即可完成安装。 

 

 

 

 

 

 

 

 

阅读(743) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~