Autoconf/Automake自动创造Makefile文件

Autoconf/Automake自动创建Makefile文件

Autoconf/Automake工具自动生成Makefile    

       在linux下编程的时候,有时候工程项目很大,文件比较多,此时需要使用自动创建Makefile文件功能。也就是使用Autoconf/Automake工具自动生成Makefile.当前大多数软件包都是用此方法生成。

      下面进行一个简短的介绍。参考例程,很快就可以学会。

      Autoconf/Automake工具组主要包括autoconf,automake,perl,m4;其默认安装的软件包信息如下:

Autoconf/Automake自动创造Makefile文件

    所用到的五个命令所在的位置如下:

Autoconf/Automake自动创造Makefile文件

 

Autoconfig/Automake工具使用实例

一、首先建立编写一个C源程序文件,命名为hello.c,其代码很简单,就是hello world!程序。

Autoconf/Automake自动创造Makefile文件

二、使用Autoscan工具生成config.ac文件.

Autoconf/Automake自动创造Makefile文件

 

该文件的简要说明如下:

1、  AC_PREREQQ宏声明本文件要求的autoconf版本,这里是2.63

2、  AC_INIT定义软件的名称和信息。(DULL-PACKAGE-NAME为软件名,VERSION为软件的版本号,BUG-REPORT-ADDRESSbug的报告地址,一般为软件作者的邮箱)

3、  AC_CONFIG_SRCDIR用来侦测指定的源码文件是否存在,确定源码目录的有效性。此处为当前目录下hello.c

4、  AC_CONFIG_HEADER用于生成config.h文件,以便autoheader使用

5、  AC_PROG_CC用来指定编译器,以便不指定的时候默认为gcc

6、  AC_OUTPUT用来设定config要产生的文件。如果是Makefile,config会把它检查出来的结果带入Makefile.in文件产生合适的Makefile.

三、获得并且修改configure.ac

#cp configure.scan configure.ac

并作以下的修改

Autoconf/Automake自动创造Makefile文件

这里注意重要的一点:AM_INIT_AUTOMAKE宏需要自己进行添加,它是automake所必备的宏。

 

三、使用aclocal工具生成aclocal.m4

Autoconf/Automake自动创造Makefile文件

四、使用autoconf工具生成configure文件

Autoconf/Automake自动创造Makefile文件

五、使用autoheader工具生成config.h.in文件

Autoconf/Automake自动创造Makefile文件

六、创建Makefile.am文件

Automake工具会根据config.in中的参量把Makefile.am转换成Makefile.in文件。在使用Automake之前,要先手动建立Makefile.am文件。

Autoconf/Automake自动创造Makefile文件

几点需要说明:

1AUTOMAKE_OPTIONS为设置的Automake选项。它有三种等级提供给用户选择:foreigngnu,gnits,默认等级为gnu.在此使用foreign,它只检测必须的文件。

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

3hello_SOURCES定义为hello这个程序所需要的原始文件。如果其石油多个文件组成的,则必须用空格进行隔开。

七、使用Automake生成Makefile.in文件

要使用选项“--add-missing”可以让Automake自动添加一些必要的脚本文件。如下

Autoconf/Automake自动创造Makefile文件

八、配置。

运行自动配置设置文件configure,把Makefile.in编程最终的Makefile

Autoconf/Automake自动创造Makefile文件

九.测试

运行Make命令进行编译。然后运行hello程序。

Autoconf/Automake自动创造Makefile文件

OVER!!!!