【发布时间】:2019-10-13 19:48:15
【问题描述】:
如何检测是否设置了makefile --silent / --quiet 命令行选项?
相关问题:
【问题讨论】:
标签: makefile
如何检测是否设置了makefile --silent / --quiet 命令行选项?
相关问题:
【问题讨论】:
标签: makefile
我认为你需要:
$(findstring s,$(word 1, $(MAKEFLAGS)))
因为 MAKEFLAGS 也有很长的选项,例如:
MAKEFLAGS=s -j80 --jobserver-auth=4,6
所以,IOW:
# Set SILENT to 's' if --quiet/-s set, otherwise ''.
SILENT := $(findstring s,$(word 1, $(MAKEFLAGS)))
【讨论】:
如果您调用 make --quiet 或 --silent,则变量 {MAKEFLAGS} 仅设置为 @987654328 @。如果您添加其他选项,如 --ignore-errors 和 --keep-going,变量 {MAKEFLAGS} 将设置为 iks 。然后,你可以用这个来捕捉它:
ECHOCMD:=/bin/echo -e
SHELL := /bin/bash
all:
printf 'Calling with "%s" %s\n' "${MAKECMDGOALS}" "${MAKEFLAGS}";
if [[ "ws" == "w$(findstring s,${MAKEFLAGS})" ]]; then \
printf '--silent option was set\n'; \
fi
参考资料:
【讨论】: