Makefile 如何在自动工具中强制最终目标
我有一个自动工具项目。在它的一个目录中,我想在make过程完成后运行一个脚本。换句话说,我希望有一个选项来选择最后执行的“虚假”目标。或者,我可以使用专用的m4宏(我只知道哪一个…)。 有什么想法吗 谢谢我假设通过“自动工具”,您使用的是Automake和Autoconf。我可以看到两种方法 您可以在Makefile.am中创建Makefile 如何在自动工具中强制最终目标,makefile,target,autotools,Makefile,Target,Autotools,我有一个自动工具项目。在它的一个目录中,我想在make过程完成后运行一个脚本。换句话说,我希望有一个选项来选择最后执行的“虚假”目标。或者,我可以使用专用的m4宏(我只知道哪一个…)。 有什么想法吗 谢谢我假设通过“自动工具”,您使用的是Automake和Autoconf。我可以看到两种方法 您可以在Makefile.am中创建-hook规则。但是,只能对某些默认目标执行此操作:install data、install exec、uninstall、dist和distcheck。因此,要创建一个
-hook
规则。但是,只能对某些默认目标执行此操作:install data
、install exec
、uninstall
、dist
和distcheck
。因此,要创建一个在install exec
之后立即运行的规则,请将其称为install exec hook
。然后只需运行该规则配方中的脚本
不过,根据您问题的措辞,您似乎希望在构建后运行脚本。如果是这种情况,您可以使用all local
目标自定义all
目标,然后在此目标的配方中运行脚本。注意,根据Automake文档
对于'-local'目标,没有特别保证
执行令;通常,它们运行得很早,但使用并行make,
这是无法确定的
但是,由于all
目标是虚假的,因此在构建所有内容之前,它不应该运行。不过,如果您可以在安装后运行脚本,我建议您这样做,因为执行顺序是有保证的