2014-10-10 65 views
0

我有这应该始终执行的Makefile的配方,没有任何条件,不管什么(如果)目标是在make调用指定的。我可以指定一个始终运行的Makefile配方吗?

执行这个食谱会对一些其他规则的前提条件的影响,所以我想make认为在Makefile中的任何其他规则之前要执行这个食谱。由于执行这个配方并不总是会导致其他规则的前提条件得到满足(即make认为它们已经过时),所以我不能把这个配方放在.PHONY的目标中,并将其作为其他目标的先决条件,因为make会将所有相关目标视为过期,即使它们不是。

我想定义一个虚拟变量,它被分配一个${shell my ; recipe ; commands}的结果,但似乎并不可靠地执行的。

回答

1

有可能是一个更优雅的答案,但是伪造的目标是的依赖项,每个其他目标在makefile中应该满足您的要求。

+0

正如我在质询时说,我不能这样做,即使它不是必需的,因为那就随时重新制作。 – FriendFX 2014-10-10 04:29:34

+0

操作的构件是什么?您是否可以在步骤中不添加条件以避免重复操作?或者也许使用一个真实的文件来表明操作已经发生? – Rich 2014-10-10 04:31:58

+0

该操作主要是制作一堆文件的副本,这些文件我事先不知道。只有新文件被复制,并且如果它们比我的目标中的一个新,它将被认为是过期的make。所以复制操作应该总是被执行,以检查是否需要重新构建目标。 – FriendFX 2014-10-10 04:44:04

相关问题