automake的使用(详细1)
简介
automake是使用Makefile.am生成 Makefile.ins文件的工具,Makefile.am由一些变量定义组成,生成的Makefile.ins符合GNU makefile的规范
GNU makefile标准是一个特别复杂而且可改变的状态,automake的目标就是减少开发者在维护makefile的负担,将负担转移到automake工具的维护者身上
典型的automake输入文件就是一些变量定义,每个文件被处理后变成Makefile.in文件
automake工具也会对项目进行一些限制,比如必须是先用Autoconf工具
automake依赖perl去生成Makefile.in文件,但是automake生成的分发包是完全符合GNU标准的构建包格式,构建的时候,无需使用perl
如果你第一次接触Automake,或许你知道,它是AutoTool工具集的一部分,或者你已经知道了Makefile.in,Makefile.am,aclocal.m4等等,但是搞不清楚这些文件之间的关系,
本文将向你介绍他们的机制和强大之处,
2.1 介绍GNU构建系统
普遍认识的公理是开发一个新包,必须有一套构建系统,在unix世界,通常由make命令完成。在makefile文件中编写构建的规则。
当一个包需要被构建在不同的平台,Makefile文件通常需要进行调整,举个例子,编译器可能使用其他名字或者需要更多的选项,1991年,David J. MacKenzie厌倦了需要维护20个平台的makefile构建脚本,他写了一个小型的configure脚本,自动调整makefile文件,编译他的包就变成了 ./configure && make.今天这种方式已经成了GNU项目的标准,GNU编码标准解释了每个GNU包应该有一个configure脚本,同时makefile也要遵循一定的规范,最为结果,安装一个包的过程都变了,运行./configure && make && make install,我们叫这种构建系统,为GNU构建系统
Autoconf工具主要关注configure文件,Automake工具组要关注makefile文件,没有这两个工具,也可以创建一个完整的GNU构建项目,但是非常容易出错和繁琐,后面会将您展示
2.2 GNU构建系统使用案例
2.0.0 标准makefile目标
make all
构建全部的程序,库,文档等,等价于makemake install
安装需要安装的文件到系统目录
make install-strip
类似make install,删除调试符号,减少程序大小
make uninstall
make install 反向操作,需要在原构建目录下运行
make clean
删除make all的输出文件
make distclean
删除./configure生成的文件
make check
运行测试套件
make installcheck
检查已经安装的程序或者库
make dist
生成package-version.tar.gz 源文件包
如果需要完整的资料可以去这里“传送门”
automake的使用(详细1)相关推荐
- Sofia-SIP模块开发指南
源文出处http://sofia-sip.sourceforge.net/refdocs/programming.html 编程指南 编写可移植代码 Sofia-SIP软件代码大部分都是可移植的.所有 ...
- ffmpeg java linux水印,Linux环境用FFmpeg给视频加水印详细步骤
FFmpeg给视频添加水印,根据官方文档的介绍可以知道FFmpeg在编译安装的时候还需要加 –enable-libfreetype.–enable-libfontconfig. --enable-li ...
- Nginx反向绑定域名方法和详细操作应用实例:Google和Gravatar
2019独角兽企业重金招聘Python工程师标准>>> 反向绑定域名,即将域名B绑定到域名A上,用户只要访问B就等同于进入A,内容都是由A提供,它有点像建立了一个A的镜像.什么时候要 ...
- Linux下安装Redis php-redis扩展 redis重启shell脚本 超详细!
前言 前面刚写过nosql其中三款热门产品的对比,这次主要写关于Redis的一些事情,Redis的介绍.安装以及扩展(php-redis,因为我是phper)安装等等.同时是写给我的朋友(cccjjj ...
- linux下使用automake、autoconf生成configure文件
一.生成configure过程中各文件之间的关系图 二.详细介绍 autoscan: 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是con ...
- 超详细的CentOS7中安装Git,yum安装和自己编译安装
预备知识很长,请耐心看,对后面安装过程的理解及其对linux 的理解都很有帮助 一.预备知识 1)什么是自由软件运动? 自由软件运动致力于通过自由软件使计算机用户获得自由权利.自由软件的用户可以自主控 ...
- Linux下Makefile的automake生成全攻略--转
http://www.yesky.com/120/1865620.shtml 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下 ...
- autoconf和automake的安装与使用
http://hi.baidu.com/luohuazju/blog/item/4e2d930802a2d5d962d986d2.html http://xunet.blog.51cto.com/13 ...
- Linux下autoconf和automake使用
Linux下autoconf和automake使用 转自:http://hi.baidu.com/liuyanqiong/blog/item/0a6f0ad9d28e1d3d32fa1c7b.html ...
最新文章
- Go 知识点(06)— for range 切片并对切片进行 append 不会造成死循环
- win10浏览器_Win10系统中ie浏览器的证书错误应该如何解决?
- PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.5. 安装后设置...
- zbb20170606 oracle 查看空表
- linux+top+常用参数,linux的top命令参数详细说明
- Titanic(泰坦尼克号生存预测)---(1)
- 华为云技术开放日(第三季)话题介绍和直播群入口
- python中求根公式_用python做个带GUI的求根公式吧
- Educational Codeforces Round 51 (Rated for Div. 2) The Shortest Statement
- Atitit prj tek dfkt 项目常见技术难点目录第一章 开发效率 2第一节 更加简单的语言 2第二节 简单
- CI(CodeIgniter)框架结构介绍
- ofd文件转化成pdf的免费方法
- 中国交通标志检测数据集
- 记事本文件管理器关联文本类
- ps4移植android游戏,把PS4游戏《Apex英雄》《只狼》搬到安卓手机上玩,这招够简单!...
- revit卸载/完美解决安装失败/如何彻底卸载清除干净revit各种残留注册表和文件的方法
- C语言中atof函数功能及用法
- 可视化导论 - 第四章 数据可视化流程 - 学习笔记
- 安装卡巴斯基个人网络版KIS 7.0之后的蓝屏解决方案
- window统计文本字节_在线字数统计工具-统计字符字节汉字数字标点符号-计算word文章字数...
热门文章
- canvas 边界模糊_解决canvas画图模糊的问题
- shell脚本实战之编译mysql
- HTML期末大学生网页设计作业——奇恩动漫HTML (1页面) HTML+CSS+JS网页设计期末课程大作业
- 单片机应用系统常用的元器件
- JPA只实现局部字段更新的解决办法(一)
- 如何对已上架的宝贝进行调整不被降权?
- 双系统安装ubuntu服务器分区,[已解决]求助双系统安装ubuntu,分区时看不到windows分区...
- Nature综述:应对新出现的抗真菌耐药性对人类健康的威胁
- 解决pycharm中中文列表输出'\\xe6\x97\xa5\xe5\x9c\xba\xe6\x88\x90\xe4\xc'之类的字符串
- 我的日记本开发手记(3)—— 布局