Autoconf/Automake工具简介
在linux下编程的时候,有时候工程项目很大,文件比较多,此时需要使用自动创建Makefile文件功能。也就是使用Autoconf/Automake工具自动生成Makefile,为编译程序带来了方便,当前大多数软件包都是用此方法生成,Autoconf/Automake工具组主要包括autoconf,automake,perl,m4。
Autoconfig/Automake工具使用实例
一、首先建立编写一个C源程序文件,命名为hello.c,其代码很简单,就是hello world!程序。

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

该文件的简要说明如下:
1、 AC_PREREQQ宏声明本文件要求的autoconf版本,这里是2.63
2、 AC_INIT定义软件的名称和信息。(DULL-PACKAGE-NAME为软件名,VERSION为软件的版本号,BUG-REPORT-ADDRESS为bug的报告地址,一般为软件作者的邮箱)
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
并作以下的修改

这里注意重要的一点:AM_INIT_AUTOMAKE宏需要自己进行添加,它是automake所必备的宏。
三、使用aclocal工具生成aclocal.m4

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

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

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

几点需要说明:
1、AUTOMAKE_OPTIONS为设置的Automake选项。它有三种等级提供给用户选择:foreign,gnu,gnits,默认等级为gnu.在此使用foreign,它只检测必须的文件。
2、bin_PROGRAMS定义要产生的执行文件名。如果要产生多个可执行文件,则每个文件名用空格隔开。
3、hello_SOURCES定义为hello这个程序所需要的原始文件。如果其石油多个文件组成的,则必须用空格进行隔开。
七、使用Automake生成Makefile.in文件
要使用选项“--add-missing”可以让Automake自动添加一些必要的脚本文件。如下

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

九.测试
运行Make命令进行编译。然后运行hello程序。

其他相关资料链接:
https://www.ibm.com/developerworks/cn/linux/l-makefile/
http://www.gnu.org/software/autoconf/manual/autoconf.html#Redefined-M4-Macros
http://www.gnu.org/software/automake/manual/automake.html
Autoconf/Automake工具简介的更多相关文章
- autoconf / automake工具使用介绍
本文转自:http://blog.csdn.net/gulansheng/article/details/42683809 一.简介 作为Linux下的程序开发人员,一定都遇到过Makefile,用m ...
- linux下使用automake工具自动生成makefile文件
linux环境下,当项目工程很大的时候,编译的过程很复杂,所以需要使用make工具,自动进行编译安装,但是手写makefile文件比较复杂,所幸在GNU的计划中,设计出了一种叫做Autoconf/Au ...
- cmake与autoconf+automake
cmake与autoconf+automakes是同类的编译工具,本人常用的是cmake. 这有一篇对比的文章,记录一下. cmake与autoconf+automake的对比
- sysbench压力测试工具简介和使用(一)
sysbench压力测试工具安装和参数介绍 一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据 ...
- JS内存泄漏 和Chrome 内存分析工具简介(摘)
原文地址:http://web.jobbole.com/88463/ JavaScript 中 4 种常见的内存泄露陷阱 原文:Sebastián Peyrott 译文:伯乐在线专栏作者 - AR ...
- autoconf automake libtool
这是一个 autoconf / automake 的 "Hello World"gztt.ll@gmail.com 主要步骤是- 准备工程目录结构和程序- autoscan 生成 ...
- SQL Profiler工具简介
一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问 ...
- sed 工具简介
sed 工具简介sed 可以分析 Standard Input (STDIN) 的数据, 然后将数据经过处理后,再将他输出到 standrad out (STDOUT) 的一个工具. 至于处理呢?可以 ...
- redis redis常用命令及内存分析总结(附RedisClient工具简介
redis常用命令及内存分析总结(附RedisClient工具简介 by:授客 QQ:1033553122 redis-cli工具 查看帮助 连接redis数据库 常用命令 exists key se ...
随机推荐
- android 转帖留链接
Android开发:用Drawable XML绘制带阴影效果的圆形按钮 http://evis.me/2013/05/android-dev-render-button-with-s ...
- Linux 下搭建ftp服务器 指定用户指定目录及其他操作
搭建 Linux下 rpm -qa |grep vsftpd查看是否安装 没安装yum安装 /etc/vsftpd/目录下有vsftpd.conf配置文件 根据需求 进行配置 是否使用匿名用户以及文 ...
- ODI11G 在Linux上的安装配置
ODI11G 在Linux上的安装配置 OS环境:Red hat Linux x86_64 一.JDK安装 1. 去oracle官网上下载 http://www.oracle.com/technetw ...
- Oracle EBS-SQL (WIP-12):总装车间任务查询.sql
select WT.WIP_ENTITY_NAME 任务名 ...
- C# 堆栈的数据结构 (二)
堆栈是一种常用的数据结构,并且是线性表操作的子集,即操作受限的线性表.因此需要用到Clist 线性表类 public class CStack { private Clist m_List;//创建链 ...
- Delphi窗体最大化按钮不可用情况下的最大化
最大化按钮不可用,而且窗体最大化,我以前一直这样设置:在Object Inspector下把BorderIcons属性下的biMaximize属性设置为False,然后把WindowState属性设置 ...
- Learn X in Y minutes(python一页纸代码)
一篇非常好的文章,解释了python基本语法的方方面面: # Single line comments start with a hash. """ Multiline ...
- OpenStreetMap(OSM) JMap Viewer(Java swing map)
This article from:http://wiki.openstreetmap.org/wiki/JMapViewer JMapViewer is a java component which ...
- 克拉夫斯曼高端定制 刘霞---【YBC中国国际青年创业计划】
克拉夫斯曼高端定制 刘霞---[YBC中国国际青年创业计划] 克拉夫斯曼高端定制 刘霞
- 网易云课堂_C语言程序设计进阶_第一周:数据类型:整数类型、浮点类型、枚举类型_1计算分数精确值
1 计算分数精确值(10分) 题目内容: 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现方法. (0,1)之间的任何浮点数都可以表达为两个正整数的商, ...