makefile:
VAR=inner
C:
@echo "C: $(VAR)"
A:
@echo "A: $(VAR)"
B:
@echo "BBB"
ALL:: C
ALL:: VAR=outer
ALL:: A B
运行:
> make ALL
C: outer
A: outer
BBB
>make ALL VAR=haha
C: haha
A: haha
BBB
#After remove the target A from ALL
> make ALL A
C: outer
BBB
A: inner
ifdef DEFIN
after remove the targe A from ALL
$ make -f test ALL A
outer
BBB
inner
endif
由此可见,多目标依赖会首先处理定义的变量,然后执行target,每个target会专门起一个进程来执行,不同target的变量是不相互影响的。