【发布时间】:2019-09-23 11:42:25
【问题描述】:
我在顶级 makefile 中有以下规则。我想在这个级别设置一个环境变量,以便所有子 make 规则都可以访问它。
请问这是怎么做到的?
get:
for i in $(STACK_DIRS) ; do \
cd $(CURDIR)/$${i} && make get ; \
done \
【问题讨论】:
-
哪个变量?
make STACK_DIRS='$(STACK_DIRS)' get应该可以轻松解决这个问题(前提是STACK_DIRS不包含任何单引号。) -
一个新的环境变量。假设 foo=bar。
-
export foo在 Makefile 中可以做到这一点。 -
能否提供一个完整的例子?
-
您永远不应该使用
make来调用make 的递归调用。您应该始终使用变量$(MAKE)。