Cleanup makefile

This commit is contained in:
Baptiste Wicht 2016-07-17 11:11:15 +02:00
parent 23d74736af
commit 22cce3561a
2 changed files with 25 additions and 45 deletions

12
cpp.mk
View File

@ -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

View File

@ -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