autotools归纳

最近接触到许多linux项目,其编译都是使用的autotools。
autotools是一个自动化的编译工具。个人理解它的最主要功能就是生成Makefile。
因为直接写Makefiel,其依赖关系还是比较复杂的。

一般的我们下载的源码包只要通过以下3条命令,就可完成编译和安装:
./configure
make
sudo make install

但是autotools其本来还是非常复杂的,下面给出参考
以下是命令列表:
autoscan        扫描给定的目录及其子目录,以搜寻普通的可移植性问题,比如检查编译器,库,头文件等。
                生成的configure.scan是configure.ac文件的原型。

aclocal         是一个收集宏的过程。
                将已经安装的宏、用户定义宏和acinclude.m4文件中的宏集中定义到文件aclocal.m4中。

autoheader      生成宏定义的模板文件config.h.in。
                宏定义模板文件被后面的命令所需要。

automake        根据configure.ac和Makefile.am中定义的结构,生成Makefile.in文件。

libtoolize      如果在configure.ac中定义了一些特殊的宏,比如AC_PROG_LIBTOO,automake将会调用此命令。

autoconf        生成configure脚本文件。

make distclean  清除所有生成的文件

./configure     生成Makefile。

make            编译。

make install    把程序安装到系统目录中去。

make uninstall  卸载程序。

make clean      清除生成的目标文件及过程中产生的文件。

make distclean  清除所有产生的文件。

make dist       将程序和相关的文档打包为一个.tar.gz压缩文件以供发布。

autoupdate      如果更新了Autoconf工具的版本,此命令可更新configure.in。
autoreconfig    如果更新了Autoconf工具的版本,此命令可更新产生的配置文件。
ifname          扫描C源程序文件,在标准输出上输出那些出现在#if,#elif,#ifdef或#ifndef中的标识符,
                每个标识符显示为一行,其后跟一空格和所属的文件名。

command       input              output
--------------------------------------------------
autoscan      [source]           configure.scan
                                 autoscan.log

aclocal       configure.ac       aclocal.m4

autoheader    aclocal.m4         autoconfig.h.in

automake      configure.ac       INSTALL
              makefile.am        Makefile.in
                                 COPYING
                                 install-sh
                                 missing
                                 mkinstalldirs
                                 stamp-h.in

libtoolize                       config.guess
                                 config.sub
                                 ltmain.sh
                                 ltconfig

autoconf      configure.ac       configure
              aclocal.m4
              autoconfig.h.in

command         input                      output
-----------------------------------------------------------------
configure       configure                  Makefile
                Makefile.in                config.h
                cofnig.h.in                config.log
                XXXXX.pc.in                config.status
                XXXXX-uninstalled.pc.in    libtool
                                           XXXXX.pc
                                           XXXXX-uninstalled.pc
                                           stamp-h1

make            Makefile

make install    Makefile

make uninstall  Makefile

make clean      Makefile

make distclean  Makefile

make dist       Makefile

autotools归纳,布布扣,bubuko.com

时间: 2024-08-10 23:30:02

autotools归纳的相关文章

关系型数据库常用基础概念知识归纳

声明:我的文章都是只挑主要的写,次要细节太多,归纳就没意义了,同时归纳主要是给自己看的, 而且基本都是凭自己的一些记忆和理解即时写的.不一定对和全(但大多是一些需要理解的概念),请各位看管见谅! 数据库设计篇 1.范式 A.1范式,原子性,即列不可分 B.2范式,完全依赖,即有个主键唯一区分 C.3范式,不能传递依赖,即表中不能还有其他表的非主键信息 2.模型 A.概念模型,即ER图等 B.逻辑模型,即建逻辑表 C.物理模型,即生成物理表 事务 1.四大特性, A.原子,要么..要么.. B.隔

