From 80faf143d24ae2270a96bfd9d06767573e15aec3 Mon Sep 17 00:00:00 2001 From: lucic71 Date: Tue, 23 Jun 2020 13:57:54 +0300 Subject: [PATCH] Beautified makefile output --- Makefile | 21 +++++++++++++++------ lib/Makefile | 24 ++++++++++++++---------- modules/Makefile | 17 +++++++++++------ 3 files changed, 40 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index 2079685..6e4fe4d 100644 --- a/Makefile +++ b/Makefile @@ -57,15 +57,20 @@ all: lib_all | module_all kernel.elf # module_all - Recursively build all modules. module_all: - $(MAKE) -C $(MODULES_ROOT_DIR) + @$(call print_banner, "Building modules") + @$(MAKE) -C $(MODULES_ROOT_DIR) + @echo lib_all: - $(MAKE) -C $(LIB_DIR) + @$(call print_banner, "Building the library") + @$(MAKE) -C $(LIB_DIR) + @echo # kernel.elf - Link all root objects and module objects to create the # kernel.elf executable kernel.elf: $(OBJ) + @$(call print_banner, "Building the kernel") $(LD) $(LDFLAGS) $(OBJ) $(MODULE_OBJ) -o kernel.elf # os.iso - Create the OS image and place the kernel fiel in GRUB directory. @@ -99,17 +104,21 @@ run: os.iso $(AS) $(ASFLAGS) $< -o $@ clean: mclean lclean + @$(call print_banner, "Cealning root directory") @$(RM) *.o kernel.elf os.iso bochslog.txt iso/boot/kernel.elf mclean: + @$(call print_banner, "Cleaning the modules") $(MAKE) -C $(MODULES_ROOT_DIR) clean lclean: + @$(call print_banner, "Cleaning the library") $(MAKE) -C $(LIB_DIR) clean -# Function declarations +# Functions -define print_info - @echo "" - @echo $(1) +define print_banner + @echo + @echo "*************** $(1) ***************" + @echo endef diff --git a/lib/Makefile b/lib/Makefile index 5343ed7..3897a65 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -31,18 +31,22 @@ all: rbuild # Build all libraries recursively. rbuild: - for dir in $(LIB_DIR); do \ - cp $(SCRIPTS_DIR)/MakefileLib $$dir/Makefile; \ - $(MAKE) -C $$dir; \ - $(RM) $$dir/Makefile; \ - done + @echo + @$(foreach LIB, $(LIB_DIR), \ + cp $(SCRIPTS_DIR)/MakefileLib $(LIB)/Makefile; \ + $(MAKE) -C $(LIB); \ + $(RM) $(LIB)/Makefile; \ + echo; \ + ) # Clean all libraries recursively. clean: - for dir in $(LIB_DIR); do \ - cp $(SCRIPTS_DIR)/MakefileLib $$dir/Makefile; \ - $(MAKE) -C $$dir clean; \ - $(RM) $$dir/Makefile; \ - done + @echo + @$(foreach LIB, $(LIB_DIR), \ + cp $(SCRIPTS_DIR)/MakefileLib $(LIB)/Makefile; \ + $(MAKE) -C $(LIB) clean; \ + $(RM) $(LIB)/Makefile; \ + echo; \ + ) @$(RM) -rv $(SO_DIR)/$(SO) diff --git a/modules/Makefile b/modules/Makefile index 33cb30f..f700b5e 100644 --- a/modules/Makefile +++ b/modules/Makefile @@ -6,11 +6,16 @@ MODULE_INC_DIR = include/ MODULE_DIR := $(filter-out $(MODULE_INC_DIR), $(MODULE_DIR)) all: - for dir in $(MODULE_DIR); do \ - $(MAKE) -C $$dir; \ - done + @echo + @$(foreach MODULE, $(MODULE_DIR), \ + $(MAKE) -C $(MODULE); \ + echo ""; \ + ) + clean: - for dir in $(MODULE_DIR); do \ - $(MAKE) -C $$dir clean; \ - done + @echo + @$(foreach MODULE, $(MODULE_DIR), \ + $(MAKE) -C $(MODULE) clean; \ + echo ""; \ + )