makefile可能类似于以下内容:
MAKEOVERRIDES=
all:
@$(MAKE) recursive
recursive:
@echo $(foo)
.PHONY: all
.PHONY: recursive
如果我跑:
$ make foo=bar
我明白了:
make[1]: Entering directory '/home/myname'
bar
make[1]: Leaving directory '/home/myname'
描述了抑制命令行定义的想法here:
命令行变量定义确实出现在变量中 ' MAKEOVERRIDES'和' MAKEFLAGS'包含对此变量的引用。 如果您确实想要正常传递旗帜,但又不想传递旗帜 命令行变量定义,你可以重置' MAKEOVERRIDES'至 空的,像这样:
MAKEOVERRIDES =
答案 0 :(得分:0)
要禁止将变量导出到子使用unexport
:
MAKEOVERRIDES=
unexport foo
all:
@$(MAKE) recursive
recursive:
@echo $(foo)
.PHONY: all
.PHONY: recursive