summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Makefile.housekeeping25
-rw-r--r--src/core/debug.c17
2 files changed, 39 insertions, 3 deletions
diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping
index f7755369..e40e7132 100644
--- a/src/Makefile.housekeeping
+++ b/src/Makefile.housekeeping
@@ -710,6 +710,31 @@ $(BIN)/version.o : ../.git/index
endif
endif
+# Debug message autocolourisation range
+#
+DBGCOL_LIST := $(BIN)/.dbgcol.list
+ifeq ($(wildcard $(DBGCOL_LIST)),)
+DBGCOL_OLD := <invalid>
+else
+DBGCOL_OLD := $(shell cat $(DBGCOL_LIST))
+endif
+ifneq ($(DBGCOL_OLD),$(DBGCOL))
+$(shell $(ECHO) "$(DBGCOL)" > $(DBGCOL_LIST))
+endif
+
+$(DBGCOL_LIST) : $(MAKEDEPS)
+
+VERYCLEANUP += $(DBGCOL_LIST)
+
+DBGCOL_COLOURS := $(subst -, ,$(DBGCOL))
+DBGCOL_MIN := $(word 1,$(DBGCOL_COLOURS))
+DBGCOL_MAX := $(word 2,$(DBGCOL_COLOURS))
+
+debug_DEPS += $(DBGCOL_LIST)
+
+CFLAGS_debug += $(if $(DBGCOL_MIN),-DDBGCOL_MIN=$(DBGCOL_MIN))
+CFLAGS_debug += $(if $(DBGCOL_MAX),-DDBGCOL_MAX=$(DBGCOL_MAX))
+
# We automatically generate rules for any file mentioned in AUTO_SRCS
# using the following set of templates. We use $(eval ...) if
# available, otherwise we generate separate Makefile fragments and
diff --git a/src/core/debug.c b/src/core/debug.c
index 2161f973..7ded4708 100644
--- a/src/core/debug.c
+++ b/src/core/debug.c
@@ -119,13 +119,24 @@ void dbg_hex_dump_da ( unsigned long dispaddr, const void *data,
}
/**
+ * Base message stream colour
+ *
+ * We default to using 31 (red foreground) as the base colour.
+ */
+#ifndef DBGCOL_MIN
+#define DBGCOL_MIN 31
+#endif
+
+/**
* Maximum number of separately coloured message streams
*
* Six is the realistic maximum; there are 8 basic ANSI colours, one
* of which will be the terminal default and one of which will be
* invisible on the terminal because it matches the background colour.
*/
-#define NUM_AUTO_COLOURS 6
+#ifndef DBGCOL_MAX
+#define DBGCOL_MAX ( DBGCOL_MIN + 6 - 1 )
+#endif
/** A colour assigned to an autocolourised debug message stream */
struct autocolour {
@@ -142,7 +153,7 @@ struct autocolour {
* @ret colour Colour ID
*/
static int dbg_autocolour ( unsigned long stream ) {
- static struct autocolour acs[NUM_AUTO_COLOURS];
+ static struct autocolour acs[ DBGCOL_MAX - DBGCOL_MIN + 1 ];
static unsigned long use;
unsigned int i;
unsigned int oldest;
@@ -180,7 +191,7 @@ static int dbg_autocolour ( unsigned long stream ) {
*/
void dbg_autocolourise ( unsigned long stream ) {
dbg_printf ( "\033[%dm",
- ( stream ? ( 31 + dbg_autocolour ( stream ) ) : 0 ) );
+ ( stream ? ( DBGCOL_MIN + dbg_autocolour ( stream ) ) :0));
}
/**