Preliminary cleanup before big changes

This commit is contained in:
Adrien Bourmault 2019-11-08 15:41:51 +01:00
parent 30fea86300
commit 32db8a0a9e
3 changed files with 69 additions and 138 deletions

View File

@ -99,3 +99,8 @@ IDT Overhaul
* GDT : CS and TSS works
* IDT : Double Fault and Stack Segment Fault have a separate stack
* Stack : guard pages are now fully functionnal
[...] Time Skip
2019-11-08 @os-k-team <os-k-team@os-k.eu>
* Compilation process : beginning the modernization

View File

@ -25,6 +25,7 @@
.PHONY: all test test32 debug gdb install_mbr dust clean OS/K
.DELETE_ON_ERROR: $(BINDIR)/kaleid
## VARIABLES ----------------------------------------------------------------- #
# Debug
@ -117,9 +118,11 @@ KernDep=$(patsubst %.c,$(KOBJDIR)/%.d,$(KernSources))
## KALEID MAKEFILE ----------------------------------------------------------- #
all : OS/K $(dep)
all : OS/K
## MISC MAKEFILE ------------------------------------------------------------- #
./ProjectTree: ./.stylehlp_sh
@cat ./.stylehlp_sh > ./ProjectTree
@echo "\n" >> ./ProjectTree
@ -133,7 +136,16 @@ wc:
@rm -f build/kaleid*_disasm.asm
@cat $(shell find -name *.[ch]) $(shell find -name *.asm) $(shell find -name *.inc) | wc -l
egypt: CFLAGS := -DNDEBUG $(filter-out -fstack-protector-all,$(CFLAGS))
egypt: dust $(LibCObj) $(KernObj)
@find -name '*.expand' -o -name '*.expand' | xargs cat > rtl_exp.out
@egypt < rtl_exp.out | dot -Tps -o osk-graph.ps
@rm -f rtl_exp.out
@evince osk-graph.ps &
## LIB C MAKEFILE ------------------------------------------------------------ #
-include $(LibCDep)
$(KOBJDIR)/libc/atoi.o: $(KALEIDDIR)/libc/atoi.c | $(KOBJDIR)
@ -161,7 +173,9 @@ $(KOBJDIR)/libc/mem.o: $(KALEIDDIR)/libc/mem.c | $(KOBJDIR)
@$(KCC) -fno-strict-aliasing $< -o $@
@echo ${CL2}[$@] ${CL}Compiled.${CL3}
## KERNEL MAKEFILE ----------------------------------------------------------- #
-include $(KernDep)
$(KOBJDIR)/kernel/ke/idt.o: $(KALEIDDIR)/kernel/ke/idt.c \
@ -209,12 +223,15 @@ $(KOBJDIR)/kernel/io/ata.o: $(KALEIDDIR)/kernel/io/ata.c \
@rm -f $@.1 $@.2
@echo ${CL2}[$@] ${CL}Compiled.${CL3}
## DEPENDENCIES MAKEFILE ----------------------------------------------------- #
$(KOBJDIR)/%.d: %.c | $(KOBJDIR)
@mkdir -p $(shell dirname $@)
@$(KCC) -MM -MT $(@:%.d=%.o) -MF $@ $<
@echo ${CL2}[$@] ${CL}Dependencies generated.${CL3}
## MAIN MAKEFILE ------------------------------------------------------------- #
$(KOBJDIR)/%.o: %.c | $(KOBJDIR)
@ -222,6 +239,30 @@ $(KOBJDIR)/%.o: %.c | $(KOBJDIR)
@$(KCC) $< -o $@
@echo ${CL2}[$@] ${CL}Compiled.${CL3}
$(BINDIR)/kaleid: $(LOBJDIR)/kaleid.x86_64
@echo ${CL2}[$@] ${NC}Objcopy...${CL3}
@$(OBJCOPY) -I elf64-x86-64 -O elf32-i386 $(LOBJDIR)/kaleid.x86_64 $(BINDIR)/kaleid
#@make copy_kernel
@echo ${CL2}[$@] ${CL}Success.${CL3}
$(LOBJDIR)/kaleid.x86_64: $(LibCObj) $(KernObj) $(LOBJDIR)/loader.o
@echo ${CL2}[$@] ${NC}Linking kernel objects...${CL3}
@$(LD) $(LDFLAGS) -T $(BUILDDIR)/kernel.ld \
$(LOBJDIR)/loader.o $(KernObj) $(LibCObj) \
-o $(LOBJDIR)/kaleid.x86_64
@echo ${CL2}[$@] ${CL}Success.${CL3}
$(LOBJDIR)/loader.o: $(LOADERDIR)/loader.asm $(LOADERDIR)/*/*.inc
@echo ${CL2}[$@] ${NC}Making loader...${CL3}
@mkdir -p $(shell dirname $@)
@$(ASM) $(ASMFLAGS) $(LOADERDIR)/loader.asm -o $(LOBJDIR)/loader.o > /dev/null
@echo ${CL2}[$@] ${CL}Success.${CL3}
OS/K: $(dep) ./ProjectTree $(BINDIR)/kaleid
@echo ${CL2}[[$@]] ${NC} OS/K successfully made, $(mode) mode.${CL3}
## QEMU/DEBUG RELATED
test: all
@qemu-system-x86_64 -vga std -cpu core2duo -soundhw pcspk -s \
-rtc base=localtime -m $(ram) -hda $(BUILDDIR)/bin/disk.img \
@ -246,10 +287,12 @@ ddd: all
-no-shutdown -d cpu_reset,guest_errors,pcall,int -s 2> $(BUILDDIR)/qemu.log &
@ddd
## HD IMAGE RELATED ---------------------------------------------------------- #
install_mbr: $(BINDIR)/disk.img $(MBRDIR)/grub.cfg
@mkdir -p $(BINDIR)/disk
@echo ${CL2}[$@] ${NC}Installing MBR on image...${CL3}
-@$(MBRDIR)/umount.sh $(BINDIR)/disk || /bin/true
@$(MBRDIR)/grub-install.sh $(BINDIR)/disk.img $(BINDIR)/disk $(MBRDIR)/grub.cfg
@rmdir $(BINDIR)/disk
@echo ${CL2}[$@] ${CL}Success.${CL3}
@ -264,12 +307,15 @@ copy_kernel:
@echo ${CL2}[$@] ${CL}Success.${CL3}
@rmdir $(BINDIR)/disk
egypt: CFLAGS := -DNDEBUG $(filter-out -fstack-protector-all,$(CFLAGS))
egypt: dust $(LibCObj) $(KernObj)
@find -name '*.expand' -o -name '*.expand' | xargs cat > rtl_exp.out
@egypt < rtl_exp.out | dot -Tps -o osk-graph.ps
@rm -f rtl_exp.out
@evince osk-graph.ps &
$(BINDIR)/disk.img: $(MBRDIR)/create_disk.sh
@echo ${CL2}[$@]${NC} Constructing disk image...${CL3}
-@$(MBRDIR)/umount.sh $(BINDIR)/disk || /bin/true
@$(MBRDIR)/create_disk.sh $(BINDIR)/disk.img
@make install_mbr
@echo ${CL2}[$@]${NC} Constructing disk image...${CL3}
## CLEANUP RELATED ----------------------------------------------------------- #
dust:
-@$(MBRDIR)/umount.sh $(BINDIR)/disk || /bin/true
@ -281,32 +327,3 @@ clean:
@rm -Rvf ./ProjectTree $(BUILDDIR)/*.log
@rm -Rvf $(BINDIR)/* $(OBJDIR)/*
@echo ${CL2}[$@] ${CL}Cleaned.${CL3}
$(BINDIR)/kaleid: $(LOBJDIR)/kaleid.x86_64
@echo ${CL2}[$@] ${NC}Objcopy...${CL3}
@$(OBJCOPY) -I elf64-x86-64 -O elf32-i386 $(LOBJDIR)/kaleid.x86_64 $(BINDIR)/kaleid
@make copy_kernel
@echo ${CL2}[$@] ${CL}Success.${CL3}
$(LOBJDIR)/kaleid.x86_64: $(LibCObj) $(KernObj) $(LOBJDIR)/loader.o
@echo ${CL2}[$@] ${NC}Linking kernel objects...${CL3}
@$(LD) $(LDFLAGS) -T $(BUILDDIR)/kernel.ld \
$(LOBJDIR)/loader.o $(KernObj) $(LibCObj) \
-o $(LOBJDIR)/kaleid.x86_64
@echo ${CL2}[$@] ${CL}Success.${CL3}
$(LOBJDIR)/loader.o: $(LOADERDIR)/loader.asm $(LOADERDIR)/*/*.inc
@echo ${CL2}[$@] ${NC}Making loader...${CL3}
@mkdir -p $(shell dirname $@)
@$(ASM) $(ASMFLAGS) $(LOADERDIR)/loader.asm -o $(LOBJDIR)/loader.o > /dev/null
@echo ${CL2}[$@] ${CL}Success.${CL3}
$(BINDIR)/disk.img: $(MBRDIR)/create_disk.sh
@echo ${CL2}[$@]${NC} Constructing disk image...${CL3}
-@$(MBRDIR)/umount.sh $(BINDIR)/disk || /bin/true
@$(MBRDIR)/create_disk.sh $(BINDIR)/disk.img
@make install_mbr
@echo ${CL2}[$@]${NC} Constructing disk image...${CL3}
OS/K: $(BINDIR)/disk.img $(BINDIR)/kaleid ./ProjectTree
@echo ${CL2}[[$@]] ${NC} OS/K successfully made, $(mode) mode.${CL3}

