autotools 学习笔记.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
autotools 学习笔记

autotools 学习笔记 1. 样例 hello.c #include stdio.h main(){ printf(hello world!\n); } Makefile.am bin_PROGRAMS=hello hello_SOURCES=hello.c configure.in AC_INIT(hello.cc) AM_INIT_AUTOMAKE(hello,1.0) AC_PROG_CC AC_PROG_INSTALL AC_OUTPUT(Makefile) 2. 解释 需要手动写的文件为Makefile.am和configure.in。 Makefile.am的语言是逻辑性语言,没有详细的执行表述。仅仅表述了一个关系,通过该关系,执行可以推论出来。而configer.in的语言是程序性的。configure.in的每一行都是被执行的命令。 2.1 在configure.in中的命令 AC_INIT 初始化configure脚本。必须用源文件中的一个文件名作为参数。如何源文件都可以。 AM_INIT_AUTOMAKE 进一步初始化,初始化过程与我们正在使用的automake有关。如果你手动的写Makef.in文件,则不需要调用该命令。用逗号分隔的参数一个是包名,一个是版本号。 AC_PROG_CC 检查哪一个C编译器。 AC_PROG_INSTALL 检查你的系统是否有一个BSD兼容的安装工具包。如果没有它使用“install-sh”,如果“install-sh”在你的包的目录根中不存在,automake将安装它。 AC_OUTPUT 讲述配置文件从Makefile.in中产生Makefile 2.2 附加的因素 如果编译一个库,你的配置文件必须决定如何处理“ranlib”,为此添加AC_PROG_RANLIB命令。 如果你想递归调用在子目录中的makefile文件,配置脚本需要被告知如何去做这个。你需要添加AC_PROG_MAKE_SET命令。 如果在子目录中有makefile文件,你必须把它们写到AC_OUTPUT命令中。如下: AC_OUTPUT(Makefile \ Dir1/Makefile \ Dir2/Makefile \ ) 3. 执行命令解释 3.1 命令序列 Aclocal Autoconf Touch README AUTHORS NEWS ChangeLog Automake –a ./configure Make 前三个命令使包达到自动配置状态。后两个命令作实际的配置和编译。 3.2 详细解释 Aclocal命令安装一个叫aclocal.m4的文件。通常,在该文件中,你应该放置一些写好的autoconf宏的定义。这些宏将用作configure.in文件中。Automake工具使用AM_INIT_AUTOMAKE宏,该宏并不是标准的autoconf宏。因此,它的定义学习放置在aclocal.m4中。如果你调用无参数调用aclocal命令,它会产生一个恰当的aclocal.m4的宏。 autoconf命令联合这个aclocal.m4和configure.in文件,产生configure脚本。 touch命令产生readme脚本和其他。在调用automake命令之前这些文件的存在是很重要的,因为,在你调用automake时检查他们是否存在,由此automake决定是否在发布中包含他们。Automake必须决定包含这些文件,因为当你键入“make distcheck”时,这些文件的出现将被要求。 automake命令从Makefile.am中编译Makefile.in文件。If absent it installs variours files that are required either by the gnu coding standards or by the makefile that will be generated. Configure脚本探索你的平台并产生makefile文件,用于编译你平台上的源文件。详细的如何探索被写在configure.in文件中。产生的makefile文件基于在makefile.in中的模板。为了这些模板与configure相适应,产生适应gnu代码标准的makefile文件,他们需要包含一些冗余的无聊的内容。这样automake就来了。从Makefile.am中简要的说明中,Automake产生makefile.in文件,正如你所看到的,Makefile.am文件相当简单。一旦你订制了makefile文件,你的make工具就可以使用了。 4 使用配

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档