在makefile中,依赖行的形式是 -
abc: x y z
Run Code Online (Sandbox Code Playgroud)
所有三个组件(x,y,z)本身都是makefile中进一步向下的依赖行中的目标.
如果调用make abc,将执行三个目标x,y,z的顺序是什么?
我有一个仅限订单的先决条件的问题.这些根本不会首先执行.我是否误解了仅限订单的先决条件的工作方式?
以下make脚本:
.PHONY: mefirst mefirst2
mefirst:
@echo "I'm first!"
mefirst2:
@echo "I'm first too!"
normaltarget: normaltarget2 | mefirst2
@echo "normaltarget done"
normaltarget2: a b c
@echo "normaltarget2 done"
helloworld: normaltarget | mefirst
@echo "helloworld done"
.DEFAULT_GOAL := go
go: helloworld
@echo "go done"
a:
@echo a
b:
@echo b
c:
@echo c
Run Code Online (Sandbox Code Playgroud)
...打印出以下内容:
a
b
c
normaltarget2 done
I'm first too!
normaltarget done
I'm first!
helloworld done
go done
Run Code Online (Sandbox Code Playgroud)
......而不是我期望的:
I'm first!
I'm first too!
a
b
c
normaltarget2 done …Run Code Online (Sandbox Code Playgroud)