我一直在尝试生成在之前执行的Makefile规则 automake Makefile规则。我已经看到我可以定义“all-local”和“hooks”规则,但这些规则在之后执行“all”和其他 例如,规则。
有没有办法在我之前执行我的代码 automake增加了规则?我想自动生成一个文件 目录,但通过make的编译过程总是尝试 按照automake Makefile规则编译程序。如果我可以添加一个 “预先”规则,我可以生成所需的文件,然后让正常 要运行的编译过程。
我知道BUILT_SOURCES,但我试图不使用它
这可能吗? 谢谢!
答案 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
调用中。