ONESHELL

没有加 .ONESHELL 的时候,片段中的各行 shell 彼此独立。

加了 .ONESHELL 后,各行shell 可以看作一行 shell。

<1>

.PHONY: all

all: a

a:
t1=abc;export t1
@echo $$t1;

> make all
t1=abc;export t1

<2>

.ONESHELL:
.PHONY: all

all: a

a:
t1=abc;export t1
@echo $$t1;

> make all
t1=abc;export t1
echo $t1;
abc

https://www.cnblogs.com/gaojian/archive/2012/09/25/2701498.html

原文地址:https://www.cnblogs.com/lelin/p/11642726.html