我有一个包含包含语句的 makefile。我无法控制包含的 makefile 的内容。不过,我希望能够在“某些”(不是全部)目标之前添加一些预处理步骤。考虑以下示例:
install:
@echo "install target"
include othermakefile.mk
其他makefile.mk包含install目标也是如此。如果我运行此脚本,make 会发出警告并忽略第一个install target.
没有什么比这更容易的了:
install: pre_install
.PHONY: pre_install
pre_install:
do preinstallation things
include othermakefile.mk
EDIT:
如果你想跑步pre_install
before install
或其任何先决条件,这是一个方法。它既粗糙又丑陋,但它可以完成工作:
install: pre_install
$(MAKE) -f othermakefile.mk $@
.PHONY: pre_install
pre_install:
do preinstallation things
请注意,这不一定会重建所有先决条件install
,因此其中一些可能会保留在原来的状态并且不反映pre_install
。如果这还不够好,而你想要pre_install
before all对于其他先决条件,您可以添加一个选项标志:
install: pre_install
$(MAKE) --always-make -f othermakefile.mk $@
现在 Make 将假设所有目标都已过时,并从头开始重建(之后pre_install
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)