@@ -4,6 +4,7 @@ INCLUDEDIR=$(SRCDIR)/include/
4
4
BACKUPDIR =$(SRCDIR ) /../../BACKUP/
5
5
GRUBDIR =
6
6
SCRIPTSDIR =$(SRCDIR ) /scripts/
7
+ FILESDIR =files
7
8
8
9
CC =$(TOOLDIR ) /i686-elf-gcc
9
10
CFLAGS = -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
27
28
OBJCOPYFLAGS = --strip-debug --strip-unneeded
28
29
29
30
QEMU =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
32
33
33
- PROJECT =SEOS
34
+ PROJECT =SectorOS-RW4
34
35
35
36
EXECUTABLE =$(PROJECT ) .elf
36
37
ISOFILE =$(PROJECT ) .iso
38
+ IMAGEFILE =sorhd
37
39
38
40
OBJECTS = $(SRCDIR ) /boot/multiboot.o \
39
41
$(SRCDIR ) /boot/boot.o \
40
42
$(SRCDIR ) /drivers/io/ports.o \
43
+ $(SRCDIR ) /drivers/io/pci.o \
41
44
$(SRCDIR ) /drivers/power/reboot.o \
42
45
$(SRCDIR ) /drivers/cpu/gdt.o \
43
46
$(SRCDIR ) /drivers/cpu/gdt_helper.o \
@@ -47,6 +50,9 @@ OBJECTS= $(SRCDIR)/boot/multiboot.o \
47
50
$(SRCDIR ) /drivers/cpu/pit.o \
48
51
$(SRCDIR ) /drivers/cpu/rdtsc.o \
49
52
$(SRCDIR ) /drivers/cpu/cpuinfo.o \
53
+ $(SRCDIR ) /drivers/storage/atapio.o \
54
+ $(SRCDIR ) /drivers/storage/mbr.o \
55
+ $(SRCDIR ) /drivers/storage/ramdisk.o \
50
56
$(SRCDIR ) /interrupts/interrupt.o \
51
57
$(SRCDIR ) /interrupts/interrupt_helper.o \
52
58
$(SRCDIR ) /interrupts/exception.o \
@@ -58,6 +64,12 @@ OBJECTS= $(SRCDIR)/boot/multiboot.o \
58
64
$(SRCDIR ) /common/libs/math.o \
59
65
$(SRCDIR ) /common/libs/rng.o \
60
66
$(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 \
61
73
$(SRCDIR ) /drivers/video/vga_text.o \
62
74
$(SRCDIR ) /drivers/io/serial.o \
63
75
$(SRCDIR ) /drivers/input/keyboard.o \
@@ -78,19 +90,21 @@ $(EXECUTABLE): $(OBJECTS)
78
90
79
91
compile_objs : $(OBJECTS )
80
92
81
- $(ISOFILE ) : $(EXECUTABLE )
93
+ $(ISOFILE ) : $(IMAGEFILE ) $( EXECUTABLE )
82
94
@echo ' [GRUB] $@'
83
95
@mkdir -p $(PROJECT ) /boot/grub
84
96
@cp $(EXECUTABLE ) $(PROJECT ) /boot/
97
+ @cp sorhd $(PROJECT ) /boot/
85
98
@echo ' set timeout=3' >> $(PROJECT ) /boot/grub/grub.cfg
86
99
@echo ' set default=0' >> $(PROJECT ) /boot/grub/grub.cfg
87
100
@echo ' set root=(cd)' >> $(PROJECT ) /boot/grub/grub.cfg
88
101
@echo ' ' >> $(PROJECT ) /boot/grub/grub.cfg
89
102
@echo ' menuentry "$(PROJECT)" { ' >> $(PROJECT ) /boot/grub/grub.cfg
90
103
@echo ' multiboot /boot/$(EXECUTABLE)' >> $(PROJECT ) /boot/grub/grub.cfg
104
+ @echo ' module /boot/sorhd' >> $(PROJECT ) /boot/grub/grub.cfg
91
105
@echo ' boot' >> $(PROJECT ) /boot/grub/grub.cfg
92
106
@echo ' }' >> $(PROJECT ) /boot/grub/grub.cfg
93
- @$(GRUBDIR ) grub-mkrescue -o $(ISOFILE ) $(PROJECT )
107
+ @$(GRUBDIR ) grub-mkrescue -o $(ISOFILE ) $(PROJECT ) --product-name= $( PROJECT )
94
108
@rm -rf $(PROJECT ) /
95
109
96
110
@@ -106,8 +120,16 @@ $(ISOFILE): $(EXECUTABLE)
106
120
@echo ' [NASM] $@'
107
121
@$(NASM ) $(NASMFLAGS ) -o $@ $<
108
122
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
+
109
131
run : $(ISOFILE )
110
- $(QEMU ) $(QEMUFLAGS )
132
+ $(QEMU ) $(QEMUFLAGS ) -enable-kvm -cpu host
111
133
112
134
rund : $(ISOFILE )
113
135
$(QEMU ) $(QEMUFLAGS ) $(QEMUDFLAGS )
@@ -122,7 +144,7 @@ forcerund: clean iso rund
122
144
PHONY : clean kernel
123
145
clean :
124
146
@echo ' Cleaning the source directory...'
125
- @rm -f $(OBJECTS ) $(EXECUTABLE ) $(ISOFILE )
147
+ @rm -f $(OBJECTS ) $(EXECUTABLE ) $(ISOFILE ) sorfs $( IMAGEFILE )
126
148
127
149
clean_objs :
128
150
@rm -f $(OBJECTS )
0 commit comments