在使用自动工具配置源文件的上下文中,aclocal脚本和aclocal.m4文件的意义何在?从我所读到的,aclocal扫描宏文件的宏,这些宏后来被自动使用。我并不深入地理解这个过程,但似乎扫描功能可能只是嵌入到自动控制中。
发布于 2009-12-28 19:39:41
见Alexandre Duret Lutz汽车工具教程,a必读。
它包含图表,说明一个自动工具项目的不同文件是如何相互作用的,以及它们是通过哪些工具使用的:configure、config.h、config.status、aclocal.m4等。
编辑:约翰?科尔特在他的关于汽车工具的书:第一章: GNU自动工具简介的第一章中也解释了aclocal和第一章: GNU自动工具简介的用途。
aclocal实用程序实际上被GNU手册记录下来,作为Autoconf中某些缺乏灵活性的临时工具。Autoconf最初是设计和编写的,几年后,Automake的想法被设想为Autoconf的一个附加功能。但是Autoconf的设计实际上并不能扩展到Automake所要求的规模。
..。
本质上,aclocal的工作是通过合并来自已安装的Autotool包和用户指定的位置的各种宏文件来创建一个aclocal.m4文件,这样Autoconf可以在一个地方找到它们。
..。
然而,来自这两组工具的最新文档表明,整个aclocal/acinclude范例现在已经过时,而采用了一种新的方法来指定包含m4宏文件的目录。当前的建议是在项目目录中创建一个名为m4的目录(acinclude似乎更适合这个作者),并以单个.m4文件的形式向该目录中添加宏。在Autoconf处理您的aclocal.m4文件之前,该目录中的所有文件都将被收集到configure.ac中。最终,aclocal将被Autoconf本身的功能所取代。
发布于 2009-12-28 19:43:11
在我的软件中,aclocal.m4收集我在软件构建过程中使用的各种非标准的Autoconf宏。其中一组宏处理亚秒级的计时--选择可用选项中的最佳选项(根据某些预先确定的“最佳”标准);另一组宏处理Informix /C编译系统的复杂性,因为它是在过去20年中发展起来的(它处理ESQL/C5.20,1990年发布了5.00版本,它还处理Informix 3.50的最新版本--尽管它是在2008年发布的,但它包含ESQL/C3.50)。
因此,aclocal.m4是针对本地宏的,这些宏不一定是普通Autoconf的一部分,而是由您的特定软件使用的。
发布于 2017-10-26 12:57:01
链接到约翰·科科特的文章,由自动工具/提供。我本来会对那个帖子发表评论的,但我在这里的声誉太低了。
基本段落:
本质上,aclocal的工作是通过合并来自已安装的Autotool包和用户指定的位置的各种宏文件来创建一个aclocal.m4文件,这样Autoconf可以在一个地方找到它们。
https://stackoverflow.com/questions/1970926
复制相似问题