Gcc 控制GNU自动工具生成输出

Gcc 控制GNU自动工具生成输出,gcc,gnu,autotools,Gcc,Gnu,Autotools,我正在使用GNU autoconf/automake。是否有任何方法可以控制从configure.ac或Makefile.am打印到标准输出的内容?例如,抑制打印到屏幕上的mv和cp命令,只打印gcc编译的文件名,而不是整个命令行,以某种方式突出显示gcc警告。我认为最简单的事情是编写一个运行*make并解析输出的包装器脚本。我相信我已经在Ubuntu的某个地方看到了这一点 我认为最简单的事情是编写一个运行*make并解析输出的包装器脚本。我相信我已经在Ubuntu的某个地方看到了这一点 这就是

我正在使用GNU autoconf/automake。是否有任何方法可以控制从configure.ac或Makefile.am打印到标准输出的内容?例如,抑制打印到屏幕上的mv和cp命令,只打印gcc编译的文件名,而不是整个命令行,以某种方式突出显示gcc警告。

我认为最简单的事情是编写一个运行*make并解析输出的包装器脚本。我相信我已经在Ubuntu的某个地方看到了这一点

我认为最简单的事情是编写一个运行*make并解析输出的包装器脚本。我相信我已经在Ubuntu的某个地方看到了这一点

这就是你想要的吗


编辑:自Automake 1.10b起,是内置的。代码或样式不同,但效果相似。

您想要什么



编辑:自Automake 1.10b起,是内置的。不同的代码或样式,但效果相似。

现代Automake(在1.10b中之后)支持--静默规则,这将抑制完整编译命令。(例如,输出是“CC foo”而不是“gcc-DHAVE_CONFIG_H…”),这可能就是您所需要的。您需要将“静默规则”添加到AM_INIT_AUTOMAKE并传递--启用静默规则以配置(或将其放入CONFIG_站点)以启用该功能。有关详细信息,请参阅automake文档。

现代automake(在1.10b中之后)支持--静默规则,这将抑制完整编译命令。(例如,输出是“CC foo”而不是“gcc-DHAVE_CONFIG_H…”),这可能就是您所需要的。您需要将“静默规则”添加到AM_INIT_AUTOMAKE并传递--启用静默规则以配置(或将其放入CONFIG_站点)以启用该功能。有关详细信息,请参阅automake文档。

谢谢。你能告诉我脚本的方向以及如何将其集成到自动工具链中吗?好的,例如make|u命令| sed可以删除以(包含)“cp”和“mv”开头的行,也可以删除除所需之外的所有内容:最后。。。高利汀。。。你的意思是,每当你看到警告时,就预先准备一些类似于[警告]的东西,对吗?如果一行代码看起来很长,那么将其转换为一个名为x的脚本,并执行:mymake |/path/../x这应该可以让您开始了。拥有python脚本将使其更具可读性和灵活性。谢谢你能告诉我脚本的方向以及如何将其集成到自动工具链中吗?好的,例如make|u命令| sed可以删除以(包含)“cp”和“mv”开头的行,也可以删除除所需之外的所有内容:最后。。。高利汀。。。你的意思是,每当你看到警告时,就预先准备一些类似于[警告]的东西,对吗?如果一行代码看起来很长,那么将其转换为一个名为x的脚本,并执行:mymake |/path/../x这应该可以让您开始了。拥有python脚本将使其更具可读性和灵活性。使用
AM\u SILENT\u规则([yes])
将默认启用静默规则(尽管您可以使用
make V=1
将其关闭)。@Jack Kelly:太好了!我在configure.ac中添加了AM_SILENT_规则([yes]),现在编译过程中的输出看起来就像Linux内核一样。使用
AM_SILENT_规则([yes])
默认情况下将启用SILENT规则(尽管您可以使用
make V=1
将其关闭)。@Jack Kelly:太棒了!我在configure.ac中添加了AM_SILENT_规则([yes]),现在编译过程中的输出看起来就像Linux内核一样。你的链接似乎断了,我几乎找不到任何地方提到“美化汽车制造”。@Jack Kelly:嗯,它似乎已经从互联网上消失了。Web存档在这里有一个旧副本:存档有到补丁的链接,所以有+1。然而,automake现在升级到了1.11版,并且内置了无声规则支持,所以现在已经过时了。你的链接似乎被破坏了,我几乎找不到任何地方提到“美化automake”。@Jack Kelly:嗯,它似乎已经从互联网上消失了。Web存档在这里有一个旧副本:存档有到补丁的链接,所以有+1。然而,汽车制造商现在升级到了1.11版,并且内置了无声规则支持,所以现在已经过时了。