@@ -4,6 +4,7 @@ INCLUDEDIR=$(SRCDIR)/include/
44BACKUPDIR =$(SRCDIR ) /../../BACKUP/
55GRUBDIR =
66SCRIPTSDIR =$(SRCDIR ) /scripts/
7+ FILESDIR =files
78
89CC =$(TOOLDIR ) /i686-elf-gcc
910CFLAGS = -I$(INCLUDEDIR ) -I/usr/include -nostdlib -lgcc -fno-builtin -fno-exceptions -fno-leading-underscore -Wall -m32 -g
@@ -27,17 +28,19 @@ OBJDUMP = i686-elf-objdump
2728OBJCOPYFLAGS = --strip-debug --strip-unneeded
2829
2930QEMU =qemu-system-i386
30- QEMUFLAGS =-cdrom SEOS.iso -m 1024M
31- QEMUDFLAGS =-serial file:serial.log -s -S -daemonize -m 32M
31+ QEMUFLAGS =-cdrom $( ISOFILE ) -m 1024M -boot d
32+ QEMUDFLAGS =-serial file:serial.log -s -S -daemonize -m 64M
3233
33- PROJECT =SEOS
34+ PROJECT =SectorOS-RW4
3435
3536EXECUTABLE =$(PROJECT ) .elf
3637ISOFILE =$(PROJECT ) .iso
38+ IMAGEFILE =sorhd
3739
3840OBJECTS = $(SRCDIR ) /boot/multiboot.o \
3941 $(SRCDIR ) /boot/boot.o \
4042 $(SRCDIR ) /drivers/io/ports.o \
43+ $(SRCDIR ) /drivers/io/pci.o \
4144 $(SRCDIR ) /drivers/power/reboot.o \
4245 $(SRCDIR ) /drivers/cpu/gdt.o \
4346 $(SRCDIR ) /drivers/cpu/gdt_helper.o \
@@ -47,6 +50,9 @@ OBJECTS= $(SRCDIR)/boot/multiboot.o \
4750 $(SRCDIR ) /drivers/cpu/pit.o \
4851 $(SRCDIR ) /drivers/cpu/rdtsc.o \
4952 $(SRCDIR ) /drivers/cpu/cpuinfo.o \
53+ $(SRCDIR ) /drivers/storage/atapio.o \
54+ $(SRCDIR ) /drivers/storage/mbr.o \
55+ $(SRCDIR ) /drivers/storage/ramdisk.o \
5056 $(SRCDIR ) /interrupts/interrupt.o \
5157 $(SRCDIR ) /interrupts/interrupt_helper.o \
5258 $(SRCDIR ) /interrupts/exception.o \
@@ -58,6 +64,12 @@ OBJECTS= $(SRCDIR)/boot/multiboot.o \
5864 $(SRCDIR ) /common/libs/math.o \
5965 $(SRCDIR ) /common/libs/rng.o \
6066 $(SRCDIR ) /common/libs/list.o \
67+ $(SRCDIR ) /common/libs/tree.o \
68+ $(SRCDIR ) /fs/vfs.o \
69+ $(SRCDIR ) /fs/devfs.o \
70+ $(SRCDIR ) /fs/mount.o \
71+ $(SRCDIR ) /fs/sorfs.o \
72+ $(SRCDIR ) /fs/kernelfs.o \
6173 $(SRCDIR ) /drivers/video/vga_text.o \
6274 $(SRCDIR ) /drivers/io/serial.o \
6375 $(SRCDIR ) /drivers/input/keyboard.o \
@@ -78,19 +90,21 @@ $(EXECUTABLE): $(OBJECTS)
7890
7991compile_objs : $(OBJECTS )
8092
81- $(ISOFILE ) : $(EXECUTABLE )
93+ $(ISOFILE ) : $(IMAGEFILE ) $( EXECUTABLE )
8294 @echo ' [GRUB] $@'
8395 @mkdir -p $(PROJECT ) /boot/grub
8496 @cp $(EXECUTABLE ) $(PROJECT ) /boot/
97+ @cp sorhd $(PROJECT ) /boot/
8598 @echo ' set timeout=3' >> $(PROJECT ) /boot/grub/grub.cfg
8699 @echo ' set default=0' >> $(PROJECT ) /boot/grub/grub.cfg
87100 @echo ' set root=(cd)' >> $(PROJECT ) /boot/grub/grub.cfg
88101 @echo ' ' >> $(PROJECT ) /boot/grub/grub.cfg
89102 @echo ' menuentry "$(PROJECT)" { ' >> $(PROJECT ) /boot/grub/grub.cfg
90103 @echo ' multiboot /boot/$(EXECUTABLE)' >> $(PROJECT ) /boot/grub/grub.cfg
104+ @echo ' module /boot/sorhd' >> $(PROJECT ) /boot/grub/grub.cfg
91105 @echo ' boot' >> $(PROJECT ) /boot/grub/grub.cfg
92106 @echo ' }' >> $(PROJECT ) /boot/grub/grub.cfg
93- @$(GRUBDIR ) grub-mkrescue -o $(ISOFILE ) $(PROJECT )
107+ @$(GRUBDIR ) grub-mkrescue -o $(ISOFILE ) $(PROJECT ) --product-name= $( PROJECT )
94108 @rm -rf $(PROJECT ) /
95109
96110
@@ -106,8 +120,16 @@ $(ISOFILE): $(EXECUTABLE)
106120 @echo ' [NASM] $@'
107121 @$(NASM ) $(NASMFLAGS ) -o $@ $<
108122
123+ sorfs_compile :
124+ @echo ' [CC] $(SRCDIR)/tools/sorfs.c => sorfs'
125+ @gcc $(SRCDIR ) /tools/sorfs.c -o sorfs
126+
127+ $(IMAGEFILE ) : sorfs_compile
128+ @echo ' [SORFS] $@'
129+ ./sorfs -c $@ $(wildcard $(FILESDIR ) /* )
130+
109131run : $(ISOFILE )
110- $(QEMU ) $(QEMUFLAGS )
132+ $(QEMU ) $(QEMUFLAGS ) -enable-kvm -cpu host
111133
112134rund : $(ISOFILE )
113135 $(QEMU ) $(QEMUFLAGS ) $(QEMUDFLAGS )
@@ -122,7 +144,7 @@ forcerund: clean iso rund
122144PHONY : clean kernel
123145clean :
124146 @echo ' Cleaning the source directory...'
125- @rm -f $(OBJECTS ) $(EXECUTABLE ) $(ISOFILE )
147+ @rm -f $(OBJECTS ) $(EXECUTABLE ) $(ISOFILE ) sorfs $( IMAGEFILE )
126148
127149clean_objs :
128150 @rm -f $(OBJECTS )
0 commit comments