使用Automake,Autoconf生成Makefile

使用Automake,Autoconf生成Makefile

ID:40590640

大小:269.50 KB

页数:53页

时间:2019-08-04

使用Automake,Autoconf生成Makefile_第1页
使用Automake,Autoconf生成Makefile_第2页
使用Automake,Autoconf生成Makefile_第3页
使用Automake,Autoconf生成Makefile_第4页
使用Automake,Autoconf生成Makefile_第5页
资源描述:

《使用Automake,Autoconf生成Makefile》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、使用Automake,Autoconf生成Makefile使用Automake,Autoconf生成Makefile在Unix上写过程序的人尤其是用C来开发程序的人一般都遇到过Makefile,用make来开发和编译程序的确很方便,可是要写出一个Makefile就不那么简单了。GNUMake那份几百页的文件,让许多人害怕。当然,现在关于make的文档比较多,不过写一个Makefile总是一件很烦人的事情,GNUAutoconf及Automake这两个软件就是帮助程序开发者轻松产生Makefile文件的。现在的GNU

2、软件如Apache,MySQLMinigui等都是利用Autoconf,Automake实现自动编译的。用户只要使用“./configure”,“make”,“makeinstall”就可以把程序安裝到系统中。简介Makefile基本上就是『目标』(target),『关联』(dependencies)和『动作』三者所组成的一系列规则。而make就是根据Makefile的规则决定如何编译(compile)和连接(link)程序或者其它动作。当然,make可做的不只是编译和连接程序,例如FreeBSD的portcoll

3、ection中,Makefile还可以做到自动下载远程程序,解压缩(extract),打补丁(patch),设定,然后编译,安装到系统中。Makefile基本结构虽然很简单,但是妥善运用这些规则就可以变换出许多不同的花样。却也因为这样,许多人刚开始学写Makefile时会觉得没有规范可以遵循,每个人写出来的Makefile都不大一样,不知道从哪里下手,而且常常会受到开发环境的限制,只要环境参数不同或者路径更改,可能Makefile就得跟着修改。虽然有GNUMakefileConventions(GNUMakefil

4、e惯例)制订出一些在进行GNU程序设计时写Makefile的一些标准和规范,但是其内容很长而且很复杂,并且经常作一些调整,为了减轻程序开发人员维护Makefile的负担,就出现了Automake。利用Automake,编程者只需要写一些预先定义好的宏(macro),提交给Automake处理,就会产生一个可以供Autoconf使用的Makefile.in文件。再配合使用Autoconf产生的自动配置文件configure即可产生一份符合GNUMakefile惯例的Makeifle了。 需要的软件在开始使用Autom

5、ake之前,首先确认你的系统安装有如下软件:1.GNUAutomake2.GNUAutoconf3.GNUm44.perl5.GNULibtool(如果你需要产生sharedlibrary)最好也使用GNUC/C++编译器、GNUMake以及其它GNU的工具程序来作为开发的环境,这些工具都是属于OpenSourceSoftware不但免费而且功能强大。如果你是使用RedHatLinux可以找到所有上述软件的rpm文件。 一个简单的例子Automake所产生的Makefile除了可以做到程序的编译和连接,也可以用来生

6、成文档(如manualpage,info文件等),还可以有把源码文件包装起来以供发布,所以程序源代码所存放的目录结构最好符合GNU的标准惯例,接下来就用一个hello.c來做为例子。在工作目录下建立一个新的子目录devel,再在devel下建立一个"hello"'的子目录,这个目录将作为存放hello这个程序及其相关文件的地方:%mkdirdevel;cddevel;mkdirhello;cdhello用编辑器写一个hello.c文件,#includeintmain(intargc,char**a

7、rgv){printf(“Hello,GNU!n”);return0;}接下来就要用Autoconf及Automake來产生Makefile文件了,1.用autoscan产生一个configure.in的原型,执行autoscan后会产生一个configure.scan的文件,可以用它作为configure.in文件的蓝本。%autoscan%lsconfigure.scanhello.c2.编辑configure.scan文件,如下所示,並且改名为configure.indnlProcessthisfilewit

8、hAutoconftoproduceaconfigurescript.AC_INIT(hello.c)AM_INIT_AUTOMAKE(hello,1.0)dnlChecksforprograms.AC_PROG_CCdnlChecksforlibraries.dnlChecksforheaderfiles.dnlChecksfortypedefs,stru

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。