]> git.ameliathe1st.gay Git - voyage-au-centre-des-fichiers.git/commitdiff
Modified build system a bit, to fix mistakes and simplify it. Only very small changes
authorAmelia Coutard <eliottulio.coutard@gmail.com>
Thu, 15 Jun 2023 02:33:36 +0000 (04:33 +0200)
committerAmelia Coutard <eliottulio.coutard@gmail.com>
Thu, 15 Jun 2023 02:47:57 +0000 (04:47 +0200)
Makefile
kernel/module.mk
test_module/module.mk

index 4ea34711245bd37054a1d1ea581ed21116de4355..baf09126c69f7e488df3af471995f3955c8c06b8 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -14,10 +14,10 @@ build: # Build as default target
 
 CXX := x86_64-elf-g++
 CXXFLAGS ?= -O2
-CXXFLAGS := $(CXXFLAGS) -fno-strict-aliasing -Wall -Wextra -Werror -std=c++20 \
+CXXFLAGS := $(CXXFLAGS) -std=c++20 -fno-strict-aliasing -Wall -Wextra -Werror \
             -mgeneral-regs-only -fno-exceptions -fno-rtti -ffreestanding
 LDFLAGS ?= -O2
-LDFLAGS := $(LDFLAGS) -Wall -Wextra -Werror -std=c++20 -ffreestanding
+LDFLAGS := $(LDFLAGS) -std=c++20 -Wall -Wextra -Werror -ffreestanding
 
 TO_ISO := isodir/boot/grub/grub.cfg
 TO_CLEAN := isodir isos.iso
index fc1afbf7e9ca53ffd2f17bfc84ecc23e738b7d0a..579083ddb729d76c58f40ef770c005989b3216e3 100644 (file)
@@ -23,12 +23,16 @@ LOCAL_CXXFLAGS := $(CXXFLAGS) -mcmodel=kernel -mno-red-zone \
 LOCAL_LDFLAGS := $(LDFLAGS) -T kernel/linker.ld -z max-page-size=0x1000 \
        -mno-red-zone -mcmodel=kernel
 
-CPPOBJS      := $(patsubst $(SRC_DIR)%,$(OUT_DIR)%.o,$(shell find $(SRC_DIR) -name '*.cpp'))
-ASMOBJS      := $(patsubst $(SRC_DIR)%,$(OUT_DIR)%.o,$(shell find $(SRC_DIR) -name '*.S' | grep -v crt))
+CPPSRCS := $(shell find $(SRC_DIR) -name '*.cpp')
+CPPOBJS := $(CPPSRCS:$(SRC_DIR)%=$(OUT_DIR)%.o)
+ASMSRCS := $(shell find $(SRC_DIR) -name '*.S' | grep -v crt)
+ASMOBJS := $(ASMSRCS:$(SRC_DIR)%=$(OUT_DIR)%.o)
+
 CRTI_OBJ     := $(OUT_DIR)/lib/crti.S.o
 CRTBEGIN_OBJ := $(shell $(CXX) $(LOCAL_LDFLAGS) -print-file-name=crtbegin.o)
 CRTEND_OBJ   := $(shell $(CXX) $(LOCAL_LDFLAGS) -print-file-name=crtend.o)
 CRTN_OBJ     := $(OUT_DIR)/lib/crtn.S.o
+
 OBJS := $(CRTI_OBJ) $(CRTBEGIN_OBJ) $(CPPOBJS) $(ASMOBJS) $(CRTEND_OBJ) $(CRTN_OBJ)
 
 isodir/boot/$(EXEC_NAME): $(OUT_DIR)$(EXEC_NAME)
index 6b0e124ca0e59fc566167ca120e1f07a2d038b1f..194a4f02b65e9e5c1bd0cad736b7c6a5046021fa 100644 (file)
@@ -19,8 +19,10 @@ TO_CLEAN += $(OUT_DIR) $(DEP_DIR)
 LOCAL_CXXFLAGS := $(CXXFLAGS)
 LOCAL_LDFLAGS := $(LDFLAGS)
 
-CPPOBJS := $(patsubst $(SRC_DIR)%,$(OUT_DIR)%.o,$(shell find $(SRC_DIR) -name '*.cpp'))
-ASMOBJS := $(patsubst $(SRC_DIR)%,$(OUT_DIR)%.o,$(shell find $(SRC_DIR) -name '*.S'))
+CPPSRCS := $(shell find $(SRC_DIR) -name '*.cpp')
+CPPOBJS := $(CPPSRCS:$(SRC_DIR)%=$(OUT_DIR)%.o)
+ASMSRCS := $(shell find $(SRC_DIR) -name '*.S')
+ASMOBJS := $(ASMSRCS:$(SRC_DIR)%=$(OUT_DIR)%.o)
 OBJS := $(CPPOBJS) $(ASMOBJS)
 
 isodir/boot/$(EXEC_NAME): $(OUT_DIR)$(EXEC_NAME)
@@ -30,9 +32,9 @@ isodir/boot/$(EXEC_NAME): $(OUT_DIR)$(EXEC_NAME)
 $(OUT_DIR)$(EXEC_NAME): OBJS := $(OBJS)
 $(OUT_DIR)$(EXEC_NAME): LDLIBS := -nostdlib -lgcc
 $(OUT_DIR)$(EXEC_NAME): LDFLAGS := $(LOCAL_LDFLAGS)
-$(OUT_DIR)$(EXEC_NAME): $(OBJS) kernel/linker.ld
+$(OUT_DIR)$(EXEC_NAME): $(OBJS)
        mkdir -p "$(@D)"
-       $(CXX) $(LDFLAGS) -o "$@" $(OBJS) $(LDLIBS)
+       $(CXX) $(LDFLAGS) -o "$@" $+ $(LDLIBS)
 
 $(OUT_DIR)%.o: DEP_DIR := $(DEP_DIR)
 $(OUT_DIR)%.o: CXXFLAGS := $(LOCAL_CXXFLAGS)
@@ -41,3 +43,4 @@ $(OUT_DIR)%.o: $(SRC_DIR)%
        mkdir -p $(dir $(DEP_DIR)$*)
        $(CXX) $(CXXFLAGS) -c "$<" -MMD -MT "$@" -MF "$(DEP_DIR)$*.d" -o "$@"
 
+-include $(DEP_DIR)*.d