2

我有一个自动工具项目。在它的一个目录中,我想在 make 过程完成后运行一个脚本。换句话说,我想选择最后执行的“虚假”目标。或者,我可以使用专用的 m4 宏(我只知道是哪一个……)。有任何想法吗?

谢谢

4

1 回答 1

3

我假设通过“autotools”,您正在使用 Automake 以及 Autoconf。我可以看到两种方法。

您可以-hook在 Makefile.am 中制定规则。但是,这只能对某些默认目标执行:install-datainstall-execuninstall和。因此,要制定将在 之后立即运行的规则,请调用它。然后只需运行该规则的配方中的脚本。distdistcheckinstall-execinstall-exec-hook

但是,根据您问题的措辞,您似乎想在构建后运行脚本。如果是这种情况,您可以使用目标自定义all目标all-local,然后在此目标的配方中运行脚本。请注意,根据 Automake 文档,

使用“-local”目标,执行顺序没有特别的保证;通常,它们会提前运行,但是对于并行生成,无法确定这一点。

但是,由于all目标是虚假的,所以在构建完所有内容之前它不应该运行。不过,如果您可以在安装后运行脚本,我会推荐这种方式,因为可以保证执行顺序。

于 2013-07-18T16:58:45.753 回答