poj 3625 Building Roads 最小生成树(prime或kruskal+并查集)(算法归纳)

Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Description Farmer John had just acquired several new farms! He wants to connect the farms with roads so that he can travel from any farm to any other farm via a sequence of roads;

Makefile文件编写和autotools的使用

在Linux或Unix环境下,对于只含有几个源代码文件的小程序(如hello.c)的编译,可以手工键入gcc命令对源代码文件逐个进行编译:然而在大型的项目开发中,可能涉及几十到几百个源文件,采用手工键入的方式进行编译,则非常不方便,而且一旦修改了源代码,尤其头文件发生了的修改,采用手工方式进行编译和维护的工作量相当大,而且容易出错.所以在Linux或Unix环境下,人们通常利用GNU make工具来自动完成应用程序的维护和编译工作.实际上,GNU make工具通过一个称为Makefile的文件来

Linux江湖23:使用Eclipse和Gnu Autotools管理C/C++项目

在我该系列的之前的所有随笔中,都是采用 Linux 发行版自带的包管理工具(如 apt-get.yum 等)进行软件的安装和卸载,从来没有向大家展示使用源代码自行编译安装软件的方法.但是长期混迹于 Unix/Linux 世界的童鞋们都知道,从源代码自行编译安装软件并不是那么的难,一般都是这样三个步骤: configure make make install 之所以能够把源代码的构建管理得如此简单,这得益于 Gnu 的 Autotools 工具链.在上面的三个命令中,configure 是一个脚本

Autotools Mythbuster

Preface Diego Elio?"Flameeyes"?Pettenò Author and Publisher?<[email protected]> SRC=https://autotools.io/index.html David J.?"user99"?Cozatt Miscellaneous Editing?<[email protected]> Copyright ? 2009-2013 Diego Elio Pettenò

Autotools发展史

在linux下面撸过代码.做过开发的,想必都听说过Makefile. 对,是Makefile,不是make love.如果你看成了后者,只能说:同志,你的三观有问题,需要格式化你的硬盘~ 在linux开发程序,没有集成开发环境IDE(integrated development environment),没有VC++6.0, 只有Makefile和冰冷黑漆漆的shell窗口,寒冷的夜,考验着每一个工程师疲惫的心 Makefile语法复杂.难以维护.对于一个小项目还好,对于大型的项目和开源项目,现

树的插入、删除、旋转归纳

AVL 树的插入.删除.旋转归纳 参考链接: http://blog.csdn.net/gabriel1026/article/details/6311339 1126号注:先前有一个概念搞混了: 节点的深度 Depth 是指从根节点到当前节点的长度: 节点的高度 Height 是指从当前节点向下,到子孙中所有叶子节点的长度的最大值. 之前简单了解过 AVL 树,知道概念但一直没动手实践过.Now AVL 树是二叉搜索树的一种.二叉搜索树的规则就是:每个节点的 left child 都比自己小,

C++继承与派生(原理归纳)

1.   C++继承与java不同,java遵循单继承,但java的接口为其不足做了很好的弥补了. C++则是灵活的多,为多继承.即一个C++类可以同时继承N个类的属性. 2. 对于继承方式 : 有三种:  public ,private,protect,对于public继承的类,其公有成员依然是公有成员,私有成员依旧是私有成员. 对于protect,private 则有限制 ,就好比一个水管,公有水管是最大号的,对于水的流量没有限制.保护水管,是中等的号的,对于大号水管的流量使其变成中等流量,

Autotools使用流程【转】

本文转载自:http://blog.csdn.net/scucj/article/details/6079052 手工写Makefile是一件很有趣的事情,对于比较大型的项目,如果有工具可以代劳,自然是一件好事.在Linux系统开发环境中,GNU Autotools 无疑就充当了这个重要角色.(在Windows系统的开发环境中,IDE工具,诸如Visual Studio,来管理项目也很方便.) 本文以一个简单项目为例子,来讲述GNU Autotools的一列工具及其命令的用法. autotool