命令行中的 Makefile 变量与环境中的变量
有没有办法检测变量是否已从环境与命令行中设置?
我想区分使用 make LIB=mylib
调用 make 的人和使用 make
调用 make 并定义 $LIB 的人。
Is there a way to detect whether a variable has been set from the environment vs. on the command line?
I would like to distinguish between someone invoking make with make LIB=mylib
vs. make
and $LIB being defined.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的。您可以使用 origin 函数来确定变量的位置被定义。
Yes. You can use the origin function to determine where a variable was defined.
使用非 Gnu make,您可以针对相关变量运行
export
命令和grep
。这仅在规则中有效,并且仅在变量未设置为一次性时有效(例如在LIB=foo make
中)。With non-Gnu make, you could run the
export
command andgrep
for the variable in question. This works only in rules and only as long as the variable is not set as a one-shot (like inLIB=foo make
).