【发布时间】:2017-11-20 01:02:33
【问题描述】:
我的原始用例相当复杂,但可以提炼为以下内容:
a:
export AAA=true
b:
echo ${AAA}
ifdef AAA
echo "AAA mode is on."
else
echo "AAA mode is off."
endif
我想要实现的是有条件的b 目标取决于a 是否被调用。
但是行为并不直观,而 AAA=true make b 确实可以工作 make a b 不能按预期工作(我更喜欢后者)。
任何有用的建议将不胜感激!
【问题讨论】:
-
你不能;配方在不同的进程中执行,您只能将环境变量从父级传递给子级,而不能从兄弟级传递给兄弟级。
-
"是否调用了
a..." 你的意思是a是否已经被执行,或者a是否在Make 的要重建的目标列表中,或者其他什么? 为什么您希望b规则的行为以这种方式变化?这可能是 XY 问题。 -
> "a 是否在 Make 的要重建的目标列表中" ^ 这是我的场景 > "这可能是 XY 问题" ^ 有什么好的链接可以说明什么是 XY 问题?
-
哦,总有一天我会在提问之前学会使用谷歌。谢谢@tripleee