From 2050b893348ab640c83788d49343615beb1dce02 Mon Sep 17 00:00:00 2001 From: "Justin C. Miller" Date: Tue, 17 Apr 2018 09:44:40 -0700 Subject: [PATCH] Move src/modules/main -> src/kernel --- Makefile | 40 ++++++++++++------- src/{modules/main => kernel}/acpi_tables.h | 0 src/{modules/main => kernel}/boot.s | 0 src/{modules/main => kernel}/console.cpp | 0 src/{modules/main => kernel}/console.h | 0 src/{modules/main => kernel}/debug.s | 0 .../main => kernel}/device_manager.cpp | 0 src/{modules/main => kernel}/device_manager.h | 0 src/{modules/main => kernel}/font.cpp | 0 src/{modules/main => kernel}/font.h | 0 .../main => kernel}/interrupt_isrs.inc | 0 src/{modules/main => kernel}/interrupts.cpp | 0 src/{modules/main => kernel}/interrupts.h | 0 src/{modules/main => kernel}/interrupts.s | 0 src/{modules/main => kernel}/main.cpp | 0 src/{modules/main => kernel}/module.mk | 0 src/{modules/main => kernel}/screen.cpp | 0 src/{modules/main => kernel}/screen.h | 0 src/{modules/main => kernel}/util.cpp | 0 src/{modules/main => kernel}/util.h | 0 20 files changed, 26 insertions(+), 14 deletions(-) rename src/{modules/main => kernel}/acpi_tables.h (100%) rename src/{modules/main => kernel}/boot.s (100%) rename src/{modules/main => kernel}/console.cpp (100%) rename src/{modules/main => kernel}/console.h (100%) rename src/{modules/main => kernel}/debug.s (100%) rename src/{modules/main => kernel}/device_manager.cpp (100%) rename src/{modules/main => kernel}/device_manager.h (100%) rename src/{modules/main => kernel}/font.cpp (100%) rename src/{modules/main => kernel}/font.h (100%) rename src/{modules/main => kernel}/interrupt_isrs.inc (100%) rename src/{modules/main => kernel}/interrupts.cpp (100%) rename src/{modules/main => kernel}/interrupts.h (100%) rename src/{modules/main => kernel}/interrupts.s (100%) rename src/{modules/main => kernel}/main.cpp (100%) rename src/{modules/main => kernel}/module.mk (100%) rename src/{modules/main => kernel}/screen.cpp (100%) rename src/{modules/main => kernel}/screen.h (100%) rename src/{modules/main => kernel}/util.cpp (100%) rename src/{modules/main => kernel}/util.h (100%) diff --git a/Makefile b/Makefile index f9ee2c1..95540e3 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,7 @@ ARCH ?= x86_64 include src/arch/$(ARCH)/config.mk BUILD_D := build +KERN_D := src/kernel ARCH_D := src/arch/$(ARCH) VERSION ?= $(shell git describe --dirty --always) GITSHA ?= $(shell git rev-parse --short HEAD) @@ -10,7 +11,7 @@ GITSHA ?= $(shell git rev-parse --short HEAD) KERNEL_FILENAME:= popcorn.bin KERNEL_FONT := assets/fonts/tamsyn8x16r.psf -MODULES := main +MODULES := EFI_DIR := external/gnu-efi @@ -92,12 +93,15 @@ INIT_DEP := $(BUILD_D)/.builddir BOOT_SRCS := $(wildcard src/boot/*.c) BOBJS += $(patsubst src/boot/%,$(BUILD_D)/boot/%,$(patsubst %,%.o,$(BOOT_SRCS))) -BDEPS := $(patsubst src/boot/%,$(BUILD_D)/boot/%,$(patsubst %,%.d,$(BOOT_SRCS))) -ARCH_SRCS := $(wildcard $(ARCH_D)/*.s) -ARCH_SRCS += $(wildcard $(ARCH_D)/*.c) -KOBJS += $(patsubst $(ARCH_D)/%,$(BUILD_D)/arch/%,$(patsubst %,%.o,$(ARCH_SRCS))) -DEPS := $(patsubst $(ARCH_D)/%,$(BUILD_D)/arch/%,$(patsubst %,%.d,$(ARCH_SRCS))) +KERN_SRCS := $(wildcard $(KERN_D)/*.s) +KERN_SRCS += $(wildcard $(KERN_D)/*.c) +KERN_SRCS += $(wildcard $(KERN_D)/*.cpp) +KERN_SRCS += $(wildcard $(ARCH_D)/*.s) +KERN_SRCS += $(wildcard $(ARCH_D)/*.c) + +KERN_OBJS := $(patsubst src/%, $(BUILD_D)/%, $(patsubst %,%.o,$(KERN_SRCS))) + MOD_TARGETS := PARTED ?= /sbin/parted @@ -120,19 +124,24 @@ init: $(INIT_DEP) $(INIT_DEP): mkdir -p $(BUILD_D) $(patsubst %,$(BUILD_D)/d.%,$(MODULES)) mkdir -p $(BUILD_D)/boot - mkdir -p $(BUILD_D)/arch + mkdir -p $(patsubst src/%,$(BUILD_D)/%,$(ARCH_D)) + mkdir -p $(patsubst src/%,$(BUILD_D)/%,$(KERN_D)) touch $(INIT_DEP) clean: rm -rf $(BUILD_D)/* $(BUILD_D)/.version $(BUILD_D)/.builddir +vars: + @echo "KERN_SRCS: " $(KERN_SRCS) + @echo "KERN_OBJS: " $(KERN_OBJS) + dist-clean: clean make -C external/gnu-efi clean dump: $(BUILD_D)/kernel.dump vim $< -.PHONY: all clean dist-clean init dump +.PHONY: all clean dist-clean init dump vars $(BUILD_D)/.version: echo '$(VERSION)' | cmp -s - $@ || echo '$(VERSION)' > $@ @@ -141,7 +150,7 @@ $(BUILD_D)/versions.s: ./parse_version.py "$(VERSION)" "$(GITSHA)" > $@ -include x $(patsubst %,src/modules/%/module.mk,$(MODULES)) --include x $(DEPS) +-include x $(shell find $(BUILD_D) -type f -name '*.d') $(EFI_LIB): make -C external/gnu-efi all @@ -174,19 +183,22 @@ $(BUILD_D)/boot/%.s.o: src/boot/%.s $(BUILD_D)/versions.s $(INIT_DEP) $(BUILD_D)/boot/%.c.o: src/boot/%.c $(INIT_DEP) $(CC) $(BOOT_CFLAGS) -c -o $@ $< -$(BUILD_D)/kernel.elf: $(KOBJS) $(MOD_TARGETS) $(ARCH_D)/kernel.ld - $(LD) $(LDFLAGS) -u _header -T $(ARCH_D)/kernel.ld -o $@ $(patsubst %,-l%,$(MODULES)) $(KOBJS) +$(BUILD_D)/kernel.elf: $(KERN_OBJS) $(MOD_TARGETS) $(ARCH_D)/kernel.ld + $(LD) $(LDFLAGS) -u _header -T $(ARCH_D)/kernel.ld -o $@ $(patsubst %,-l%,$(MODULES)) $(KERN_OBJS) $(OBJC) --only-keep-debug $@ $@.sym $(BUILD_D)/kernel.dump: $(BUILD_D)/kernel.elf $(OBJD) -D -S $< > $@ -$(BUILD_D)/arch/%.s.o: $(ARCH_D)/%.s $(BUILD_D)/versions.s $(INIT_DEP) - $(AS) $(ASFLAGS) -i $(ARCH_D)/ -o $@ $< +$(BUILD_D)/%.s.o: src/%.s $(BUILD_D)/versions.s $(INIT_DEP) + $(AS) $(ASFLAGS) -i $(ARCH_D)/ -i $(KERN_D)/ -o $@ $< -$(BUILD_D)/arch/%.c.o: $(ARCH_D)/%.c $(INIT_DEP) +$(BUILD_D)/%.c.o: src/%.c $(INIT_DEP) $(CC) $(CFLAGS) -c -o $@ $< +$(BUILD_D)/%.cpp.o: src/%.cpp $(INIT_DEP) + $(CXX) $(CXXFLAGS) -c -o $@ $< + $(BUILD_D)/flash.img: $(OVMF) cp $^ $@ diff --git a/src/modules/main/acpi_tables.h b/src/kernel/acpi_tables.h similarity index 100% rename from src/modules/main/acpi_tables.h rename to src/kernel/acpi_tables.h diff --git a/src/modules/main/boot.s b/src/kernel/boot.s similarity index 100% rename from src/modules/main/boot.s rename to src/kernel/boot.s diff --git a/src/modules/main/console.cpp b/src/kernel/console.cpp similarity index 100% rename from src/modules/main/console.cpp rename to src/kernel/console.cpp diff --git a/src/modules/main/console.h b/src/kernel/console.h similarity index 100% rename from src/modules/main/console.h rename to src/kernel/console.h diff --git a/src/modules/main/debug.s b/src/kernel/debug.s similarity index 100% rename from src/modules/main/debug.s rename to src/kernel/debug.s diff --git a/src/modules/main/device_manager.cpp b/src/kernel/device_manager.cpp similarity index 100% rename from src/modules/main/device_manager.cpp rename to src/kernel/device_manager.cpp diff --git a/src/modules/main/device_manager.h b/src/kernel/device_manager.h similarity index 100% rename from src/modules/main/device_manager.h rename to src/kernel/device_manager.h diff --git a/src/modules/main/font.cpp b/src/kernel/font.cpp similarity index 100% rename from src/modules/main/font.cpp rename to src/kernel/font.cpp diff --git a/src/modules/main/font.h b/src/kernel/font.h similarity index 100% rename from src/modules/main/font.h rename to src/kernel/font.h diff --git a/src/modules/main/interrupt_isrs.inc b/src/kernel/interrupt_isrs.inc similarity index 100% rename from src/modules/main/interrupt_isrs.inc rename to src/kernel/interrupt_isrs.inc diff --git a/src/modules/main/interrupts.cpp b/src/kernel/interrupts.cpp similarity index 100% rename from src/modules/main/interrupts.cpp rename to src/kernel/interrupts.cpp diff --git a/src/modules/main/interrupts.h b/src/kernel/interrupts.h similarity index 100% rename from src/modules/main/interrupts.h rename to src/kernel/interrupts.h diff --git a/src/modules/main/interrupts.s b/src/kernel/interrupts.s similarity index 100% rename from src/modules/main/interrupts.s rename to src/kernel/interrupts.s diff --git a/src/modules/main/main.cpp b/src/kernel/main.cpp similarity index 100% rename from src/modules/main/main.cpp rename to src/kernel/main.cpp diff --git a/src/modules/main/module.mk b/src/kernel/module.mk similarity index 100% rename from src/modules/main/module.mk rename to src/kernel/module.mk diff --git a/src/modules/main/screen.cpp b/src/kernel/screen.cpp similarity index 100% rename from src/modules/main/screen.cpp rename to src/kernel/screen.cpp diff --git a/src/modules/main/screen.h b/src/kernel/screen.h similarity index 100% rename from src/modules/main/screen.h rename to src/kernel/screen.h diff --git a/src/modules/main/util.cpp b/src/kernel/util.cpp similarity index 100% rename from src/modules/main/util.cpp rename to src/kernel/util.cpp diff --git a/src/modules/main/util.h b/src/kernel/util.h similarity index 100% rename from src/modules/main/util.h rename to src/kernel/util.h