diff --git a/makefiles/cflags.inc.mk b/makefiles/cflags.inc.mk index 396c278a8c2e95d3d3eec6fcfcf12baf79347353..f3c3395aebc8483a11805f38bf5cc5d8fa5072e2 100644 --- a/makefiles/cflags.inc.mk +++ b/makefiles/cflags.inc.mk @@ -27,7 +27,6 @@ endif # Use colored compiler output if the compiler supports this and if this is not # disabled by the user -CC_NOCOLOR ?= 0 ifeq ($(CC_NOCOLOR),0) ifeq ($(shell $(CC) -fdiagnostics-color -E - 2>/dev/null >/dev/null </dev/null ; echo $$?),0) CFLAGS += -fdiagnostics-color diff --git a/makefiles/color.inc.mk b/makefiles/color.inc.mk index 7a7b1204a9167ebfc13d2ca066b548ec9fffa680..1bb1ba031d8eca5f0a710c1e2e2c85b27b7c1317 100644 --- a/makefiles/color.inc.mk +++ b/makefiles/color.inc.mk @@ -1,10 +1,26 @@ +# Set colored output control sequences if the terminal supports it and if +# not disabled by the user + COLOR_GREEN := COLOR_RED := COLOR_PURPLE := COLOR_RESET := COLOR_ECHO := /bin/echo -ifeq (0, $(shell tput colors 2>&1 > /dev/null; echo $$?)) +ifeq ($(CC_NOCOLOR),) + available_colors:=$(shell tput colors 2> /dev/null) + ifeq ($(available_colors),) + CC_NOCOLOR = 1 + else ifeq ($(available_colors),-1) + CC_NOCOLOR = 1 + else ifeq ($(available_colors),0) + CC_NOCOLOR = 1 + else + CC_NOCOLOR = 0 + endif +endif + +ifeq ($(CC_NOCOLOR),0) COLOR_GREEN := \033[1;32m COLOR_RED := \033[1;31m COLOR_YELLOW := \033[1;33m