使用假目标作为目标别名

我们有一个(非常复杂的)构建系统,目前我正试图清理并简化一点。 它以Perl脚本为中心,该脚本设置各种相互依赖的环境变量,然后开始make 。 什么样的目标make上调用取决于传递给Perl脚本,其他一些环境变量和当前的月相的参数。

困扰我的事情是,我们的makefile包含太多假目标,导致目标不断被重建,即使没有必要,这是一个浪费时间。 目标(直接或间接)依赖于大量虚假目标,并且由于虚假目标总是被视为“过时”,因此很多内容都会不必要地更新。

之所以有这么多的假目标,是因为我们的makefile不会直接调用,而是始终通过我之前提到的Perl脚本来调用,并且通过伪目标,Perl脚本不必知道特定目标的确切路径名用户想要更新。

我的意图是不再依赖任何虚假目标。 我想将所有假目标转换为具体的非假目标,以便每个目标的依赖树只包含非假目标。 然后,为了在Perl脚本中轻松访问各个目标,我将为每个这样的目标添加一个新的伪目标,除了将具体目标作为唯一依赖项提交并在其构建配方中打印回显外。

我不太了解make ,所以我想问问这是否会按预期工作,否则会产生意想不到的后果。


如果你首先创建所有具体目标,然后根据其他具体目标来创建目标,然后使用具体目标作为先决条件,使用假目标将名称抽象出来,这将按预期工作(并且是正确的方法)。 换句话说,具体的目标应该自己站起来,而不是依靠幽默。

顺便说一下,如果你想要的话,你也可以将配方留空(不需要“虚拟” echo )。

链接地址: http://www.djcxy.com/p/64125.html

上一篇: Using phony targets as target aliases

下一篇: GNU Make get parent target name