图解aclocal、autoconf、automake、autoheader、configure
http://www.laruence.com/2008/11/11/606.html
- 本文地址: http://www.laruence.com/2008/11/11/606.html
- 转载文章
原文地址:http://hi.baidu.com/yzkuang/blog/item/557e4f24423d8136c9955908.html
- 1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。
- 2.aclocal (automake):根据已经安装的宏,用户定义宏和acinclude.m4文件中的宏将configure.ac文件所需要的宏集中定义到文件 aclocal.m4中。aclocal是一个perl 脚本程序,它的定义是:“aclocal - create aclocal.m4 by scanning configure.ac”
- user input files optional input process output files
- ================ ============== ======= ============
- acinclude.m4 - - - - -.
- V
- .-------,
- configure.ac ------------------------>|aclocal|
- {user macro files} ->| |------> aclocal.m4
- `-------'
- 3.autoheader(autoconf): 根据configure.ac中的某些宏,比如cpp宏定义,运行m4,声称config.h.in
- user input files optional input process output files
- ================ ============== ======= ============
- aclocal.m4 - - - - - - - .
- |
- V
- .----------,
- configure.ac ----------------------->|autoheader|----> autoconfig.h.in
- `----------'
- 4.automake: automake将Makefile.am中定义的结构建立Makefile.in,然后configure脚本将生成的Makefile.in文件转换为Makefile。如果在configure.ac中定义了一些特殊的宏,比如AC_PROG_LIBTOOL,它会调用libtoolize,否则它会自己产生config.guess和config.sub
- user input files optional input processes output files
- ================ ============== ========= ============
- .--------,
- | | - - -> COPYING
- | | - - -> INSTALL
- | |------> install-sh
- | |------> missing
- |automake|------> mkinstalldirs
- configure.ac ----------------------->| |
- Makefile.am ----------------------->| |------> Makefile.in
- | |------> stamp-h.in
- .---+ | - - -> config.guess
- | | | - - -> config.sub
- | `------+-'
- | | - - - -> config.guess
- |libtoolize| - - - -> config.sub
- | |--------> ltmain.sh
- | |--------> ltconfig
- `----------'
- 5.autoconf:将configure.ac中的宏展开,生成configure脚本。这个过程可能要用到aclocal.m4中定义的宏。
- user input files optional input processes output files
- ================ ============== ========= ============
- aclocal.m4 - - - - - -.
- V
- .--------,
- configure.ac ----------------------->|autoconf|------> configure ----->autoconfig.h,Makefile
图解aclocal、autoconf、automake、autoheader、configure的更多相关文章
- autoscan; aclocal; autoconf; automake --add-missing; ./configure; make
1.autoscan 在源码目录下执行autoscan,生成configure.scan,重命名为configure.in或者configure.ac,然后编辑文件内容: ============== ...
- 自动生存Makefile教程 autoscan aclocal autoconf autoheader automake configure
LZ没学过makefile的写法,只知道使用tab.于是乎发现了autotools系列工具 基本流程是:autoscan.aclocal.autoconf.autoheader.automake.co ...
- autoconf automake libtool
这是一个 autoconf / automake 的 "Hello World"gztt.ll@gmail.com 主要步骤是- 准备工程目录结构和程序- autoscan 生成 ...
- Autoconf/Automake工具简介
在linux下编程的时候,有时候工程项目很大,文件比较多,此时需要使用自动创建Makefile文件功能.也就是使用Autoconf/Automake工具自动生成Makefile,为编译程序带来了方便, ...
- autoconf / automake工具使用介绍
本文转自:http://blog.csdn.net/gulansheng/article/details/42683809 一.简介 作为Linux下的程序开发人员,一定都遇到过Makefile,用m ...
- cmake与autoconf+automake
cmake与autoconf+automakes是同类的编译工具,本人常用的是cmake. 这有一篇对比的文章,记录一下. cmake与autoconf+automake的对比
- [strongswan][autoconf][automake][cento] 在CentOS上编译strongswan git源码时遇到的autoconf问题
编译strongswan的git源码问题 1. 概述 首先,我们想要通过源码编译strongswan.当满足以下条件时,通常你会遇见此问题: 源码时通过git clone的得来的,而不是官网下载的源码 ...
- 手动安装m4, autoconf, automake, libtool
转自http://ruby-china.org/topics/2434 系列文章原载于自己的博客,TOPI.CO (http://topi.co) ,某天不小心就push错啦,懒得从头再来,上传到Ru ...
- 安装 Autoconf, Automake & Libtool
今天在使用sudo apt-get install命令安装autoconf和automake时,出现了问题,说是不能sudo apt-get install安装这些软件似乎不是最新的.由此,我通过搜索 ...
随机推荐
- 前端读者 | ES6知识点概述
本文来自 @羯瑞 整理 ES6,并不是一个新鲜的东西,ES7.ES8已经赶脚了.但是,东西不在于新,而在于总结. 变量的新定义 let 和 const 在ES6没有被普及时,我们会用的变量定义的方法是 ...
- Java之static理解
说到关键字static,首先想到了常量,静态变量,本文我总结了下static的用法. 1.静态变量 可以被赋值,便于类访问. 2.静态方法 静态方法与静态变量都可以被private.public修饰. ...
- java中常用的String方法
1 length()字符串的长度 String a = "Hello Word!"; System.out.println(a.length); 输出的结果是字符串长度10. 2 ...
- 【解决】win7 64 pip安装scrapy出错
问题一:microsoft visual c++ 9.0 is required 参考:http://www.cnblogs.com/ldm1989/p/4210743.html 问题二:ERROR: ...
- mongoDB学习第一天之增删改查
mongoDB 是 no-sql 的一种数据库. 创建数据库: use dbName #数据库中如果存在 dbName ,切换到此数据库:如果不存在此数据库,则创建 dbName 数据库!(tip:当 ...
- PageRank 算法简介
有两篇文章一篇讲解(下面copy)< PageRank算法简介及Map-Reduce实现>来源:http://www.cnblogs.com/fengfenggirl/p/pagerank ...
- SQL练习总结
[SQL语句练习] 1. 表1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | PersonId | ...
- 【BZOJ 2646】【NEERC 2011】flight
http://www.lydsy.com/JudgeOnline/problem.php?id=2646 夏令营alpq654321讲课时说这道题很简单但并没有几个人提交,最近想复习一下线段树,脑袋一 ...
- 【20181023T1】战争【反向并查集】
题面 [错解] 好像是个树唉我真聪明 然后就开始树上乱搞 最后写了个O(过不了)的神奇算法 60pts [正解] 题目中只有删点而不加点,考虑倒过来并查集 维护一个并查集内的和顺手维护一下就好了 复杂 ...
- SD 一轮集训 day4 圣城鼠
非常强的构造题. 很显然的是我们要构造一个类似菊花图的东西,因为这样的话两点之间路径的点数会非常少,很容易满足第二个条件. 但是因为直接菊花图的话会不满足第一个条件,,,所以我们可以构造一个类菊花图. ...