在automake Makefile规则之前执行的Automake上是否有任何目标?

时间:2012-09-11 10:18:41

标签: hook automake

我一直在尝试生成在之前执行的Makefile规则 automake Makefile规则。我已经看到我可以定义“all-local”和“hooks”规则,但这些规则在之后执行“all”和其他 例如,规则。

有没有办法在我之前执行我的代码 automake增加了规则?我想自动生成一个文件 目录,但通过make的编译过程总是尝试 按照automake Makefile规则编译程序。如果我可以添加一个 “预先”规则,我可以生成所需的文件,然后让正常 要运行的编译过程。

我知道BUILT_SOURCES,但我试图不使用它

这可能吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

没有办法做到这一点。

通常在Makefile中,如果你想这样做,你应该考虑在需要时添加适当的依赖项。

答案 1 :(得分:0)

Makefile 可以有相同的目标,但前提条件不同,在这种情况下,前提条件将被合并:

# The following will be equivalent to 'target: prerequisite1 prerequisite2'
target: prerequisite1
target: prerequisite2

这可以从 the GNU make manual 推断出来(那里的解释非常糟糕,但我没有找到更好的)。

您可以在自己的 Makefile.am 中利用此功能:

all: all-prehook

all-prehook:
    echo Prehook called here

.PHONY: all-prehook

小心 automake 会抱怨(Warning: overrides Automake target 或类似的东西)。您可以使用 -Wno-override 关闭它:如果您使用的是 autoconf,只需将其添加到您的 AM_INIT_AUTOMAKE 调用中。