欢迎来到天天文库
浏览记录
ID:11854985
大小:362.00 KB
页数:62页
时间:2018-07-14
《automake实例应用探讨》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、目录1Aotumake概论12使用Automake前的准备工作23Automake使用指南23.1autotools的工作原理23.2编写Makefile.am33.2.1Makefile.am规则33.2.2库的生成53.2.3可执行文件的生成63.3编写configure.in文件63.3.1在configure.in中定义外部变量63.3.2给configure配置自定义参数74Automake的应用——使用Automake生成Makefile84.1Makefile的用处84.2使用Automake生成Ma
2、kefile的优势84.3Automake应用实例94.3.3执行aclocal和Autoconf104.3.4编辑Makefile.am文件 104.3.5执行Automake104.3.6执行./configure104.4使用已定义好的宏生成Makefile124.4.1编辑configure.in文件144.4.2编辑Makefile.am文件155结束语17I1Aotumake概论在Unix上写程式的人大概都碰过Makefile,尤其是用C来开发程式的人。用make来开发和编译程式的确很方便,可是要写出一
3、个Makefile就不简单了。偏偏介绍Makefile的文件不多,GNUMake那份印出来要几百页的文件,光看完Overview就快阵亡了,难怪许多人闻Unix色变。本文将介绍如何利用GNUAutoconf及Automake这两套软件来协助我们『自动』产生Makefile档,并且让开发出来的软件可以像Apache,MySQL和常见的GNU软件一样,只要会./configure,make,makeinstall就可以把程式安装到系统中。如果您有心开发OpenSource的软件,或只是想在Unix系统下写写程式。希望这
4、份介绍文件能帮助您轻松地进入UnixProgramming的殿堂。Makefile基本上就是『目标』(target),『关连』(dependencies)和『动作』三者所组成的一连串规则。而make就会根据Makefile的规则来决定如何编译(compile)和连结(link)程式。实际上make可做的不只是编译和连结程式,例如FreeBSD的portcollection中,Makefile还可以做到自动下载原始程式套件,解压缩(extract),修补(patch),设定,然后编译,安装至系统中。Makefile基
5、本构造虽然简单,但是妥善运用这些规则就也可以变出许多不同的花招。却也因此,许多刚开始学习写Makefile时会感到没有规范可循,每个人写出来的Makefile长得都不太一样,不知道从何下手,而且常常会受限於自己的开发环境,只要环境变数不同或路径改一下,可能Makefile就得跟着修改。虽然有GNUMakefileConventions(GNUMakefile惯例)订出一些使用GNU程式设计时撰写Makefile的一些标准和规范,但是内容很长而且很复杂,并且经常做些调整,为了减轻程式设计师维护Makefile的负担,
6、因此有Automake。程式设计师只需写一些预先定义好的巨集(macro),交给Automake处理後会产生一个可供Autoconf使用的Makefile.in档。再配合利用Autoconf产生的自动设定档configure即可产生一份符合GNUMakefile惯例的Makeifle了。2使用Automake前的准备工作在开始试着用Automake之前,请先确认你的系统已经安装以下的软件:1.GNUAutomake2.GNUAutoconf3.GNUm44.perl5.GNULibtool(如果你需要产生share
7、dlibrary)我会建议你最好也使用GNUC/C++编译器、GNUMake以及其它GNU的工具程式来做为开发的环境,这些工具都是属于OpenSourceSoftware不仅免费而且功能强大。如果你是使用RedHatLinux可以找到所有上述软件的rpm档,FreeBSD也有现成的package可以直接安装,或着你也可以自行下载这些软件的原始档回来DIY。以下的范例是在RedHatLinux5.2+CLE2的环境下所完成的。3.Automake使用指南Automake主要通过编辑Makefile.am来控制它的行为
8、,下面就常用的三个Makefile.am配置做出说明。3.1autotools的工作原理autotools最终是为了生成Makefile,为此,需要使用到autotools系列工具的如下几个命令:lautoscanlaclocallautoheaderlautoconflAutomake另外,还需要有两类输入文件:configure.in和Makefile.
此文档下载收益归作者所有