From 22cce3561ad47b502d1a7583a6ac9d9946a46b8d Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Sun, 17 Jul 2016 11:11:15 +0200 Subject: [PATCH] Cleanup makefile --- cpp.mk | 12 +++++++++- kernel/Makefile | 58 ++++++++++++------------------------------------- 2 files changed, 25 insertions(+), 45 deletions(-) diff --git a/cpp.mk b/cpp.mk index 977051cc..47c9f725 100644 --- a/cpp.mk +++ b/cpp.mk @@ -38,15 +38,22 @@ LIB_LINK_FLAGS=$(CPP_FLAGS_64) $(WARNING_FLAGS) -mcmodel=small -fPIC -Wl,-gc-sec PROGRAM_FLAGS=$(CPP_FLAGS_64) $(WARNING_FLAGS) -I../../tlib/include/ -I../../printf/include/ -static -L../../tlib/ -ltlib -mcmodel=small -fPIC PROGRAM_LINK_FLAGS=$(CPP_FLAGS_64) $(WARNING_FLAGS) $(COMMON_LINK_FLAGS) -static -L../../tlib/ -ltlib -mcmodel=small -fPIC -z max-page-size=0x1000 -T ../linker.ld -Wl,-gc-sections +D_FILES= + # Generate the rules for the CPP files of a directory define compile_cpp_folder $(1)/%.cpp.d: $(1)/%.cpp - $(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT $(1)/$$*.cpp.o $$< | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $$@ + @ $(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT $(1)/$$*.cpp.o $$< | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $$@ $(1)/%.cpp.o: $(1)/%.cpp $(CXX) $(KERNEL_CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $$< -o $(1)/$$*.cpp.o +folder_cpp_files=$(wildcard $(1)/*.cpp) +folder_d_files=$(folder_cpp_files:%.cpp=%.cpp.d) + +D_FILES += $(folder_d_files) + endef # Generate the rules for the APCICA C files of a components subdirectory @@ -58,4 +65,7 @@ acpica/source/components/$(1)/%.c.d: acpica/source/components/$(1)/%.c acpica/source/components/$(1)/%.c.o: acpica/source/components/$(1)/%.c $(CC) $(ACPICA_CPP_FLAGS) $(THOR_FLAGS) -c $$< -o $$@ +folder_c_files=$(wildcard acpica/source/components/$(1)/*.c) +folder_d_files=$(folder_c_files:%.c=%.c.d) + endef diff --git a/kernel/Makefile b/kernel/Makefile index 7c46ca9f..d354c447 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -9,6 +9,11 @@ KERNEL_CPP_DRIVERS_FILES=$(wildcard src/drivers/*.cpp) KERNEL_CPP_FS_FILES=$(wildcard src/fs/*.cpp) KERNEL_CPP_VFS_FILES=$(wildcard src/vfs/*.cpp) +KERNEL_O_FILES=$(KERNEL_CPP_FILES:%.cpp=%.cpp.o) +KERNEL_O_DRIVERS_FILES=$(KERNEL_CPP_DRIVERS_FILES:%.cpp=%.cpp.o) +KERNEL_O_FS_FILES=$(KERNEL_CPP_FS_FILES:%.cpp=%.cpp.o) +KERNEL_O_VFS_FILES=$(KERNEL_CPP_VFS_FILES:%.cpp=%.cpp.o) + ACPICA_DISPATCHER_CPP_FILES=$(wildcard acpica/source/components/dispatcher/*.c) ACPICA_EVENTS_CPP_FILES=$(wildcard acpica/source/components/events/*.c) ACPICA_EXECUTER_CPP_FILES=$(wildcard acpica/source/components/executer/*.c) @@ -17,24 +22,6 @@ ACPICA_RESOURCES_CPP_FILES=$(wildcard acpica/source/components/resources/*.c) ACPICA_TABLES_CPP_FILES=$(wildcard acpica/source/components/tables/*.c) ACPICA_UTILITIES_CPP_FILES=$(wildcard acpica/source/components/utilities/*.c) -KERNEL_D_FILES=$(KERNEL_CPP_FILES:%.cpp=%.cpp.d) -KERNEL_D_DRIVERS_FILES=$(KERNEL_CPP_DRIVERS_FILES:%.cpp=%.cpp.d) -KERNEL_D_FS_FILES=$(KERNEL_CPP_FS_FILES:%.cpp=%.cpp.d) -KERNEL_D_VFS_FILES=$(KERNEL_CPP_VFS_FILES:%.cpp=%.cpp.d) - -ACPICA_DISPATCHER_D_FILES=$(ACPICA_DISPATCHER_CPP_FILES:%.c=%.c.d) -ACPICA_EVENTS_D_FILES=$(ACPICA_EVENTS_CPP_FILES:%.c=%.c.d) -ACPICA_EXECUTER_D_FILES=$(ACPICA_EXECUTER_CPP_FILES:%.c=%.c.d) -ACPICA_NAMESPACE_D_FILES=$(ACPICA_NAMESPACE_CPP_FILES:%.c=%.c.d) -ACPICA_RESOURCES_D_FILES=$(ACPICA_RESOURCES_CPP_FILES:%.c=%.c.d) -ACPICA_TABLES_D_FILES=$(ACPICA_TABLES_CPP_FILES:%.c=%.c.d) -ACPICA_UTILITIES_D_FILES=$(ACPICA_UTILITIES_CPP_FILES:%.c=%.c.d) - -KERNEL_O_FILES=$(KERNEL_CPP_FILES:%.cpp=%.cpp.o) -KERNEL_O_DRIVERS_FILES=$(KERNEL_CPP_DRIVERS_FILES:%.cpp=%.cpp.o) -KERNEL_O_FS_FILES=$(KERNEL_CPP_FS_FILES:%.cpp=%.cpp.o) -KERNEL_O_VFS_FILES=$(KERNEL_CPP_VFS_FILES:%.cpp=%.cpp.o) - ACPICA_DISPATCHER_O_FILES=$(ACPICA_DISPATCHER_CPP_FILES:%.c=%.c.o) ACPICA_EVENTS_O_FILES=$(ACPICA_EVENTS_CPP_FILES:%.c=%.c.o) ACPICA_EXECUTER_O_FILES=$(ACPICA_EXECUTER_CPP_FILES:%.c=%.c.o) @@ -93,35 +80,18 @@ $(eval $(call acpica_folder_compile,resources)) $(eval $(call acpica_folder_compile,tables)) $(eval $(call acpica_folder_compile,utilities)) --include $(KERNEL_D_FILES) --include $(KERNEL_D_DRIVERS_FILES) --include $(KERNEL_D_VFS_FILES) --include $(KERNEL_D_FS_FILES) --include $(ACPICA_DISPATCHER_D_FILES) --include $(ACPICA_EVENTS_D_FILES) --include $(ACPICA_EXECUTER_D_FILES) --include $(ACPICA_NAMESPACE_D_FILES) --include $(ACPICA_RESOURCES_D_FILES) --include $(ACPICA_TABLES_D_FILES) --include $(ACPICA_UTILITIES_D_FILES) +-include $(D_FILES) kernel.bin: $(LINK_O_FILES) $(CXX) $(KERNEL_LINK_FLAGS) $(KERNEL_CPP_FLAGS_64) -o kernel.bin.o $(LINK_O_FILES) $(OC) -R .note -R .comment -O binary --set-section-flags .bss=alloc,load,contents kernel.bin.o kernel.bin clean: - rm -f $(KERNEL_D_FILES) - rm -f $(KERNEL_D_DRIVERS_FILES) - rm -f $(KERNEL_D_FS_FILES) - rm -f $(KERNEL_D_VFS_FILES) - rm -f $(ACPICA_DISPATCHER_D_FILES) - rm -f $(ACPICA_EVENTS_D_FILES) - rm -f $(ACPICA_EXECUTER_D_FILES) - rm -f $(ACPICA_NAMESPACE_D_FILES) - rm -f $(ACPICA_RESOURCES_D_FILES) - rm -f $(ACPICA_TABLES_D_FILES) - rm -f $(ACPICA_UTILITIES_D_FILES) - rm -f $(O_FILES) - rm -f crti.o - rm -f crts.o - rm -f *.bin + @ echo -e "Remove deps files" + @ rm -f $(D_FILES) + @ echo -e "Remove object files" + @ rm -f $(O_FILES) + @ rm -f crti.o + @ rm -f crts.o + @ echo -e "Remove bin files" + @ rm -f *.bin