#
COMPILE_c = $(CC) $(CFLAGS) $(CFLAGS_c) $(OBJ_CFLAGS)
RULE_c = $(COMPILE_c) -c $< -o $@
-RULE_c_to_dbg.o = $(COMPILE_c) -Ddebug_$(OBJECT) -c $< -o $@
-RULE_c_to_dbg2.o = $(COMPILE_c) -Ddebug_$(OBJECT)=2 -c $< -o $@
+RULE_c_to_dbg%.o = $(COMPILE_c) -Ddebug_$(OBJECT)=$* -c $< -o $@
RULE_c_to_c = $(COMPILE_c) -E -c $< > $@
RULE_c_to_s = $(COMPILE_c) -S -g0 -c $< -o $@
RULE_S = $(PREPROCESS_S) $< | $(ASSEMBLE_S) -o $@
RULE_S_to_s = $(PREPROCESS_S) $< > $@
-DEBUG_TARGETS += dbg2.o dbg.o c s
+DEBUG_TARGETS += dbg%.o c s
# SRCDIRS lists all directories containing source files.
#
#
COMMA := ,
DEBUG_LIST = $(subst $(COMMA), ,$(DEBUG))
-DEBUG_OBJ_BASE = $(word 1,$(subst :, ,$(1))).dbg$(word 2,$(subst :, ,$(1)))
+DEBUG_OBJ_LEVEL = $(firstword $(word 2,$(subst :, ,$(1))) 1)
+DEBUG_OBJ_BASE = $(word 1,$(subst :, ,$(1))).dbg$(call DEBUG_OBJ_LEVEL,$(1))
DEBUG_OBJ = $(BIN)/$(call DEBUG_OBJ_BASE,$(1)).o
DEBUG_ORIG_OBJ = $(BIN)/$(word 1,$(subst :, ,$(1))).o
DEBUG_OBJS = $(foreach D,$(DEBUG_LIST),$(call DEBUG_OBJ,$(D)))