Makefile 如何在make中创建设置和拆卸例程
我到处都找过了,但找不到这个功能。这可能是不可能的。我想要一些在食谱执行之前和之后运行的东西。我以为会是这样的:Makefile 如何在make中创建设置和拆卸例程,makefile,Makefile,我到处都找过了,但找不到这个功能。这可能是不可能的。我想要一些在食谱执行之前和之后运行的东西。我以为会是这样的: .BEFORE: echo "Hello world" .AFTER: echo "Goodbye cruel world" foo.txt: touch foo.txt 因此输出: Hello World touch foo.txt Goodbye cruel world 这可行吗 targets := foo.txt .PHON
.BEFORE:
echo "Hello world"
.AFTER:
echo "Goodbye cruel world"
foo.txt:
touch foo.txt
因此输出:
Hello World
touch foo.txt
Goodbye cruel world
这可行吗
targets := foo.txt
.PHONY: after before
after: $(targets)
@echo "Goodbye cruel world"
$(targets): before
before:
@echo "Hello world"
foo.txt:
touch foo.txt
我之前的建议每次都运行
foo.txt
的配方,因为它依赖于.PHONY
目标。如果您对此没有意见,那么您最好使用双冒号规则,这也将解决具有多个目标的问题
targets := foo.txt
$(targets)::
@echo "Hello world"
foo.txt::
touch $@
$(targets)::
@echo "Goodbye cruel world"
如果
foo.txt
最终有了自己的先决条件,那么这个问题应该自行解决,当然现在的问题是,每个目标将执行一个前后规则。这就结束了。如果我只调用默认目标上的make,它就会工作。我的问题中没有包括这一点,但如果我有多个目标,我想分别针对它们,该怎么办?在这种情况下,after目标不会被调用。