From a666eb34b56b4cea51cbe837d954e60b9c68c687 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sat, 16 Apr 2005 23:28:36 +0000 Subject: Improved building of debugging objects. You can now specify a "DEBUG=" list for any build, e.g. make bin/pnic.dsk DEBUG=pci,pnic This will drag in debugging-enabled versions of pci.c and pnic.c. --- src/Makefile | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/Makefile') diff --git a/src/Makefile b/src/Makefile index 7d7d76d4..691f2c48 100644 --- a/src/Makefile +++ b/src/Makefile @@ -96,12 +96,15 @@ LDFLAGS += $(EXTRA_LDFLAGS) CFLAGS_c += CFLAGS_S += -DASSEMBLY +# Base object name of the current target +# +OBJECT = $(firstword $(subst ., ,$(@F))) + # CFLAGS for specific object files. You can define # e.g. CFLAGS_rtl8139, and have those flags automatically used when # compiling bin/rtl8139.o. # -OBJ_CFLAGS = $(CFLAGS_$(basename $(@F))) \ - -DOBJECT=$(subst -,_,$(basename $(@F))) +OBJ_CFLAGS = $(CFLAGS_$(OBJECT)) -DOBJECT=$(subst -,_,$(OBJECT)) $(BIN)/%.flags : @echo $(OBJ_CFLAGS) @@ -109,24 +112,27 @@ $(BIN)/%.flags : # COMPILE_c = $(CC) $(CFLAGS) $(CFLAGS_c) $(OBJ_CFLAGS) RULE_c = $(COMPILE_c) -c $< -o $@ -RULE_c_to_s = $(COMPILE_c) -S -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 -c $< -o $@ PREPROCESS_S = $(CPP) $(CFLAGS) $(CFLAGS_S) $(OBJ_CFLAGS) ASSEMBLE_S = $(AS) $(ASFLAGS) RULE_S = $(PREPROCESS_S) $< | $(ASSEMBLE_S) -o $@ RULE_S_to_s = $(PREPROCESS_S) $< > $@ -DEBUG_TARGETS += c s +DEBUG_TARGETS += dbg.o c s # SRCDIRS lists all directories containing source files. # -SRCDIRS += core drivers/net drivers/disk +SRCDIRS += core drivers/bus drivers/net +# drivers/disk # NON_AUTO_SRCS lists files that are excluded from the normal # automatic build system. # NON_AUTO_SRCS += core/elf_loader.c +NON_AUTO_SRCS += drivers/net/prism2.c # Rules for finalising files. TGT_MAKEROM_FLAGS is defined as part of # the automatic build system and varies by target; it includes the -- cgit v1.2.3-55-g7522