linux下使用autotools创建makefile文件

来源:互联网 发布:mac手写输入法怎么取消 编辑:程序博客网 时间:2024/06/07 06:22

                                                          Autotools使用流程

          

Autotools是系列工具,首先确认系统是否装了以下工具(可以使用which命令来查看)

 aclocal   autoscan  autoconf  autoheader  automake

 

1、autoscan  它会搜索源文件以寻找一般的移植性问题并创建一个文件“configure.scan”,该文件就是接下来autoconf要用到的“configure.in”原型。

       

接下来将“configure.scan”重命名为“configure.in

2configure.inautoconf的脚本配置文件,打开此脚本文件  

 

做如下修改:

 

AC_PREREQ宏声明文本要求的autocong版本,比如此版本是2.66

AC_INIT宏用来定义软件的名称和版本

AM_CONFIG_AUTOMAKE它是automake所必备的宏,使用automake自动生成makefile.in

AC_CONFIG_SRSDIR宏用来检查制定的源码是否存在

AC_CONFIG_HEADER宏用来生成config.h文件,以便autoheader使用

AC_CONFIG_FILES宏用于生成相应的makefile文件

接下来首先运行aclocal生成一个aclocal.m4文件,该文件主要处理本地的宏定义,再接着运行autoconf用于生产configure可执行文件

 

3autoheader  接着使用autoheader命令,它负责生成config.h.in文件


4automake 这一步是创建makefile很重要的一步,automake要使用的脚本文件是makefile.am用户需要自己创建相应的文件,之后automake工具转化成makefile.in

 

AUTOMAKE_OPTIONS为设置automake的选项。GUN对自己发布的软件有严格的规范,antomakr提供了3中软件等级:foreign,gnugnits,让用户自己选择,默认等级为gnu,本例采用foreign等级,它只检测必须的文件

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

hello_SOURCES定义hello这个执行文件所需要的原始文件,如果hello是由多个文件产生的,必须把所有原始文件都列出来,并用空格隔开。例如hello需要hello.c hello.h 2个文件依赖则定义为hello_SOURCES=hello.c  hello.h 。如果要定义多个执行文件,则每个执行程序都需要定义相应的file_SOURCES

接下来可以使用automake命令来生成configure.in文件,在这里使用选项-a可以让antomake自动添加一些必须的脚本文件

 

5、运行configure  在这一步中,通过自动配置设置文件configure,把makefile.in变成了最终的makefile

 

6、使用autotools生成的makefile

 

 

make install 此时会把程序安装到系统目录中去,直接运行hello就可以出现结果

 

make clean 会清楚之前编译的可执行文件以及目标文件

 

make dist会将程序和相关文档打包为一个压缩文件

 

至此使用autotools工具制作makefiles文件完成。

0 0
原创粉丝点击