View File

@ -48,152 +48,61 @@
│   └── folder.desc
├── build
│   ├── bin
│   │   ├── disk.img
│   │   └── kaleid
│   ├── obj
│   │   ├── boot
│   │   │   ├── kaleid.x86_64
│   │   │   └── loader.o
│   │   └── kaleid
│   │   ├── kernel
│   │   │   ├── init
│   │   │   │   ├── info.c.229r.expand
│   │   │   │   ├── info.d
│   │   │   │   ├── info.o
│   │   │   │   ├── init.c.229r.expand
│   │   │   │   ├── init.d
│   │   │   │   ├── init.o
│   │   │   │   ├── ssp.c.229r.expand
│   │   │   │   ├── ssp.d
│   │   │   │   ├── ssp.o
│   │   │   │   ├── table.d
│   │   │   │   └── table.o
│   │   │   │   └── table.d
│   │   │   ├── io
│   │   │   │   ├── ata.c.229r.expand
│   │   │   │   ├── ata.d
│   │   │   │   ├── ata.o
│   │   │   │   ├── cursor.c.229r.expand
│   │   │   │   ├── cursor.d
│   │   │   │   ├── cursor.o
│   │   │   │   ├── keyb.c.229r.expand
│   │   │   │   ├── keyb.d
│   │   │   │   ├── keyb.o
│   │   │   │   ├── spkr.c.229r.expand
│   │   │   │   ├── spkr.d
│   │   │   │   ├── spkr.o
│   │   │   │   ├── vga.c.229r.expand
│   │   │   │   ├── vga.d
│   │   │   │   └── vga.o
│   │   │   │   └── vga.d
│   │   │   ├── ke
│   │   │   │   ├── cpuid.c.229r.expand
│   │   │   │   ├── cpuid.d
│   │   │   │   ├── cpuid.o
│   │   │   │   ├── idt.c.229r.expand
│   │   │   │   ├── idt.d
│   │   │   │   ├── idt.o
│   │   │   │   ├── log.c.229r.expand
│   │   │   │   ├── log.d
│   │   │   │   ├── log.o
│   │   │   │   ├── panic.c.229r.expand
│   │   │   │   ├── panic.d
│   │   │   │   ├── panic.o
│   │   │   │   ├── rtc.c.229r.expand
│   │   │   │   ├── rtc.d
│   │   │   │   └── rtc.o
│   │   │   │   └── rtc.d
│   │   │   ├── mm
│   │   │   │   ├── gdt.c.229r.expand
│   │   │   │   ├── gdt.d
│   │   │   │   ├── gdt.o
│   │   │   │   ├── heap.c.229r.expand
│   │   │   │   ├── heap.d
│   │   │   │   ├── heap.o
│   │   │   │   ├── malloc.c.229r.expand
│   │   │   │   ├── malloc.d
│   │   │   │   ├── malloc.o
│   │   │   │   ├── map.c.229r.expand
│   │   │   │   ├── map.d
│   │   │   │   ├── map.o
│   │   │   │   ├── paging.c.229r.expand
│   │   │   │   ├── paging.d
│   │   │   │   └── paging.o
│   │   │   │   └── paging.d
│   │   │   ├── po
│   │   │   │   ├── shtdwn.c.229r.expand
│   │   │   │   ├── shtdwn.d
│   │   │   │   └── shtdwn.o
│   │   │   │   └── shtdwn.d
│   │   │   ├── ps
│   │   │   │   ├── sched.d
│   │   │   │   └── sched.o
│   │   │   │   └── sched.d
│   │   │   └── sh
│   │   │   ├── argv.c.229r.expand
│   │   │   ├── argv.d
│   │   │   ├── argv.o
│   │   │   ├── musage.c.229r.expand
│   │   │   ├── musage.d
│   │   │   ├── musage.o
│   │   │   ├── shcmds.c.229r.expand
│   │   │   ├── shcmds.d
│   │   │   ├── shcmds.o
│   │   │   ├── shell.c.229r.expand
│   │   │   ├── shell.d
│   │   │   └── shell.o
│   │   │   └── shell.d
│   │   ├── libbuf
│   │   │   ├── bclose.c.229r.expand
│   │   │   ├── bclose.d
│   │   │   ├── bclose.o
│   │   │   ├── bflush.c.229r.expand
│   │   │   ├── bflush.d
│   │   │   ├── bflush.o
│   │   │   ├── bgetc.c.229r.expand
│   │   │   ├── bgetc.d
│   │   │   ├── bgetc.o
│   │   │   ├── bmisc.c.229r.expand
│   │   │   ├── bmisc.d
│   │   │   ├── bmisc.o
│   │   │   ├── bopen.c.229r.expand
│   │   │   ├── bopen.d
│   │   │   ├── bopen.o
│   │   │   ├── bprint.c.229r.expand
│   │   │   ├── bprint.d
│   │   │   ├── bprint.o
│   │   │   ├── bputc.c.229r.expand
│   │   │   ├── bputc.d
│   │   │   ├── bputc.o
│   │   │   ├── bread.d
│   │   │   ├── bread.o
│   │   │   ├── bscan.d
│   │   │   ├── bscan.o
│   │   │   ├── bscroll.c.229r.expand
│   │   │   ├── bscroll.d
│   │   │   ├── bscroll.o
│   │   │   ├── bwrite.d
│   │   │   └── bwrite.o
│   │   │   └── bwrite.d
│   │   └── libc
│   │   ├── atoi.c.229r.expand
│   │   ├── atoi.o
│   │   ├── ctype.c.229r.expand
│   │   ├── ctype.d
│   │   ├── ctype.o
│   │   ├── errno.c.229r.expand
│   │   ├── errno.d
│   │   ├── errno.o
│   │   ├── itoa.c.229r.expand
│   │   ├── itoa.o
│   │   ├── mem.c.229r.expand
│   │   ├── mem.d
│   │   ├── mem.o
│   │   ├── rand.c.229r.expand
│   │   ├── rand.d
│   │   ├── rand.o
│   │   ├── sprintf.c.229r.expand
│   │   ├── sprintf.d
│   │   ├── sprintf.o
│   │   ├── string.c.229r.expand
│   │   ├── string.d
│   │   ├── string.o
│   │   ├── strtol.c.229r.expand
│   │   ├── strtol.d
│   │   └── strtol.o
│   ├── grub.log
│   │   └── strtol.d
│   └── kernel.ld
├── include
│   ├── ex
@ -302,4 +211,4 @@
├── ProjectTree
└── README.md
42 directories, 235 files
41 directories, 145 files